Bug 18: Separated ShapeRenderer

This commit is contained in:
Robert Vokac 2024-10-12 18:09:16 +02:00
parent 811e0230ba
commit 6a041b0e9a
Signed by: robertvokac
GPG Key ID: FB9CE8E20AADA55F
3 changed files with 20 additions and 16 deletions

View File

@ -1,6 +1,5 @@
package com.openeggbert.core.main; package com.openeggbert.core.main;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.openeggbert.core.configuration.ConfigDef; import com.openeggbert.core.configuration.ConfigDef;
import com.openeggbert.core.configuration.OpenEggbertDisplayMode; import com.openeggbert.core.configuration.OpenEggbertDisplayMode;
import com.openeggbert.core.gamespace.GameSpace; import com.openeggbert.core.gamespace.GameSpace;
@ -18,7 +17,9 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import lombok.Data; import lombok.Data;
import com.pixelgamelibrary.api.files.File; import com.pixelgamelibrary.api.files.File;
import com.pixelgamelibrary.api.graphics.ShapeRenderer;
import com.pixelgamelibrary.api.utils.collections.Map; import com.pixelgamelibrary.api.utils.collections.Map;
import lombok.Getter;
/** /**
* *
@ -32,6 +33,7 @@ public class OpenEggbertGame extends GameAdapter {
private String absolutePathOfRootDirectory; private String absolutePathOfRootDirectory;
private SpriteBatch batch; private SpriteBatch batch;
@Getter
private ShapeRenderer shapeRenderer; private ShapeRenderer shapeRenderer;
private BitmapFont font; private BitmapFont font;
private Map<String, Texture> imageTextures = Pixel.utils().collections().objectMap(); private Map<String, Texture> imageTextures = Pixel.utils().collections().objectMap();
@ -102,7 +104,7 @@ public class OpenEggbertGame extends GameAdapter {
batch = Pixel.graphics().newSpriteBatch(); batch = Pixel.graphics().newSpriteBatch();
//batch.setProjectionMatrix(viewport.getCamera().combined); //batch.setProjectionMatrix(viewport.getCamera().combined);
image = Pixel.graphics().newTexture("libgdx.png"); image = Pixel.graphics().newTexture("libgdx.png");
shapeRenderer = new ShapeRenderer(); shapeRenderer = batch.drawShape();
font = Pixel.graphics().newBitmapFont( font = Pixel.graphics().newBitmapFont(
Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.fnt"), Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.png"), Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.fnt"), Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.png"),
false false

View File

@ -26,7 +26,7 @@ import com.badlogic.gdx.InputAdapter;
import com.badlogic.gdx.Preferences; import com.badlogic.gdx.Preferences;
import com.pixelgamelibrary.api.graphics.Color; import com.pixelgamelibrary.api.graphics.Color;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.pixelgamelibrary.api.graphics.ShapeRenderer;
import com.openeggbert.core.gamespace.GameSpace; import com.openeggbert.core.gamespace.GameSpace;
import com.openeggbert.core.main.OpenEggbertGame; import com.openeggbert.core.main.OpenEggbertGame;
import com.openeggbert.core.mod.Mod; import com.openeggbert.core.mod.Mod;
@ -40,6 +40,7 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.ToString; import lombok.ToString;
import com.pixelgamelibrary.api.files.FileSystem; import com.pixelgamelibrary.api.files.FileSystem;
import com.pixelgamelibrary.api.graphics.Texture;
/** /**
* *
@ -51,6 +52,7 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
private final int pageSize = 5; private final int pageSize = 5;
private final List<Mod> fullEmbeddedMods; private final List<Mod> fullEmbeddedMods;
private float timeSeconds = 0f; private float timeSeconds = 0f;
private ShapeRenderer shapeRenderer;
@ToString @ToString
@AllArgsConstructor @AllArgsConstructor
@ -62,6 +64,7 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
private Rectangle[] buttons = new Rectangle[5]; private Rectangle[] buttons = new Rectangle[5];
private Rectangle previousPageButton = new Rectangle(); private Rectangle previousPageButton = new Rectangle();
private Rectangle nextPageButton = new Rectangle(); private Rectangle nextPageButton = new Rectangle();
private Texture backgroundShapes;
public GameSpaceListScreen(OpenEggbertGame openEggbertGame) { public GameSpaceListScreen(OpenEggbertGame openEggbertGame) {
super(openEggbertGame); super(openEggbertGame);
@ -81,6 +84,9 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
//storage.file("modes").child("text.txt").writeString("textabc"); //storage.file("modes").child("text.txt").writeString("textabc");
storage.flush(); storage.flush();
shapeRenderer = openEggbertGame.getShapeRenderer();
} }
@Override @Override
@ -90,6 +96,8 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
@Override @Override
public void show() { public void show() {
backgroundShapes = Pixel.graphics().getTextureFactory().createTransparent(640, 480);
shapeRenderer.setTexture(backgroundShapes);
System.out.println("Calling : GameSpaceListScreen : show"); System.out.println("Calling : GameSpaceListScreen : show");
Gdx.input.setInputProcessor(new InputAdapter() { Gdx.input.setInputProcessor(new InputAdapter() {
@ -224,14 +232,9 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
y = (int) (y - spaceBetweenLargeButtons - margin); y = (int) (y - spaceBetweenLargeButtons - margin);
} }
batch.end();
final boolean isLastPage = !(pageNumber * pageSize < fullEmbeddedMods.size()); final boolean isLastPage = !(pageNumber * pageSize < fullEmbeddedMods.size());
final ShapeRenderer shapeRenderer = game.getShapeRenderer(); backgroundShapes.clear();
shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
shapeRenderer.setColor(1f, 1f, 0.8f, 0.5f); shapeRenderer.setColor(1f, 1f, 0.8f, 0.5f);
int q = 0; int q = 0;
for (Rectangle r : buttons) { for (Rectangle r : buttons) {
@ -239,19 +242,16 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
if (q > modsForPage.size()) { if (q > modsForPage.size()) {
break; break;
} }
shapeRenderer.rect(r.x, r.y, r.width, r.height); shapeRenderer.filledRectangle(r.x, r.y, r.width, r.height);
} }
if (pageNumber if (pageNumber
> 1) { > 1) {
shapeRenderer.rect(margin, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight); shapeRenderer.filledRectangle(margin, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight);
} }
if (!isLastPage) { if (!isLastPage) {
shapeRenderer.rect(game.getWidthInPixels() * 0.66f, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight); shapeRenderer.filledRectangle(game.getWidthInPixels() * 0.66f, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight);
} }
batch.draw(backgroundShapes, 0, 0);
shapeRenderer.end();
batch.begin();
font.setColor( font.setColor(
0f, 0f, 1f, 1f); 0f, 0f, 1f, 1f);
@ -298,6 +298,7 @@ public class GameSpaceListScreen extends AbstractBasicScreen {
@Override @Override
public void hide() { public void hide() {
backgroundShapes.dispose();
Gdx.input.setInputProcessor(null); Gdx.input.setInputProcessor(null);
} }
} }

View File

@ -23,3 +23,4 @@ gdxTeaVMVersion=1.0.3
teaVMVersion=0.10.2 teaVMVersion=0.10.2
netbeans.hint.jdkPlatform=JDK_17 netbeans.hint.jdkPlatform=JDK_17
shapeDrawerVersion=2.6.0 shapeDrawerVersion=2.6.0
netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true