From 8fb68690f20eece763561f6f0038a007e934a1dc Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Fri, 2 Oct 2009 15:32:02 -0700 Subject: Proper PBuffer drawable abstraction --- .../impl/macosx/cgl/MacOSXCGLDrawableFactory.java | 34 +++++++--------------- 1 file changed, 11 insertions(+), 23 deletions(-) (limited to 'src/jogl/classes/com/sun/opengl/impl/macosx') diff --git a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawableFactory.java b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawableFactory.java index 024b69629..2aefa7b5b 100644 --- a/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawableFactory.java +++ b/src/jogl/classes/com/sun/opengl/impl/macosx/cgl/MacOSXCGLDrawableFactory.java @@ -81,25 +81,22 @@ public class MacOSXCGLDrawableFactory extends GLDrawableFactoryImpl implements D return true; } + public GLDrawableImpl createGLPbufferDrawable(GLCapabilities capabilities, + final GLCapabilitiesChooser chooser, + final int initialWidth, + final int initialHeight) { + AbstractGraphicsScreen screen = DefaultGraphicsScreen.createDefault(); + return new MacOSXPbufferCGLDrawable(this, screen, capabilities, chooser, + initialWidth, initialHeight); + } + public GLPbuffer createGLPbuffer(final GLCapabilities capabilities, final GLCapabilitiesChooser chooser, final int initialWidth, final int initialHeight, final GLContext shareWith) { - final List returnList = new ArrayList(); - final GLDrawableFactory factory = this; - Runnable r = new Runnable() { - public void run() { - AbstractGraphicsScreen aScreen = DefaultGraphicsScreen.createDefault(); - MacOSXPbufferCGLDrawable pbufferDrawable = new MacOSXPbufferCGLDrawable(factory, aScreen, capabilities, chooser, - initialWidth, - initialHeight); - GLPbufferImpl pbuffer = new GLPbufferImpl(pbufferDrawable, shareWith); - returnList.add(pbuffer); - } - }; - maybeDoSingleThreadedWorkaround(r); - return (GLPbuffer) returnList.get(0); + GLDrawableImpl drawable = createGLPbufferDrawable( capabilities, chooser, initialWidth, initialHeight); + return new GLPbufferImpl(drawable, shareWith); } public GLContext createExternalGLContext() { @@ -124,15 +121,6 @@ public class MacOSXCGLDrawableFactory extends GLDrawableFactoryImpl implements D return CGL.getProcAddress(glFuncName); } - private void maybeDoSingleThreadedWorkaround(Runnable action) { - if (Threading.isSingleThreaded() && - !Threading.isOpenGLThread()) { - Threading.invokeOnOpenGLThread(action); - } else { - action.run(); - } - } - public boolean canCreateContextOnJava2DSurface() { return false; } -- cgit v1.2.3