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:
parent
93b0307dfc
commit
b4b83c84d6
|
@ -2,37 +2,50 @@ package com.blarg.gdx.graphics;
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
import com.badlogic.gdx.graphics.Color;
|
||||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
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.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.math.Vector3;
|
import com.badlogic.gdx.math.Vector3;
|
||||||
|
|
||||||
public final class GraphicsHelpers {
|
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);
|
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.setColor(Color.WHITE);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + axisLength, origin.z + 0.0f);
|
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.setColor(Color.BLACK);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + -axisLength, origin.z + 0.0f);
|
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.setColor(Color.GREEN);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + -axisLength, origin.y + 0.0f, origin.z + 0.0f);
|
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.setColor(Color.RED);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + axisLength, origin.y + 0.0f, origin.z + 0.0f);
|
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.setColor(Color.CYAN);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + 0.0f, origin.z + -axisLength);
|
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.setColor(Color.YELLOW);
|
||||||
shapeRenderer.line(origin.x, origin.y, origin.z, origin.x + 0.0f, origin.y + 0.0f, origin.z + axisLength);
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,7 @@ import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
|
||||||
import com.badlogic.gdx.utils.Disposable;
|
import com.badlogic.gdx.utils.Disposable;
|
||||||
|
|
||||||
public class RenderContext implements Disposable {
|
public class RenderContext implements Disposable {
|
||||||
public final SpriteBatch spriteBatch;
|
public final ExtendedSpriteBatch spriteBatch;
|
||||||
public final DelayedSpriteBatch delayedSpriteBatch;
|
|
||||||
public final DecalBatch decalBatch;
|
public final DecalBatch decalBatch;
|
||||||
public final BillboardSpriteBatch billboardSpriteBatch;
|
public final BillboardSpriteBatch billboardSpriteBatch;
|
||||||
public final ShapeRenderer debugGeometryRenderer;
|
public final ShapeRenderer debugGeometryRenderer;
|
||||||
|
@ -27,8 +26,7 @@ public class RenderContext implements Disposable {
|
||||||
|
|
||||||
public RenderContext(boolean use2dPixelScaling) {
|
public RenderContext(boolean use2dPixelScaling) {
|
||||||
Gdx.app.debug("RenderContext", "ctor");
|
Gdx.app.debug("RenderContext", "ctor");
|
||||||
spriteBatch = new SpriteBatch();
|
spriteBatch = new ExtendedSpriteBatch();
|
||||||
delayedSpriteBatch = new DelayedSpriteBatch();
|
|
||||||
debugGeometryRenderer = new ShapeRenderer();
|
debugGeometryRenderer = new ShapeRenderer();
|
||||||
modelBatch = new ModelBatch();
|
modelBatch = new ModelBatch();
|
||||||
solidColorTextures = new SolidColorTextureCache();
|
solidColorTextures = new SolidColorTextureCache();
|
||||||
|
@ -82,18 +80,14 @@ public class RenderContext implements Disposable {
|
||||||
|
|
||||||
public void onPreRender() {
|
public void onPreRender() {
|
||||||
spriteBatch.setProjectionMatrix(orthographicCamera.combined);
|
spriteBatch.setProjectionMatrix(orthographicCamera.combined);
|
||||||
|
spriteBatch.setProjectionCamera(perspectiveCamera);
|
||||||
|
spriteBatch.setPixelScale(pixelScaler.getScale());
|
||||||
debugGeometryRenderer.setProjectionMatrix(perspectiveCamera.combined);
|
debugGeometryRenderer.setProjectionMatrix(perspectiveCamera.combined);
|
||||||
debugGeometryRenderer.begin(ShapeRenderer.ShapeType.Line);
|
|
||||||
delayedSpriteBatch.begin(spriteBatch, perspectiveCamera, pixelScaler.getScale());
|
|
||||||
billboardSpriteBatch.begin(decalBatch, perspectiveCamera);
|
billboardSpriteBatch.begin(decalBatch, perspectiveCamera);
|
||||||
modelBatch.begin(perspectiveCamera);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onPostRender() {
|
public void onPostRender() {
|
||||||
modelBatch.end();
|
|
||||||
billboardSpriteBatch.end();
|
billboardSpriteBatch.end();
|
||||||
delayedSpriteBatch.end();
|
|
||||||
debugGeometryRenderer.end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onUpdate(float delta) {
|
public void onUpdate(float delta) {
|
||||||
|
|
|
@ -29,10 +29,13 @@ public class DimScreenEffect extends ScreenEffect
|
||||||
renderColor.a = alpha;
|
renderColor.a = alpha;
|
||||||
Texture texture = renderContext.solidColorTextures.get(color);
|
Texture texture = renderContext.solidColorTextures.get(color);
|
||||||
|
|
||||||
renderContext.delayedSpriteBatch.draw(
|
renderContext.spriteBatch.begin();
|
||||||
|
renderContext.spriteBatch.setColor(renderColor);
|
||||||
|
renderContext.spriteBatch.draw(
|
||||||
texture,
|
texture,
|
||||||
0, 0,
|
0, 0,
|
||||||
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(),
|
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight()
|
||||||
renderColor);
|
);
|
||||||
|
renderContext.spriteBatch.end();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,11 +59,14 @@ public class FadeScreenEffect extends ScreenEffect
|
||||||
Texture texture = renderContext.solidColorTextures.get(Color.WHITE);
|
Texture texture = renderContext.solidColorTextures.get(Color.WHITE);
|
||||||
color.a = alpha;
|
color.a = alpha;
|
||||||
|
|
||||||
renderContext.delayedSpriteBatch.draw(
|
renderContext.spriteBatch.begin();
|
||||||
|
renderContext.spriteBatch.setColor(color);
|
||||||
|
renderContext.spriteBatch.draw(
|
||||||
texture,
|
texture,
|
||||||
0, 0,
|
0, 0,
|
||||||
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(),
|
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight()
|
||||||
color);
|
);
|
||||||
|
renderContext.spriteBatch.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -35,11 +35,14 @@ public class FlashScreenEffect extends ScreenEffect
|
||||||
Texture texture = renderContext.solidColorTextures.get(Color.WHITE);
|
Texture texture = renderContext.solidColorTextures.get(Color.WHITE);
|
||||||
color.a = alpha;
|
color.a = alpha;
|
||||||
|
|
||||||
renderContext.delayedSpriteBatch.draw(
|
renderContext.spriteBatch.begin();
|
||||||
|
renderContext.spriteBatch.setColor(color);
|
||||||
|
renderContext.spriteBatch.draw(
|
||||||
texture,
|
texture,
|
||||||
0, 0,
|
0, 0,
|
||||||
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight(),
|
renderContext.pixelScaler.getScaledWidth(), renderContext.pixelScaler.getScaledHeight()
|
||||||
color);
|
);
|
||||||
|
renderContext.spriteBatch.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue