summaryrefslogtreecommitdiffstats
path: root/src/demo/GPUTextNewtDemo01.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-03-26 12:47:05 +0100
committerSven Gothel <[email protected]>2011-03-26 12:47:05 +0100
commit654c2bfbfcfb00b5ffe67e2490cebbfa267049e4 (patch)
treecdf45e13902257155e5349dc2db60ad823457cd2 /src/demo/GPUTextNewtDemo01.java
parent28c3731a75da19661f4ed5d6208807d7c4d0fb5a (diff)
Common demo gllistener for text; Cleanup HwTextRenderer: Use GL as parameter (matching API), only update data if necessary (uniform), hold data in GLUniform
Diffstat (limited to 'src/demo/GPUTextNewtDemo01.java')
-rw-r--r--src/demo/GPUTextNewtDemo01.java146
1 files changed, 23 insertions, 123 deletions
diff --git a/src/demo/GPUTextNewtDemo01.java b/src/demo/GPUTextNewtDemo01.java
index 25c40b433..ad1020122 100644
--- a/src/demo/GPUTextNewtDemo01.java
+++ b/src/demo/GPUTextNewtDemo01.java
@@ -27,44 +27,28 @@
*/
package demo;
-import javax.media.opengl.GL;
import javax.media.opengl.GL2ES2;
-import javax.media.opengl.GL2GL3;
import javax.media.opengl.GLAutoDrawable;
import javax.media.opengl.GLCapabilities;
-import javax.media.opengl.GLEventListener;
import javax.media.opengl.GLProfile;
import com.jogamp.graph.curve.Region;
-import com.jogamp.graph.curve.text.HwTextRenderer;
-import com.jogamp.graph.font.Font;
-import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.opengl.SVertex;
-import com.jogamp.newt.event.KeyEvent;
-import com.jogamp.newt.event.KeyListener;
-import com.jogamp.newt.event.WindowAdapter;
-import com.jogamp.newt.event.WindowEvent;
import com.jogamp.newt.opengl.GLWindow;
import com.jogamp.opengl.util.FPSAnimator;
public class GPUTextNewtDemo01 {
- private static void create(){
- new TextNewtWindow1();
- }
+ static final boolean DEBUG = false;
+ static final boolean TRACE = false;
+
public static void main(String[] args) {
- create();
+ GPUTextNewtDemo01 test = new GPUTextNewtDemo01();
+ test.testMe();
}
-}
-
-class TextNewtWindow1 {
- Vertex.Factory<SVertex> pointFactory = SVertex.factory();
TextGLListener textGLListener = null;
- public TextNewtWindow1(){
- createWindow();
- }
- private void createWindow() {
+ public void testMe() {
GLProfile.initSingleton(true);
GLProfile glp = GLProfile.getGL2ES2();
GLCapabilities caps = new GLCapabilities(glp);
@@ -80,120 +64,36 @@ class TextNewtWindow1 {
window.setTitle("GPU Text Newt Demo 01 - r2t0 msaa1");
textGLListener = new TextGLListener();
- window.addGLEventListener(textGLListener);
+ textGLListener.attachTo(window);
window.setVisible(true);
-
- window.addKeyListener(new KeyListener() {
- public void keyPressed(KeyEvent arg0) {
- if(arg0.getKeyCode() == KeyEvent.VK_1){
- textGLListener.zoomIn();
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_2){
- textGLListener.zoomOut();
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_UP){
- textGLListener.move(0, -1);
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_DOWN){
- textGLListener.move(0, 1);
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_LEFT){
- textGLListener.move(1, 0);
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_RIGHT){
- textGLListener.move(-1, 0);
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_0){
- textGLListener.rotate(1);
- }
- else if(arg0.getKeyCode() == KeyEvent.VK_9){
- textGLListener.rotate(-1);
- }
- }
- public void keyTyped(KeyEvent arg0) {}
- public void keyReleased(KeyEvent arg0) {}
- });
-
- FPSAnimator animator = new FPSAnimator(60);
+ FPSAnimator animator = new FPSAnimator(10);
+ // Animator animator = new Animator();
animator.add(window);
- window.addWindowListener(new WindowAdapter() {
- public void windowDestroyNotify(WindowEvent arg0) {
- System.exit(0);
- };
- });
animator.start();
}
- private class TextGLListener implements GLEventListener{
- HwTextRenderer textRenderer = null;
-
- public TextGLListener(){
-
+
+ private class TextGLListener extends GPUTextGLListenerBase01 {
+ public TextGLListener() {
+ super(SVertex.factory(), Region.SINGLE_PASS, DEBUG, TRACE);
+ setMatrix(-10, 10, 0f, -70, 0);
}
-
+
public void init(GLAutoDrawable drawable) {
- GL2ES2 gl = drawable.getGL().getGL2ES2();
+ GL2ES2 gl = drawable.getGL().getGL2ES2();
+
+ super.init(drawable);
+
gl.setSwapInterval(1);
gl.glEnable(GL2ES2.GL_DEPTH_TEST);
- textRenderer = new HwTextRenderer(drawable.getContext(), pointFactory, Region.SINGLE_PASS);
- textRenderer.setAlpha(1.0f);
- textRenderer.setColor(0.0f, 0.0f, 0.0f);
+ textRenderer.init(gl);
+ textRenderer.setAlpha(gl, 1.0f);
+ textRenderer.setColor(gl, 0.0f, 0.0f, 0.0f);
//gl.glSampleCoverage(0.95f, false);
//gl.glEnable(GL2GL3.GL_SAMPLE_COVERAGE); // sample coverage doesn't really make a difference to lines
+ //gl.glEnable(GL2GL3.GL_SAMPLE_ALPHA_TO_COVERAGE);
//gl.glEnable(GL2GL3.GL_SAMPLE_ALPHA_TO_ONE);
MSAATool.dump(drawable);
}
-
- float ang = 0;
- float zoom = -70;
- float xTran = -10;
- float yTran = 10;
-
- public void display(GLAutoDrawable drawable) {
- GL2ES2 gl = drawable.getGL().getGL2ES2();
-
- gl.glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
- gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
-
- textRenderer.resetMatrix();
- textRenderer.translate(xTran, yTran, zoom);
- textRenderer.rotate(ang, 0, 1, 0);
-
- String text1 = "abcdef\nghijklmn\nopqrstuv\nwxyz";
- String text2 = text1.toUpperCase();
-
- Font font = textRenderer.createFont(pointFactory, "Lucida Sans Regular",40);
- float[] position = new float[]{0,0,0};
-
- try {
- textRenderer.renderString3D(font, text2, position, 0);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public void reshape(GLAutoDrawable drawable, int xstart, int ystart, int width, int height){
- GL2ES2 gl = drawable.getGL().getGL2ES2();
- gl.glViewport(xstart, ystart, width, height);
-
- textRenderer.reshape(drawable, 45.0f, width, height, 0.1f, 7000.0f);
- }
-
- public void zoomIn(){
- zoom++;
- }
- public void zoomOut(){
- zoom--;
- }
- public void move(float x, float y){
- xTran += x;
- yTran += y;
- }
- public void rotate(float delta){
- ang+= delta;
- ang%=360;
- }
- public void dispose(GLAutoDrawable arg0) {
- textRenderer.clearCached();
- }
}
}