diff options
author | Sven Gothel <[email protected]> | 2009-10-02 15:32:02 -0700 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2009-10-02 15:32:02 -0700 |
commit | 8fb68690f20eece763561f6f0038a007e934a1dc (patch) | |
tree | 96aeac10e4bb9215b06855295aeccd67626176bd /src/jogl/classes/com/sun/opengl/impl/x11/glx | |
parent | 52c3caf07ad07fcb029ea584d7e5f4c5031f84c2 (diff) |
Proper PBuffer drawable abstraction
Diffstat (limited to 'src/jogl/classes/com/sun/opengl/impl/x11/glx')
-rw-r--r-- | src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java | 40 |
1 files changed, 14 insertions, 26 deletions
diff --git a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java index 762ed5cac..456e04b77 100644 --- a/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/x11/glx/X11GLXDrawableFactory.java @@ -114,28 +114,25 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl implements Dyna return canCreateGLPbuffer; } - public GLPbuffer createGLPbuffer(final GLCapabilities capabilities, + public GLDrawableImpl createGLPbufferDrawable(final GLCapabilities capabilities, final GLCapabilitiesChooser chooser, final int initialWidth, - final int initialHeight, - final GLContext shareWith) { + final int initialHeight) { if (!canCreateGLPbuffer()) { throw new GLException("Pbuffer support not available with current graphics card"); } - final List returnList = new ArrayList(); - final GLDrawableFactory factory = this; - Runnable r = new Runnable() { - public void run() { - AbstractGraphicsScreen screen = X11GraphicsScreen.createDefault(); - X11PbufferGLXDrawable pbufferDrawable = new X11PbufferGLXDrawable(factory, screen, capabilities, chooser, - initialWidth, - initialHeight); - GLPbufferImpl pbuffer = new GLPbufferImpl(pbufferDrawable, shareWith); - returnList.add(pbuffer); - } - }; - maybeDoSingleThreadedWorkaround(r); - return (GLPbuffer) returnList.get(0); + AbstractGraphicsScreen screen = X11GraphicsScreen.createDefault(); + return new X11PbufferGLXDrawable(this, screen, capabilities, chooser, + initialWidth, initialHeight); + } + + public GLPbuffer createGLPbuffer(final GLCapabilities capabilities, + final GLCapabilitiesChooser chooser, + final int initialWidth, + final int initialHeight, + final GLContext shareWith) { + GLDrawableImpl drawable = createGLPbufferDrawable( capabilities, chooser, initialWidth, initialHeight); + return new GLPbufferImpl(drawable, shareWith); } public GLContext createExternalGLContext() { @@ -164,15 +161,6 @@ public class X11GLXDrawableFactory extends GLDrawableFactoryImpl implements Dyna return res; } - private void maybeDoSingleThreadedWorkaround(Runnable action) { - if (Threading.isSingleThreaded() && - !Threading.isOpenGLThread()) { - Threading.invokeOnOpenGLThread(action); - } else { - action.run(); - } - } - public boolean canCreateContextOnJava2DSurface() { return false; } |