diff --git a/src/com/blarg/gdx/graphics/GraphicsHelpers.java b/src/com/blarg/gdx/graphics/GraphicsHelpers.java index 93c698c..36acf6a 100644 --- a/src/com/blarg/gdx/graphics/GraphicsHelpers.java +++ b/src/com/blarg/gdx/graphics/GraphicsHelpers.java @@ -2,37 +2,50 @@ package com.blarg.gdx.graphics; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.math.Vector3; public final class GraphicsHelpers { - public static void renderCoordinateSystemAxis(ShapeRenderer shapeRenderer, DelayedSpriteBatch spriteBatch, BitmapFont font, Vector3 origin) { + public static void renderCoordinateSystemAxis(ShapeRenderer shapeRenderer, ExtendedSpriteBatch spriteBatch, BitmapFont font, Vector3 origin) { renderCoordinateSystemAxis(shapeRenderer, spriteBatch, font, origin, 5.0f); } - public static void renderCoordinateSystemAxis(ShapeRenderer shapeRenderer, DelayedSpriteBatch spriteBatch, BitmapFont font, Vector3 origin, float axisLength) { + public static void renderCoordinateSystemAxis(ShapeRenderer shapeRenderer, ExtendedSpriteBatch spriteBatch, BitmapFont font, Vector3 origin, float axisLength) { + shapeRenderer.begin(ShapeRenderer.ShapeType.Line); + spriteBatch.begin(); + shapeRenderer.setColor(Color.WHITE); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + axisLength, origin.z + 0.0f); - spriteBatch.draw(font, origin.x + 0.0f, origin.y + axisLength, origin.z + 0.0f, 0.5f, "UP (+Y)", Color.WHITE); + spriteBatch.setColor(Color.WHITE); + spriteBatch.draw(font, origin.x + 0.0f, origin.y + axisLength, origin.z + 0.0f, "UP (+Y)", 0.5f); shapeRenderer.setColor(Color.BLACK); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + -axisLength, origin.z + 0.0f); - spriteBatch.draw(font, origin.x + 0.0f, origin.y + -axisLength, origin.z + 0.0f, 0.5f, "DOWN (-Y)", Color.BLACK); + spriteBatch.setColor(Color.BLACK); + spriteBatch.draw(font, origin.x + 0.0f, origin.y + -axisLength, origin.z + 0.0f, "DOWN (-Y)", 0.5f); shapeRenderer.setColor(Color.GREEN); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + -axisLength, origin.y + 0.0f, origin.z + 0.0f); - spriteBatch.draw(font, origin.x + -axisLength, origin.y + 0.0f, origin.z + 0.0f, 0.5f, "LEFT (-X)", Color.GREEN); + spriteBatch.setColor(Color.GREEN); + spriteBatch.draw(font, origin.x + -axisLength, origin.y + 0.0f, origin.z + 0.0f, "LEFT (-X)", 0.5f); shapeRenderer.setColor(Color.RED); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + axisLength, origin.y + 0.0f, origin.z + 0.0f); - spriteBatch.draw(font, origin.x + axisLength, origin.y + 0.0f, origin.z + 0.0f, 0.5f, "RIGHT (+X)", Color.RED); + spriteBatch.setColor(Color.RED); + spriteBatch.draw(font, origin.x + axisLength, origin.y + 0.0f, origin.z + 0.0f, "RIGHT (+X)", 0.5f); shapeRenderer.setColor(Color.CYAN); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + 0.0f, origin.z + -axisLength); - spriteBatch.draw(font, origin.x + 0.0f, origin.y + 0.0f, origin.z + -axisLength, 0.5f, "FORWARD (-Z)", Color.CYAN); + spriteBatch.setColor(Color.CYAN); + spriteBatch.draw(font, origin.x + 0.0f, origin.y + 0.0f, origin.z + -axisLength, "FORWARD (-Z)", 0.5f); shapeRenderer.setColor(Color.YELLOW); shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + 0.0f, origin.z + axisLength); - spriteBatch.draw(font, origin.x + 0.0f, origin.y + 0.0f, origin.z + axisLength, 0.5f, "BACKWARD (+Z)", Color.YELLOW); + spriteBatch.setColor(Color.YELLOW); + spriteBatch.draw(font, origin.x + 0.0f, origin.y + 0.0f, origin.z + axisLength, "BACKWARD (+Z)", 0.5f); + + spriteBatch.end(); + shapeRenderer.end(); } } diff --git a/src/com/blarg/gdx/graphics/RenderContext.java b/src/com/blarg/gdx/graphics/RenderContext.java index e225515..8d84820 100644 --- a/src/com/blarg/gdx/graphics/RenderContext.java +++ b/src/com/blarg/gdx/graphics/RenderContext.java @@ -12,8 +12,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.utils.Disposable; public class RenderContext implements Disposable { - public final SpriteBatch spriteBatch; - public final DelayedSpriteBatch delayedSpriteBatch; + public final ExtendedSpriteBatch spriteBatch; public final DecalBatch decalBatch; public final BillboardSpriteBatch billboardSpriteBatch; public final ShapeRenderer debugGeometryRenderer; @@ -27,8 +26,7 @@ public class RenderContext implements Disposable { public RenderContext(boolean use2dPixelScaling) { Gdx.app.debug("RenderContext", "ctor"); - spriteBatch = new SpriteBatch(); - delayedSpriteBatch = new DelayedSpriteBatch(); + spriteBatch = new ExtendedSpriteBatch(); debugGeometryRenderer = new ShapeRenderer(); modelBatch = new ModelBatch(); solidColorTextures = new SolidColorTextureCache(); @@ -82,18 +80,14 @@ public class RenderContext implements Disposable { public void onPreRender() { spriteBatch.setProjectionMatrix(orthographicCamera.combined); + spriteBatch.setProjectionCamera(perspectiveCamera); + spriteBatch.setPixelScale(pixelScaler.getScale()); debugGeometryRenderer.setProjectionMatrix(perspectiveCamera.combined); - debugGeometryRenderer.begin(ShapeRenderer.ShapeType.Line); - delayedSpriteBatch.begin(spriteBatch, perspectiveCamera, pixelScaler.getScale()); billboardSpriteBatch.begin(decalBatch, perspectiveCamera); - modelBatch.begin(perspectiveCamera); } public void onPostRender() { - modelBatch.end(); billboardSpriteBatch.end(); - delayedSpriteBatch.end(); - debugGeometryRenderer.end(); } public void onUpdate(float delta) { diff --git a/src/com/blarg/gdx/graphics/screeneffects/DimScreenEffect.java b/src/com/blarg/gdx/graphics/screeneffects/DimScreenEffect.java index 739a421..a7d2fe4 100644 --- a/src/com/blarg/gdx/graphics/screeneffects/DimScreenEffect.java +++ b/src/com/blarg/gdx/graphics/screeneffects/DimScreenEffect.java @@ -29,10 +29,13 @@ public class DimScreenEffect extends ScreenEffect renderColor.a = alpha; Texture texture = renderContext.solidColorTextures.get(color); - renderContext.delayedSpriteBatch.draw( + renderContext.spriteBatch.begin(); + renderContext.spriteBatch.setColor(renderColor); + renderContext.spriteBatch.draw( texture, 0, 0, - renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(), - renderColor); + renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight() + ); + renderContext.spriteBatch.end(); } } diff --git a/src/com/blarg/gdx/graphics/screeneffects/FadeScreenEffect.java b/src/com/blarg/gdx/graphics/screeneffects/FadeScreenEffect.java index 69b7cd6..75940f7 100644 --- a/src/com/blarg/gdx/graphics/screeneffects/FadeScreenEffect.java +++ b/src/com/blarg/gdx/graphics/screeneffects/FadeScreenEffect.java @@ -59,11 +59,14 @@ public class FadeScreenEffect extends ScreenEffect Texture texture = renderContext.solidColorTextures.get(Color.WHITE); color.a = alpha; - renderContext.delayedSpriteBatch.draw( + renderContext.spriteBatch.begin(); + renderContext.spriteBatch.setColor(color); + renderContext.spriteBatch.draw( texture, 0, 0, - renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(), - color); + renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight() + ); + renderContext.spriteBatch.end(); } @Override diff --git a/src/com/blarg/gdx/graphics/screeneffects/FlashScreenEffect.java b/src/com/blarg/gdx/graphics/screeneffects/FlashScreenEffect.java index 53f00c7..1a852d2 100644 --- a/src/com/blarg/gdx/graphics/screeneffects/FlashScreenEffect.java +++ b/src/com/blarg/gdx/graphics/screeneffects/FlashScreenEffect.java @@ -35,11 +35,14 @@ public class FlashScreenEffect extends ScreenEffect Texture texture = renderContext.solidColorTextures.get(Color.WHITE); color.a = alpha; - renderContext.delayedSpriteBatch.draw( + renderContext.spriteBatch.begin(); + renderContext.spriteBatch.setColor(color); + renderContext.spriteBatch.draw( texture, 0, 0, - renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(), - color); + renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight() + ); + renderContext.spriteBatch.end(); } @Override