diff options
Diffstat (limited to 'src/jogl/classes/jogamp/opengl/x11/glx')
4 files changed, 11 insertions, 17 deletions
diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11DummyGLXDrawable.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11DummyGLXDrawable.java index 65f65a2ec..8914e2db9 100644 --- a/src/jogl/classes/jogamp/opengl/x11/glx/X11DummyGLXDrawable.java +++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11DummyGLXDrawable.java @@ -86,13 +86,17 @@ public class X11DummyGLXDrawable extends X11OnscreenGLXDrawable { public int getHeight() { return 1; } - + + @Override - protected void destroyImpl() { - if(0!=dummyWindow) { - destroyHandle(); - X11GLXGraphicsConfiguration config = (X11GLXGraphicsConfiguration)getNativeSurface().getGraphicsConfiguration(); - X11Lib.DestroyDummyWindow(config.getScreen().getDevice().getHandle(), dummyWindow); + protected void setRealizedImpl() { + super.setRealizedImpl(); + if(!realized) { + if(0!=dummyWindow) { + destroyHandle(); + X11GLXGraphicsConfiguration config = (X11GLXGraphicsConfiguration)getNativeSurface().getGraphicsConfiguration(); + X11Lib.DestroyDummyWindow(config.getScreen().getDevice().getHandle(), dummyWindow); + } } } } diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java index 77af0d698..9a563bdb8 100644 --- a/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java +++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11GLXDrawableFactory.java @@ -304,7 +304,7 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl { if (null != sr.drawable) { // may cause JVM SIGSEGV: - sr.drawable.destroy(); + sr.drawable.setRealized(false); sr.drawable = null; } diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java index 29003ef52..cdf81ebd3 100644 --- a/src/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java +++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11PbufferGLXDrawable.java @@ -59,11 +59,6 @@ public class X11PbufferGLXDrawable extends X11GLXDrawable { } @Override - protected void destroyImpl() { - setRealized(false); - } - - @Override protected void setRealizedImpl() { if(realized) { createPbuffer(); diff --git a/src/jogl/classes/jogamp/opengl/x11/glx/X11PixmapGLXDrawable.java b/src/jogl/classes/jogamp/opengl/x11/glx/X11PixmapGLXDrawable.java index 18aa780b6..1e7b89828 100644 --- a/src/jogl/classes/jogamp/opengl/x11/glx/X11PixmapGLXDrawable.java +++ b/src/jogl/classes/jogamp/opengl/x11/glx/X11PixmapGLXDrawable.java @@ -59,11 +59,6 @@ public class X11PixmapGLXDrawable extends X11GLXDrawable { } @Override - protected void destroyImpl() { - setRealized(false); - } - - @Override protected void setRealizedImpl() { if(realized) { createPixmap(); |