summaryrefslogtreecommitdiffstats
path: root/src/test/com
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-04-02 04:41:48 +0200
committerSven Gothel <[email protected]>2014-04-02 04:41:48 +0200
commite8a5a1cbb988670ca206ab1ac633e19a91bfa478 (patch)
tree5b9f17a06ad350150375a2a0e38daa3d6dd11251 /src/test/com
parent6f5686696b1e9085a759774056c7be9887a9e34f (diff)
Bug 801: WIP 2/2 - Add color attribute; Switch Shader instead of branching in shader; Update attributes and uniforms manually, drop ShaderState;
- Due to shader-switching, 'renderModes' are now local to Region, e.g. UIShape etc - Remove RegionRenderer.renderModes - VBORegion2P*: - Use simple 2x float matrix for orthogonal P+Mv - Cleanup shader
Diffstat (limited to 'src/test/com')
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java22
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java1
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT10.java30
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java18
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener01.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener02.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java6
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextRendererListenerBase01.java25
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/GPUUISceneGLListener0A.java94
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/CrossHair.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/Label.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/RIButton.java30
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/SceneUIController.java14
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIGLListener01.java6
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java9
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java2
-rw-r--r--src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIShape.java25
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/acore/GLReadBuffer00Base.java4
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java6
-rw-r--r--src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java6
20 files changed, 167 insertions, 143 deletions
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java
index b5d52739e..27e5ad90f 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT00.java
@@ -210,18 +210,18 @@ public class TestTextRendererNEWT00 extends UITestCase {
}
final RenderState rs = RenderState.createRenderState(SVertex.factory());
- final int rendererMode, sampleCount;
+ final int renderModes, sampleCount;
if( graphVBAASamples > 0 ) {
- rendererMode = Region.VBAA_RENDERING_BIT;
+ renderModes = Region.VBAA_RENDERING_BIT;
sampleCount = graphVBAASamples;
} else if ( graphMSAASamples > 0 ) {
- rendererMode = Region.MSAA_RENDERING_BIT;
+ renderModes = Region.MSAA_RENDERING_BIT;
sampleCount = graphMSAASamples;
} else {
- rendererMode = 0;
+ renderModes = 0;
sampleCount = 0;
}
- final TextRendererGLEL textGLListener = new TextRendererGLEL(rs, rendererMode, sampleCount);
+ final TextRendererGLEL textGLListener = new TextRendererGLEL(rs, renderModes, sampleCount);
System.err.println(textGLListener.getFontInfo());
window.addGLEventListener(textGLListener);
@@ -235,7 +235,7 @@ public class TestTextRendererNEWT00 extends UITestCase {
@Override
public boolean run(GLAutoDrawable drawable) {
try {
- textGLListener.printScreen(drawable, "./", "TestTextRendererNEWT00-snap"+screenshot_num, false);
+ textGLListener.printScreen(renderModes, drawable, "./", "TestTextRendererNEWT00-snap"+screenshot_num, false);
screenshot_num++;
} catch (Exception e) {
e.printStackTrace();
@@ -322,13 +322,13 @@ public class TestTextRendererNEWT00 extends UITestCase {
public void dispose(GLAutoDrawable drawable) {
final GL2ES2 gl = drawable.getGL().getGL2ES2();
screenshot.dispose(gl);
- regionFPS.destroy(gl, renderer);
- regionFPSAnim.destroy(gl, renderer);
+ regionFPS.destroy(gl);
+ regionFPSAnim.destroy(gl);
super.dispose(drawable);
}
- public void printScreen(GLAutoDrawable drawable, String dir, String objName, boolean exportAlpha) throws GLException, IOException {
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ public void printScreen(int renderModes, GLAutoDrawable drawable, String dir, String objName, boolean exportAlpha) throws GLException, IOException {
+ final String modeS = Region.getRenderModeString(renderModes);
final String bname = String.format("%s-msaa%02d-fontsz%02.1f-%03dx%03d-%s%04d", objName,
drawable.getChosenGLCapabilities().getNumSamples(),
TestTextRendererNEWT00.fontSizeFixed, drawable.getWidth(), drawable.getHeight(), modeS, vbaaSampleCount[0]);
@@ -372,7 +372,7 @@ public class TestTextRendererNEWT00 extends UITestCase {
final float pixelSize = font.getPixelSize(fontSizeFixed, dpiH);
final float pixelSizeAnim = font.getPixelSize(fontSizeAnim, dpiH);
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ final String modeS = Region.getRenderModeString(renderModes);
final String text1 = String.format("%03.1f/%03.1f fps, vsync %d, elapsed %4.1f s, fontSize %2.2f, msaa %d, %s-samples %d",
lfps, tfps, gl.getSwapInterval(), (t1-t0)/1000.0, fontSizeFixed,
drawable.getChosenGLCapabilities().getNumSamples(), modeS, vbaaSampleCount[0]);
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java
index c1c1dc18e..247ba69b3 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT01.java
@@ -45,7 +45,6 @@ import org.junit.runners.MethodSorters;
import com.jogamp.common.os.Platform;
import com.jogamp.graph.curve.Region;
import com.jogamp.graph.curve.opengl.RenderState;
-import com.jogamp.graph.curve.opengl.RegionRenderer;
import com.jogamp.graph.font.FontFactory;
import com.jogamp.graph.geom.SVertex;
import com.jogamp.newt.opengl.GLWindow;
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT10.java b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT10.java
index ebb897484..b04808300 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT10.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/TestTextRendererNEWT10.java
@@ -140,12 +140,12 @@ public class TestTextRendererNEWT10 extends UITestCase {
System.err.println("Chosen: "+winctx.window.getChosenCapabilities());
final RenderState rs = RenderState.createRenderState(SVertex.factory());
- final RegionRenderer renderer = RegionRenderer.create(rs, 0, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
- final TextRegionUtil textRenderUtil = new TextRegionUtil(renderer);
+ final RegionRenderer renderer = RegionRenderer.create(rs, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
+ final TextRegionUtil textRenderUtil = new TextRegionUtil(0);
// init
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
- renderer.init(gl);
+ renderer.init(gl, 0);
rs.setColorStatic(0.1f, 0.1f, 0.1f, 1.0f);
// reshape
@@ -156,17 +156,17 @@ public class TestTextRendererNEWT10 extends UITestCase {
// display
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
- renderString(drawable, gl, textRenderUtil, "012345678901234567890123456789", 0, 0, -1000);
- renderString(drawable, gl, textRenderUtil, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "Hello World", 0, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "4567890123456", 4, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "I like JogAmp", 4, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "012345678901234567890123456789", 0, 0, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "Hello World", 0, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "4567890123456", 4, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "I like JogAmp", 4, -1, -1000);
int c = 0;
- renderString(drawable, gl, textRenderUtil, "GlueGen", c++, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "JOAL", c++, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "JOGL", c++, -1, -1000);
- renderString(drawable, gl, textRenderUtil, "JOCL", c++, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "GlueGen", c++, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "JOAL", c++, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "JOGL", c++, -1, -1000);
+ renderString(drawable, gl, renderer, textRenderUtil, "JOCL", c++, -1, -1000);
drawable.swapBuffers();
sleep();
@@ -179,7 +179,7 @@ public class TestTextRendererNEWT10 extends UITestCase {
int lastRow = -1;
- void renderString(GLDrawable drawable, GL2ES2 gl, TextRegionUtil textRenderUtil, String text, int column, int row, int z0) {
+ void renderString(GLDrawable drawable, GL2ES2 gl, RegionRenderer renderer, TextRegionUtil textRenderUtil, String text, int column, int row, int z0) {
final int height = drawable.getHeight();
int dx = 0;
@@ -191,11 +191,11 @@ public class TestTextRendererNEWT10 extends UITestCase {
dx += font.getAdvanceWidth('X', fontSize) * column;
dy -= (int)textBox.getHeight() * ( row + 1 );
- final PMVMatrix pmv = textRenderUtil.renderer.getMatrixMutable();
+ final PMVMatrix pmv = renderer.getMatrixMutable();
pmv.glMatrixMode(GLMatrixFunc.GL_MODELVIEW);
pmv.glLoadIdentity();
pmv.glTranslatef(dx, dy, z0);
- textRenderUtil.drawString3D(gl, font, fontSize, text, null, texSize);
+ textRenderUtil.drawString3D(gl, renderer, font, fontSize, text, null, texSize);
lastRow = row;
}
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java b/src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java
index fb4d0baf4..05e090886 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/TextRendererGLELBase.java
@@ -46,7 +46,7 @@ import com.jogamp.newt.Window;
import com.jogamp.opengl.util.PMVMatrix;
public abstract class TextRendererGLELBase implements GLEventListener {
- public final int usrRenderModes;
+ public final int renderModes;
protected final int[] vbaaSampleCount;
protected final float[] staticRGBAColor = new float[] { 1f, 1f, 1f, 1f };
@@ -87,7 +87,7 @@ public abstract class TextRendererGLELBase implements GLEventListener {
* @see #setRendererCallbacks(com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback, com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback)
*/
public TextRendererGLELBase(final int renderModes, int[] sampleCount) {
- this.usrRenderModes = renderModes;
+ this.renderModes = renderModes;
this.vbaaSampleCount = sampleCount;
}
@@ -115,7 +115,7 @@ public abstract class TextRendererGLELBase implements GLEventListener {
}
/**
- * See {@link RegionRenderer#create(RenderState, int, com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback, com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback)}.
+ * See {@link RegionRenderer#create(RenderState, com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback, com.jogamp.graph.curve.opengl.RegionRenderer.GLCallback)}.
* <p>
* Must be called before {@link #init(GLAutoDrawable)}.
* </p>
@@ -135,10 +135,10 @@ public abstract class TextRendererGLELBase implements GLEventListener {
exclusivePMVMatrix = null == sharedPMVMatrix;
this.rs = RenderState.createRenderState(SVertex.factory(), sharedPMVMatrix);
}
- this.renderer = RegionRenderer.create(rs, usrRenderModes, enableCallback, disableCallback);
- this.textRenderUtil = new TextRegionUtil(renderer);
+ this.renderer = RegionRenderer.create(rs, enableCallback, disableCallback);
+ this.textRenderUtil = new TextRegionUtil(renderModes);
final GL2ES2 gl = drawable.getGL().getGL2ES2();
- renderer.init(gl);
+ renderer.init(gl, renderModes);
rs.setColorStatic(staticRGBAColor[0], staticRGBAColor[1], staticRGBAColor[2], staticRGBAColor[3]);
renderer.enable(gl, false);
@@ -268,11 +268,11 @@ public abstract class TextRendererGLELBase implements GLEventListener {
}
renderer.enable(gl, true);
if( cacheRegion ) {
- textRenderUtil.drawString3D(gl, font, pixelSize, text, null, vbaaSampleCount);
+ textRenderUtil.drawString3D(gl, renderer, font, pixelSize, text, null, vbaaSampleCount);
} else if( null != region ) {
- TextRegionUtil.drawString3D(region, renderer, gl, font, pixelSize, text, null, vbaaSampleCount);
+ TextRegionUtil.drawString3D(gl, region, renderer, font, pixelSize, text, null, vbaaSampleCount);
} else {
- TextRegionUtil.drawString3D(renderer, gl, font, pixelSize, text, null, vbaaSampleCount);
+ TextRegionUtil.drawString3D(gl, renderModes, renderer, font, pixelSize, text, null, vbaaSampleCount);
}
renderer.enable(gl, false);
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener01.java
index b5ac6cdaa..2b3b2e7d9 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener01.java
@@ -50,7 +50,7 @@ public class GPURegionGLListener01 extends GPURendererListenerBase01 {
OutlineShape outlineShape = null;
public GPURegionGLListener01 (RenderState rs, int renderModes, int sampleCount, boolean debug, boolean trace) {
- super(RegionRenderer.create(rs, renderModes, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), renderModes, debug, trace);
+ super(RegionRenderer.create(rs, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), renderModes, debug, trace);
setMatrix(-20, 00, -50, 0f, sampleCount);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener02.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener02.java
index d9e962ea6..fbf110809 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener02.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURegionGLListener02.java
@@ -50,7 +50,7 @@ public class GPURegionGLListener02 extends GPURendererListenerBase01 {
List<OutlineShape> outlineShapes = new ArrayList<OutlineShape>();
public GPURegionGLListener02 (RenderState rs, int renderModes, int sampleCount, boolean debug, boolean trace) {
- super(RegionRenderer.create(rs, renderModes, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), renderModes, debug, trace);
+ super(RegionRenderer.create(rs, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), renderModes, debug, trace);
setMatrix(-20, 00, -50, 0f, sampleCount);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java
index 65ed86947..420e23f4d 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPURendererListenerBase01.java
@@ -133,7 +133,7 @@ public abstract class GPURendererListenerBase01 implements GLEventListener {
System.err.println("*** GLDebugMessage "+gl.getContext().isGLDebugMessageEnabled());
MSAATool.dump(drawable);
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
- getRenderer().init(gl);
+ getRenderer().init(gl, renderModes);
}
public static void mapWin2ObjectCoords(final PMVMatrix pmv, final int[] view,
@@ -183,7 +183,7 @@ public abstract class GPURendererListenerBase01 implements GLEventListener {
autoDrawable = null;
GL2ES2 gl = drawable.getGL().getGL2ES2();
if(null != region) {
- region.destroy(gl, renderer);
+ region.destroy(gl);
}
screenshot.dispose(gl);
renderer.destroy(gl);
@@ -325,7 +325,7 @@ public abstract class GPURendererListenerBase01 implements GLEventListener {
@Override
public boolean run(GLAutoDrawable drawable) {
try {
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ final String modeS = Region.getRenderModeString(renderModes);
final String type = modeS + ( Region.hasVariableWeight(renderModes) ? "-vc" : "-uc" ) ;
printScreen(drawable, "./", "demo-"+type, "snap"+screenshot_num, false);
screenshot_num++;
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextRendererListenerBase01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextRendererListenerBase01.java
index 7372eb8f6..5dcfea4a9 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextRendererListenerBase01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/GPUTextRendererListenerBase01.java
@@ -113,11 +113,10 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
boolean userInput = false;
public GPUTextRendererListenerBase01(RenderState rs, int renderModes, int sampleCount, boolean blending, boolean debug, boolean trace) {
// NOTE_ALPHA_BLENDING: We use alpha-blending
- super(RegionRenderer.create(rs, renderModes,
- blending ? RegionRenderer.defaultBlendEnable : null,
+ super(RegionRenderer.create(rs, blending ? RegionRenderer.defaultBlendEnable : null,
blending ? RegionRenderer.defaultBlendDisable : null),
renderModes, debug, trace);
- this.textRegionUtil = new TextRegionUtil(this.getRenderer());
+ this.textRegionUtil = new TextRegionUtil(renderModes);
this.regionFPS = GLRegion.create(renderModes);
this.regionBottom = GLRegion.create(renderModes);
try {
@@ -192,8 +191,8 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
@Override
public void dispose(GLAutoDrawable drawable) {
- regionFPS.destroy(drawable.getGL().getGL2ES2(), getRenderer());
- regionBottom.destroy(drawable.getGL().getGL2ES2(), getRenderer());
+ regionFPS.destroy(drawable.getGL().getGL2ES2());
+ regionBottom.destroy(drawable.getGL().getGL2ES2());
super.dispose(drawable);
}
@@ -238,7 +237,7 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
tfps = 0f;
td = 0f;
}
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ final String modeS = Region.getRenderModeString(regionFPS.getRenderModes());
final String text = String.format("%03.1f/%03.1f fps, v-sync %d, fontSize [head %.1f, bottom %.1f], %s-samples [%d, this %d], td %4.1f, blend %b, alpha-bits %d",
lfps, tfps, gl.getSwapInterval(), fontSizeHead, fontSizeBottom, modeS, getSampleCount()[0], sampleCountFPS[0], td,
renderer.getRenderState().isHintMaskSet(RenderState.BITHINT_BLENDING_ENABLED),
@@ -248,7 +247,7 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
pmv.glTranslatef(nearPlaneX0, nearPlaneY0+(nearPlaneS * pixelSizeFPS / 2f), nearPlaneZ0);
// No cache, keep region alive!
- TextRegionUtil.drawString3D(regionFPS, renderer, gl, font, nearPlaneS * pixelSizeFPS, text, null, sampleCountFPS);
+ TextRegionUtil.drawString3D(gl, regionFPS, renderer, font, nearPlaneS * pixelSizeFPS, text, null, sampleCountFPS);
}
float dx = width-fontNameBox.getWidth()-2f;
@@ -259,7 +258,7 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
pmv.glLoadIdentity();
pmv.glTranslatef(nearPlaneX0+(dx*nearPlaneSx), nearPlaneY0+(dy*nearPlaneSy), nearPlaneZ0);
// System.err.printf("FontN: [%f %f] -> [%f %f]%n", dx, dy, nearPlaneX0+(dx*nearPlaneSx), nearPlaneY0+(dy*nearPlaneSy));
- textRegionUtil.drawString3D(gl, font, nearPlaneS * pixelSizeFName, fontName, null, getSampleCount());
+ textRegionUtil.drawString3D(gl, renderer, font, nearPlaneS * pixelSizeFName, fontName, null, getSampleCount());
dx = 10f;
dy += -fontNameBox.getHeight() - 10f;
@@ -271,7 +270,7 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
// System.err.printf("Head: [%f %f] -> [%f %f]%n", dx, dy, nearPlaneX0+(dx*nearPlaneSx), nearPlaneY0+(dy*nearPlaneSy));
pmv.glTranslatef(nearPlaneX0+(dx*nearPlaneSx), nearPlaneY0+(dy*nearPlaneSy), nearPlaneZ0);
// pmv.glTranslatef(x0, y1, z0);
- textRegionUtil.drawString3D(gl, font, nearPlaneS * pixelSizeHead, headtext, null, getSampleCount());
+ textRegionUtil.drawString3D(gl, renderer, font, nearPlaneS * pixelSizeHead, headtext, null, getSampleCount());
}
dy += -headbox.getHeight() - font.getLineHeight(pixelSizeBottom);
@@ -293,15 +292,15 @@ public abstract class GPUTextRendererListenerBase01 extends GPURendererListenerB
}
if(!userInput) {
if( bottomTextUseFrustum ) {
- TextRegionUtil.drawString3D(regionBottom, renderer, gl, font, nearPlaneS * pixelSizeBottom, text2, null, getSampleCount());
+ TextRegionUtil.drawString3D(gl, regionBottom, renderer, font, nearPlaneS * pixelSizeBottom, text2, null, getSampleCount());
} else {
- textRegionUtil.drawString3D(gl, font, nearPlaneS * pixelSizeBottom, text2, null, getSampleCount());
+ textRegionUtil.drawString3D(gl, renderer, font, nearPlaneS * pixelSizeBottom, text2, null, getSampleCount());
}
} else {
if( bottomTextUseFrustum ) {
- TextRegionUtil.drawString3D(regionBottom, renderer, gl, font, nearPlaneS * pixelSizeBottom, userString.toString(), null, getSampleCount());
+ TextRegionUtil.drawString3D(gl, regionBottom, renderer, font, nearPlaneS * pixelSizeBottom, userString.toString(), null, getSampleCount());
} else {
- textRegionUtil.drawString3D(gl, font, nearPlaneS * pixelSizeBottom, userString.toString(), null, getSampleCount());
+ textRegionUtil.drawString3D(gl, renderer, font, nearPlaneS * pixelSizeBottom, userString.toString(), null, getSampleCount());
}
}
}
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 b3b17375d..e93d6607e 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
@@ -45,22 +45,25 @@ public class GPUUISceneGLListener0A implements GLEventListener {
private RegionRenderer renderer;
- int fontSet = FontFactory.UBUNTU;
- Font font;
+ private final int fontSet = FontFactory.UBUNTU;
+ private Font font;
- final float relTop = 5f/6f;
- final float relRight = 2f/6f;
- final float relLeft = 1f/6f;
+ private final float sceneDist = 3000f;
+ private final float zNear = 0.1f, zFar = 7000f;
+
+ private final float relTop = 5f/6f;
+ private final float relRight = 2f/6f;
+ private final float relLeft = 1f/6f;
/** Proportional Button Size to Window Height, per-vertical-pixels [PVP] */
- final float buttonYSizePVP = 0.084f;
- final float buttonXSizePVP = 0.105f;
- final float fontSizePt = 10f;
+ private final float buttonYSizePVP = 0.084f;
+ private final float buttonXSizePVP = 0.105f;
+ private final float fontSizePt = 10f;
/** Proportional Font Size to Window Height for Main Text, per-vertical-pixels [PVP] */
- final float fontSizeFixedPVP = 0.046f;
+ private final float fontSizeFixedPVP = 0.046f;
/** Proportional Font Size to Window Height for FPS Status Line, per-vertical-pixels [PVP] */
- final float fontSizeFpsPVP = 0.038f;
- float dpiH = 96;
+ private final float fontSizeFpsPVP = 0.038f;
+ private float dpiH = 96;
private int currentText = 0;
@@ -91,7 +94,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
public GPUUISceneGLListener0A(RenderState rs, int renderModes, boolean debug, boolean trace) {
this.rs = rs;
- this.renderModes = renderModes | Region.COLORCHANNEL_RENDERING_BIT;
+ this.renderModes = renderModes;
this.debug = debug;
this.trace = trace;
@@ -101,7 +104,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
System.err.println("Catched: "+ioe.getMessage());
ioe.printStackTrace();
}
- sceneUIController = new SceneUIController();
+ sceneUIController = new SceneUIController(sceneDist, zNear, zFar);
screenshot = new GLReadBufferUtil(false, false);
}
@@ -141,8 +144,8 @@ public class GPUUISceneGLListener0A implements GLEventListener {
}
}
- private void initButtons(final GL gl, final int width, final int height, final RegionRenderer renderer) {
- final boolean pass2Mode = 0 != ( renderer.getRenderModes() & ( Region.VBAA_RENDERING_BIT | Region.MSAA_RENDERING_BIT ) ) ;
+ private void initButtons(final GL gl, final int width, final int height, final float labelZOffset, final RegionRenderer renderer) {
+ final boolean pass2Mode = Region.isTwoPass( renderModes ) ;
buttons.clear();
final float buttonXSize = buttonXSizePVP * width;
@@ -153,7 +156,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
final float diffX = 1.2f * buttonXSize;
final float diffY = 1.5f * buttonYSize;
- RIButton button = new RIButton(SVertex.factory(), font, "Next Text", buttonXSize, buttonYSize);
+ RIButton button = new RIButton(SVertex.factory(), renderModes, font, "Next Text", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart-diffY*buttons.size(), 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -170,7 +173,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
button.addMouseListener(dragZoomRotateListener);
buttons.add(button);
- button = new RIButton(SVertex.factory(), font, "Show FPS", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "Show FPS", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setToggleable(true);
button.setPressed(fpsLabel.isEnabled());
@@ -187,7 +190,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
button.addMouseListener(dragZoomRotateListener);
buttons.add(button);
- button = new RIButton(SVertex.factory(), font, "v-sync", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "v-sync", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setToggleable(true);
button.setPressed(gl.getSwapInterval()>0);
@@ -211,7 +214,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
button.addMouseListener(dragZoomRotateListener);
buttons.add(button);
- button = new RIButton(SVertex.factory(), font, "< tilt >", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "< tilt >", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -234,7 +237,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
if( pass2Mode ) { // second column to the left
- button = new RIButton(SVertex.factory(), font, "< samples >", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "< samples >", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -261,7 +264,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
button.addMouseListener(dragZoomRotateListener);
buttons.add(button);
- button = new RIButton(SVertex.factory(), font, "< quality >", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "< quality >", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -275,12 +278,12 @@ public class GPUUISceneGLListener0A implements GLEventListener {
if( shapeEvent.rotPosition[0] < shapeEvent.rotBounds.getCenter()[0] ) {
// left-half pressed
if( quality > 0 ) {
- quality=0;
+ quality--;
}
} else {
// right-half pressed
- if( quality < 1 ) {
- quality=1;
+ if( quality < Region.MAX_QUALITY ) {
+ quality++;
}
}
sceneUIController.setAllShapesQuality(quality);
@@ -290,7 +293,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
}
- button = new RIButton(SVertex.factory(), font, "Quit", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "Quit", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart,ystart - diffY*buttons.size(), 0f);
button.setColor(0.8f, 0.0f, 0.0f, 1.0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
@@ -316,7 +319,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
{
int j = 1; // column
int k = 0; // row
- button = new RIButton(SVertex.factory(), font, "y flip", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "y flip", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -328,7 +331,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "x flip", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "x flip", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -340,7 +343,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "+", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "+", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -368,7 +371,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "< space >", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "< space >", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -393,7 +396,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "< corner >", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "< corner >", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -419,7 +422,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "reset", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "reset", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -431,7 +434,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
buttons.add(button);
k++;
- button = new RIButton(SVertex.factory(), font, "screenshot", buttonXSize, buttonYSize);
+ button = new RIButton(SVertex.factory(), renderModes, font, "screenshot", buttonXSize, buttonYSize, labelZOffset);
button.translate(xstart - diffX*j,ystart - diffY*k, 0f);
button.setLabelColor(1.0f, 1.0f, 1.0f);
button.addMouseListener(new MouseAdapter() {
@@ -529,28 +532,33 @@ public class GPUUISceneGLListener0A implements GLEventListener {
ioe.printStackTrace();
}
- renderer = RegionRenderer.create(rs, renderModes, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
- // renderer = RegionRenderer.create(rs, renderModes, null, null);
+ renderer = RegionRenderer.create(rs, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
+ // renderer = RegionRenderer.create(rs, null, null);
gl.setSwapInterval(1);
gl.glEnable(GL2ES2.GL_DEPTH_TEST);
gl.glEnable(GL2ES2.GL_BLEND);
- renderer.init(gl);
+ final int zBits = drawable.getChosenGLCapabilities().getDepthBits();
+ final float zEpsilon = FloatUtil.getZBufferEpsilon(zBits, sceneDist, zNear);
+ final float labelZOffset = Region.isTwoPass(renderModes) ? RIButton.DEFAULT_2PASS_LABEL_ZOFFSET : -2f*zEpsilon;
+ System.err.println("zEpsilon "+zEpsilon+" ( zBits "+zBits+") -> labelZOffset "+labelZOffset);
+
+ renderer.init(gl, renderModes);
initTexts();
sceneUIController.setRenderer(renderer);
final float pixelSizeFixed = fontSizeFixedPVP * drawable.getHeight();
- jogampLabel = new Label(SVertex.factory(), font, pixelSizeFixed, jogamp);
+ jogampLabel = new Label(renderer.getRenderState().getVertexFactory(), renderModes, font, pixelSizeFixed, jogamp);
jogampLabel.addMouseListener(dragZoomRotateListener);
sceneUIController.addShape(jogampLabel);
jogampLabel.setEnabled(enableOthers);
final float pixelSize10Pt = font.getPixelSize(fontSizePt, dpiH);
System.err.println("10Pt PixelSize: Display "+dpiH+" dpi, fontSize "+fontSizePt+" ppi -> "+pixelSize10Pt+" pixel-size");
- truePtSizeLabel = new Label(SVertex.factory(), font, pixelSize10Pt, truePtSize);
+ truePtSizeLabel = new Label(renderer.getRenderState().getVertexFactory(), renderModes, font, pixelSize10Pt, truePtSize);
sceneUIController.addShape(truePtSizeLabel);
truePtSizeLabel.setEnabled(enableOthers);
truePtSizeLabel.translate(0, - 1.5f * jogampLabel.getLineHeight(), 0f);
@@ -562,19 +570,19 @@ public class GPUUISceneGLListener0A implements GLEventListener {
* [FPS] Display 112.88889 dpi, fontSize 12.0 ppi -> pixelSize 15.679012
*/
final float pixelSizeFPS = fontSizeFpsPVP * drawable.getHeight();
- fpsLabel = new Label(renderer.getRenderState().getVertexFactory(), font, pixelSizeFPS, "Nothing there yet");
+ fpsLabel = new Label(renderer.getRenderState().getVertexFactory(), renderModes, font, pixelSizeFPS, "Nothing there yet");
fpsLabel.addMouseListener(dragZoomRotateListener);
sceneUIController.addShape(fpsLabel);
fpsLabel.setEnabled(enableOthers);
fpsLabel.setColor(0.3f, 0.3f, 0.3f, 1.0f);
- crossHairCtr = new CrossHair(renderer.getRenderState().getVertexFactory(), 100f, 100f, 2f);
+ crossHairCtr = new CrossHair(renderer.getRenderState().getVertexFactory(), 0, 100f, 100f, 2f);
crossHairCtr.addMouseListener(dragZoomRotateListener);
sceneUIController.addShape(crossHairCtr);
crossHairCtr.setEnabled(true);
crossHairCtr.translate(0f, 0f, -1f);
- initButtons(gl, drawable.getWidth(), drawable.getHeight(), renderer);
+ initButtons(gl, drawable.getWidth(), drawable.getHeight(), labelZOffset, renderer);
for(int i=0; i<buttons.size(); i++) {
sceneUIController.addShape(buttons.get(i));
}
@@ -607,7 +615,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
private int shotCount = 0;
public void printScreen(final GL gl) {
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ final String modeS = Region.getRenderModeString(jogampLabel.getRenderModes());
final String filename = String.format("GraphUIDemo-shot%03d-%03dx%03d-S_%s_%02d.png",
shotCount++, renderer.getWidth(), renderer.getHeight(),
modeS, sceneUIController.getSampleCount());
@@ -627,7 +635,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
final float pixelSizeFixed = fontSizeFixedPVP * drawable.getHeight();
final float dyTop = drawable.getHeight() * relTop;
final float dxRight = drawable.getWidth() * relRight;
- labels[currentText] = new Label(SVertex.factory(), font, pixelSizeFixed, strings[currentText]);
+ labels[currentText] = new Label(renderer.getRenderState().getVertexFactory(), renderModes, font, pixelSizeFixed, strings[currentText]);
labels[currentText].setColor(0.1f, 0.1f, 0.1f, 1.0f);
labels[currentText].setEnabled(enableOthers);
labels[currentText].translate(dxRight,
@@ -648,7 +656,7 @@ public class GPUUISceneGLListener0A implements GLEventListener {
tfps = 0f;
td = 0f;
}
- final String modeS = Region.getRenderModeString(renderer.getRenderModes());
+ final String modeS = Region.getRenderModeString(jogampLabel.getRenderModes());
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/ui/CrossHair.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/CrossHair.java
index 450d5743a..a0842b142 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/CrossHair.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/CrossHair.java
@@ -40,8 +40,8 @@ import com.jogamp.graph.geom.Vertex.Factory;
public class CrossHair extends UIShape {
private float width, height, lineWidth;
- public CrossHair(Factory<? extends Vertex> factory, float width, float height, float linewidth) {
- super(factory);
+ public CrossHair(Factory<? extends Vertex> factory, int renderModes, float width, float height, float linewidth) {
+ super(factory, renderModes);
this.width = width;
this.height = height;
this.lineWidth = linewidth;
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/Label.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/Label.java
index 2f942fd13..6209bd975 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/Label.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/Label.java
@@ -43,8 +43,8 @@ public class Label extends UIShape {
protected float pixelSize;
protected String text;
- public Label(Factory<? extends Vertex> factory, Font font, float pixelSize, String text) {
- super(factory);
+ public Label(Factory<? extends Vertex> factory, int renderModes, Font font, float pixelSize, String text) {
+ super(factory, renderModes);
this.font = font;
this.pixelSize = pixelSize;
this.text = text;
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/RIButton.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/RIButton.java
index d46343f9d..e83097488 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/RIButton.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/RIButton.java
@@ -32,10 +32,12 @@ import javax.media.opengl.GL2ES2;
import jogamp.graph.geom.plane.AffineTransform;
import com.jogamp.graph.curve.OutlineShape;
+import com.jogamp.graph.curve.Region;
import com.jogamp.graph.curve.opengl.RegionRenderer;
import com.jogamp.graph.font.Font;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
+import com.jogamp.opengl.math.FloatUtil;
import com.jogamp.opengl.math.geom.AABBox;
/**
@@ -49,19 +51,21 @@ public class RIButton extends UIShape {
/** {@value} */
public static final float DEFAULT_CORNER = 1f;
- private float width, height;
+ public static final float DEFAULT_2PASS_LABEL_ZOFFSET = -0.05f;
+
+ private float width, height, labelZOffset;
private final Label0 label;
private float spacingX = DEFAULT_SPACING_X;
private float spacingY = DEFAULT_SPACING_Y;
private float corner = DEFAULT_CORNER;
- private float labelZOffset = -0.05f;
- public RIButton(Factory<? extends Vertex> factory, Font labelFont, String labelText, float width, float height) {
- super(factory);
+ public RIButton(Factory<? extends Vertex> factory, int renderModes, Font labelFont, String labelText, float width, float height, float labelZOffset) {
+ super(factory, renderModes | Region.COLORCHANNEL_RENDERING_BIT);
this.label = new Label0(labelFont, labelText, new float[] { 0.9f, 0.9f, 0.9f, 1.0f });
this.width = width;
this.height = height;
+ this.labelZOffset = labelZOffset;
}
public final float getWidth() { return width; }
@@ -84,11 +88,15 @@ public class RIButton extends UIShape {
@Override
public void drawShape(GL2ES2 gl, RegionRenderer renderer, int[] sampleCount) {
- // No need to setup an poly offset for z-fighting, using one region now
- // gl.glEnable(GL2ES2.GL_POLYGON_OFFSET_FILL);
- // gl.glPolygonOffset(0.0f, 1f);
- super.drawShape(gl, renderer, sampleCount);
- // gl.glDisable(GL2ES2.GL_POLYGON_OFFSET_FILL);
+ if( false ) {
+ // Setup poly offset for z-fighting
+ gl.glEnable(GL2ES2.GL_POLYGON_OFFSET_FILL);
+ gl.glPolygonOffset(0f, 1f);
+ super.drawShape(gl, renderer, sampleCount);
+ gl.glDisable(GL2ES2.GL_POLYGON_OFFSET_FILL);
+ } else {
+ super.drawShape(gl, renderer, sampleCount);
+ }
}
@Override
@@ -198,8 +206,8 @@ public class RIButton extends UIShape {
return labelZOffset;
}
- public void setLabelZOffset(float labelZOffset) {
- this.labelZOffset = -labelZOffset;
+ public void setLabelZOffset(final float labelZOffset) {
+ this.labelZOffset = labelZOffset;
dirty |= DIRTY_SHAPE;
}
public final float getSpacingX() { return spacingX; }
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/SceneUIController.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/SceneUIController.java
index 4f77ad3ad..62e82a038 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/SceneUIController.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/SceneUIController.java
@@ -23,13 +23,12 @@ import com.jogamp.opengl.util.PMVMatrix;
public class SceneUIController implements GLEventListener{
private final ArrayList<UIShape> shapes = new ArrayList<UIShape>();
- private final float sceneDist = 1000f;
+ private final float sceneDist, zNear, zFar;
private RegionRenderer renderer;
private final int[] sampleCount = new int[1];
- private final float zNear = 0.1f, zFar = 7000f;
/** Describing the bounding box in model-coordinates of the near-plane parallel at distance one. */
private final AABBox nearPlane1Box = new AABBox();
private final int[] viewport = new int[] { 0, 0, 0, 0 };
@@ -42,12 +41,15 @@ public class SceneUIController implements GLEventListener{
private GLAutoDrawable cDrawable = null;
- public SceneUIController() {
- this(null);
+ public SceneUIController(final float sceneDist, final float zNear, final float zFar) {
+ this(null, sceneDist, zNear, zFar);
}
- public SceneUIController(RegionRenderer renderer) {
+ public SceneUIController(RegionRenderer renderer, float sceneDist, float zNear, float zFar) {
this.renderer = renderer;
+ this.sceneDist = sceneDist;
+ this.zFar = zFar;
+ this.zNear = zNear;
this.sampleCount[0] = 4;
}
@@ -205,7 +207,7 @@ public class SceneUIController implements GLEventListener{
final float zNear, final float zFar,
float orthoX, float orthoY, float orthoDist,
final float[] winZ, final float[] objPos) {
- winZ[0] = (1f/zNear-1f/orthoDist)/(1f/zNear-1f/zFar);
+ winZ[0] = FloatUtil.getOrthoWinZ(orthoDist, zNear, zFar);
pmv.gluUnProject(orthoX, orthoY, winZ[0], view, 0, objPos, 0);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIGLListener01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIGLListener01.java
index 5010e2d94..4bab03088 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIGLListener01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIGLListener01.java
@@ -45,12 +45,12 @@ import com.jogamp.opengl.util.PMVMatrix;
public class UIGLListener01 extends UIListenerBase01 {
- public UIGLListener01 (RenderState rs, boolean debug, boolean trace) {
- super(RegionRenderer.create(rs, 0, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), debug, trace);
+ public UIGLListener01 (int renderModes, RenderState rs, boolean debug, boolean trace) {
+ super(renderModes, RegionRenderer.create(rs, RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable), debug, trace);
setMatrix(-20, 00, 0f, -50);
try {
final Font font = FontFactory.get(FontFactory.UBUNTU).getDefault();
- button = new RIButton(SVertex.factory(), font, "Click me!", 4f, 3f);
+ button = new RIButton(SVertex.factory(), 0, font, "Click me!", 4f, 3f, -0.05f);
button.translate(2,1,0);
/** Button defaults !
button.setLabelColor(1.0f,1.0f,1.0f);
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java
index 21a2b079d..5445c6145 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UIListenerBase01.java
@@ -41,6 +41,7 @@ import javax.media.opengl.GLException;
import javax.media.opengl.GLPipelineFactory;
import javax.media.opengl.GLRunnable;
+import com.jogamp.graph.curve.Region;
import com.jogamp.graph.curve.opengl.RegionRenderer;
import com.jogamp.newt.event.KeyEvent;
import com.jogamp.newt.event.KeyListener;
@@ -61,6 +62,7 @@ import com.jogamp.opengl.util.GLReadBufferUtil;
*/
public abstract class UIListenerBase01 implements GLEventListener {
private final GLReadBufferUtil screenshot;
+ private final int renderModes;
private final RegionRenderer rRenderer;
private final boolean debug;
private final boolean trace;
@@ -81,7 +83,8 @@ public abstract class UIListenerBase01 implements GLEventListener {
boolean ignoreInput = false;
- public UIListenerBase01(RegionRenderer rRenderer, boolean debug, boolean trace) {
+ public UIListenerBase01(int renderModes, RegionRenderer rRenderer, boolean debug, boolean trace) {
+ this.renderModes = renderModes;
this.rRenderer = rRenderer;
this.debug = debug;
this.trace = trace;
@@ -112,7 +115,7 @@ public abstract class UIListenerBase01 implements GLEventListener {
gl = gl.getContext().setGL( GLPipelineFactory.create("javax.media.opengl.Trace", null, gl, new Object[] { System.err } ) ).getGL2ES2();
}
gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
- getRegionRenderer().init(gl);
+ getRegionRenderer().init(gl, renderModes);
}
public void reshape(GLAutoDrawable drawable, int xstart, int ystart, int width, int height) {
@@ -303,7 +306,7 @@ public abstract class UIListenerBase01 implements GLEventListener {
autoDrawable.invoke(false, new GLRunnable() {
public boolean run(GLAutoDrawable drawable) {
try {
- final String type = ( 1 == rRenderer.getRenderModes() ) ? "r2t0-msaa1" : "r2t1-msaa0" ;
+ final String type = Region.getRenderModeString(renderModes);
printScreen(drawable, "./", "demo-"+type, "snap"+screenshot_num, false);
screenshot_num++;
} catch (GLException e) {
diff --git a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
index 2c444d47e..27a91befc 100644
--- a/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
+++ b/src/test/com/jogamp/opengl/test/junit/graph/demos/ui/UINewtDemo01.java
@@ -64,7 +64,7 @@ public class UINewtDemo01 {
window.setSize(800, 400);
window.setTitle("GPU UI Newt Demo 01");
RenderState rs = RenderState.createRenderState(SVertex.factory());
- UIGLListener01 uiGLListener = new UIGLListener01 (rs, DEBUG, TRACE);
+ UIGLListener01 uiGLListener = new UIGLListener01 (0, rs, DEBUG, TRACE);
uiGLListener.attachInputListenerTo(window);
window.addGLEventListener(uiGLListener);
window.setVisible(true);
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 bca60494b..554398435 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
@@ -49,20 +49,22 @@ import com.jogamp.opengl.math.geom.AABBox;
public abstract class UIShape {
public static final boolean DRAW_DEBUG_BOX = false;
- private final Factory<? extends Vertex> vertexFactory;
-
protected static final int DIRTY_SHAPE = 1 << 0 ;
- protected int dirty = DIRTY_SHAPE;
- protected float shapesSharpness = OutlineShape.DEFAULT_SHARPNESS;
+ private final Factory<? extends Vertex> vertexFactory;
+ private final int renderModes;
protected final AABBox box;
+
protected final float[] translate = new float[] { 0f, 0f, 0f };
protected final Quaternion rotation = new Quaternion();
protected final float[] rotOrigin = new float[] { 0f, 0f, 0f };
protected final float[] scale = new float[] { 1f, 1f, 1f };
protected GLRegion region = null;
- protected int regionQuality = 99;
+ protected int regionQuality = Region.MAX_QUALITY;
+
+ protected int dirty = DIRTY_SHAPE;
+ protected float shapesSharpness = OutlineShape.DEFAULT_SHARPNESS;
protected final float[] rgbaColor = {0.6f, 0.6f, 0.6f, 1.0f};
protected final float[] selectedRGBAModulate = {1.4f, 1.4f, 1.4f, 1.0f};
@@ -73,8 +75,9 @@ public abstract class UIShape {
private boolean enabled = true;
private ArrayList<MouseListener> mouseListeners = new ArrayList<MouseListener>();
- public UIShape(Factory<? extends Vertex> factory) {
+ public UIShape(final Factory<? extends Vertex> factory, final int renderModes) {
this.vertexFactory = factory;
+ this.renderModes = renderModes;
this.box = new AABBox();
}
@@ -166,6 +169,8 @@ public abstract class UIShape {
public final AABBox getBounds() { return box; }
+ public final int getRenderModes() { return renderModes; }
+
public GLRegion getRegion(GL2ES2 gl, RegionRenderer renderer) {
validate(gl, renderer);
return region;
@@ -202,7 +207,7 @@ public abstract class UIShape {
}
final RenderState rs = renderer.getRenderState();
- if( Region.hasColorChannel( renderer.getRenderModes() ) ) {
+ if( Region.hasColorChannel( renderModes ) ) {
if( isSelect ) {
rs.setColorStatic(selectedRGBAModulate[0], selectedRGBAModulate[1], selectedRGBAModulate[2], selectedRGBAModulate[3]);
} else {
@@ -218,13 +223,13 @@ public abstract class UIShape {
if( isShapeDirty() ) {
box.reset();
if( null == region ) {
- region = GLRegion.create(renderer.getRenderModes());
+ region = GLRegion.create(renderModes);
} else {
- region.clear(gl, renderer);
+ region.clear(gl);
}
addShapeToRegion(gl, renderer);
if( DRAW_DEBUG_BOX ) {
- region.clear(gl, renderer);
+ region.clear(gl);
final OutlineShape shape = new OutlineShape(renderer.getRenderState().getVertexFactory());
shape.setSharpness(shapesSharpness);
shape.setIsQuadraticNurbs();
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/acore/GLReadBuffer00Base.java b/src/test/com/jogamp/opengl/test/junit/jogl/acore/GLReadBuffer00Base.java
index 2e13f22e2..b96ef21a9 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/acore/GLReadBuffer00Base.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/acore/GLReadBuffer00Base.java
@@ -63,7 +63,7 @@ public abstract class GLReadBuffer00Base extends UITestCase {
// FIXME: Graph TextRenderer does not AA well w/o MSAA and FBO
super(Region.VBAA_RENDERING_BIT, new int[] { 4 });
this.setRendererCallbacks(RegionRenderer.defaultBlendEnable, RegionRenderer.defaultBlendDisable);
- regionFPS = GLRegion.create(usrRenderModes);
+ regionFPS = GLRegion.create(renderModes);
staticRGBAColor[0] = 0.9f;
staticRGBAColor[1] = 0.9f;
@@ -73,7 +73,7 @@ public abstract class GLReadBuffer00Base extends UITestCase {
@Override
public void dispose(GLAutoDrawable drawable) {
- regionFPS.destroy(drawable.getGL().getGL2ES2(), renderer);
+ regionFPS.destroy(drawable.getGL().getGL2ES2());
super.dispose(drawable);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
index 62977f5ec..2abf083b1 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieCube.java
@@ -180,8 +180,8 @@ public class MovieCube implements GLEventListener {
if( lowPerfDevice ) {
regionFPS = null;
} else {
- regionFPS = GLRegion.create(usrRenderModes);
- System.err.println("RegionFPS "+Region.getRenderModeString(usrRenderModes)+", sampleCount "+textSampleCount[0]+", class "+regionFPS.getClass().getName());
+ regionFPS = GLRegion.create(renderModes);
+ System.err.println("RegionFPS "+Region.getRenderModeString(renderModes)+", sampleCount "+textSampleCount[0]+", class "+regionFPS.getClass().getName());
}
staticRGBAColor[0] = 0.1f;
staticRGBAColor[1] = 0.1f;
@@ -208,7 +208,7 @@ public class MovieCube implements GLEventListener {
@Override
public void dispose(GLAutoDrawable drawable) {
if( null != regionFPS ) {
- regionFPS.destroy(drawable.getGL().getGL2ES2(), renderer);
+ regionFPS.destroy(drawable.getGL().getGL2ES2());
}
super.dispose(drawable);
}
diff --git a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
index 7dbe68f84..f76859a9e 100644
--- a/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
+++ b/src/test/com/jogamp/opengl/test/junit/jogl/demos/es2/av/MovieSimple.java
@@ -149,8 +149,8 @@ public class MovieSimple implements GLEventListener {
if( lowPerfDevice ) {
regionFPS = null;
} else {
- regionFPS = GLRegion.create(usrRenderModes);
- System.err.println("RegionFPS "+Region.getRenderModeString(usrRenderModes)+", sampleCount "+textSampleCount[0]+", class "+regionFPS.getClass().getName());
+ regionFPS = GLRegion.create(renderModes);
+ System.err.println("RegionFPS "+Region.getRenderModeString(renderModes)+", sampleCount "+textSampleCount[0]+", class "+regionFPS.getClass().getName());
}
staticRGBAColor[0] = 0.9f;
staticRGBAColor[1] = 0.9f;
@@ -166,7 +166,7 @@ public class MovieSimple implements GLEventListener {
@Override
public void dispose(GLAutoDrawable drawable) {
if( null != regionFPS ) {
- regionFPS.destroy(drawable.getGL().getGL2ES2(), renderer);
+ regionFPS.destroy(drawable.getGL().getGL2ES2());
}
super.dispose(drawable);
}