aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java
diff options
context:
space:
mode:
authorGerard Ziemski <[email protected]>2003-11-19 18:47:55 +0000
committerGerard Ziemski <[email protected]>2003-11-19 18:47:55 +0000
commit0f343197b80999930287b8043c9197a685437116 (patch)
treea0689efc66f766056a894ae8c6a95dab2b920ed8 /src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java
parentbbe6acb715a9d6486d6bd257d78b3d6f6e240fad (diff)
implemented GLJPanel for Mac OS X
git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@74 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java')
-rw-r--r--src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java61
1 files changed, 25 insertions, 36 deletions
diff --git a/src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java b/src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java
index 431710a7c..1bbb32eda 100644
--- a/src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java
+++ b/src/net/java/games/jogl/impl/macosx/MacOSXOffscreenGLContext.java
@@ -43,48 +43,42 @@ import java.awt.image.BufferedImage;
import net.java.games.jogl.*;
import net.java.games.jogl.impl.*;
-public class MacOSXOffscreenGLContext extends MacOSXGLContext
-{
- // Width and height of the underlying bitmap
- private int width;
- private int height;
-
+public class MacOSXOffscreenGLContext extends MacOSXPbufferGLContext
+{
public MacOSXOffscreenGLContext(GLCapabilities capabilities,
GLCapabilitiesChooser chooser,
GLContext shareWith) {
- super(null, capabilities, chooser, shareWith);
- }
-
- protected GL createGL() {
- return new MacOSXGLImpl(this);
+ super(capabilities, -1, -1);
}
protected boolean isOffscreen() {
return true;
}
+ public boolean offscreenImageNeedsVerticalFlip() {
+ return true;
+ }
+
public int getOffscreenContextBufferedImageType() {
return BufferedImage.TYPE_INT_ARGB;
}
- public int getOffscreenContextReadBuffer() {
- return GL.GL_FRONT;
+ public int getOffscreenContextWidth() {
+ return initWidth;
}
-
- public boolean offscreenImageNeedsVerticalFlip() {
- // We can take care of this in the DIB creation (see below)
- return false;
+
+ public int getOffscreenContextHeight() {
+ return initWidth;
}
-
- public boolean canCreatePbufferContext() {
- // For now say no
- return false;
+
+ public int getOffscreenContextPixelDataType() {
+ return GL.GL_UNSIGNED_INT_8_8_8_8_REV;
}
-
- public synchronized GLContext createPbufferContext(GLCapabilities capabilities, int initialWidth, int initialHeight) {
- throw new GLException("Not supported");
+
+ public int getOffscreenContextReadBuffer() {
+ return GL.GL_BACK;
}
-
+
public void bindPbufferToTexture() {
throw new GLException("Should not call this");
}
@@ -94,13 +88,12 @@ public class MacOSXOffscreenGLContext extends MacOSXGLContext
}
protected synchronized boolean makeCurrent(Runnable initAction) throws GLException {
- if (pendingOffscreenResize) {
+ if (pendingOffscreenResize && (nsContext != 0)) {
if (pendingOffscreenWidth != width || pendingOffscreenHeight != height) {
- if (nsContext != 0) {
- destroy();
- }
- width = pendingOffscreenWidth;
- height = pendingOffscreenHeight;
+ destroyPBuffer();
+ initWidth = pendingOffscreenWidth;
+ initHeight = pendingOffscreenHeight;
+ createPbuffer(0, 0);
pendingOffscreenResize = false;
}
}
@@ -108,9 +101,5 @@ public class MacOSXOffscreenGLContext extends MacOSXGLContext
}
protected synchronized void swapBuffers() throws GLException {
- }
-
- private void destroy() {
- free();
- }
+ }
}