aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/jogl/classes/com')
-rw-r--r--src/jogl/classes/com/jogamp/graph/curve/opengl/TextRegionUtil.java21
-rw-r--r--src/jogl/classes/com/jogamp/graph/font/Font.java3
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