aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2010-12-12 09:21:16 +0100
committerSven Gothel <[email protected]>2010-12-12 09:21:16 +0100
commite15344bfaf4df4ceb710b304b164bd03005dc132 (patch)
treecaae50392f0347a300ba54c21eadf0ed33416451 /src/jogl/classes/com/jogamp/opengl
parent8df12ca151dfc577c90b485d4ebfe491b88e55aa (diff)
GLJPanel/GLPbufferImpl: destroy pbuffer reentrance fix; disable device close (X11 error on nvidia); reenable GLJPanel test
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java4
-rw-r--r--src/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java18
2 files changed, 12 insertions, 10 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java b/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
index 45b04fac1..5dae257ed 100644
--- a/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
+++ b/src/jogl/classes/com/jogamp/opengl/impl/GLDrawableHelper.java
@@ -314,7 +314,7 @@ public class GLDrawableHelper {
Runnable initAction) {
if(null==context) {
if (DEBUG) {
- Exception e = new GLException(Thread.currentThread().getName()+"Info: GLDrawableHelper " + this + ".invokeGL(): NULL GLContext");
+ Exception e = new GLException(Thread.currentThread().getName()+" Info: GLDrawableHelper " + this + ".invokeGL(): NULL GLContext");
e.printStackTrace();
}
return;
@@ -323,7 +323,7 @@ public class GLDrawableHelper {
if(null==initAction) {
// disposal case
if(!context.isCreated()) {
- throw new GLException("Dispose case (no init action given): Native context must be created: "+context);
+ throw new GLException(Thread.currentThread().getName()+" GLDrawableHelper " + this + ".invokeGL(): Dispose case (no init action given): Native context is not created: "+context);
}
}
diff --git a/src/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java b/src/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java
index 558cda106..5119f5360 100644
--- a/src/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java
+++ b/src/jogl/classes/com/jogamp/opengl/impl/GLPbufferImpl.java
@@ -104,16 +104,18 @@ public class GLPbufferImpl implements GLPbuffer {
DisposeAction disposeAction = new DisposeAction();
public void destroy() {
- if (null != context) {
- try {
- drawableHelper.invokeGL(pbufferDrawable, context, disposeAction, null);
- } catch (GLException gle) {
- gle.printStackTrace();
+ if(pbufferDrawable.isRealized()) {
+ if (null != context && context.isCreated()) {
+ try {
+ drawableHelper.invokeGL(pbufferDrawable, context, disposeAction, null);
+ } catch (GLException gle) {
+ gle.printStackTrace();
+ }
+ context.destroy();
+ // drawableHelper.reset();
}
- drawableHelper.reset();
- context.destroy();
+ pbufferDrawable.destroy();
}
- pbufferDrawable.destroy();
}
public void setSize(int width, int height) {