From 63cd46210926474b5d868a58c3a260062d07a461 Mon Sep 17 00:00:00 2001 From: Gustl22 Date: Thu, 23 Aug 2018 22:46:40 +0200 Subject: [PATCH] GLState: State DISABLED = -1 (readability). --- .../org/oscim/test/GdxSpriteBatchTest.java | 2 +- .../test/gdx/poi3d/GdxModelRenderer.java | 6 +++--- .../oscim/test/gdx/poi3d/GdxRenderer3D.java | 6 +++--- .../oscim/test/gdx/poi3d/GdxRenderer3D2.java | 6 +++--- .../oscim/test/renderer/CustomRenderer.java | 2 +- .../test/renderer/HexagonRenderTest.java | 2 +- .../org/oscim/renderer/ExtrusionRenderer.java | 2 +- vtm/src/org/oscim/renderer/GLState.java | 20 ++++++++++++++----- .../org/oscim/renderer/LocationRenderer.java | 2 +- .../renderer/LocationTextureRenderer.java | 2 +- vtm/src/org/oscim/renderer/MapRenderer.java | 10 +++++----- .../oscim/renderer/bucket/CircleBucket.java | 2 +- .../oscim/renderer/bucket/HairLineBucket.java | 2 +- .../org/oscim/renderer/bucket/LineBucket.java | 2 +- .../oscim/renderer/bucket/LineTexBucket.java | 2 +- .../org/oscim/renderer/bucket/MeshBucket.java | 2 +- .../oscim/renderer/bucket/PolygonBucket.java | 2 +- 17 files changed, 41 insertions(+), 31 deletions(-) diff --git a/vtm-playground/src/org/oscim/test/GdxSpriteBatchTest.java b/vtm-playground/src/org/oscim/test/GdxSpriteBatchTest.java index 42e20c3a..3fc749e9 100644 --- a/vtm-playground/src/org/oscim/test/GdxSpriteBatchTest.java +++ b/vtm-playground/src/org/oscim/test/GdxSpriteBatchTest.java @@ -86,7 +86,7 @@ public class GdxSpriteBatchTest extends GdxMapApp { Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT | (Gdx.graphics.getBufferFormat().coverageSampling ? GL20.GL_COVERAGE_BUFFER_BIT_NV : 0)); - GLState.enableVertexArrays(-1, -1); + GLState.enableVertexArrays(GLState.DISABLED, GLState.DISABLED); gl.viewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); gl.frontFace(GL.CW); diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java index b0116684..7a6c7637 100644 --- a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxModelRenderer.java @@ -104,9 +104,9 @@ public class GdxModelRenderer extends LayerRenderer { // set state that is expected after modelBatch.end(); // modelBatch keeps track of its own state - GLState.enableVertexArrays(-1, -1); - GLState.bindTex2D(-1); - GLState.useProgram(-1); + GLState.enableVertexArrays(GLState.DISABLED, GLState.DISABLED); + GLState.bindTex2D(GLState.DISABLED); + GLState.useProgram(GLState.DISABLED); GLState.test(false, false); GLState.blend(false); diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java index ec5751d1..967e8af1 100644 --- a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D.java @@ -105,9 +105,9 @@ public class GdxRenderer3D extends LayerRenderer { // set state that is expected after modelBatch.end(); // modelBatch keeps track of its own state - GLState.enableVertexArrays(-1, -1); - GLState.bindTex2D(-1); - GLState.useProgram(-1); + GLState.enableVertexArrays(GLState.DISABLED, GLState.DISABLED); + GLState.bindTex2D(GLState.DISABLED); + GLState.useProgram(GLState.DISABLED); GLState.test(false, false); GLState.blend(false); diff --git a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java index ddf8b756..2e77acb0 100644 --- a/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java +++ b/vtm-playground/src/org/oscim/test/gdx/poi3d/GdxRenderer3D2.java @@ -95,9 +95,9 @@ public class GdxRenderer3D2 extends LayerRenderer { // set state that is expected after modelBatch.end(); // modelBatch keeps track of its own state - GLState.enableVertexArrays(-1, -1); - GLState.bindTex2D(-1); - GLState.useProgram(-1); + GLState.enableVertexArrays(GLState.DISABLED, GLState.DISABLED); + GLState.bindTex2D(GLState.DISABLED); + GLState.useProgram(GLState.DISABLED); GLState.test(false, false); GLState.blend(false); diff --git a/vtm-playground/src/org/oscim/test/renderer/CustomRenderer.java b/vtm-playground/src/org/oscim/test/renderer/CustomRenderer.java index c301342f..bedc3105 100644 --- a/vtm-playground/src/org/oscim/test/renderer/CustomRenderer.java +++ b/vtm-playground/src/org/oscim/test/renderer/CustomRenderer.java @@ -105,7 +105,7 @@ public class CustomRenderer extends LayerRenderer { //mVertices.position(2); //GL.vertexAttribPointer(hVertexPosition, 2, GL20.FLOAT, false, 4, mVertices); - GLState.enableVertexArrays(hVertexPosition, -1); + GLState.enableVertexArrays(hVertexPosition, GLState.DISABLED); /* apply view and projection matrices */ // set mvp (tmp) matrix relative to mMapPosition diff --git a/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java b/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java index ad9dd73a..0b939b03 100644 --- a/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java +++ b/vtm-playground/src/org/oscim/test/renderer/HexagonRenderTest.java @@ -119,7 +119,7 @@ public class HexagonRenderTest extends GdxMapApp { // set VBO vertex layout gl.vertexAttribPointer(hVertexPosition, 2, GL.FLOAT, false, 0, 0); - GLState.enableVertexArrays(hVertexPosition, -1); + GLState.enableVertexArrays(hVertexPosition, GLState.DISABLED); /* apply view and projection matrices */ // set mvp (tmp) matrix relative to mMapPosition diff --git a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java index f198aeba..6f735d08 100644 --- a/vtm/src/org/oscim/renderer/ExtrusionRenderer.java +++ b/vtm/src/org/oscim/renderer/ExtrusionRenderer.java @@ -112,7 +112,7 @@ public abstract class ExtrusionRenderer extends LayerRenderer { Shader s = mShader; s.useProgram(); - GLState.enableVertexArrays(s.aPos, -1); + GLState.enableVertexArrays(s.aPos, GLState.DISABLED); /* only use face-culling when it's unlikely * that one'moves through the building' */ diff --git a/vtm/src/org/oscim/renderer/GLState.java b/vtm/src/org/oscim/renderer/GLState.java index f2b30670..fba9d135 100644 --- a/vtm/src/org/oscim/renderer/GLState.java +++ b/vtm/src/org/oscim/renderer/GLState.java @@ -1,6 +1,7 @@ /* * Copyright 2013 Hannes Janetzek * Copyright 2016 devemux86 + * Copyright 2018 Gustl22 * * This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * @@ -27,6 +28,8 @@ import static org.oscim.backend.GLAdapter.gl; public class GLState { static final Logger log = LoggerFactory.getLogger(GLState.class); + public final static int DISABLED = -1; + private final static boolean[] vertexArray = {false, false}; private static boolean blend = false; private static boolean depth = false; @@ -44,10 +47,10 @@ public class GLState { blend = false; depth = false; stencil = false; - shader = -1; - currentTexId = -1; - glVertexBuffer = -1; - glIndexBuffer = -1; + shader = DISABLED; + currentTexId = DISABLED; + glVertexBuffer = DISABLED; + glIndexBuffer = DISABLED; clearColor = null; gl.disable(GL.STENCIL_TEST); @@ -57,7 +60,7 @@ public class GLState { public static boolean useProgram(int shaderProgram) { if (shaderProgram < 0) { - shader = -1; + shader = DISABLED; } else if (shaderProgram != shader) { gl.useProgram(shaderProgram); shader = shaderProgram; @@ -111,6 +114,13 @@ public class GLState { } } + /** + * Enable or disable vertex arrays. + * Valid values are + * -1: {@link #DISABLED}, + * 0: enable first, + * 1: enable second. + */ public static void enableVertexArrays(int va1, int va2) { if (va1 > 1 || va2 > 1) log.debug("FIXME: enableVertexArrays..."); diff --git a/vtm/src/org/oscim/renderer/LocationRenderer.java b/vtm/src/org/oscim/renderer/LocationRenderer.java index 1d32bd45..1141be75 100644 --- a/vtm/src/org/oscim/renderer/LocationRenderer.java +++ b/vtm/src/org/oscim/renderer/LocationRenderer.java @@ -225,7 +225,7 @@ public class LocationRenderer extends LayerRenderer { GLState.blend(true); GLState.test(false, false); - GLState.enableVertexArrays(hVertexPosition, -1); + GLState.enableVertexArrays(hVertexPosition, GLState.DISABLED); MapRenderer.bindQuadVertexVBO(hVertexPosition/*, true*/); float radius = CIRCLE_SIZE * mScale; diff --git a/vtm/src/org/oscim/renderer/LocationTextureRenderer.java b/vtm/src/org/oscim/renderer/LocationTextureRenderer.java index 3f4c740b..87bef4d9 100644 --- a/vtm/src/org/oscim/renderer/LocationTextureRenderer.java +++ b/vtm/src/org/oscim/renderer/LocationTextureRenderer.java @@ -297,7 +297,7 @@ public class LocationTextureRenderer extends BucketRenderer { GLState.blend(true); GLState.test(false, false); - GLState.enableVertexArrays(hVertexPosition, -1); + GLState.enableVertexArrays(hVertexPosition, GLState.DISABLED); MapRenderer.bindQuadVertexVBO(hVertexPosition/*, true*/); float radius = 10; diff --git a/vtm/src/org/oscim/renderer/MapRenderer.java b/vtm/src/org/oscim/renderer/MapRenderer.java index b6c0dfbc..63a345ed 100644 --- a/vtm/src/org/oscim/renderer/MapRenderer.java +++ b/vtm/src/org/oscim/renderer/MapRenderer.java @@ -117,10 +117,10 @@ public class MapRenderer { GLState.test(false, false); GLState.blend(false); - GLState.bindTex2D(-1); - GLState.useProgram(-1); - GLState.bindElementBuffer(-1); - GLState.bindVertexBuffer(-1); + GLState.bindTex2D(GLState.DISABLED); + GLState.useProgram(GLState.DISABLED); + GLState.bindElementBuffer(GLState.DISABLED); + GLState.bindVertexBuffer(GLState.DISABLED); mViewport.setFrom(mMap); @@ -269,7 +269,7 @@ public class MapRenderer { if (location >= 0) { GLState.bindVertexBuffer(mQuadVerticesID); - GLState.enableVertexArrays(location, -1); + GLState.enableVertexArrays(location, GLState.DISABLED); gl.vertexAttribPointer(location, 2, GL.FLOAT, false, 0, 0); } } diff --git a/vtm/src/org/oscim/renderer/bucket/CircleBucket.java b/vtm/src/org/oscim/renderer/bucket/CircleBucket.java index dc74e962..46292baa 100644 --- a/vtm/src/org/oscim/renderer/bucket/CircleBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/CircleBucket.java @@ -116,7 +116,7 @@ public class CircleBucket extends RenderBucket { public void set(GLViewport v) { useProgram(); - GLState.enableVertexArrays(aPos, -1); + GLState.enableVertexArrays(aPos, GLState.DISABLED); v.mvp.setAsUniform(uMVP); } diff --git a/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java b/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java index cfc7d04b..7484ab92 100644 --- a/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/HairLineBucket.java @@ -118,7 +118,7 @@ public class HairLineBucket extends RenderBucket { public void set(GLViewport v) { useProgram(); - GLState.enableVertexArrays(aPos, -1); + GLState.enableVertexArrays(aPos, GLState.DISABLED); v.mvp.setAsUniform(uMVP); diff --git a/vtm/src/org/oscim/renderer/bucket/LineBucket.java b/vtm/src/org/oscim/renderer/bucket/LineBucket.java index a276dc96..e8304fdd 100644 --- a/vtm/src/org/oscim/renderer/bucket/LineBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/LineBucket.java @@ -523,7 +523,7 @@ public class LineBucket extends RenderBucket { @Override public boolean useProgram() { if (super.useProgram()) { - GLState.enableVertexArrays(aPos, -1); + GLState.enableVertexArrays(aPos, GLState.DISABLED); return true; } return false; diff --git a/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java b/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java index b7bd665e..bcb7ca29 100644 --- a/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/LineTexBucket.java @@ -353,7 +353,7 @@ public final class LineTexBucket extends LineBucket { GLState.blend(true); shader.useProgram(); - GLState.enableVertexArrays(-1, -1); + GLState.enableVertexArrays(GLState.DISABLED, GLState.DISABLED); int aLen0 = shader.aLen0; int aLen1 = shader.aLen1; diff --git a/vtm/src/org/oscim/renderer/bucket/MeshBucket.java b/vtm/src/org/oscim/renderer/bucket/MeshBucket.java index b3e6a437..9f14dda9 100644 --- a/vtm/src/org/oscim/renderer/bucket/MeshBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/MeshBucket.java @@ -174,7 +174,7 @@ public class MeshBucket extends RenderBucket { Shader s = shader; s.useProgram(); - GLState.enableVertexArrays(s.aPos, -1); + GLState.enableVertexArrays(s.aPos, GLState.DISABLED); v.mvp.setAsUniform(s.uMVP); diff --git a/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java b/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java index 1c3324fd..47703894 100644 --- a/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java +++ b/vtm/src/org/oscim/renderer/bucket/PolygonBucket.java @@ -273,7 +273,7 @@ public final class PolygonBucket extends RenderBucket { private static Shader setShader(Shader shader, GLMatrix mvp, boolean first) { if (shader.useProgram() || first) { - GLState.enableVertexArrays(shader.aPos, -1); + GLState.enableVertexArrays(shader.aPos, GLState.DISABLED); gl.vertexAttribPointer(shader.aPos, 2, GL.SHORT, false, 0, 0);