diff options
Diffstat (limited to 'src/classes/com/sun/opengl/impl')
14 files changed, 114 insertions, 157 deletions
diff --git a/src/classes/com/sun/opengl/impl/NativeLibLoader.java b/src/classes/com/sun/opengl/impl/NativeLibLoader.java index 6d4815cd7..1a3d5c277 100644 --- a/src/classes/com/sun/opengl/impl/NativeLibLoader.java +++ b/src/classes/com/sun/opengl/impl/NativeLibLoader.java @@ -44,7 +44,6 @@ import java.security.*; public class NativeLibLoader { private static volatile boolean doLoading = true; - private static volatile boolean doneLoading = false; public static void disableLoading() { doLoading = false; @@ -54,38 +53,55 @@ public class NativeLibLoader { doLoading = true; } - public static synchronized void load() { - if (doLoading && !doneLoading) { - AccessController.doPrivileged(new PrivilegedAction() { - public Object run() { - boolean isOSX = System.getProperty("os.name").equals("Mac OS X"); - if (!isOSX) { - try { - // On X11 systems, toolkit must be loaded before - // trying to resolve JAWT in order for libmawt.so to - // be found properly - Toolkit.getDefaultToolkit(); - System.loadLibrary("jawt"); - } catch (UnsatisfiedLinkError e) { - // Accessibility technologies load JAWT themselves; safe to continue - // as long as JAWT is loaded by any loader - if (e.getMessage().indexOf("already loaded") == -1) { - throw e; - } + private static volatile boolean loadedCore = false; + private static volatile boolean loadedAWTImpl = false; + + public static void loadCore() { + if (doLoading && !loadedCore) { + synchronized (NativeLibLoader.class) { + if (!loadedCore) { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + System.loadLibrary("jogl"); + return null; } - } - System.loadLibrary("jogl"); + }); + loadedCore = true; + } + } + } + } - // Workaround for 4845371. - // Make sure the first reference to the JNI GetDirectBufferAddress is done - // from a privileged context so the VM's internal class lookups will succeed. - JAWT jawt = JAWT.create(); - JAWTFactory.JAWT_GetAWT(jawt); + public static void loadAWTImpl() { + if (doLoading && !loadedAWTImpl) { + synchronized (NativeLibLoader.class) { + if (!loadedAWTImpl) { + AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + boolean isOSX = System.getProperty("os.name").equals("Mac OS X"); + if (!isOSX) { + // Must pre-load JAWT on all non-Mac platforms to + // ensure references from jogl_awt shared object + // will succeed since JAWT shared object isn't in + // default library path + try { + System.loadLibrary("jawt"); + } catch (UnsatisfiedLinkError e) { + // Accessibility technologies load JAWT themselves; safe to continue + // as long as JAWT is loaded by any loader + if (e.getMessage().indexOf("already loaded") == -1) { + throw e; + } + } + } + System.loadLibrary("jogl_awt"); - return null; - } - }); - doneLoading = true; + return null; + } + }); + loadedAWTImpl = true; + } + } } } } diff --git a/src/classes/com/sun/opengl/impl/macosx/MacOSXGLDrawableFactory.java b/src/classes/com/sun/opengl/impl/macosx/MacOSXGLDrawableFactory.java index 62b7f3b93..9b351798c 100644 --- a/src/classes/com/sun/opengl/impl/macosx/MacOSXGLDrawableFactory.java +++ b/src/classes/com/sun/opengl/impl/macosx/MacOSXGLDrawableFactory.java @@ -51,7 +51,7 @@ import com.sun.opengl.impl.*; public class MacOSXGLDrawableFactory extends GLDrawableFactoryImpl { static { - NativeLibLoader.load(); + NativeLibLoader.loadCore(); } public GraphicsConfiguration chooseGraphicsConfiguration(GLCapabilities capabilities, diff --git a/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLDrawable.java b/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLDrawable.java index 4d0f16623..c9e993237 100644 --- a/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/macosx/MacOSXOnscreenGLDrawable.java @@ -52,7 +52,6 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { public static final int LOCK_SURFACE_CHANGED = 2; public static final int LOCK_SUCCESS = 3; - private static JAWT jawt; protected Component component; private List/*<WeakReference<GLContext>>*/ createdContexts = @@ -134,7 +133,7 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { if (nsView != 0) { throw new GLException("Surface already locked"); } - ds = getJAWT().GetDrawingSurface(component); + ds = JAWT.getJAWT().GetDrawingSurface(component); if (ds == null) { // Widget not yet realized return LOCK_SURFACE_NOT_READY; @@ -165,7 +164,7 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { if (dsi == null) { // Widget not yet realized ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; return LOCK_SURFACE_NOT_READY; } @@ -175,7 +174,7 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { // Widget not yet realized ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; return LOCK_SURFACE_NOT_READY; @@ -185,7 +184,7 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { // Widget not yet realized ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; macosxdsi = null; @@ -200,29 +199,10 @@ public class MacOSXOnscreenGLDrawable extends MacOSXGLDrawable { } ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; macosxdsi = null; nsView = 0; } - - //---------------------------------------------------------------------- - // Internals only below this point - // - - private JAWT getJAWT() - { - if (jawt == null) - { - JAWT j = JAWT.create(); - j.version(JAWTFactory.JAWT_VERSION_1_4); - if (!JAWTFactory.JAWT_GetAWT(j)) - { - throw new RuntimeException("Unable to initialize JAWT"); - } - jawt = j; - } - return jawt; - } } diff --git a/src/classes/com/sun/opengl/impl/windows/WindowsGLDrawableFactory.java b/src/classes/com/sun/opengl/impl/windows/WindowsGLDrawableFactory.java index ae48be999..ac56d9469 100644 --- a/src/classes/com/sun/opengl/impl/windows/WindowsGLDrawableFactory.java +++ b/src/classes/com/sun/opengl/impl/windows/WindowsGLDrawableFactory.java @@ -61,7 +61,7 @@ public class WindowsGLDrawableFactory extends GLDrawableFactoryImpl { private long hglu32; static { - NativeLibLoader.load(); + NativeLibLoader.loadCore(); } public GraphicsConfiguration chooseGraphicsConfiguration(GLCapabilities capabilities, diff --git a/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLDrawable.java b/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLDrawable.java index fa3766a80..c475e1d0a 100644 --- a/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/windows/WindowsOnscreenGLDrawable.java @@ -48,7 +48,6 @@ public class WindowsOnscreenGLDrawable extends WindowsGLDrawable { public static final int LOCK_SURFACE_NOT_READY = 1; public static final int LOCK_SURFACE_CHANGED = 2; public static final int LOCK_SUCCESS = 3; - private static JAWT jawt; // Variables for lockSurface/unlockSurface private JAWT_DrawingSurface ds; @@ -123,7 +122,7 @@ public class WindowsOnscreenGLDrawable extends WindowsGLDrawable { if (hdc != 0) { throw new GLException("Surface already locked"); } - ds = getJAWT().GetDrawingSurface(component); + ds = JAWT.getJAWT().GetDrawingSurface(component); if (ds == null) { // Widget not yet realized return LOCK_SURFACE_NOT_READY; @@ -145,7 +144,7 @@ public class WindowsOnscreenGLDrawable extends WindowsGLDrawable { if (dsi == null) { // Widget not yet realized ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; return LOCK_SURFACE_NOT_READY; } @@ -155,7 +154,7 @@ public class WindowsOnscreenGLDrawable extends WindowsGLDrawable { // Widget not yet realized ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; win32dsi = null; @@ -173,26 +172,10 @@ public class WindowsOnscreenGLDrawable extends WindowsGLDrawable { } ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; win32dsi = null; hdc = 0; } - - //---------------------------------------------------------------------- - // Internals only below this point - // - - private JAWT getJAWT() { - if (jawt == null) { - JAWT j = JAWT.create(); - j.version(JAWTFactory.JAWT_VERSION_1_4); - if (!JAWTFactory.JAWT_GetAWT(j)) { - throw new RuntimeException("Unable to initialize JAWT"); - } - jawt = j; - } - return jawt; - } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11ExternalGLContext.java b/src/classes/com/sun/opengl/impl/x11/X11ExternalGLContext.java index 4d329ba24..411f7c89f 100755 --- a/src/classes/com/sun/opengl/impl/x11/X11ExternalGLContext.java +++ b/src/classes/com/sun/opengl/impl/x11/X11ExternalGLContext.java @@ -48,11 +48,11 @@ public class X11ExternalGLContext extends X11GLContext { public X11ExternalGLContext() { super(null, null); - lockAWT(); + lockToolkit(); try { context = GLX.glXGetCurrentContext(); } finally { - unlockAWT(); + unlockToolkit(); } GLContextShareSet.contextCreated(this); resetGLFunctionAvailability(); diff --git a/src/classes/com/sun/opengl/impl/x11/X11ExternalGLDrawable.java b/src/classes/com/sun/opengl/impl/x11/X11ExternalGLDrawable.java index 371930013..96e1d0034 100755 --- a/src/classes/com/sun/opengl/impl/x11/X11ExternalGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/x11/X11ExternalGLDrawable.java @@ -50,7 +50,7 @@ public class X11ExternalGLDrawable extends X11GLDrawable { public X11ExternalGLDrawable() { super(null, null, null); - lockAWT(); + lockToolkit(); try { display = GLX.glXGetCurrentDisplay(); drawable = GLX.glXGetCurrentDrawable(); @@ -72,7 +72,7 @@ public class X11ExternalGLDrawable extends X11GLDrawable { GLX.glXQueryContext(display, context, GLX.GLX_SCREEN, val, 0); screen = val[0]; } finally { - unlockAWT(); + unlockToolkit(); } } @@ -113,7 +113,7 @@ public class X11ExternalGLDrawable extends X11GLDrawable { // Note that we have to completely override makeCurrentImpl // because the underlying makeCurrent call differs from the norm - lockAWT(); + lockToolkit(); try { boolean created = false; if (context == 0) { @@ -144,18 +144,18 @@ public class X11ExternalGLDrawable extends X11GLDrawable { } return CONTEXT_CURRENT; } finally { - unlockAWT(); + unlockToolkit(); } } protected void releaseImpl() throws GLException { - lockAWT(); + lockToolkit(); try { if (!GLX.glXMakeContextCurrent(drawable.getDisplay(), 0, 0, 0)) { throw new GLException("Error freeing OpenGL context"); } } finally { - unlockAWT(); + unlockToolkit(); } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11GLContext.java b/src/classes/com/sun/opengl/impl/x11/X11GLContext.java index ed9736f22..f8d35edd4 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11GLContext.java +++ b/src/classes/com/sun/opengl/impl/x11/X11GLContext.java @@ -164,7 +164,7 @@ public abstract class X11GLContext extends GLContextImpl { } protected void destroyImpl() throws GLException { - lockAWT(); + lockToolkit(); if (context != 0) { GLX.glXDestroyContext(mostRecentDisplay, context); if (DEBUG) { @@ -174,7 +174,7 @@ public abstract class X11GLContext extends GLContextImpl { mostRecentDisplay = 0; GLContextShareSet.contextDestroyed(this); } - unlockAWT(); + unlockToolkit(); } public boolean isCreated() { @@ -208,7 +208,7 @@ public abstract class X11GLContext extends GLContextImpl { glXQueryExtensionsStringInitialized = true; } if (glXQueryExtensionsStringAvailable) { - lockAWT(); + lockToolkit(); try { String ret = GLX.glXQueryExtensionsString(drawable.getDisplay(), GLX.DefaultScreen(drawable.getDisplay())); if (DEBUG) { @@ -216,7 +216,7 @@ public abstract class X11GLContext extends GLContextImpl { } return ret; } finally { - unlockAWT(); + unlockToolkit(); } } else { return ""; @@ -291,11 +291,11 @@ public abstract class X11GLContext extends GLContextImpl { // These synchronization primitives prevent the AWT from making // requests from the X server asynchronously to this code. - protected void lockAWT() { - X11GLDrawableFactory.lockAWT(); + protected void lockToolkit() { + X11GLDrawableFactory.lockToolkit(); } - protected void unlockAWT() { - X11GLDrawableFactory.unlockAWT(); + protected void unlockToolkit() { + X11GLDrawableFactory.unlockToolkit(); } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11GLDrawable.java b/src/classes/com/sun/opengl/impl/x11/X11GLDrawable.java index 343931965..bfa467b10 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11GLDrawable.java +++ b/src/classes/com/sun/opengl/impl/x11/X11GLDrawable.java @@ -103,9 +103,9 @@ public abstract class X11GLDrawable extends GLDrawableImpl { XVisualInfo template = XVisualInfo.create(); // FIXME: probably not 64-bit clean template.visualid((int) visualID); - lockAWT(); + lockToolkit(); XVisualInfo[] infos = GLX.XGetVisualInfo(display, GLX.VisualIDMask, template, count, 0); - unlockAWT(); + unlockToolkit(); if (infos == null || infos.length == 0) { throw new GLException("Error while getting XVisualInfo for visual ID " + visualID); } @@ -126,7 +126,7 @@ public abstract class X11GLDrawable extends GLDrawableImpl { template.screen(screen); XVisualInfo[] infos = null; GLCapabilities[] caps = null; - lockAWT(); + lockToolkit(); try { infos = GLX.XGetVisualInfo(display, GLX.VisualScreenMask, template, count, 0); if (infos == null) { @@ -137,7 +137,7 @@ public abstract class X11GLDrawable extends GLDrawableImpl { caps[i] = X11GLDrawableFactory.xvi2GLCapabilities(display, infos[i]); } } finally { - unlockAWT(); + unlockToolkit(); } int chosen = chooser.chooseCapabilities(capabilities, caps, -1); if (chosen < 0 || chosen >= caps.length) { @@ -162,11 +162,11 @@ public abstract class X11GLDrawable extends GLDrawableImpl { // These synchronization primitives prevent the AWT from making // requests from the X server asynchronously to this code. - protected void lockAWT() { - X11GLDrawableFactory.lockAWT(); + protected void lockToolkit() { + X11GLDrawableFactory.lockToolkit(); } - protected void unlockAWT() { - X11GLDrawableFactory.unlockAWT(); + protected void unlockToolkit() { + X11GLDrawableFactory.unlockToolkit(); } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11GLDrawableFactory.java b/src/classes/com/sun/opengl/impl/x11/X11GLDrawableFactory.java index 38d63f04d..90f5b9fe5 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11GLDrawableFactory.java +++ b/src/classes/com/sun/opengl/impl/x11/X11GLDrawableFactory.java @@ -56,7 +56,7 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { private static boolean isLinuxAMD64; static { - NativeLibLoader.load(); + NativeLibLoader.loadCore(); AccessController.doPrivileged(new PrivilegedAction() { public Object run() { @@ -100,7 +100,7 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { XVisualInfo[] infos = null; GLCapabilities[] caps = null; int recommendedIndex = -1; - lockAWT(); + lockToolkit(); try { long display = getDisplayConnection(); XVisualInfo recommendedVis = GLX.glXChooseVisual(display, screen, attribs, 0); @@ -120,7 +120,7 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { } } } finally { - unlockAWT(); + unlockToolkit(); } int chosen = chooser.chooseCapabilities(capabilities, caps, recommendedIndex); if (chosen < 0 || chosen >= caps.length) { @@ -180,7 +180,7 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { Runnable r = new Runnable() { public void run() { long display = getDisplayConnection(); - lockAWT(); + lockToolkit(); try { int[] major = new int[1]; int[] minor = new int[1]; @@ -207,7 +207,7 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { pbufferSupportInitialized = true; } finally { - unlockAWT(); + unlockToolkit(); } } }; @@ -343,48 +343,34 @@ public class X11GLDrawableFactory extends GLDrawableFactoryImpl { return res; } - // JAWT access - private static JAWT jawt; - public static JAWT getJAWT() { - if (jawt == null) { - JAWT j = JAWT.create(); - j.version(JAWTFactory.JAWT_VERSION_1_4); - if (!JAWTFactory.JAWT_GetAWT(j)) { - throw new RuntimeException("Unable to initialize JAWT"); - } - jawt = j; - } - return jawt; - } - - public static void lockAWT() { + public static void lockToolkit() { if (!Java2D.isOGLPipelineActive() || !Java2D.isQueueFlusherThread()) { - getJAWT().Lock(); + JAWT.getJAWT().Lock(); } } - public static void unlockAWT() { + public static void unlockToolkit() { if (!Java2D.isOGLPipelineActive() || !Java2D.isQueueFlusherThread()) { - getJAWT().Unlock(); + JAWT.getJAWT().Unlock(); } } - public void lockAWTForJava2D() { - lockAWT(); + public void lockToolkitForJava2D() { + lockToolkit(); } - public void unlockAWTForJava2D() { - unlockAWT(); + public void unlockToolkitForJava2D() { + unlockToolkit(); } // Display connection for use by visual selection algorithm and by all offscreen surfaces private static long staticDisplay; public static long getDisplayConnection() { if (staticDisplay == 0) { - lockAWT(); + lockToolkit(); try { staticDisplay = GLX.XOpenDisplay(null); } finally { - unlockAWT(); + unlockToolkit(); } if (staticDisplay == 0) { throw new GLException("Unable to open default display, needed for visual selection and offscreen surface handling"); diff --git a/src/classes/com/sun/opengl/impl/x11/X11OffscreenGLDrawable.java b/src/classes/com/sun/opengl/impl/x11/X11OffscreenGLDrawable.java index 2d7dedd7f..5370860c6 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11OffscreenGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/x11/X11OffscreenGLDrawable.java @@ -80,7 +80,7 @@ public class X11OffscreenGLDrawable extends X11GLDrawable { XVisualInfo vis = chooseVisual(false); int bitsPerPixel = vis.depth(); - lockAWT(); + lockToolkit(); try { int screen = GLX.DefaultScreen(display); pixmap = GLX.XCreatePixmap(display, (int) GLX.RootWindow(display, screen), width, height, bitsPerPixel); @@ -100,7 +100,7 @@ public class X11OffscreenGLDrawable extends X11GLDrawable { ", display " + toHexString(display)); } } finally { - unlockAWT(); + unlockToolkit(); } } @@ -113,7 +113,7 @@ public class X11OffscreenGLDrawable extends X11GLDrawable { } // Must destroy pixmap and GLXPixmap - lockAWT(); + lockToolkit(); if (DEBUG) { long cur = GLX.glXGetCurrentContext(); @@ -130,7 +130,7 @@ public class X11OffscreenGLDrawable extends X11GLDrawable { GLX.glXDestroyGLXPixmap(display, drawable); GLX.XFreePixmap(display, pixmap); - unlockAWT(); + unlockToolkit(); drawable = 0; pixmap = 0; display = 0; diff --git a/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLDrawable.java b/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLDrawable.java index 49000fc14..810de42c5 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/x11/X11OnscreenGLDrawable.java @@ -91,7 +91,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { } public void swapBuffers() throws GLException { - lockAWT(); + lockToolkit(); try { boolean didLock = false; @@ -109,7 +109,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { unlockSurface(); } } finally { - unlockAWT(); + unlockToolkit(); } } @@ -120,7 +120,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { if (drawable != 0) { throw new GLException("Surface already locked"); } - ds = getJAWT().GetDrawingSurface(component); + ds = JAWT.getJAWT().GetDrawingSurface(component); if (ds == null) { // Widget not yet realized return LOCK_SURFACE_NOT_READY; @@ -142,7 +142,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { if (dsi == null) { // Widget not yet realized ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; return LOCK_SURFACE_NOT_READY; } @@ -154,7 +154,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { // Widget not yet realized ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; x11dsi = null; @@ -172,7 +172,7 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { } ds.FreeDrawingSurfaceInfo(dsi); ds.Unlock(); - getJAWT().FreeDrawingSurface(ds); + JAWT.getJAWT().FreeDrawingSurface(ds); ds = null; dsi = null; x11dsi = null; @@ -180,12 +180,4 @@ public class X11OnscreenGLDrawable extends X11GLDrawable { drawable = 0; visualID = 0; } - - //---------------------------------------------------------------------- - // Internals only below this point - // - - private JAWT getJAWT() { - return X11GLDrawableFactory.getJAWT(); - } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11PbufferGLContext.java b/src/classes/com/sun/opengl/impl/x11/X11PbufferGLContext.java index 0cb945de7..3b0d51f13 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11PbufferGLContext.java +++ b/src/classes/com/sun/opengl/impl/x11/X11PbufferGLContext.java @@ -72,7 +72,7 @@ public class X11PbufferGLContext extends X11GLContext { // Note that we have to completely override makeCurrentImpl // because the underlying makeCurrent call differs for pbuffers - lockAWT(); + lockToolkit(); try { boolean created = false; if (context == 0) { @@ -103,18 +103,18 @@ public class X11PbufferGLContext extends X11GLContext { } return CONTEXT_CURRENT; } finally { - unlockAWT(); + unlockToolkit(); } } protected void releaseImpl() throws GLException { - lockAWT(); + lockToolkit(); try { if (!GLX.glXMakeContextCurrent(drawable.getDisplay(), 0, 0, 0)) { throw new GLException("Error freeing OpenGL context"); } } finally { - unlockAWT(); + unlockToolkit(); } } diff --git a/src/classes/com/sun/opengl/impl/x11/X11PbufferGLDrawable.java b/src/classes/com/sun/opengl/impl/x11/X11PbufferGLDrawable.java index 2a1248405..85df39267 100644 --- a/src/classes/com/sun/opengl/impl/x11/X11PbufferGLDrawable.java +++ b/src/classes/com/sun/opengl/impl/x11/X11PbufferGLDrawable.java @@ -78,11 +78,11 @@ public class X11PbufferGLDrawable extends X11GLDrawable { } public void destroy() { - lockAWT(); + lockToolkit(); if (drawable != 0) { GLX.glXDestroyPbuffer(display, drawable); } - unlockAWT(); + unlockToolkit(); display = 0; } @@ -100,7 +100,7 @@ public class X11PbufferGLDrawable extends X11GLDrawable { } public void createPbuffer(long display) { - lockAWT(); + lockToolkit(); try { if (display == 0) { throw new GLException("Null display"); @@ -241,7 +241,7 @@ public class X11PbufferGLDrawable extends X11GLDrawable { System.err.println("Created pbuffer " + width + " x " + height); } } finally { - unlockAWT(); + unlockToolkit(); } } |