From b4b83c84d686e714427d1235d12947ba6768e8a4 Mon Sep 17 00:00:00 2001 From: gered Date: Mon, 8 Jul 2013 17:56:28 -0400 Subject: [PATCH] switch to using ExtendedSpriteBatch everywhere instead of DelayedSpriteBatch this makes more sense in the long run as a number of other libgdx 2d graphics systems and extensions use SpriteBatch. relying on our own DelayedSpriteBatch for all 2d rendering would just complicate things. DelayedSpriteBatch may prove useful later on, so we'll keep it for now --- .../blarg/gdx/graphics/GraphicsHelpers.java | 29 ++++++++++++++----- src/com/blarg/gdx/graphics/RenderContext.java | 14 +++------ .../screeneffects/DimScreenEffect.java | 9 ++++-- .../screeneffects/FadeScreenEffect.java | 9 ++++-- .../screeneffects/FlashScreenEffect.java | 9 ++++-- 5 files changed, 43 insertions(+), 27 deletions(-) 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