diff --git a/src/java/org/lwjgl/opengl/MacOSXAWTGLCanvasPeerInfo.java b/src/java/org/lwjgl/opengl/MacOSXAWTGLCanvasPeerInfo.java index 24456df0..42496b95 100644 --- a/src/java/org/lwjgl/opengl/MacOSXAWTGLCanvasPeerInfo.java +++ b/src/java/org/lwjgl/opengl/MacOSXAWTGLCanvasPeerInfo.java @@ -42,8 +42,8 @@ import org.lwjgl.LWJGLException; final class MacOSXAWTGLCanvasPeerInfo extends MacOSXCanvasPeerInfo { private final AWTGLCanvas canvas; - public MacOSXAWTGLCanvasPeerInfo(AWTGLCanvas canvas, PixelFormat pixel_format) throws LWJGLException { - super(pixel_format); + public MacOSXAWTGLCanvasPeerInfo(AWTGLCanvas canvas, PixelFormat pixel_format, boolean support_pbuffer) throws LWJGLException { + super(pixel_format, support_pbuffer); this.canvas = canvas; } diff --git a/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java b/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java index c4ccbadc..4915d671 100644 --- a/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java +++ b/src/java/org/lwjgl/opengl/MacOSXCanvasImplementation.java @@ -44,7 +44,11 @@ import org.lwjgl.LWJGLException; */ final class MacOSXCanvasImplementation implements AWTCanvasImplementation { public PeerInfo createPeerInfo(AWTGLCanvas canvas, PixelFormat pixel_format) throws LWJGLException { - return new MacOSXAWTGLCanvasPeerInfo(canvas, pixel_format); + try { + return new MacOSXAWTGLCanvasPeerInfo(canvas, pixel_format, true); + } catch (LWJGLException e) { + return new MacOSXAWTGLCanvasPeerInfo(canvas, pixel_format, false); + } } /** diff --git a/src/java/org/lwjgl/opengl/MacOSXCanvasPeerInfo.java b/src/java/org/lwjgl/opengl/MacOSXCanvasPeerInfo.java index c6aff986..afd92e30 100644 --- a/src/java/org/lwjgl/opengl/MacOSXCanvasPeerInfo.java +++ b/src/java/org/lwjgl/opengl/MacOSXCanvasPeerInfo.java @@ -45,8 +45,8 @@ import org.lwjgl.LWJGLException; abstract class MacOSXCanvasPeerInfo extends MacOSXPeerInfo { private final AWTSurfaceLock awt_surface = new AWTSurfaceLock(); - public MacOSXCanvasPeerInfo(PixelFormat pixel_format) throws LWJGLException { - super(pixel_format, true, true, false, true); + public MacOSXCanvasPeerInfo(PixelFormat pixel_format, boolean support_pbuffer) throws LWJGLException { + super(pixel_format, true, true, support_pbuffer, true); } protected void initHandle(Canvas canvas) throws LWJGLException { diff --git a/src/java/org/lwjgl/opengl/MacOSXDisplay.java b/src/java/org/lwjgl/opengl/MacOSXDisplay.java index 50910113..7ecc2a66 100644 --- a/src/java/org/lwjgl/opengl/MacOSXDisplay.java +++ b/src/java/org/lwjgl/opengl/MacOSXDisplay.java @@ -215,7 +215,11 @@ final class MacOSXDisplay implements DisplayImplementation { } public PeerInfo createPeerInfo(PixelFormat pixel_format) throws LWJGLException { - return new MacOSXDisplayPeerInfo(pixel_format); + try { + return new MacOSXDisplayPeerInfo(pixel_format, true); + } catch (LWJGLException e) { + return new MacOSXDisplayPeerInfo(pixel_format, false); + } } private final static IntBuffer current_viewport = BufferUtils.createIntBuffer(16); diff --git a/src/java/org/lwjgl/opengl/MacOSXDisplayPeerInfo.java b/src/java/org/lwjgl/opengl/MacOSXDisplayPeerInfo.java index c30c14c8..30c1130b 100644 --- a/src/java/org/lwjgl/opengl/MacOSXDisplayPeerInfo.java +++ b/src/java/org/lwjgl/opengl/MacOSXDisplayPeerInfo.java @@ -44,8 +44,8 @@ import org.lwjgl.LWJGLException; final class MacOSXDisplayPeerInfo extends MacOSXCanvasPeerInfo { private boolean locked = false; - public MacOSXDisplayPeerInfo(PixelFormat pixel_format) throws LWJGLException { - super(pixel_format); + public MacOSXDisplayPeerInfo(PixelFormat pixel_format, boolean support_pbuffer) throws LWJGLException { + super(pixel_format, support_pbuffer); } protected void doLockAndInitHandle() throws LWJGLException {