aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/opengl
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-05-21 08:53:54 +0200
committerSven Gothel <[email protected]>2014-05-21 08:53:54 +0200
commitf9a00b91dcd146c72a50237b62270f33bd0da98e (patch)
treef4387da868608cea5066ce3a8cb9039a16b529de /src/jogl/classes/com/jogamp/opengl
parent0ffba122ea5c4b8cc247234ca9f48ccfcce833cd (diff)
Bug 742 HiDPI: [Core API Change] Distinguish window-units and pixel-units; Add HiDPI for AWT GLCanvas w/ OSX CALayer
Core API Change: To support HiDPI thoroughly in JOGL (NativeWindow, JOGL, NEWT) we need to separate window- and pixel units. NativeWindow and NativeSurface now have distinguished access methods for window units and pixel units. NativeWindow: Using window units - getWindowWidth() * NEW Method * - getWindowHeight() * NEW Method * - getX(), getY(), ... NativeSurface: Using pixel units - getWidth() -> getSurfaceWidth() * RENAMED * - getHeight() -> getSurfaceHeight() * RENAMED * GLDrawable: Using pixel units - getWidth() -> getSurfaceWidth() * RENAMED, aligned w/ NativeSurface * - getHeight() -> getSurfaceHeight() * RENAMED, aligned w/ NativeSurface * Above changes also removes API collision w/ other windowing TK, e.g. AWT's getWidth()/getHeight() in GLCanvas and the same method names in GLDrawable before this change. +++ Now preliminary 'working': - AWT GLCanvas - AWT GLJPanel Tested manually on OSX w/ and w/o HiDPI Retina: java com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2AWT -manual -noanim -time 1000000 java com.jogamp.opengl.test.junit.jogl.demos.es2.awt.TestGearsES2GLJPanelAWT -manual -noanim -time 1000000 +++ TODO: - NEWT - Change Window.setSize(..) to use pixel units ? - OSX HiDPI support - Testing .. - API refinement
Diffstat (limited to 'src/jogl/classes/com/jogamp/opengl')
-rw-r--r--src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java4
-rw-r--r--src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java14
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java8
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java8
-rw-r--r--src/jogl/classes/com/jogamp/opengl/util/awt/Overlay.java14
5 files changed, 24 insertions, 24 deletions
diff --git a/src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java b/src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java
index 1b4187668..299e51532 100644
--- a/src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java
+++ b/src/jogl/classes/com/jogamp/opengl/GLEventListenerState.java
@@ -408,7 +408,7 @@ public class GLEventListenerState {
public static GLRunnable setViewport = new GLRunnable() {
@Override
public boolean run(GLAutoDrawable drawable) {
- drawable.getGL().glViewport(0, 0, drawable.getWidth(), drawable.getHeight());
+ drawable.getGL().glViewport(0, 0, drawable.getSurfaceWidth(), drawable.getSurfaceHeight());
return true;
}
};
@@ -428,7 +428,7 @@ public class GLEventListenerState {
}
@Override
public boolean run(GLAutoDrawable drawable) {
- listener.reshape(drawable, 0, 0, drawable.getWidth(), drawable.getHeight());
+ listener.reshape(drawable, 0, 0, drawable.getSurfaceWidth(), drawable.getSurfaceHeight());
return true;
}
}
diff --git a/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java b/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java
index cd5aa338d..1c6dced6a 100644
--- a/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java
+++ b/src/jogl/classes/com/jogamp/opengl/swt/GLCanvas.java
@@ -455,12 +455,12 @@ public class GLCanvas extends Canvas implements GLAutoDrawable, GLSharedContextS
public final void destroy(ProxySurface s) { /* nop */ }
@Override
- public final int getWidth(ProxySurface s) {
+ public final int getPixelWidth(ProxySurface s) {
return clientArea.width;
}
@Override
- public final int getHeight(ProxySurface s) {
+ public final int getPixelHeight(ProxySurface s) {
return clientArea.height;
}
@@ -689,12 +689,12 @@ public class GLCanvas extends Canvas implements GLAutoDrawable, GLSharedContextS
}
@Override
- public int getWidth() {
+ public int getSurfaceWidth() {
return clientArea.width;
}
@Override
- public int getHeight() {
+ public int getSurfaceHeight() {
return clientArea.height;
}
@@ -984,15 +984,15 @@ public class GLCanvas extends Canvas implements GLAutoDrawable, GLSharedContextS
@Override
public String toString() {
final GLDrawable _drawable = drawable;
- final int dw = (null!=_drawable) ? _drawable.getWidth() : -1;
- final int dh = (null!=_drawable) ? _drawable.getHeight() : -1;
+ final int dw = (null!=_drawable) ? _drawable.getSurfaceWidth() : -1;
+ final int dh = (null!=_drawable) ? _drawable.getSurfaceHeight() : -1;
return "SWT-GLCanvas[Realized "+isRealized()+
",\n\t"+((null!=_drawable)?_drawable.getClass().getName():"null-drawable")+
",\n\tFactory "+getFactory()+
",\n\thandle "+toHexString(getHandle())+
",\n\tDrawable size "+dw+"x"+dh+
- ",\n\tSWT size "+getWidth()+"x"+getHeight()+"]";
+ ",\n\tSWT size "+getSurfaceWidth()+"x"+getSurfaceHeight()+"]";
}
public static void main(final String[] args) {
diff --git a/src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java b/src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java
index 25a012bb9..2b4795aaa 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/GLReadBufferUtil.java
@@ -154,13 +154,13 @@ public class GLReadBufferUtil {
public boolean readPixels(GL gl, int inX, int inY, int inWidth, int inHeight, boolean mustFlipVertically) {
final GLDrawable drawable = gl.getContext().getGLReadDrawable();
final int width, height;
- if( 0 >= inWidth || drawable.getWidth() < inWidth ) {
- width = drawable.getWidth();
+ if( 0 >= inWidth || drawable.getSurfaceWidth() < inWidth ) {
+ width = drawable.getSurfaceWidth();
} else {
width = inWidth;
}
- if( 0 >= inHeight || drawable.getHeight() < inHeight ) {
- height = drawable.getHeight();
+ if( 0 >= inHeight || drawable.getSurfaceHeight() < inHeight ) {
+ height = drawable.getSurfaceHeight();
} else {
height= inHeight;
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java b/src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java
index 9490e041b..3c5d6be2d 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java
@@ -87,13 +87,13 @@ public class AWTGLReadBufferUtil extends GLReadBufferUtil {
public BufferedImage readPixelsToBufferedImage(GL gl, int inX, int inY, int inWidth, int inHeight, boolean awtOrientation) {
final GLDrawable drawable = gl.getContext().getGLReadDrawable();
final int width, height;
- if( 0 >= inWidth || drawable.getWidth() < inWidth ) {
- width = drawable.getWidth();
+ if( 0 >= inWidth || drawable.getSurfaceWidth() < inWidth ) {
+ width = drawable.getSurfaceWidth();
} else {
width = inWidth;
}
- if( 0 >= inHeight || drawable.getHeight() < inHeight ) {
- height = drawable.getHeight();
+ if( 0 >= inHeight || drawable.getSurfaceHeight() < inHeight ) {
+ height = drawable.getSurfaceHeight();
} else {
height= inHeight;
}
diff --git a/src/jogl/classes/com/jogamp/opengl/util/awt/Overlay.java b/src/jogl/classes/com/jogamp/opengl/util/awt/Overlay.java
index 931f59869..1ad7b9987 100644
--- a/src/jogl/classes/com/jogamp/opengl/util/awt/Overlay.java
+++ b/src/jogl/classes/com/jogamp/opengl/util/awt/Overlay.java
@@ -119,7 +119,7 @@ public class Overlay {
*/
public void drawAll() throws GLException {
beginRendering();
- draw(0, 0, drawable.getWidth(), drawable.getHeight());
+ draw(0, 0, drawable.getSurfaceWidth(), drawable.getSurfaceHeight());
endRendering();
}
@@ -130,7 +130,7 @@ public class Overlay {
@throws GLException If an OpenGL context is not current when this method is called
*/
public void beginRendering() throws GLException {
- renderer.beginOrthoRendering(drawable.getWidth(), drawable.getHeight());
+ renderer.beginOrthoRendering(drawable.getSurfaceWidth(), drawable.getSurfaceHeight());
}
/** Ends the OpenGL rendering process for the overlay. This is
@@ -198,13 +198,13 @@ public class Overlay {
private void validateRenderer() {
if (renderer == null) {
- renderer = new TextureRenderer(drawable.getWidth(),
- drawable.getHeight(),
+ renderer = new TextureRenderer(drawable.getSurfaceWidth(),
+ drawable.getSurfaceHeight(),
true);
contentsLost = true;
- } else if (renderer.getWidth() != drawable.getWidth() ||
- renderer.getHeight() != drawable.getHeight()) {
- renderer.setSize(drawable.getWidth(), drawable.getHeight());
+ } else if (renderer.getWidth() != drawable.getSurfaceWidth() ||
+ renderer.getHeight() != drawable.getSurfaceHeight()) {
+ renderer.setSize(drawable.getSurfaceWidth(), drawable.getSurfaceHeight());
contentsLost = true;
} else {
contentsLost = false;