diff --git a/core/src/main/java/com/openeggbert/core/main/OpenEggbertGame.java b/core/src/main/java/com/openeggbert/core/main/OpenEggbertGame.java index 631cb45..63a5bfc 100644 --- a/core/src/main/java/com/openeggbert/core/main/OpenEggbertGame.java +++ b/core/src/main/java/com/openeggbert/core/main/OpenEggbertGame.java @@ -1,6 +1,5 @@ package com.openeggbert.core.main; -import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.openeggbert.core.configuration.ConfigDef; import com.openeggbert.core.configuration.OpenEggbertDisplayMode; import com.openeggbert.core.gamespace.GameSpace; @@ -18,7 +17,9 @@ import java.util.List; import java.util.Optional; import lombok.Data; import com.pixelgamelibrary.api.files.File; +import com.pixelgamelibrary.api.graphics.ShapeRenderer; import com.pixelgamelibrary.api.utils.collections.Map; +import lombok.Getter; /** * @@ -32,6 +33,7 @@ public class OpenEggbertGame extends GameAdapter { private String absolutePathOfRootDirectory; private SpriteBatch batch; + @Getter private ShapeRenderer shapeRenderer; private BitmapFont font; private Map imageTextures = Pixel.utils().collections().objectMap(); @@ -102,7 +104,7 @@ public class OpenEggbertGame extends GameAdapter { batch = Pixel.graphics().newSpriteBatch(); //batch.setProjectionMatrix(viewport.getCamera().combined); image = Pixel.graphics().newTexture("libgdx.png"); - shapeRenderer = new ShapeRenderer(); + shapeRenderer = batch.drawShape(); font = Pixel.graphics().newBitmapFont( Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.fnt"), Pixel.files().assets("com/badlogic/gdx/utils/lsans-15.png"), false diff --git a/core/src/main/java/com/openeggbert/core/screen/GameSpaceListScreen.java b/core/src/main/java/com/openeggbert/core/screen/GameSpaceListScreen.java index 11fbb80..16a01da 100644 --- a/core/src/main/java/com/openeggbert/core/screen/GameSpaceListScreen.java +++ b/core/src/main/java/com/openeggbert/core/screen/GameSpaceListScreen.java @@ -26,7 +26,7 @@ import com.badlogic.gdx.InputAdapter; import com.badlogic.gdx.Preferences; 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.main.OpenEggbertGame; import com.openeggbert.core.mod.Mod; @@ -40,6 +40,7 @@ import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import lombok.ToString; 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 List fullEmbeddedMods; private float timeSeconds = 0f; + private ShapeRenderer shapeRenderer; @ToString @AllArgsConstructor @@ -62,6 +64,7 @@ public class GameSpaceListScreen extends AbstractBasicScreen { private Rectangle[] buttons = new Rectangle[5]; private Rectangle previousPageButton = new Rectangle(); private Rectangle nextPageButton = new Rectangle(); + private Texture backgroundShapes; public GameSpaceListScreen(OpenEggbertGame openEggbertGame) { super(openEggbertGame); @@ -81,6 +84,9 @@ public class GameSpaceListScreen extends AbstractBasicScreen { //storage.file("modes").child("text.txt").writeString("textabc"); storage.flush(); + shapeRenderer = openEggbertGame.getShapeRenderer(); + + } @Override @@ -90,6 +96,8 @@ public class GameSpaceListScreen extends AbstractBasicScreen { @Override public void show() { + backgroundShapes = Pixel.graphics().getTextureFactory().createTransparent(640, 480); + shapeRenderer.setTexture(backgroundShapes); System.out.println("Calling : GameSpaceListScreen : show"); Gdx.input.setInputProcessor(new InputAdapter() { @@ -224,14 +232,9 @@ public class GameSpaceListScreen extends AbstractBasicScreen { y = (int) (y - spaceBetweenLargeButtons - margin); } - batch.end(); - final boolean isLastPage = !(pageNumber * pageSize < fullEmbeddedMods.size()); - final ShapeRenderer shapeRenderer = game.getShapeRenderer(); - - shapeRenderer.begin(ShapeRenderer.ShapeType.Filled); - + backgroundShapes.clear(); shapeRenderer.setColor(1f, 1f, 0.8f, 0.5f); int q = 0; for (Rectangle r : buttons) { @@ -239,19 +242,16 @@ public class GameSpaceListScreen extends AbstractBasicScreen { if (q > modsForPage.size()) { break; } - shapeRenderer.rect(r.x, r.y, r.width, r.height); + shapeRenderer.filledRectangle(r.x, r.y, r.width, r.height); } if (pageNumber > 1) { - shapeRenderer.rect(margin, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight); + shapeRenderer.filledRectangle(margin, margin / 4f, game.getWidthInPixels() * 0.3f, buttonHeight); } 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); } - - shapeRenderer.end(); - - batch.begin(); + batch.draw(backgroundShapes, 0, 0); font.setColor( 0f, 0f, 1f, 1f); @@ -298,6 +298,7 @@ public class GameSpaceListScreen extends AbstractBasicScreen { @Override public void hide() { + backgroundShapes.dispose(); Gdx.input.setInputProcessor(null); } } diff --git a/gradle.properties b/gradle.properties index 785ea39..a904cac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,3 +23,4 @@ gdxTeaVMVersion=1.0.3 teaVMVersion=0.10.2 netbeans.hint.jdkPlatform=JDK_17 shapeDrawerVersion=2.6.0 +netbeans.org-netbeans-modules-javascript2-requirejs.enabled=true