aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-06-11 03:35:45 +0200
committerSven Gothel <[email protected]>2014-06-11 03:35:45 +0200
commit94de08a2b0661d072324677c729fc8d1b3d0ef0f (patch)
tree71747361e8f851e2aebe9ff419d5c38ab36e5420 /src
parentea0f37d33acff83091fdb0e47a70cfad7186dfe8 (diff)
GraphUI Demo: Analyze issue w/ OSX and NewtCanvasAWT when rendering / animating GLEventListenerButton
Analyze issue w/ OSX and NewtCanvasAWT when rendering / animating GLEventListenerButton. FBO of main 'window' is _not_ updated .. Probably related to CALayer - FBO - FBO* (of this button) ..
Diffstat (limited to 'src')
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java52
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtCanvasAWTDemo.java8
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/GLEventListenerButton.java1
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java6
5 files changed, 53 insertions, 18 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java
index e58051131..6dfda1ae6 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java
@@ -43,6 +43,7 @@ import com.jogamp.opengl.test.junit.graph.demos.ui.SceneUIController;
import com.jogamp.opengl.test.junit.graph.demos.ui.ImageSeqButton;
import com.jogamp.opengl.test.junit.graph.demos.ui.UIShape;
import com.jogamp.opengl.test.junit.jogl.demos.es2.GearsES2;
+import com.jogamp.opengl.test.junit.jogl.demos.es2.RedSquareES2;
import com.jogamp.opengl.util.GLReadBufferUtil;
import com.jogamp.opengl.util.av.GLMediaPlayer;
import com.jogamp.opengl.util.av.GLMediaPlayerFactory;
@@ -142,7 +143,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
* @param trace
*/
public GPUUISceneGLListener0A(final float noAADPIThreshold, boolean debug, boolean trace) {
- this(noAADPIThreshold, -1, debug, trace);
+ this(noAADPIThreshold, 0, debug, trace);
}
private GPUUISceneGLListener0A(final float noAADPIThreshold, int renderModes, boolean debug, boolean trace) {
@@ -510,7 +511,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
final float button2YSize = 2f*buttonYSize;
final float xStartRight = -button2XSize - 8f; // aligned to right edge via reshape
final int texUnitMediaPlayer, texUnitImageButton, texUnitGLELButton;
- if( true ) {
+ if( false ) {
texUnitMediaPlayer=0;
texUnitImageButton=0;
texUnitGLELButton=0;
@@ -521,7 +522,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
texUnitGLELButton=3;
}
- if(true) {
+ if( true ) {
final GLMediaPlayer mPlayer = GLMediaPlayerFactory.createDefault();
mPlayer.setTextureUnit(texUnitMediaPlayer);
final MediaPlayerButton mPlayerButton = new MediaPlayerButton(renderer.getRenderState().getVertexFactory(), renderModes,
@@ -571,16 +572,47 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(imgButton);
}
if( true ) {
- final GearsES2 glel = new GearsES2(0);
- glel.setVerbose(false);
- glel.setClearColor(new float[] { 0.9f, 0.9f, 0.9f, 1f } );
+ // Issues w/ OSX and NewtCanvasAWT when rendering / animating
+ // Probably related to CALayer - FBO - FBO* (of this button)
+ final GLEventListener glel;
+ if( true ) {
+ final GearsES2 gears = new GearsES2(0);
+ gears.setVerbose(false);
+ gears.setClearColor(new float[] { 0.9f, 0.9f, 0.9f, 1f } );
+ glel = gears;
+ } else if( false ) {
+ glel = new RedSquareES2(0);
+ } else {
+ glel = new GLEventListener() {
+ @Override
+ public void init(GLAutoDrawable drawable) {
+ }
+
+ @Override
+ public void dispose(GLAutoDrawable drawable) {
+ }
+
+ @Override
+ public void display(GLAutoDrawable drawable) {
+ final GL2ES2 gl = drawable.getGL().getGL2ES2();
+ gl.glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
+ // gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
+ gl.glClear(GL.GL_COLOR_BUFFER_BIT);
+ }
+
+ @Override
+ public void reshape(GLAutoDrawable drawable, int x, int y, int width, int height) {
+ }
+
+ };
+ }
final GLEventListenerButton glelButton = new GLEventListenerButton(renderer.getRenderState().getVertexFactory(), renderModes,
button2XSize, button2YSize,
texUnitGLELButton, glel, false /* useAlpha */,
(int)(button2XSize), (int)(button2YSize));
glelButton.setToggleable(true);
- glelButton.setToggle(true); // toggle == true -> animation
- glelButton.setAnimate(true);
+ glelButton.setToggle(false); // toggle == true -> animation
+ glelButton.setAnimate(false);
glelButton.translate(xStartRight, yStartTop - diffY*4f, 0f);
glelButton.addMouseListener(dragZoomRotateListener);
glelButton.addMouseListener(new UIShape.MouseGestureAdapter() {
@@ -650,7 +682,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
} else {
System.err.println("Using default DPI of "+dpiH);
}
- if( 0 > renderModes ) {
+ if( 0 == renderModes && !FloatUtil.isZero(noAADPIThreshold, FloatUtil.EPSILON)) {
final boolean noAA = dpiH >= noAADPIThreshold;
final String noAAs = noAA ? " >= " : " < ";
System.err.println("AUTO RenderMode: dpi "+dpiH+noAAs+noAADPIThreshold+" -> noAA "+noAA);
@@ -802,7 +834,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
tfps = 0f;
td = 0f;
}
- final String modeS = Region.getRenderModeString(jogampLabel.getRenderModes());
+ final String modeS = Region.getRenderModeString(renderModes);
final String text;
if( null == actionText ) {
final String timePrec = gl.isGLES() ? "4.0" : "4.1";
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtCanvasAWTDemo.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtCanvasAWTDemo.java
index bd0af580a..993734e46 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtCanvasAWTDemo.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtCanvasAWTDemo.java
@@ -138,9 +138,7 @@ public class GPUUISceneNewtCanvasAWTDemo {
System.out.println("Requested: " + caps);
final int rmode;
- if( 0 < GraphAutoMode ) {
- rmode = -1;
- } else if( GraphVBAAMode ) {
+ if( GraphVBAAMode ) {
rmode = Region.VBAA_RENDERING_BIT;
} else if( GraphMSAAMode ) {
rmode = Region.MSAA_RENDERING_BIT;
@@ -151,7 +149,7 @@ public class GPUUISceneNewtCanvasAWTDemo {
final GLWindow window = GLWindow.create(caps);
window.setPosition(x, y);
window.setSize(width, height);
- window.setTitle("GraphUI Newt Demo: graph["+Region.getRenderModeString(rmode)+"], msaa "+SceneMSAASamples);
+ window.setTitle("GraphUI Newt/AWT Demo: graph["+Region.getRenderModeString(rmode)+"], msaa "+SceneMSAASamples);
window.setSurfaceScale(reqSurfacePixelScale);
final int[] valReqSurfacePixelScale = window.getRequestedSurfaceScale(new int[2]);
@@ -172,7 +170,7 @@ public class GPUUISceneNewtCanvasAWTDemo {
});
final NewtCanvasAWT newtCanvasAWT = new NewtCanvasAWT(window);
- final Frame frame = new Frame("GraphUI Newt Demo: graph["+Region.getRenderModeString(rmode)+"], msaa "+SceneMSAASamples);
+ final Frame frame = new Frame("GraphUI Newt/AWT Demo: graph["+Region.getRenderModeString(rmode)+"], msaa "+SceneMSAASamples);
setComponentSize(newtCanvasAWT, new Dimension(width, height));
frame.add(newtCanvasAWT);
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
index ee3b129b7..15cf99f3b 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneNewtDemo.java
@@ -113,9 +113,7 @@ public class GPUUISceneNewtDemo {
System.out.println("Requested: " + caps);
final int rmode;
- if( 0 < GraphAutoMode ) {
- rmode = -1;
- } else if( GraphVBAAMode ) {
+ if( GraphVBAAMode ) {
rmode = Region.VBAA_RENDERING_BIT;
} else if( GraphMSAAMode ) {
rmode = Region.MSAA_RENDERING_BIT;
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/GLEventListenerButton.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/GLEventListenerButton.java
index 1f6faf15b..6dada5f1e 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/GLEventListenerButton.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/GLEventListenerButton.java
@@ -118,6 +118,7 @@ public class GLEventListenerButton extends TextureSeqButton {
fboGLAD.setSurfaceSize(fboWidth, fboHeight);
fboWidth = 0;
fboHeight = 0;
+ markStateDirty();
} else if( animateGLEL ) {
fboGLAD.display();
}
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java
index 2e9d33a78..e3513d40d 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java
@@ -265,6 +265,12 @@ public abstract class UIShape {
return GLRegion.create(renderModes, null);
}
+ /**
+ * Validates the shape's underlying {@link GLRegion}.
+ *
+ * @param gl
+ * @param renderer
+ */
public final void validate(GL2ES2 gl, RegionRenderer renderer) {
if( isShapeDirty() || null == region ) {
box.reset();