diff options
author | Sven Gothel <[email protected]> | 2014-09-20 02:51:44 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2014-09-20 02:51:44 +0200 |
commit | 711757aa4e087d97c3103489c47fbd7d76bcac3d (patch) | |
tree | 89c0b2b8cfc49aa1f3aef93ea23e0643d9c1808f /src/jogl/classes/javax/media/opengl | |
parent | a7ff8b898780762b763c0b4544728067375955b6 (diff) |
FBObject: Simplify API (init/reset); Only issue automatic resetSamplingSink(..) if required; Fix resetSamplingSink(..), isBound(), ..
- Simplify API (init/reset)
- use new unique methods for init and reset:
- void init(final GL gl, final int newWidth, final int newHeight, final int newSamples)
- does not issue resetSamplingSink(..)
- boolean reset(final GL gl, final int newWidth, final int newHeight, final int newSamples)
- always issues resetSamplingSink(..)
- deprecated dual-use (init/reset):
- boolean reset(final GL gl, final int newWidth, final int newHeight)
- boolean reset(final GL gl, int newWidth, int newHeight, int newSamples, final boolean resetSamplingSink)
- reset(..) no more creates a dummy 'samplingSink' instance if sampling > 0,
left up to resetSamplingSink(..)
- Track 'modified' state of FBObject,
if size, format or any attachment has been changed since last
- use(..)
- syncSamplingSink(..)
- resetSamplingSink(..)
- Only issue resetSamplingSink(..) from syncSamplingSink(..)/use(..)
if 'modified == true'
+++
- Fix setSamplingSink(..), i.e. samplingSink state handling:
- Validated whether given samplingSink is initialized,
throws Exception if not.
- Fix resetSamplingSink(..)
- resets the bound state, i.e. leaves it untouched
- also unbinds the samplingSink
- sampleSinkDepthStencilMismatch() also returns true if
this.depth/stencil == null, but samplingSink is not.
- Newly created colorbuffer/-texture matches
exiting colorbuffer's internal-format, if exists.
- Using simplified resetSizeImpl(..) for size mismatch
- Simplified samplingColorSink init check
- Fix isBound()
was: 'bound = bound && fbName != gl.getBoundFramebuffer(GL.GL_FRAMEBUFFER)'
fix: 'bound = bound && fbName == gl.getBoundFramebuffer(GL.GL_FRAMEBUFFER)'
- Fix detachRenderbuffer(..) validates whether detachment was successful,
similar to detachColorbuffer(..)
Diffstat (limited to 'src/jogl/classes/javax/media/opengl')
-rw-r--r-- | src/jogl/classes/javax/media/opengl/awt/GLJPanel.java | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java b/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java index ac091e4de..132367102 100644 --- a/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java +++ b/src/jogl/classes/javax/media/opengl/awt/GLJPanel.java @@ -1692,7 +1692,7 @@ public class GLJPanel extends JPanel implements AWTGLAutoDrawable, WindowClosing fboDrawable.setTextureUnit( GLJPanel.this.requestedTextureUnit ); try { fboFlipped = new FBObject(); - fboFlipped.reset(gl, panelWidth, panelHeight, 0, false); + fboFlipped.init(gl, panelWidth, panelHeight, 0); fboFlipped.attachColorbuffer(gl, 0, chosenCaps.getAlphaBits()>0); // fboFlipped.attachRenderbuffer(gl, Attachment.Type.DEPTH, 24); gl.glClear(GL.GL_COLOR_BUFFER_BIT); // Bug 1020 (see above), cannot do in FBObject due to unknown 'first bind' state. @@ -2038,7 +2038,7 @@ public class GLJPanel extends JPanel implements AWTGLAutoDrawable, WindowClosing if( GLContext.CONTEXT_NOT_CURRENT < offscreenContext.makeCurrent() ) { try { final GL gl = offscreenContext.getGL(); - fboFlipped.reset(gl, panelWidth, panelHeight, 0, false); + fboFlipped.reset(gl, panelWidth, panelHeight, 0); glslTextureRaster.reshape(gl.getGL2ES2(), 0, 0, panelWidth, panelHeight); } finally { offscreenContext.release(); |