aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/graph
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-03-17 20:42:44 +0100
committerSven Gothel <[email protected]>2014-03-17 20:42:44 +0100
commit5ff1300ddc9daadb885614462a769f6407487e59 (patch)
treec2b3bb07a4f5aaf4b1d67e07123f1f3a796443d7 /src/jogl/classes/jogamp/graph
parentf572da5aef6d0cb0731495254578a87e5b668a13 (diff)
Graph: Fix NPE in case of double destroy call ..
Diffstat (limited to 'src/jogl/classes/jogamp/graph')
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java23
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java21
2 files changed, 32 insertions, 12 deletions
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java
index a760dcd33..6f9ef107b 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PVBAAES2.java
@@ -88,12 +88,22 @@ public class VBORegion2PVBAAES2 extends GLRegion {
@Override
protected final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) {
- indicesTxtBuffer.seal(gl, false);
- indicesTxtBuffer.rewind();
- verticeTxtAttr.seal(gl, false);
- verticeTxtAttr.rewind();
- texCoordTxtAttr.seal(gl, false);
- texCoordTxtAttr.rewind();
+ if(DEBUG_INSTANCE) {
+ System.err.println("VBORegion2PES2 Clear: " + this);
+ // Thread.dumpStack();
+ }
+ if( null != indicesTxtBuffer ) {
+ indicesTxtBuffer.seal(gl, false);
+ indicesTxtBuffer.rewind();
+ }
+ if( null != verticeTxtAttr ) {
+ verticeTxtAttr.seal(gl, false);
+ verticeTxtAttr.rewind();
+ }
+ if( null != texCoordTxtAttr ) {
+ texCoordTxtAttr.seal(gl, false);
+ texCoordTxtAttr.rewind();
+ }
}
@Override
@@ -387,6 +397,7 @@ public class VBORegion2PVBAAES2 extends GLRegion {
protected void destroyImpl(final GL2ES2 gl, final RegionRenderer renderer) {
if(DEBUG_INSTANCE) {
System.err.println("VBORegion2PES2 Destroy: " + this);
+ // Thread.dumpStack();
}
final ShaderState st = renderer.getShaderState();
if(null != fbo) {
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java
index e45e623ba..baeb8dc46 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java
@@ -57,12 +57,21 @@ public class VBORegionSPES2 extends GLRegion {
@Override
protected final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) {
- indicesBuffer.seal(gl, false);
- indicesBuffer.rewind();
- verticeAttr.seal(gl, false);
- verticeAttr.rewind();
- texCoordAttr.seal(gl, false);
- texCoordAttr.rewind();
+ if(DEBUG_INSTANCE) {
+ System.err.println("VBORegionSPES2 Clear: " + this);
+ }
+ if( null != indicesBuffer ) {
+ indicesBuffer.seal(gl, false);
+ indicesBuffer.rewind();
+ }
+ if( null != verticeAttr ) {
+ verticeAttr.seal(gl, false);
+ verticeAttr.rewind();
+ }
+ if( null != texCoordAttr ) {
+ texCoordAttr.seal(gl, false);
+ texCoordAttr.rewind();
+ }
}
@Override