diff options
Diffstat (limited to 'src/jogl/classes/com/jogamp')
-rw-r--r-- | src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java | 21 | ||||
-rw-r--r-- | src/jogl/classes/com/jogamp/graph/font/Font.java | 3 |
2 files changed, 14 insertions, 10 deletions
diff --git a/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java b/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java index e7ed335ec..7e8ed4023 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java @@ -125,11 +125,12 @@ public class TextRegionUtil { throw new GLException("TextRendererImpl01: not initialized!"); } final RenderState rs = renderer.getRenderState(); - GLRegion region = getCachedRegion(font, str, pixelSize); + final int special = 0; + GLRegion region = getCachedRegion(font, str, pixelSize, special); if(null == region) { region = GLRegion.create(renderer.getRenderModes()); addStringToRegion(region, rs.getVertexFactory(), font, str, pixelSize); - addCachedRegion(gl, font, str, pixelSize, region); + addCachedRegion(gl, font, str, pixelSize, special, region); } region.draw(gl, renderer, texSize); } @@ -212,13 +213,13 @@ public class TextRegionUtil { } } - protected final GLRegion getCachedRegion(Font font, CharSequence str, int fontSize) { - return stringCacheMap.get(getKey(font, str, fontSize)); + protected final GLRegion getCachedRegion(Font font, CharSequence str, int fontSize, int special) { + return stringCacheMap.get(getKey(font, str, fontSize, special)); } - protected final void addCachedRegion(GL2ES2 gl, Font font, CharSequence str, int fontSize, GLRegion glyphString) { + protected final void addCachedRegion(GL2ES2 gl, Font font, CharSequence str, int fontSize, int special, GLRegion glyphString) { if ( 0 != getCacheLimit() ) { - final String key = getKey(font, str, fontSize); + final String key = getKey(font, str, fontSize, special); final GLRegion oldRegion = stringCacheMap.put(key, glyphString); if ( null == oldRegion ) { // new entry .. @@ -228,8 +229,8 @@ public class TextRegionUtil { } } - protected final void removeCachedRegion(GL2ES2 gl, Font font, CharSequence str, int fontSize) { - final String key = getKey(font, str, fontSize); + protected final void removeCachedRegion(GL2ES2 gl, Font font, CharSequence str, int fontSize, int special) { + final String key = getKey(font, str, fontSize, special); GLRegion region = stringCacheMap.remove(key); if(null != region) { region.destroy(gl, renderer); @@ -247,10 +248,10 @@ public class TextRegionUtil { } } - protected final String getKey(Font font, CharSequence str, int fontSize) { + protected final String getKey(Font font, CharSequence str, int fontSize, int special) { final StringBuilder sb = new StringBuilder(); return font.getName(sb, Font.NAME_UNIQUNAME) - .append(".").append(str.hashCode()).append(".").append(fontSize).toString(); + .append(".").append(str.hashCode()).append(".").append(fontSize).append(special).toString(); } /** Default cache limit, see {@link #setCacheLimit(int)} */ diff --git a/src/jogl/classes/com/jogamp/graph/font/Font.java b/src/jogl/classes/com/jogamp/graph/font/Font.java index 122015218..9758e4d41 100644 --- a/src/jogl/classes/com/jogamp/graph/font/Font.java +++ b/src/jogl/classes/com/jogamp/graph/font/Font.java @@ -35,6 +35,8 @@ import com.jogamp.opengl.math.geom.AABBox; * * TrueType Font Specification: * http://developer.apple.com/fonts/ttrefman/rm06/Chap6.html + * http://www.microsoft.com/typography/SpecificationsOverview.mspx + * http://www.microsoft.com/typography/otspec/ * * TrueType Font Table Introduction: * http://scripts.sil.org/cms/scripts/page.php?item_id=IWS-Chapter08 @@ -76,6 +78,7 @@ public interface Font { * * http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6cmap.html * http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6glyf.html + * http://www.microsoft.com/typography/otspec/glyf.htm */ public interface Glyph { // reserved special glyph IDs |