summaryrefslogtreecommitdiffstats
path: root/src/com/jogamp/graph/curve/text
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2011-03-26 19:26:41 +0100
committerSven Gothel <[email protected]>2011-03-26 19:26:41 +0100
commit929fc058c56781763c79015f4dbbf9e14dc808a2 (patch)
tree231e58a5abcbd8186da79848c045b13e3b05f92f /src/com/jogamp/graph/curve/text
parenta7c95f26e87460b76763f26723bbd9379c9fc4cb (diff)
Font: Make font instances size agnostic (remove all size states), size is only a render time parameter. Add missing bounds/width/height queries to TypecastFont
Diffstat (limited to 'src/com/jogamp/graph/curve/text')
-rw-r--r--src/com/jogamp/graph/curve/text/HwTextRenderer.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/com/jogamp/graph/curve/text/HwTextRenderer.java b/src/com/jogamp/graph/curve/text/HwTextRenderer.java
index b16d2e6fd..f30f42cc5 100644
--- a/src/com/jogamp/graph/curve/text/HwTextRenderer.java
+++ b/src/com/jogamp/graph/curve/text/HwTextRenderer.java
@@ -114,8 +114,8 @@ public class HwTextRenderer {
this.regionType = type;
}
- public Font createFont(Vertex.Factory<? extends Vertex> factory, String name, int size) {
- return fontFactory.createFont(factory, name, size);
+ public Font createFont(Vertex.Factory<? extends Vertex> factory, String name) {
+ return fontFactory.createFont(factory, name);
}
@@ -123,9 +123,8 @@ public class HwTextRenderer {
String[] families,
String style,
String variant,
- String weight,
- String size) {
- return fontFactory.createFont(factory, families, style, variant, weight, size);
+ String weight) {
+ return fontFactory.createFont(factory, families, style, variant, weight);
}
/**
@@ -312,11 +311,11 @@ public class HwTextRenderer {
return true;
}
- private GlyphString createString(GL2ES2 gl, Font font, String str) {
+ private GlyphString createString(GL2ES2 gl, Font font, int size, String str) {
AffineTransform affineTransform = new AffineTransform(pointFactory);
Path2D[] paths = new Path2D[str.length()];
- ((FontInt)font).getOutline(str, affineTransform, paths);
+ ((FontInt)font).getOutline(str, size, affineTransform, paths);
GlyphString glyphString = new GlyphString(pointFactory, font.getName(), str);
glyphString.createfromFontPath(paths, affineTransform);
@@ -337,25 +336,27 @@ public class HwTextRenderer {
* @param font font to be used
* @param str text to be rendered
* @param position the lower left corner of the string
- * @param size texture size for multipass render
+ * @param fontSize font size
+ * @param texSize texture size for multipass render
* @throws Exception if TextRenderer not initialized
*/
- public void renderString3D(GL2ES2 gl, Font font, String str, float[] position, int size) {
+ public void renderString3D(GL2ES2 gl, Font font, String str, float[] position, int fontSize, int texSize) {
if(!initialized){
throw new GLException("HWTextRenderer: not initialized!");
}
- String fontStrHash = getTextHashCode(font, str);
+ String fontStrHash = getTextHashCode(font, str, fontSize);
GlyphString glyphString = strings.get(fontStrHash);
if(null == glyphString) {
- glyphString = createString(gl, font, str);
+ glyphString = createString(gl, font, fontSize, str);
strings.put(fontStrHash, glyphString);
}
- glyphString.renderString3D(pmvMatrix, win_width, win_height, size);
+ glyphString.renderString3D(pmvMatrix, win_width, win_height, texSize);
}
- private String getTextHashCode(Font font, String str){
- return "" + str.hashCode() + font.getSize();
+ private String getTextHashCode(Font font, String str, int fontSize) {
+ // FIXME: use integer hash code
+ return font.getName() + "." + str.hashCode() + "." + fontSize;
}
/** Clears the cached string curves