From 55356d999638491980a90cb2263b55c5d2e53e91 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 30 Mar 2011 06:59:43 +0200 Subject: Font Refactoring ; Misc Changes ; Demo/Test Update Font Refactoring - Notion of distributed FontSet - FontFactory may produce FontSet and/or a Font by absolute ttf file path - Adding support for free Ubuntu fonts - Remove Vertex.Factory dependency for Font creation - Typecast Impl - Fix CmapTable selection - Fix horizontal spacing of space - Misc Changes - HwTextRenderer - Offer reshape for perspective and orthogonal view - Expose PMVMatrix, allowing user to setup their own view math. Demo Update - Dump font set a-zA-Z... - Dump 'lazy dog ..' text - Action: - s: toogle 'font set' - f: toggle fps - v: toggle v-sync - space: toggle font (ubuntu/java) - formated screenshot filename w/ font name Test Update: - add font set iteration --- .../test/junit/graph/TestHwTextRenderer01.java | 134 +++++++++------------ 1 file changed, 57 insertions(+), 77 deletions(-) (limited to 'src/test/com/jogamp/opengl') diff --git a/src/test/com/jogamp/opengl/test/junit/graph/TestHwTextRenderer01.java b/src/test/com/jogamp/opengl/test/junit/graph/TestHwTextRenderer01.java index a0b04d69a..7f5ee9d98 100755 --- a/src/test/com/jogamp/opengl/test/junit/graph/TestHwTextRenderer01.java +++ b/src/test/com/jogamp/opengl/test/junit/graph/TestHwTextRenderer01.java @@ -7,6 +7,7 @@ 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; @@ -15,10 +16,9 @@ import org.junit.BeforeClass; import org.junit.Test; import com.jogamp.graph.curve.Region; +import com.jogamp.graph.font.FontFactory; import com.jogamp.graph.geom.opengl.SVertex; -import com.jogamp.newt.Window; import com.jogamp.newt.opengl.GLWindow; -import com.jogamp.opengl.util.FPSAnimator; import demo.GPUTextGLListenerBase01; @@ -30,13 +30,13 @@ public class TestHwTextRenderer01 { NativeWindowFactory.initSingleton(true); } - static void destroyWindow(Window window) { + static void destroyWindow(GLWindow window) { if(null!=window) { window.destroy(); } } - static GLWindow createWindow(String title, GLCapabilities caps, int width, int height) { + static GLWindow createWindow(String title, GLCapabilitiesImmutable caps, int width, int height) { Assert.assertNotNull(caps); GLWindow window = GLWindow.create(caps); @@ -53,88 +53,83 @@ public class TestHwTextRenderer01 { public void testTextRendererR2T01() throws InterruptedException { GLProfile glp = GLProfile.get(GLProfile.GL3bc); GLCapabilities caps = new GLCapabilities(glp); + caps.setOnscreen(false); caps.setAlphaBits(4); - GLWindow window = createWindow("r2t1msaa0", caps, 400,400); + GLWindow window = createWindow("r2t1-msaa0", caps, 800,400); TextGLListener textGLListener = new TextGLListener(Region.TWO_PASS); - textGLListener.setTech(-10, 10, 0f, -1000, 400); - textGLListener.attachTo(window); - - FPSAnimator animator = new FPSAnimator(10); - animator.add(window); - animator.start(); - - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } + textGLListener.attachTo(window); + + textGLListener.setFontSet(FontFactory.UBUNTU, 0, 0); + textGLListener.setTech(-400, -30, 0f, -1000, 400); + window.display(); - textGLListener.resetPrinting(); - textGLListener.setTech(-111, 74, 0, -380, 1100); - Thread.sleep(100); - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } - - textGLListener.resetPrinting(); - textGLListener.setTech(-111, 74, 0, -80, 2500); - Thread.sleep(100); - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } + textGLListener.setTech(-400, -30, 0, -380, 1100); + window.display(); - animator.stop(); + textGLListener.setTech(-400, -20, 0, -80, 2500); + window.display(); + + textGLListener.setFontSet(FontFactory.JAVA, 0, 0); + textGLListener.setTech(-400, -30, 0f, -1000, 400); + window.display(); + + textGLListener.setTech(-400, -30, 0, -380, 1100); + window.display(); + + textGLListener.setTech(-400, -20, 0, -80, 2500); + window.display(); + destroyWindow(window); - - Thread.sleep(1000); } @Test public void testTextRendererMSAA01() throws InterruptedException { GLProfile glp = GLProfile.get(GLProfile.GL2ES2); GLCapabilities caps = new GLCapabilities(glp); + caps.setOnscreen(false); caps.setAlphaBits(4); caps.setSampleBuffers(true); caps.setNumSamples(4); - GLWindow window = createWindow("r2t0msaa1", caps, 400, 400); + GLWindow window = createWindow("r2t0-msaa1", caps, 800, 400); TextGLListener textGLListener = new TextGLListener(Region.SINGLE_PASS); - textGLListener.setTech(-10, 10, 0f, -1000, 0); - textGLListener.attachTo(window); - - FPSAnimator animator = new FPSAnimator(10); - animator.add(window); - animator.start(); - - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } - - textGLListener.resetPrinting(); - textGLListener.setTech(-111, 74, 0, -380, 0); - Thread.sleep(100); - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } - - textGLListener.resetPrinting(); - textGLListener.setTech(-111, 74, 0, -80, 0); - Thread.sleep(100); - while(!textGLListener.isPrinted()){ - Thread.sleep(100); - } - - animator.stop(); + textGLListener.attachTo(window); + + 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); - - Thread.sleep(1000); } private class TextGLListener extends GPUTextGLListenerBase01 { - GLWindow glwindow; + String winTitle; + public TextGLListener(int type) { super(SVertex.factory(), type, false, false); } + public void attachTo(GLWindow window) { + super.attachTo(window); + winTitle = window.getTitle(); + } public void setTech(float xt, float yt, float angle, int zoom, int fboSize){ setMatrix(xt, yt, angle, zoom, fboSize); } @@ -148,27 +143,12 @@ public class TestHwTextRenderer01 { textRenderer.setAlpha(gl, 1.0f); textRenderer.setColor(gl, 0.0f, 0.0f, 0.0f); } - public void attachTo(GLWindow window) { - super.attachTo(window); - glwindow = window; - } - - public boolean isPrinted(){ - return !printScreen; - } - public void resetPrinting(){ - printScreen = true; - } - public void display(GLAutoDrawable drawable) { super.display(drawable); try { - if(printScreen){ - printScreen(glwindow, "./", glwindow.getTitle(), false); - printScreen = false; - } + printScreen("./", winTitle, drawable.getWidth(), drawable.getHeight(), false); } catch (GLException e) { e.printStackTrace(); } catch (IOException e) { -- cgit v1.2.3