aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2005-02-14 20:52:25 +0000
committerKenneth Russel <[email protected]>2005-02-14 20:52:25 +0000
commitd5ff752fe9560d7d7e199baa5b05fc84c192c432 (patch)
tree36f3bd9dfd00d296aa5fd18fd29aa262c32c69c2
parent880c498e4b360fa2f51feb606e621badf902ab83 (diff)
Fixed performance issues with accelerated GLJPanel on ATI cards.
Setting of the GL_PACK_LSB_FIRST property confused the drivers even though it didn't apply to the frame buffer readback (it applies only for bitmap data, and we were reading bytes.) git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@226 232f8b59-042b-4e1e-8c03-345bb8c30851
-rw-r--r--src/net/java/games/jogl/GLJPanel.java27
1 files changed, 2 insertions, 25 deletions
diff --git a/src/net/java/games/jogl/GLJPanel.java b/src/net/java/games/jogl/GLJPanel.java
index df7ffc7de..95e1161e1 100644
--- a/src/net/java/games/jogl/GLJPanel.java
+++ b/src/net/java/games/jogl/GLJPanel.java
@@ -67,17 +67,6 @@ import net.java.games.jogl.impl.*;
them. */
public final class GLJPanel extends JPanel implements GLDrawable {
- private static boolean isMacOSX;
-
- static {
- AccessController.doPrivileged(new PrivilegedAction() {
- public Object run() {
- isMacOSX = System.getProperty("os.name").equals("Mac OS X");
- return null;
- }
- });
- }
-
private GLDrawableHelper drawableHelper = new GLDrawableHelper();
// Data used for either pbuffers or pixmap-based offscreen surfaces
@@ -112,7 +101,6 @@ public final class GLJPanel extends JPanel implements GLDrawable {
// For saving/restoring of OpenGL state during ReadPixels
private int[] swapbytes = new int[1];
- private int[] lsbfirst = new int[1];
private int[] rowlength = new int[1];
private int[] skiprows = new int[1];
private int[] skippixels = new int[1];
@@ -478,12 +466,8 @@ public final class GLJPanel extends JPanel implements GLDrawable {
awtFormat = BufferedImage.TYPE_INT_RGB;
}
- // Choose better pixel format on Mac OS X
- if (isMacOSX) {
- hwGLFormat = GL.GL_UNSIGNED_INT_8_8_8_8_REV;
- } else {
- hwGLFormat = GL.GL_UNSIGNED_BYTE;
- }
+ // This seems to be a good choice on all platforms
+ hwGLFormat = GL.GL_UNSIGNED_INT_8_8_8_8_REV;
} else {
awtFormat = offscreenContext.getOffscreenContextBufferedImageType();
}
@@ -521,18 +505,12 @@ public final class GLJPanel extends JPanel implements GLDrawable {
GL gl = getGL();
// Save current modes
gl.glGetIntegerv(GL.GL_PACK_SWAP_BYTES, swapbytes);
- gl.glGetIntegerv(GL.GL_PACK_LSB_FIRST, lsbfirst);
gl.glGetIntegerv(GL.GL_PACK_ROW_LENGTH, rowlength);
gl.glGetIntegerv(GL.GL_PACK_SKIP_ROWS, skiprows);
gl.glGetIntegerv(GL.GL_PACK_SKIP_PIXELS, skippixels);
gl.glGetIntegerv(GL.GL_PACK_ALIGNMENT, alignment);
- // Little endian machines (DEC Alpha, Intel X86, PPC (in LSB
- // mode)... for example) could benefit from setting
- // GL_PACK_LSB_FIRST to GL_TRUE instead of GL_FALSE, but this
- // would require changing the generated bitmaps too.
gl.glPixelStorei(GL.GL_PACK_SWAP_BYTES, GL.GL_FALSE);
- gl.glPixelStorei(GL.GL_PACK_LSB_FIRST, GL.GL_TRUE);
gl.glPixelStorei(GL.GL_PACK_ROW_LENGTH, offscreenImage.getWidth());
gl.glPixelStorei(GL.GL_PACK_SKIP_ROWS, 0);
gl.glPixelStorei(GL.GL_PACK_SKIP_PIXELS, 0);
@@ -548,7 +526,6 @@ public final class GLJPanel extends JPanel implements GLDrawable {
// Restore saved modes.
gl.glPixelStorei(GL.GL_PACK_SWAP_BYTES, swapbytes[0]);
- gl.glPixelStorei(GL.GL_PACK_LSB_FIRST, lsbfirst[0]);
gl.glPixelStorei(GL.GL_PACK_ROW_LENGTH, rowlength[0]);
gl.glPixelStorei(GL.GL_PACK_SKIP_ROWS, skiprows[0]);
gl.glPixelStorei(GL.GL_PACK_SKIP_PIXELS, skippixels[0]);