From 4b8bd5ec58cb2edfb51bd9ee930beb9c539a8a0b Mon Sep 17 00:00:00 2001
From: Sven Gothel <sgothel@jausoft.com>
Date: Fri, 1 Apr 2011 06:48:52 +0200
Subject: Final core and demo changes for jogl merge

Core:
- Region: Cleanup up constant names
- Renderer: Add getRenderType()
- TextRenderer: Add cache size limit
- JavaFontLoader: Add FIXME 'Add cache size to limit memory usage'
- UbuntuFontLoader: Add cache and FIXME 'Add cache size to limit memory usage'
- TypecastFont: Add FIXME 'Add cache size to limit memory usage ??'

Demos:
- Relocated and split (main/listener) for jogl merge
- Add 's' for screenshot
- Text:
  - Add 'i' for live editing mode (until CR, backspace supported)
---
 .../test/junit/graph/TestTextRenderer01.java       | 169 +++++++++++++++++++++
 1 file changed, 169 insertions(+)
 create mode 100755 src/com/jogamp/opengl/test/junit/graph/TestTextRenderer01.java

(limited to 'src/com/jogamp/opengl/test/junit/graph/TestTextRenderer01.java')

diff --git a/src/com/jogamp/opengl/test/junit/graph/TestTextRenderer01.java b/src/com/jogamp/opengl/test/junit/graph/TestTextRenderer01.java
new file mode 100755
index 000000000..c954c6aa7
--- /dev/null
+++ b/src/com/jogamp/opengl/test/junit/graph/TestTextRenderer01.java
@@ -0,0 +1,169 @@
+package com.jogamp.opengl.test.junit.graph;
+
+import java.io.IOException;
+
+import javax.media.nativewindow.NativeWindowFactory;
+import javax.media.opengl.GL;
+import javax.media.opengl.GL2ES2;
+import javax.media.opengl.GLAutoDrawable;
+import javax.media.opengl.GLCapabilities;
+import javax.media.opengl.GLCapabilitiesImmutable;
+import javax.media.opengl.GLException;
+import javax.media.opengl.GLProfile;
+
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import com.jogamp.graph.curve.Region;
+import com.jogamp.graph.curve.opengl.TextRenderer;
+import com.jogamp.graph.font.FontFactory;
+import com.jogamp.graph.geom.opengl.SVertex;
+import com.jogamp.newt.opengl.GLWindow;
+import com.jogamp.opengl.test.junit.graph.demos.GPUTextRendererListenerBase01;
+
+
+public class TestTextRenderer01 {
+
+    public static void main(String args[]) throws IOException {
+        String tstname = TestTextRenderer01.class.getName();
+        org.junit.runner.JUnitCore.main(tstname);
+    }    
+        
+	@BeforeClass
+	public static void initClass() {
+		GLProfile.initSingleton(true);
+		NativeWindowFactory.initSingleton(true);
+	}
+
+	static void destroyWindow(GLWindow window) {
+		if(null!=window) {
+			window.destroy();
+		}
+	}
+
+	static GLWindow createWindow(String title, GLCapabilitiesImmutable caps, int width, int height) {
+		Assert.assertNotNull(caps);
+
+		GLWindow window = GLWindow.create(caps);
+		window.setSize(width, height);
+		window.setPosition(10, 10);
+		window.setTitle(title);
+		Assert.assertNotNull(window);
+		window.setVisible(true);
+
+		return window;
+	}
+
+	@Test
+	public void testTextRendererR2T01() throws InterruptedException {
+        GLProfile glp = GLProfile.getGL2ES2();
+		
+		GLCapabilities caps = new GLCapabilities(glp);
+		caps.setAlphaBits(4);	
+
+		GLWindow window = createWindow("text-r2t1-msaa0", caps, 800,400);
+		TextGLListener textGLListener = new TextGLListener(Region.TWO_PASS);
+        textGLListener.attachInputListenerTo(window);
+        window.addGLEventListener(textGLListener);
+        
+        textGLListener.setFontSet(FontFactory.UBUNTU, 0, 0);
+        textGLListener.setTech(-400, -30, 0f, -1000, window.getWidth()*2);
+		window.display();
+		
+		textGLListener.setTech(-400, -30, 0, -380, window.getWidth()*3);
+        window.display();
+		
+		textGLListener.setTech(-400, -20, 0, -80, window.getWidth()*4);
+        window.display();
+
+        textGLListener.setFontSet(FontFactory.JAVA, 0, 0);
+        textGLListener.setTech(-400, -30, 0f, -1000, window.getWidth()*2);
+        window.display();
+        
+        textGLListener.setTech(-400, -30, 0, -380, window.getWidth()*3);
+        window.display();
+        
+        textGLListener.setTech(-400, -20, 0, -80, window.getWidth()*4);
+        window.display();
+        
+		destroyWindow(window); 
+	}
+	
+	@Test
+	public void testTextRendererMSAA01() throws InterruptedException {
+		GLProfile glp = GLProfile.get(GLProfile.GL2ES2);
+		GLCapabilities caps = new GLCapabilities(glp);
+		caps.setAlphaBits(4);	
+		caps.setSampleBuffers(true);
+		caps.setNumSamples(4);
+
+		GLWindow window = createWindow("text-r2t0-msaa1", caps, 800, 400);
+		TextGLListener textGLListener = new TextGLListener(Region.SINGLE_PASS);
+        textGLListener.attachInputListenerTo(window);
+        window.addGLEventListener(textGLListener);
+        
+        textGLListener.setFontSet(FontFactory.UBUNTU, 0, 0);
+        textGLListener.setTech(-400, -30, 0f, -1000, 0);
+        window.display();
+        
+        textGLListener.setTech(-400, -30, 0, -380, 0);
+        window.display();
+        
+        textGLListener.setTech(-400, -20, 0, -80, 0);
+        window.display();
+        
+        textGLListener.setFontSet(FontFactory.JAVA, 0, 0);
+        textGLListener.setTech(-400, -30, 0f, -1000, 0);
+        window.display();
+        
+        textGLListener.setTech(-400, -30, 0, -380, 0);
+        window.display();
+        
+        textGLListener.setTech(-400, -20, 0, -80, 0);
+        window.display();
+        
+		destroyWindow(window); 
+	}
+	
+	private class TextGLListener extends GPUTextRendererListenerBase01 {
+	    String winTitle;
+	    
+		public TextGLListener(int type) {
+			super(SVertex.factory(), type, false, false);
+		}
+		
+		public void attachInputListenerTo(GLWindow window) {
+		    super.attachInputListenerTo(window);
+		    winTitle = window.getTitle();
+		}
+		public void setTech(float xt, float yt, float angle, int zoom, int fboSize){
+			setMatrix(xt, yt, angle, zoom, fboSize);       
+		}
+
+		public void init(GLAutoDrawable drawable) {
+			GL2ES2 gl = drawable.getGL().getGL2ES2();
+			super.init(drawable);
+			gl.setSwapInterval(1);
+			gl.glEnable(GL.GL_DEPTH_TEST);
+			
+			final TextRenderer textRenderer = (TextRenderer) getRenderer();
+			
+			textRenderer.init(gl);
+			textRenderer.setAlpha(gl, 1.0f);
+			textRenderer.setColor(gl, 0.0f, 0.0f, 0.0f);
+		}
+		
+		public void display(GLAutoDrawable drawable) {
+			super.display(drawable);
+
+			try {
+				printScreen(drawable, "./", winTitle, false);
+			} catch (GLException e) {
+				e.printStackTrace();
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		}
+	}
+}
-- 
cgit v1.2.3