diff options
author | phil <[email protected]> | 2016-11-03 11:50:38 +1300 |
---|---|---|
committer | phil <[email protected]> | 2016-11-03 11:50:38 +1300 |
commit | 5d92694382677b0d412cdccd393c0dc7cea33d10 (patch) | |
tree | eacbb2768c92e05a0265ca7de2f519985b3150fe | |
parent | e1716ea13fba687a50fb7dd10c78ae8f04190963 (diff) |
GL2ES2Pipeline ignoreVertexColors failed to update after clear
-rw-r--r-- | src/main/java/org/jogamp/java3d/Jogl2es2Context.java | 6 | ||||
-rw-r--r-- | src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java | 38 |
2 files changed, 23 insertions, 21 deletions
diff --git a/src/main/java/org/jogamp/java3d/Jogl2es2Context.java b/src/main/java/org/jogamp/java3d/Jogl2es2Context.java index 5c5493e..6086271 100644 --- a/src/main/java/org/jogamp/java3d/Jogl2es2Context.java +++ b/src/main/java/org/jogamp/java3d/Jogl2es2Context.java @@ -191,7 +191,7 @@ public class Jogl2es2Context extends JoglContext public boolean alphaTestEnabled = false;
public int alphaTestFunction = RenderingAttributes.ALWAYS;
public float alphaTestValue = 0;
- public boolean ignoreVertexColors;
+ public int ignoreVertexColors; //-1 is not set 1,0 bool
}
public RenderingData renderingData = new RenderingData();
@@ -328,7 +328,7 @@ public class Jogl2es2Context extends JoglContext public float polygonOffsetFactor;
public float polygonOffset;
- public boolean ignoreVertexColors;
+ public int ignoreVertexColors; //-1 indicates not set yet, always set
public Vector4f glFrontMaterialambient= new Vector4f();
public Vector4f glFrontMaterialdiffuse = new Vector4f();
public Vector3f glFrontMaterialemission = new Vector3f();
@@ -383,7 +383,7 @@ public class Jogl2es2Context extends JoglContext cullFace = -1;
polygonOffsetFactor = -1;
polygonOffset = -1;
- ignoreVertexColors = false;
+ ignoreVertexColors = -1;
glFrontMaterialambient.set(-999f, -999f, -999f, -999f);
glFrontMaterialdiffuse.set(-999f, -999f, -999f, -999f);
glFrontMaterialemission.set(-999f, -999f, -999f);
diff --git a/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java b/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java index c925a86..51ecf9f 100644 --- a/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java +++ b/src/main/java/org/jogamp/java3d/Jogl2es2Pipeline.java @@ -2768,9 +2768,6 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline //boolean vattrDefined = ((vdefined & GeometryArrayRetained.VATTR_FLOAT) != 0); //boolean textureDefined = ((vdefined & GeometryArrayRetained.TEXCOORD_FLOAT) != 0); - // vertex colors MUST be ignored if no glColors set - boolean ignoreVertexColors = (!floatColorsDefined && !byteColorsDefined) || ctx.renderingData.ignoreVertexColors; - if (OUTPUT_PER_FRAME_STATS) ctx.perFrameStats.setFFPAttributes++; @@ -2938,15 +2935,19 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline if (locs.ignoreVertexColors != -1) { - if (!MINIMISE_NATIVE_CALLS_FFP - || (shaderProgramId != ctx.prevShaderProgram || ctx.gl_state.ignoreVertexColors != ignoreVertexColors)) + // vertex colors MUST be ignored if no glColors set + boolean ignoreVertexColors = (!floatColorsDefined && !byteColorsDefined) || ctx.renderingData.ignoreVertexColors == 1; + + //note ctx.gl_state.ignoreVertexColors can be -1 for not set + if (!MINIMISE_NATIVE_CALLS_FFP || (shaderProgramId != ctx.prevShaderProgram + || ctx.gl_state.ignoreVertexColors != ctx.renderingData.ignoreVertexColors)) { gl.glUniform1i(locs.ignoreVertexColors, ignoreVertexColors ? 1 : 0);// note local variable used if (DO_OUTPUT_ERRORS) outputErrors(ctx); if (MINIMISE_NATIVE_CALLS_FFP) - ctx.gl_state.ignoreVertexColors = ignoreVertexColors; + ctx.gl_state.ignoreVertexColors = ctx.renderingData.ignoreVertexColors; } } @@ -5060,7 +5061,7 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline joglesctx.renderingData.alphaTestValue = alphaTestValue; } - joglesctx.renderingData.ignoreVertexColors = ignoreVertexColors; + joglesctx.renderingData.ignoreVertexColors = ignoreVertexColors ? 1 : 0; if (rasterOpEnable) { @@ -5151,7 +5152,7 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline joglesctx.renderingData.alphaTestEnabled = false; joglesctx.renderingData.alphaTestFunction = RenderingAttributes.ALWAYS; joglesctx.renderingData.alphaTestValue = 0; - joglesctx.renderingData.ignoreVertexColors = false; + joglesctx.renderingData.ignoreVertexColors = 0; if (joglesctx.gl_state.glEnableGL_STENCIL_TEST == true) { @@ -6930,11 +6931,11 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline if (major < 1 || (major == 1 && minor < 2)) { // In some double createNewContext uses or getPerferredConfiguration called before a Frame is constructed - // the disabling of D3D can cause this issue - // see Bug 1201 - Crash with option "sun.java2d.d3d=false" - // https://jogamp.org/bugzilla/show_bug.cgi?id=1201 - - // In the case of Java > 1.8u51 Win10 and an Intel HD2000/3000 driver, the driver will not load because + // the disabling of D3D can cause this issue + // see Bug 1201 - Crash with option "sun.java2d.d3d=false" + // https://jogamp.org/bugzilla/show_bug.cgi?id=1201 + + // In the case of Java > 1.8u51 Win10 and an Intel HD2000/3000 driver, the driver will not load because // the java.exe manifest has a "supportedOS Id" that the drivers don't like (the drivers are too old) // see Bug 1278 - Windows 10 returns software Profile // https://jogamp.org/bugzilla/show_bug.cgi?id=1278 @@ -6946,20 +6947,21 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline { System.err.println("Java3D - GDI Generic Driver use detected."); System.err.println("This may be caused by any of the following issues."); - - if (System.getProperty("sun.java2d.noddraw", "false").equals("true") || System.getProperty("sun.java2d.d3d", "true").equals("false")) + + if (System.getProperty("sun.java2d.noddraw", "false").equals("true") + || System.getProperty("sun.java2d.d3d", "true").equals("false")) { System.err.println("Issue: Use of System.setProperty(\"sun.java2d.noddraw\", \"true\");"); System.err.println("or System.setProperty(\"sun.java2d.d3d\", \"false\");"); System.err.println("If either of these are being used please try either reversing or removing them,"); System.err.println("or if they are required else where try adding System.setProperty(\"sun.awt.nopixfmt\", \"true\");"); } - + if (Platform.getOSName().equalsIgnoreCase("Windows 10") && //win10 (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version19) >= 0) || // 1.9 or 1.8 > 51 (Platform.JAVA_VERSION_NUMBER.compareTo(Platform.Version18) >= 0 && Platform.JAVA_VERSION_UPDATE > 51) && // Platform.getJavaVMName().toLowerCase().startsWith("java hotspot(tm)"))// e.g. Java HotSpot(TM) 64-Bit Server VM ; OpenJDK would give OpenJDK 64-Bit Server VM - { + { System.err.println("Issue: The use of an Intel HD2000/3000 driver in combination with Windows 10 and"); System.err.println("a JRE greater than 1.8 update 51. Please downgrade the JRE in use to JRE 1.8u51 or lower."); System.err.println("For more information please see https://jogamp.org/bugzilla/show_bug.cgi?id=1278."); @@ -6967,7 +6969,7 @@ class Jogl2es2Pipeline extends Jogl2es2DEPPipeline System.err.println("If this software has been supplied to you and you are unable to modify it's configuration"); System.err.println("please contact the suppler of this software with this entire message."); } - + throw new IllegalRenderingStateException( "Java 3D ERROR : OpenGL 1.2 or better is required (GL_VERSION=" + major + "." + minor + ")"); } |