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
This commit is contained in:
Gered 2013-07-08 17:56:28 -04:00
parent 93b0307dfc
commit b4b83c84d6
5 changed files with 43 additions and 27 deletions

View file

@ -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();
}
}

View file

@ -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) {

View file

@ -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();
}
}

View file

@ -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

View file

@ -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