From d1fceedd9dd5841f1333ce059ee4b2456fdae232 Mon Sep 17 00:00:00 2001 From: codeanticode Date: Wed, 20 Jun 2012 20:47:27 +0000 Subject: [PATCH] now grouping glClear calls --- .../opengl/src/processing/opengl/FrameBuffer.java | 4 +--- .../libraries/opengl/src/processing/opengl/PGL.java | 13 +++++-------- .../src/processing/opengl/PGraphicsOpenGL.java | 6 +----- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/java/libraries/opengl/src/processing/opengl/FrameBuffer.java b/java/libraries/opengl/src/processing/opengl/FrameBuffer.java index 75e95fd4b..b836b32e9 100644 --- a/java/libraries/opengl/src/processing/opengl/FrameBuffer.java +++ b/java/libraries/opengl/src/processing/opengl/FrameBuffer.java @@ -167,11 +167,9 @@ public class FrameBuffer implements PConstants { pg.pushFramebuffer(); pg.setFramebuffer(this); pgl.glClearDepth(1); - pgl.glClear(PGL.GL_DEPTH_BUFFER_BIT); pgl.glClearStencil(0); - pgl.glClear(PGL.GL_STENCIL_BUFFER_BIT); pgl.glClearColor(0, 0, 0, 0); - pgl.glClear(PGL.GL_COLOR_BUFFER_BIT); + pgl.glClear(PGL.GL_DEPTH_BUFFER_BIT | PGL.GL_STENCIL_BUFFER_BIT | PGL.GL_COLOR_BUFFER_BIT); pg.popFramebuffer(); } diff --git a/java/libraries/opengl/src/processing/opengl/PGL.java b/java/libraries/opengl/src/processing/opengl/PGL.java index 16922f577..1d85d9dc8 100644 --- a/java/libraries/opengl/src/processing/opengl/PGL.java +++ b/java/libraries/opengl/src/processing/opengl/PGL.java @@ -709,12 +709,9 @@ public class PGL { gl.glBindFramebuffer(GL.GL_FRAMEBUFFER, 0); // And finally write the color texture to the screen. - glClearDepth(1); - glClear(GL_DEPTH_BUFFER_BIT); - glClearStencil(0); - glClear(GL_STENCIL_BUFFER_BIT); - glClearColor(0, 0, 0, 0); - glClear(GL_COLOR_BUFFER_BIT); + gl.glClearDepth(1); + gl.glClearColor(0, 0, 0, 0); + gl.glClear(GL.GL_DEPTH_BUFFER_BIT | GL.GL_STENCIL_BUFFER_BIT); drawTexture(GL.GL_TEXTURE_2D, colorTex[0], fboWidth, fboHeight, 0, 0, pg.width, pg.height, 0, 0, pg.width, pg.height); PGraphicsOpenGL.screenFramebuffer.glFboID = colorFBO[0]; @@ -1290,8 +1287,8 @@ public class PGL { public void glClearStencil(int s) { gl.glClearStencil(s); } - - + + public void glClearColor(float r, float g, float b, float a) { gl.glClearColor(r, g, b, a); } diff --git a/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java b/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java index 5bd4e614d..fd3e4fbf4 100644 --- a/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java +++ b/java/libraries/opengl/src/processing/opengl/PGraphicsOpenGL.java @@ -1564,9 +1564,8 @@ public class PGraphicsOpenGL extends PGraphics { // Clear depth and stencil buffers. pgl.glDepthMask(true); pgl.glClearDepth(1); - pgl.glClear(PGL.GL_DEPTH_BUFFER_BIT); pgl.glClearStencil(0); - pgl.glClear(PGL.GL_STENCIL_BUFFER_BIT); + pgl.glClear(PGL.GL_DEPTH_BUFFER_BIT | PGL.GL_STENCIL_BUFFER_BIT); if (primarySurface) { pgl.beginOnscreenDraw(clearColorBuffer); @@ -4692,9 +4691,6 @@ public class PGraphicsOpenGL extends PGraphics { } else { pgl.glDepthMask(true); } - - pgl.glClearStencil(0); - pgl.glClear(PGL.GL_STENCIL_BUFFER_BIT); pgl.glClearColor(backgroundR, backgroundG, backgroundB, backgroundA); pgl.glClear(PGL.GL_COLOR_BUFFER_BIT);