From 05c4bb80cd8ac8b8e20d0567033128e14dd347e4 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Wed, 14 Dec 2011 16:33:00 +0000 Subject: [PATCH] Added accurate_2d hint, flush calls. --- core/src/processing/core/PConstants.java | 29 ++++++++++--------- .../processing/opengl/PGraphicsOpenGL.java | 21 ++++++++++---- 2 files changed, 32 insertions(+), 18 deletions(-) diff --git a/core/src/processing/core/PConstants.java b/core/src/processing/core/PConstants.java index 43c4f9fcd..8c01ddffe 100644 --- a/core/src/processing/core/PConstants.java +++ b/core/src/processing/core/PConstants.java @@ -554,25 +554,28 @@ public interface PConstants { // static final int ENABLE_OPENGL_2X_SMOOTH = -1; // static final int ENABLE_OPENGL_4X_SMOOTH = 2; - static final int ENABLE_NATIVE_FONTS = 3; - static final int DISABLE_NATIVE_FONTS = -3; + static final int DISABLE_NATIVE_FONTS = 1; + static final int ENABLE_NATIVE_FONTS = -1; - static final int DISABLE_DEPTH_TEST = 4; - static final int ENABLE_DEPTH_TEST = -4; + static final int DISABLE_DEPTH_TEST = 2; + static final int ENABLE_DEPTH_TEST = -2; - static final int ENABLE_DEPTH_SORT = 5; - static final int DISABLE_DEPTH_SORT = -5; + static final int ENABLE_DEPTH_SORT = 3; + static final int DISABLE_DEPTH_SORT = -3; - static final int DISABLE_OPENGL_ERROR_REPORT = 6; - static final int ENABLE_OPENGL_ERROR_REPORT = -6; + static final int DISABLE_OPENGL_ERROR_REPORT = 4; + static final int ENABLE_OPENGL_ERROR_REPORT = -4; - static final int ENABLE_ACCURATE_TEXTURES = 7; - static final int DISABLE_ACCURATE_TEXTURES = -7; + static final int ENABLE_ACCURATE_TEXTURES = 5; + static final int DISABLE_ACCURATE_TEXTURES = -5; - static final int DISABLE_DEPTH_MASK = 8; - static final int ENABLE_DEPTH_MASK = -8; + static final int DISABLE_DEPTH_MASK = 6; + static final int ENABLE_DEPTH_MASK = -6; - static final int HINT_COUNT = 10; + static final int DISABLE_ACCURATE_2D = 7; + static final int ENABLE_ACCURATE_2D = -7; + + static final int HINT_COUNT = 8; // Rendering pipeline modes diff --git a/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java b/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java index bd3779b8e..bdc99d9ad 100644 --- a/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java +++ b/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java @@ -1768,18 +1768,31 @@ public class PGraphicsOpenGL extends PGraphics { super.hint(which); if (which == DISABLE_DEPTH_TEST) { + flush(); gl.glDisable(GL.GL_DEPTH_TEST); gl.glClearColor(0, 0, 0, 0); gl.glClear(GL.GL_DEPTH_BUFFER_BIT); } else if (which == ENABLE_DEPTH_TEST) { + flush(); gl.glEnable(GL.GL_DEPTH_TEST); } else if (which == DISABLE_DEPTH_MASK) { + flush(); gl.glDepthMask(false); } else if (which == ENABLE_DEPTH_MASK) { - gl.glDepthMask(true); + flush(); + gl.glDepthMask(true); + + } else if (which == DISABLE_ACCURATE_2D) { + flush(); + setFlushMode(FLUSH_WHEN_FULL); + + } else if (which == ENABLE_ACCURATE_2D) { + flush(); + setFlushMode(FLUSH_AFTER_SHAPE); + } } @@ -2197,22 +2210,20 @@ public class PGraphicsOpenGL extends PGraphics { } } - if (hasPoints) { renderPoints(); } if (hasLines) { - renderLines(); + renderLines(); } - if (flushMode == FLUSH_WHEN_FULL) { gl2f.glPopMatrix(); } } - tess.reset(); + tess.reset(); }