summaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/graph/font
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2014-02-23 14:51:06 +0100
committerSven Gothel <[email protected]>2014-02-23 14:51:06 +0100
commit3352601e0860584509adf2b76f993d03893ded4b (patch)
tree974fccc8c0eb2f5ad9d4ffd741dfc35869ed67b5 /src/jogl/classes/jogamp/graph/font
parentf51933f0ebe9ae030c26c066e59a728ce08b8559 (diff)
parentc67de337a8aaf52e36104c3f13e273aa19d21f1f (diff)
Merge branch 'master' into stash_glyphcache
Conflicts: make/scripts/tests.sh src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java src/jogl/classes/com/jogamp/graph/curve/Region.java src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java src/jogl/classes/com/jogamp/graph/curve/opengl/Renderer.java src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java src/jogl/classes/com/jogamp/graph/font/Font.java src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java src/jogl/classes/jogamp/graph/curve/text/GlyphString.java src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
Diffstat (limited to 'src/jogl/classes/jogamp/graph/font')
-rw-r--r--src/jogl/classes/jogamp/graph/font/FontInt.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/JavaFontLoader.java53
-rw-r--r--src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java129
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java62
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/TypecastFontConstructor.java16
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java100
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java22
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java28
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/Mnemonic.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java37
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/OTFontCollection.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/OTGlyph.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceData.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceFile.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceHeader.java6
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceMap.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceReference.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceType.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java111
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java136
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Charstring.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CharstringType2.java21
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDef.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat1.java9
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat2.java9
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java5
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java31
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java7
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java9
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java13
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Coverage.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat1.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat2.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Device.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/DirectoryEntry.java6
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigEntry.java14
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureList.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureRecord.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspRange.java13
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java17
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java9
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java24
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java7
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java24
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java23
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java7
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java3
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtable.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat0.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat2.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java16
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/KerningPair.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSys.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSysRecord.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Ligature.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LigatureSubstFormat1.java3
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java13
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Lookup.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupList.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupSubtableFactory.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java19
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java17
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java19
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java16
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java17
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Panose.java27
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java17
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java21
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java15
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java8
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/RangeRecord.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Script.java6
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptList.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptRecord.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/SignatureBlock.java11
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubst.java2
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat1.java5
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat2.java5
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/TTCHeader.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java12
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java3
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableException.java6
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableFactory.java10
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java43
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java5
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java3
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/t2/T2Interpreter.java146
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Interpreter.java4
-rw-r--r--src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Parser.java1
102 files changed, 1006 insertions, 750 deletions
diff --git a/src/jogl/classes/jogamp/graph/font/FontInt.java b/src/jogl/classes/jogamp/graph/font/FontInt.java
index 7528a692b..1f4eaf20d 100644
--- a/src/jogl/classes/jogamp/graph/font/FontInt.java
+++ b/src/jogl/classes/jogamp/graph/font/FontInt.java
@@ -35,7 +35,7 @@ public interface FontInt extends Font {
public interface GlyphInt extends Font.Glyph {
public Path2D getPath(); // unscaled path
- public Path2D getPath(float pixelSize);
+ public Path2D getPath(float pixelSize);
}
}
diff --git a/src/jogl/classes/jogamp/graph/font/JavaFontLoader.java b/src/jogl/classes/jogamp/graph/font/JavaFontLoader.java
index a00e9579c..e3df0af1d 100644
--- a/src/jogl/classes/jogamp/graph/font/JavaFontLoader.java
+++ b/src/jogl/classes/jogamp/graph/font/JavaFontLoader.java
@@ -40,13 +40,16 @@ import com.jogamp.graph.font.FontSet;
import com.jogamp.graph.font.FontFactory;
public class JavaFontLoader implements FontSet {
-
- final static FontSet fontLoader = new JavaFontLoader();
+
+ // FIXME: Add cache size to limit memory usage
+ private static final IntObjectHashMap fontMap = new IntObjectHashMap();
+
+ private static final FontSet fontLoader = new JavaFontLoader();
public static FontSet get() {
return fontLoader;
}
-
+
final static String availableFontFileNames[] =
{
/* 00 */ "LucidaBrightRegular.ttf",
@@ -58,11 +61,12 @@ public class JavaFontLoader implements FontSet {
/* 06 */ "LucidaTypewriterRegular.ttf",
/* 07 */ "LucidaTypewriterBold.ttf",
};
-
+
final String javaFontPath;
-
+
private JavaFontLoader() {
final String javaHome = AccessController.doPrivileged(new PrivilegedAction<String>() {
+ @Override
public String run() {
return System.getProperty("java.home");
}
@@ -74,17 +78,16 @@ public class JavaFontLoader implements FontSet {
}
}
- // FIXME: Add cache size to limit memory usage
- static final IntObjectHashMap fontMap = new IntObjectHashMap();
-
static boolean is(int bits, int bit) {
return 0 != ( bits & bit ) ;
}
-
+
+ @Override
public Font getDefault() throws IOException {
- return get(FAMILY_REGULAR, 0) ; // Sans Serif Regular
+ return get(FAMILY_REGULAR, 0) ; // Sans Serif Regular
}
-
+
+ @Override
public Font get(int family, int style) throws IOException {
Font font = (Font)fontMap.get( ( family << 8 ) | style );
if (font != null) {
@@ -92,8 +95,8 @@ public class JavaFontLoader implements FontSet {
}
// 1st process Sans Serif (2 fonts)
- if( is(style, STYLE_SERIF) ) {
- if( is(style, STYLE_BOLD) ) {
+ if( is(style, STYLE_SERIF) ) {
+ if( is(style, STYLE_BOLD) ) {
font = abspath(availableFontFileNames[5], family, style);
} else {
font = abspath(availableFontFileNames[4], family, style);
@@ -103,53 +106,53 @@ public class JavaFontLoader implements FontSet {
}
return font;
}
-
+
// Serif Fonts ..
switch (family) {
case FAMILY_LIGHT:
case FAMILY_MEDIUM:
case FAMILY_CONDENSED:
case FAMILY_REGULAR:
- if( is(style, STYLE_BOLD) ) {
- if( is(style, STYLE_ITALIC) ) {
+ if( is(style, STYLE_BOLD) ) {
+ if( is(style, STYLE_ITALIC) ) {
font = abspath(availableFontFileNames[3], family, style);
} else {
font = abspath(availableFontFileNames[2], family, style);
}
- } else if( is(style, STYLE_ITALIC) ) {
+ } else if( is(style, STYLE_ITALIC) ) {
font = abspath(availableFontFileNames[1], family, style);
} else {
font = abspath(availableFontFileNames[0], family, style);
}
break;
-
+
case FAMILY_MONOSPACED:
- if( is(style, STYLE_BOLD) ) {
+ if( is(style, STYLE_BOLD) ) {
font = abspath(availableFontFileNames[7], family, style);
} else {
font = abspath(availableFontFileNames[6], family, style);
}
- break;
+ break;
}
return font;
}
-
+
Font abspath(String fname, int family, int style) throws IOException {
if(null == javaFontPath) {
throw new GLException("java font path undefined");
}
final String err = "Problem loading font "+fname+", file "+javaFontPath+fname ;
-
+
try {
final Font f = FontFactory.get( new File(javaFontPath+fname) );
if(null != f) {
fontMap.put( ( family << 8 ) | style, f );
return f;
}
- throw new IOException (err);
+ throw new IOException (err);
} catch (IOException ioe) {
- throw new IOException(err, ioe);
+ throw new IOException(err, ioe);
}
- }
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java b/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java
index 0772cc47f..e1e44c92c 100644
--- a/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java
+++ b/src/jogl/classes/jogamp/graph/font/UbuntuFontLoader.java
@@ -28,29 +28,45 @@
package jogamp.graph.font;
import java.io.IOException;
-import javax.media.opengl.GLException;
+import com.jogamp.common.os.Platform;
import com.jogamp.common.util.IntObjectHashMap;
import com.jogamp.common.util.IOUtil;
-
+import com.jogamp.common.util.JarUtil;
+import com.jogamp.common.util.cache.TempJarCache;
import com.jogamp.graph.font.Font;
import com.jogamp.graph.font.FontSet;
import com.jogamp.graph.font.FontFactory;
+
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URLConnection;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
public class UbuntuFontLoader implements FontSet {
-
- final static FontSet fontLoader = new UbuntuFontLoader();
- public static FontSet get() {
+ // FIXME: Add cache size to limit memory usage
+ private static final IntObjectHashMap fontMap = new IntObjectHashMap();
+
+ private static final String jarSubDir = "atomic/" ;
+ private static final String jarName = "jogl-fonts-p0.jar" ;
+
+ private static final String relFontPath = "fonts/ubuntu/" ;
+ private static final String absFontPath = "jogamp/graph/font/fonts/ubuntu/" ;
+
+ private static final FontSet fontLoader = new UbuntuFontLoader();
+
+ public static final FontSet get() {
return fontLoader;
}
-
+
final static String availableFontFileNames[] =
{
/* 00 */ "Ubuntu-R.ttf", // regular
/* 01 */ "Ubuntu-RI.ttf", // regular italic
- /* 02 */ "Ubuntu-B.ttf", // bold
+ /* 02 */ "Ubuntu-B.ttf", // bold
/* 03 */ "Ubuntu-BI.ttf", // bold italic
/* 04 */ "Ubuntu-L.ttf", // light
/* 05 */ "Ubuntu-LI.ttf", // light italic
@@ -58,23 +74,20 @@ public class UbuntuFontLoader implements FontSet {
/* 07 */ "Ubuntu-MI.ttf", // medium italic
};
-
- final static String relPath = "fonts/ubuntu/" ;
-
+
private UbuntuFontLoader() {
}
- // FIXME: Add cache size to limit memory usage
- static final IntObjectHashMap fontMap = new IntObjectHashMap();
-
static boolean is(int bits, int bit) {
return 0 != ( bits & bit ) ;
}
-
+
+ @Override
public Font getDefault() throws IOException {
- return get(FAMILY_REGULAR, 0) ; // Sans Serif Regular
+ return get(FAMILY_REGULAR, 0) ; // Sans Serif Regular
}
-
+
+ @Override
public Font get(int family, int style) throws IOException {
Font font = (Font)fontMap.get( ( family << 8 ) | style );
if (font != null) {
@@ -97,7 +110,7 @@ public class UbuntuFontLoader implements FontSet {
font = abspath(availableFontFileNames[0], family, style);
}
break;
-
+
case FAMILY_LIGHT:
if( is(style, STYLE_ITALIC) ) {
font = abspath(availableFontFileNames[5], family, style);
@@ -105,34 +118,90 @@ public class UbuntuFontLoader implements FontSet {
font = abspath(availableFontFileNames[4], family, style);
}
break;
-
+
case FAMILY_MEDIUM:
if( is(style, STYLE_ITALIC) ) {
font = abspath(availableFontFileNames[6], family, style);
} else {
font = abspath(availableFontFileNames[7], family, style);
}
- break;
+ break;
}
return font;
}
-
- Font abspath(String fname, int family, int style) throws IOException {
- final String err = "Problem loading font "+fname+", stream "+relPath+fname;
+
+ private static boolean attemptedJARLoading = false;
+ private static boolean useTempJarCache = false;
+
+ private synchronized Font abspath(String fname, int family, int style) throws IOException {
+ final String err = "Problem loading font "+fname+", stream "+relFontPath+fname;
+ final Exception[] privErr = { null };
try {
- URLConnection conn = IOUtil.getResource(UbuntuFontLoader.class, relPath+fname);
- if(null == conn) {
- throw new GLException(err);
+ final Font f0 = abspathImpl(fname, family, style);
+ if(null != f0) {
+ return f0;
+ }
+ if( !attemptedJARLoading ) {
+ attemptedJARLoading = true;
+ Platform.initSingleton();
+ if( TempJarCache.isInitialized() ) {
+ final URI uri = JarUtil.getRelativeOf(UbuntuFontLoader.class, jarSubDir, jarName);
+ AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
+ try {
+ TempJarCache.addResources(UbuntuFontLoader.class, uri);
+ } catch (Exception e) { privErr[0] = e; }
+ return null;
+ } } );
+ if( null == privErr[0] ) {
+ useTempJarCache = true;
+ final Font f1 = abspathImpl(fname, family, style);
+ if(null != f1) {
+ return f1;
+ }
+ }
+ }
+ }
+ } catch(Exception e) {
+ throw new IOException(err, e);
+ }
+ if( null != privErr[0] ) {
+ throw new IOException(err, privErr[0]);
+ }
+ throw new IOException(err);
+ }
+ private Font abspathImpl(final String fname, final int family, final int style) throws IOException {
+ final URLConnection conn;
+ if( useTempJarCache ) {
+ // this code-path throws .. all exceptions
+ final Exception[] privErr = { null };
+ final URLConnection[] privConn = { null };
+ AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
+ try {
+ final URI uri = TempJarCache.getResource(absFontPath+fname);
+ privConn[0] = null != uri ? uri.toURL().openConnection() : null;
+ } catch (Exception e) { privErr[0] = e; }
+ return null;
+ } } );
+ if( null != privErr[0] ) {
+ throw new IOException(privErr[0]);
}
+ conn = privConn[0];
+ } else {
+ // no exceptions ..
+ conn = IOUtil.getResource(UbuntuFontLoader.class, relFontPath+fname);
+ }
+ if(null != conn) {
final Font f= FontFactory.get ( conn ) ;
if(null != f) {
fontMap.put( ( family << 8 ) | style, f );
return f;
- }
- throw new IOException(err);
- } catch(IOException ioe) {
- throw new IOException(err, ioe);
+ }
}
- }
+ return null;
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java b/src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java
index 2d13ae32d..250778f06 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java
@@ -44,26 +44,26 @@ import com.jogamp.common.util.IntObjectHashMap;
import com.jogamp.graph.curve.OutlineShape;
import com.jogamp.graph.font.Font;
import com.jogamp.graph.font.FontFactory;
-import com.jogamp.graph.geom.AABBox;
import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
+import com.jogamp.opengl.math.geom.AABBox;
class TypecastFont implements FontInt {
static final boolean DEBUG = false;
-
+
final OTFontCollection fontset;
final OTFont font;
TypecastHMetrics metrics;
final CmapFormat cmapFormat;
int cmapentries;
-
- // FIXME: Add cache size to limit memory usage ??
- IntObjectHashMap char2Glyph;
+
+ // FIXME: Add cache size to limit memory usage ??
+ IntObjectHashMap char2Glyph;
public TypecastFont(OTFontCollection fontset) {
this.fontset = fontset;
this.font = fontset.getFont(0);
-
+
// FIXME: Generic attempt to find the best CmapTable,
// which is assumed to be the one with the most entries (stupid 'eh?)
CmapTable cmapTable = font.getCmapTable();
@@ -76,14 +76,14 @@ class TypecastFont implements FontInt {
int pidx = cmapIdxEntry.getPlatformId();
CmapFormat cf = cmapIdxEntry.getFormat();
if(DEBUG) {
- System.err.println("CmapFormat["+i+"]: platform " + pidx +
+ System.err.println("CmapFormat["+i+"]: platform " + pidx +
", encoding "+cmapIdxEntry.getEncodingId() + ": "+cf);
}
- if( _cmapFormatP[pidx] == null ||
+ if( _cmapFormatP[pidx] == null ||
_cmapFormatP[pidx].getLength() < cf.getLength() ) {
_cmapFormatP[pidx] = cf;
if( cf.getLength() > platformLength ) {
- platformLength = cf.getLength() ;
+ platformLength = cf.getLength() ;
platform = pidx;
encoding = cmapIdxEntry.getEncodingId();
}
@@ -92,10 +92,10 @@ class TypecastFont implements FontInt {
if(0 <= platform) {
cmapFormat = _cmapFormatP[platform];
if(DEBUG) {
- System.err.println("Selected CmapFormat: platform " + platform +
+ System.err.println("Selected CmapFormat: platform " + platform +
", encoding "+encoding + ": "+cmapFormat);
}
- } else {
+ } else {
CmapFormat _cmapFormat = null;
/*if(null == _cmapFormat) {
platform = ID.platformMacintosh;
@@ -126,27 +126,27 @@ class TypecastFont implements FontInt {
cmapentries = 0;
for (int i = 0; i < cmapFormat.getRangeCount(); ++i) {
CmapFormat.Range range = cmapFormat.getRange(i);
- cmapentries += range.getEndCode() - range.getStartCode() + 1; // end included
- }
+ cmapentries += range.getEndCode() - range.getStartCode() + 1; // end included
+ }
if(DEBUG) {
System.err.println("font direction hint: "+font.getHeadTable().getFontDirectionHint());
System.err.println("num glyphs: "+font.getNumGlyphs());
System.err.println("num cmap entries: "+cmapentries);
System.err.println("num cmap ranges: "+cmapFormat.getRangeCount());
-
+
for (int i = 0; i < cmapFormat.getRangeCount(); ++i) {
CmapFormat.Range range = cmapFormat.getRange(i);
for (int j = range.getStartCode(); j <= range.getEndCode(); ++j) {
final int code = cmapFormat.mapCharCode(j);
if(code < 15) {
- System.err.println(" char: " + (int)j + " ( " + (char)j +" ) -> " + code);
+ System.err.println(" char: " + j + " ( " + (char)j +" ) -> " + code);
}
}
}
}
char2Glyph = new IntObjectHashMap(cmapentries + cmapentries/4);
}
-
+
@Override
public StringBuilder getName(StringBuilder sb, int nameIndex) {
return font.getName(nameIndex, sb);
@@ -164,13 +164,13 @@ class TypecastFont implements FontInt {
sb = getName(sb, Font.NAME_FAMILY).append("-");
getName(sb, Font.NAME_SUBFAMILY);
return sb;
- }
+ }
@Override
public float getAdvanceWidth(int i, float pixelSize) {
- return font.getHmtxTable().getAdvanceWidth(i) * metrics.getScale(pixelSize);
+ return font.getHmtxTable().getAdvanceWidth(i) * metrics.getScale(pixelSize);
}
-
+
@Override
public Metrics getMetrics() {
if (metrics == null) {
@@ -181,7 +181,7 @@ class TypecastFont implements FontInt {
@Override
public Glyph getGlyph(char symbol) {
- TypecastGlyph result = (TypecastGlyph) char2Glyph.get(symbol);
+ TypecastGlyph result = (TypecastGlyph) char2Glyph.get(symbol);
if (null == result) {
// final short code = (short) char2Code.get(symbol);
short code = (short) cmapFormat.mapCharCode(symbol);
@@ -193,7 +193,7 @@ class TypecastFont implements FontInt {
default: code = Glyph.ID_UNKNOWN;
}
}
-
+
jogamp.graph.font.typecast.ot.OTGlyph glyph = font.getGlyph(code);
if(null == glyph) {
glyph = font.getGlyph(Glyph.ID_UNKNOWN);
@@ -204,22 +204,22 @@ class TypecastFont implements FontInt {
Path2D path = TypecastRenderer.buildPath(glyph);
result = new TypecastGlyph(this, symbol, code, glyph.getBBox(), glyph.getAdvanceWidth(), path);
if(DEBUG) {
- System.err.println("New glyph: " + (int)symbol + " ( " + (char)symbol +" ) -> " + code + ", contours " + glyph.getPointCount() + ": " + path);
+ System.err.println("New glyph: " + (int)symbol + " ( " + symbol +" ) -> " + code + ", contours " + glyph.getPointCount() + ": " + path);
}
- final HdmxTable hdmx = font.getHdmxTable();
+ final HdmxTable hdmx = font.getHdmxTable();
if (null!= result && null != hdmx) {
/*if(DEBUG) {
System.err.println("hdmx "+hdmx);
}*/
for (int i=0; i<hdmx.getNumberOfRecords(); i++)
{
- final HdmxTable.DeviceRecord dr = hdmx.getRecord(i);
+ final HdmxTable.DeviceRecord dr = hdmx.getRecord(i);
result.addAdvance(dr.getWidth(code), dr.getPixelSize());
/* if(DEBUG) {
System.err.println("hdmx advance : pixelsize = "+dr.getWidth(code)+" : "+ dr.getPixelSize());
} */
}
- }
+ }
char2Glyph.put(symbol, result);
}
return result;
@@ -229,7 +229,7 @@ class TypecastFont implements FontInt {
public OutlineShape getOutlineShape(Glyph glyph, Factory<? extends Vertex> vertexFactory) {
return TypecastRenderer.getOutlineShape(this, glyph, vertexFactory);
}
-
+
@Override
public List<OutlineShape> getOutlineShapes(List<OutlineShape> shapes, CharSequence string, float pixelSize, Factory<? extends Vertex> vertexFactory) {
AffineTransform transform = new AffineTransform(vertexFactory);
@@ -251,7 +251,7 @@ class TypecastFont implements FontInt {
}
}
- return (int)(width + 0.5f);
+ return (int)(width + 0.5f);
}
@Override
@@ -268,7 +268,7 @@ class TypecastFont implements FontInt {
height = (int)Math.ceil(Math.max(bbox.getHeight(), height));
}
}
- return height;
+ return height;
}
@Override
@@ -299,19 +299,19 @@ class TypecastFont implements FontInt {
totalHeight -= advanceY;
totalWidth = Math.max(curLineWidth, totalWidth);
}
- return new AABBox(0, 0, 0, totalWidth, totalHeight,0);
+ return new AABBox(0, 0, 0, totalWidth, totalHeight,0);
}
@Override
final public int getNumGlyphs() {
return font.getNumGlyphs();
}
-
+
@Override
public boolean isPrintableChar( char c ) {
return FontFactory.isPrintableChar(c);
}
-
+
@Override
public String toString() {
return getFullFamilyName(null).toString();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/TypecastFontConstructor.java b/src/jogl/classes/jogamp/graph/font/typecast/TypecastFontConstructor.java
index e8b62bdd2..d7db981b0 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/TypecastFontConstructor.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/TypecastFontConstructor.java
@@ -43,10 +43,12 @@ import com.jogamp.graph.font.Font;
public class TypecastFontConstructor implements FontConstructor {
+ @Override
public Font create(final File ffile) throws IOException {
Object o = AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
public Object run() {
- OTFontCollection fontset;
+ OTFontCollection fontset;
try {
fontset = OTFontCollection.create(ffile);
return new TypecastFont(fontset);
@@ -63,15 +65,17 @@ public class TypecastFontConstructor implements FontConstructor {
}
throw new InternalError("Unexpected Object: "+o);
}
-
+
+ @Override
public Font create(final URLConnection fconn) throws IOException {
return AccessController.doPrivileged(new PrivilegedAction<Font>() {
+ @Override
public Font run() {
File tf = null;
int len=0;
Font f = null;
- try {
- tf = IOUtil.createTempFile( "joglfont", ".ttf", null);
+ try {
+ tf = IOUtil.createTempFile( "jogl.font", ".ttf", false);
len = IOUtil.copyURLConn2File(fconn, tf);
if(len==0) {
tf.delete();
@@ -84,7 +88,7 @@ public class TypecastFontConstructor implements FontConstructor {
}
return f;
}
- });
+ });
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java b/src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java
index cdaa2df7e..302366647 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java
@@ -34,51 +34,52 @@ import jogamp.graph.geom.plane.AffineTransform;
import jogamp.graph.geom.plane.Path2D;
import com.jogamp.graph.font.Font;
-import com.jogamp.graph.geom.AABBox;
+import com.jogamp.opengl.math.geom.AABBox;
public class TypecastGlyph implements FontInt.GlyphInt {
public class Advance
{
final Font font;
- final float advance;
- HashMap<Float, Float> size2advance = new HashMap<Float, Float>();
-
+ final float advance;
+ HashMap<Float, Float> size2advance = new HashMap<Float, Float>();
+
public Advance(Font font, float advance)
{
this.font = font;
this.advance = advance;
}
-
+
public void reset() {
size2advance.clear();
}
-
+
public float getScale(float pixelSize)
{
return this.font.getMetrics().getScale(pixelSize);
}
-
+
public void add(float advance, float size)
{
size2advance.put(size, advance);
}
-
+
public float get(float size, boolean useFrationalMetrics)
{
Float fo = size2advance.get(size);
- if(null == fo) {
+ if(null == fo) {
float value = (this.advance * getScale(size));
if (useFrationalMetrics == false) {
//value = (float)Math.ceil(value);
// value = (int)value;
- value = (int) ( value + 0.5f ) ; // TODO: check
+ value = (int) ( value + 0.5f ) ; // TODO: check
}
size2advance.put(size, value);
return value;
}
return fo.floatValue();
}
-
+
+ @Override
public String toString()
{
return "\nAdvance:"+
@@ -86,153 +87,160 @@ public class TypecastGlyph implements FontInt.GlyphInt {
"\n advances: \n"+size2advance;
}
}
-
+
public class Metrics
{
AABBox bbox;
Advance advance;
-
+
public Metrics(Font font, AABBox bbox, float advance)
{
this.bbox = bbox;
this.advance = new Advance(font, advance);
}
-
+
public void reset() {
advance.reset();
}
-
+
public float getScale(float pixelSize)
{
return this.advance.getScale(pixelSize);
}
-
+
public AABBox getBBox()
{
return this.bbox;
}
-
+
public void addAdvance(float advance, float size)
{
this.advance.add(advance, size);
}
-
+
public float getAdvance(float size, boolean useFrationalMetrics)
{
return this.advance.get(size, useFrationalMetrics);
}
-
+
+ @Override
public String toString()
{
return "\nMetrics:"+
"\n bbox: "+this.bbox+
this.advance;
}
- }
+ }
public static final short INVALID_ID = (short)((1 << 16) - 1);
public static final short MAX_ID = (short)((1 << 16) - 2);
-
+
private final Font font;
-
+
char symbol;
short id;
int advance;
Metrics metrics;
-
+
protected Path2D path; // in EM units
protected Path2D pathSized;
protected float numberSized;
-
+
protected TypecastGlyph(Font font, char symbol) {
this.font = font;
this.symbol = symbol;
}
-
+
protected TypecastGlyph(Font font,
char symbol, short id, AABBox bbox, int advance, Path2D path) {
this.font = font;
this.symbol = symbol;
this.advance = advance;
-
+
init(id, bbox, advance);
-
+
this.path = path;
this.pathSized = null;
this.numberSized = 0.0f;
}
-
+
void init(short id, AABBox bbox, int advance) {
this.id = id;
this.advance = advance;
this.metrics = new Metrics(this.font, bbox, this.advance);
}
-
+
public void reset(Path2D path) {
this.path = path;
this.metrics.reset();
}
-
+
+ @Override
public Font getFont() {
return this.font;
}
-
+
+ @Override
public char getSymbol() {
return this.symbol;
}
-
+
AABBox getBBoxUnsized() {
return this.metrics.getBBox();
}
-
+
public AABBox getBBox() {
return this.metrics.getBBox();
}
-
+
public Metrics getMetrics() {
return this.metrics;
}
-
+
public short getID() {
return this.id;
}
-
+
public float getScale(float pixelSize) {
return this.metrics.getScale(pixelSize);
}
-
+
+ @Override
public AABBox getBBox(float pixelSize) {
final float size = getScale(pixelSize);
AABBox newBox = getBBox().clone();
newBox.scale(size);
- return newBox;
+ return newBox;
}
-
+
protected void addAdvance(float advance, float size) {
this.metrics.addAdvance(advance, size);
}
-
+
+ @Override
public float getAdvance(float pixelSize, boolean useFrationalMetrics) {
return this.metrics.getAdvance(pixelSize, useFrationalMetrics);
}
-
+
+ @Override
public Path2D getPath() {
return this.path;
}
-
+
+ @Override
public Path2D getPath(float pixelSize) {
final float size = getScale(pixelSize);
-
+
if (this.numberSized != size) {
this.numberSized = size;
this.pathSized = AffineTransform.getScaleInstance(null, size, size).createTransformedShape(getPath());
- }
+ }
return this.pathSized;
}
-
+
public int hashCode() {
// 31 * x == (x << 5) - x
int hash = 31 + font.getName(Font.NAME_UNIQUNAME).hashCode();
return ((hash << 5) - hash) + id;
- }
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java b/src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java
index 0dd7a6178..ecc41e438 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/TypecastHMetrics.java
@@ -31,11 +31,11 @@ import jogamp.graph.font.typecast.ot.table.HeadTable;
import jogamp.graph.font.typecast.ot.table.HheaTable;
import com.jogamp.graph.font.Font.Metrics;
-import com.jogamp.graph.geom.AABBox;
+import com.jogamp.opengl.math.geom.AABBox;
class TypecastHMetrics implements Metrics {
private final TypecastFont fontImpl;
-
+
// HeadTable
private final HeadTable headTable;
private final float unitsPerEM_Inv;
@@ -44,41 +44,47 @@ class TypecastHMetrics implements Metrics {
private final HheaTable hheaTable;
// VheaTable (for horizontal fonts)
// private final VheaTable vheaTable;
-
+
public TypecastHMetrics(TypecastFont fontImpl) {
this.fontImpl = fontImpl;
headTable = this.fontImpl.font.getHeadTable();
- hheaTable = this.fontImpl.font.getHheaTable();
+ hheaTable = this.fontImpl.font.getHheaTable();
// vheaTable = this.fontImpl.font.getVheaTable();
unitsPerEM_Inv = 1.0f / ( (float) headTable.getUnitsPerEm() );
-
+
int maxWidth = headTable.getXMax() - headTable.getXMin();
- int maxHeight = headTable.getYMax() - headTable.getYMin();
+ int maxHeight = headTable.getYMax() - headTable.getYMin();
float lowx= headTable.getXMin();
float lowy = -(headTable.getYMin()+maxHeight);
float highx = lowx + maxWidth;
float highy = lowy + maxHeight;
bbox = new AABBox(lowx, lowy, 0, highx, highy, 0); // invert
}
-
+
+ @Override
public final float getAscent(float pixelSize) {
return getScale(pixelSize) * -hheaTable.getAscender(); // invert
}
+ @Override
public final float getDescent(float pixelSize) {
return getScale(pixelSize) * -hheaTable.getDescender(); // invert
}
+ @Override
public final float getLineGap(float pixelSize) {
return getScale(pixelSize) * -hheaTable.getLineGap(); // invert
}
+ @Override
public final float getMaxExtend(float pixelSize) {
return getScale(pixelSize) * hheaTable.getXMaxExtent();
}
+ @Override
public final float getScale(float pixelSize) {
return pixelSize * unitsPerEM_Inv;
}
+ @Override
public final AABBox getBBox(float pixelSize) {
AABBox res = new AABBox(bbox.getLow(), bbox.getHigh());
- res.scale(getScale(pixelSize));
+ res.scale(getScale(pixelSize));
return res;
}
} \ No newline at end of file
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java b/src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
index d62f19cb7..d7f8497b3 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
@@ -44,14 +44,14 @@ import com.jogamp.graph.geom.Vertex;
import com.jogamp.graph.geom.Vertex.Factory;
/**
- * Factory to build a {@link com.jogamp.graph.geom.Path2D Path2D} from
- * {@link jogamp.graph.font.typecast.ot.OTGlyph Glyph}s.
+ * Factory to build a {@link com.jogamp.graph.geom.Path2D Path2D} from
+ * {@link jogamp.graph.font.typecast.ot.OTGlyph Glyph}s.
*/
public class TypecastRenderer {
- private static void getPaths(TypecastFont font,
+ private static void getPaths(TypecastFont font,
CharSequence string, float pixelSize, AffineTransform transform, Path2D[] p)
- {
+ {
if (string == null) {
return;
}
@@ -79,7 +79,7 @@ public class TypecastRenderer {
advanceTotal = 0;
} else if (character == ' ') {
advanceTotal += font.getAdvanceWidth(Glyph.ID_SPACE, pixelSize);
- } else {
+ } else {
final Glyph glyph = font.getGlyph(character);
final Path2D gp = ((GlyphInt)glyph).getPath();
final float scale = metrics.getScale(pixelSize);
@@ -95,7 +95,7 @@ public class TypecastRenderer {
Path2D path = ((GlyphInt)glyph).getPath();
AffineTransform transform = new AffineTransform(vertexFactory);
OutlineShape shape = new OutlineShape(vertexFactory);
-
+
PathIterator iterator = path.iterator(transform);
if(null != iterator){
while(!iterator.isDone()){
@@ -107,7 +107,7 @@ public class TypecastRenderer {
}
return shape;
}
-
+
public static List<OutlineShape> getOutlineShapes(List<OutlineShape> shapes, TypecastFont font, CharSequence string, float pixelSize, AffineTransform transform, Factory<? extends Vertex> vertexFactory) {
Path2D[] paths = new Path2D[string.length()];
getPaths(font, string, pixelSize, transform, paths);
@@ -139,19 +139,19 @@ public class TypecastRenderer {
case PathIterator.SEG_MOVETO:
shape.closeLastOutline();
shape.addEmptyOutline();
- shape.addVertex(0, vertexFactory.create(coords, 0, 2, true));
+ shape.addVertex(0, vertexFactory.create(coords, 0, 2, true));
break;
case PathIterator.SEG_LINETO:
- shape.addVertex(0, vertexFactory.create(coords, 0, 2, true));
+ shape.addVertex(0, vertexFactory.create(coords, 0, 2, true));
break;
case PathIterator.SEG_QUADTO:
shape.addVertex(0, vertexFactory.create(coords, 0, 2, false));
- shape.addVertex(0, vertexFactory.create(coords, 2, 2, true));
+ shape.addVertex(0, vertexFactory.create(coords, 2, 2, true));
break;
case PathIterator.SEG_CUBICTO:
shape.addVertex(0, vertexFactory.create(coords, 0, 2, false));
shape.addVertex(0, vertexFactory.create(coords, 2, 2, false));
- shape.addVertex(0, vertexFactory.create(coords, 4, 2, true));
+ shape.addVertex(0, vertexFactory.create(coords, 4, 2, true));
break;
case PathIterator.SEG_CLOSE:
shape.closeLastOutline();
@@ -204,12 +204,12 @@ public class TypecastRenderer {
if (point_plus1.onCurve) {
// s = new Line2D.Float(point.x, point.y, point_plus1.x, point_plus1.y);
gp.lineTo( point_plus1.x, point_plus1.y );
- offset++;
+ offset++;
} else {
if (point_plus2.onCurve) {
// s = new QuadCurve2D.Float( point.x, point.y, point_plus1.x, point_plus1.y, point_plus2.x, point_plus2.y);
gp.quadTo(point_plus1.x, point_plus1.y, point_plus2.x, point_plus2.y);
- offset+=2;
+ offset+=2;
} else {
// s = new QuadCurve2D.Float(point.x,point.y,point_plus1.x,point_plus1.y,
// midValue(point_plus1.x, point_plus2.x), midValue(point_plus1.y, point_plus2.y));
@@ -230,7 +230,7 @@ public class TypecastRenderer {
// midValue(point.x, point_plus1.x), midValue(point.y, point_plus1.y));
//gp.curve3(midValue(point.x, point_plus1.x), midValue(point.y, point_plus1.y), point.x, point.y);
gp.quadTo(point.x, point.y, midValue(point.x, point_plus1.x), midValue(point.y, point_plus1.y));
- offset++;
+ offset++;
}
}
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java
index b5535758d..8b685659e 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/Disassembler.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java
index ece0aae4b..0a4786f82 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/Fixed.java
@@ -840,11 +840,11 @@ public class Fixed {
}
return n;
}
-
+
public static float floatValue(long fixed) {
return (fixed >> 16) + (float)(fixed & 0xffff) / 0x10000;
}
-
+
public static float roundedFloatValue(long fixed, int decimalPlaces) {
int factor = 10 * decimalPlaces;
return (float)((int)(floatValue(fixed) * factor)) / factor;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/Mnemonic.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/Mnemonic.java
index 6b3dc1f6f..d6c9da268 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/Mnemonic.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/Mnemonic.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java
index 8c14b7302..7c3b32e2c 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFont.java
@@ -104,10 +104,10 @@ public class OTFont {
public StringBuilder getName(int nameIndex, StringBuilder sb) {
if(null == sb) {
sb = new StringBuilder();
- }
+ }
return _name.getRecordsRecordString(sb, nameIndex);
}
-
+
public StringBuilder getAllNames(StringBuilder sb, String separator) {
if(null != _name) {
if(null == sb) {
@@ -117,9 +117,9 @@ public class OTFont {
_name.getRecord(i).getRecordString(sb).append(separator);
}
}
- return sb;
+ return sb;
}
-
+
public Table getTable(int tableType) {
for (int i = 0; i < _tables.length; i++) {
if ((_tables[i] != null) && (_tables[i].getType() == tableType)) {
@@ -132,31 +132,31 @@ public class OTFont {
public Os2Table getOS2Table() {
return _os2;
}
-
+
public CmapTable getCmapTable() {
return _cmap;
}
-
+
public HeadTable getHeadTable() {
return _head;
}
-
+
public HheaTable getHheaTable() {
return _hhea;
}
-
+
public HdmxTable getHdmxTable() {
return _hdmx;
}
-
+
public HmtxTable getHmtxTable() {
return _hmtx;
}
-
+
public LocaTable getLocaTable() {
return _loca;
}
-
+
public MaxpTable getMaxpTable() {
return _maxp;
}
@@ -186,8 +186,8 @@ public class OTFont {
}
public OTGlyph getGlyph(int i) {
-
- final GlyfDescript _glyfDescr = _glyf.getDescription(i);
+
+ final GlyfDescript _glyfDescr = _glyf.getDescription(i);
return (null != _glyfDescr)
? new OTGlyph(
_glyfDescr,
@@ -195,11 +195,11 @@ public class OTFont {
_hmtx.getAdvanceWidth(i))
: null;
}
-
+
public TableDirectory getTableDirectory() {
return _tableDirectory;
}
-
+
private Table readTable(
DataInputStream dis,
int tablesOrigin,
@@ -228,13 +228,13 @@ public class OTFont {
DataInputStream dis,
int directoryOffset,
int tablesOrigin) throws IOException {
-
+
// Load the table directory
dis.reset();
dis.skip(directoryOffset);
_tableDirectory = new TableDirectory(dis);
_tables = new Table[_tableDirectory.getNumTables()];
-
+
// Load some prerequisite tables
_head = (HeadTable) readTable(dis, tablesOrigin, Table.head);
_hhea = (HheaTable) readTable(dis, tablesOrigin, Table.hhea);
@@ -252,7 +252,7 @@ public class OTFont {
if (_vhea != null) {
_tables[index++] = _vhea;
}
-
+
// Load all other tables
for (int i = 0; i < _tableDirectory.getNumTables(); i++) {
DirectoryEntry entry = _tableDirectory.getEntry(i);
@@ -283,6 +283,7 @@ public class OTFont {
_glyf = (GlyfTable) getTable(Table.glyf);
}
+ @Override
public String toString() {
if (_tableDirectory != null) {
return _tableDirectory.toString();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFontCollection.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFontCollection.java
index 4a041604d..c79380f16 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFontCollection.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTFontCollection.java
@@ -75,11 +75,11 @@ public class OTFontCollection {
public OTFont getFont(int i) {
return _fonts[i];
}
-
+
public int getFontCount() {
return _fonts.length;
}
-
+
public TTCHeader getTtcHeader() {
return _ttcHeader;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTGlyph.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTGlyph.java
index 5c004246a..e0d652bd4 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/OTGlyph.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/OTGlyph.java
@@ -56,7 +56,7 @@ import jogamp.graph.font.typecast.ot.table.GlyfDescript;
import jogamp.graph.font.typecast.ot.table.GlyphDescription;
import jogamp.graph.font.typecast.t2.T2Interpreter;
-import com.jogamp.graph.geom.AABBox;
+import com.jogamp.opengl.math.geom.AABBox;
@@ -102,10 +102,10 @@ public class OTGlyph {
}
}
- public AABBox getBBox() {
- return _bbox;
+ public AABBox getBBox() {
+ return _bbox;
}
-
+
public int getAdvanceWidth() {
return _advanceWidth;
}
@@ -163,7 +163,7 @@ public class OTGlyph {
// Append the origin and advanceWidth points (n & n+1)
// _points[gd.getPointCount()] = new Point(0, 0, true, true);
// _points[gd.getPointCount()+1] = new Point(_advanceWidth, 0, true, true);
-
+
_bbox = new AABBox(gd.getXMinimum(), gd.getYMinimum(), 0, gd.getXMaximum(), gd.getYMaximum(), 0);
}
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceData.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceData.java
index 433ff6051..7a5b0c4d2 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceData.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceData.java
@@ -31,7 +31,7 @@ import java.io.IOException;
public class ResourceData {
private byte[] data;
-
+
/** Creates new ResourceData */
public ResourceData(DataInput di) throws IOException {
int dataLen = di.readInt();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceFile.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceFile.java
index 2ada22c82..468ab2e1c 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceFile.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceFile.java
@@ -33,14 +33,14 @@ public class ResourceFile {
private ResourceHeader header;
private ResourceMap map;
-
+
/** Creates new Resource */
public ResourceFile(RandomAccessFile raf) throws IOException {
// Read header at the beginning of the file
raf.seek(0);
header = new ResourceHeader(raf);
-
+
// Seek to the map offset and read the map
raf.seek(header.getMapOffset());
map = new ResourceMap(raf);
@@ -53,18 +53,18 @@ public class ResourceFile {
public static void main(String[] args) {
try {
//RandomAccessFile raf = new RandomAccessFile("/Library/Fonts/GillSans.dfont", "r");
-
+
// Tests loading a font from a resource fork on Mac OS X
RandomAccessFile raf = new RandomAccessFile("/Library/Fonts/Georgia/..namedfork/rsrc", "r");
ResourceFile resource = new ResourceFile(raf);
for (int i = 0; i < resource.getResourceMap().getResourceTypeCount(); i++) {
System.out.println(resource.getResourceMap().getResourceType(i).getTypeAsString());
}
-
+
// Get the first 'sfnt' resource
ResourceType type = resource.getResourceMap().getResourceType("sfnt");
ResourceReference reference = type.getReference(0);
-
+
type = resource.getResourceMap().getResourceType("FOND");
for (int i = 0; i < type.getCount(); ++i) {
reference = type.getReference(i);
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceHeader.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceHeader.java
index 8f5224632..de13b116f 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceHeader.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceHeader.java
@@ -46,15 +46,15 @@ public class ResourceHeader {
public int getDataOffset() {
return dataOffset;
}
-
+
public int getMapOffset() {
return mapOffset;
}
-
+
public int getDataLength() {
return dataLen;
}
-
+
public int getMapLength() {
return mapLen;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceMap.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceMap.java
index 96ba06087..d348c645e 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceMap.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceMap.java
@@ -35,7 +35,7 @@ public class ResourceMap {
private int fileReferenceNumber;
private int attributes;
private ResourceType[] types;
-
+
/** Creates new ResourceMap */
public ResourceMap(DataInput di) throws IOException {
di.readFully(headerCopy);
@@ -45,18 +45,18 @@ public class ResourceMap {
int typeOffset = di.readUnsignedShort();
int nameOffset = di.readUnsignedShort();
int typeCount = di.readUnsignedShort() + 1;
-
+
// Read types
types = new ResourceType[typeCount];
for (int i = 0; i < typeCount; i++) {
types[i] = new ResourceType(di);
}
-
+
// Read the references
for (int i = 0; i < typeCount; i++) {
types[i].readRefs(di);
}
-
+
// Read the names
for (int i = 0; i < typeCount; i++) {
types[i].readNames(di);
@@ -76,7 +76,7 @@ public class ResourceMap {
public ResourceType getResourceType(int i) {
return types[i];
}
-
+
public int getResourceTypeCount() {
return types.length;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceReference.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceReference.java
index fd7ec46b2..9d1534821 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceReference.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceReference.java
@@ -36,7 +36,7 @@ public class ResourceReference {
private int dataOffset;
private int handle;
private String name;
-
+
/** Creates new ResourceReference */
protected ResourceReference(DataInput di) throws IOException {
id = di.readUnsignedShort();
@@ -58,23 +58,23 @@ public class ResourceReference {
public int getId() {
return id;
}
-
+
public short getNameOffset() {
return nameOffset;
}
-
+
public short getAttributes() {
return attributes;
}
-
+
public int getDataOffset() {
return dataOffset;
}
-
+
public int getHandle() {
return handle;
}
-
+
public String getName() {
return name;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceType.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceType.java
index 1c7e24c0f..2ad002e6a 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceType.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/mac/ResourceType.java
@@ -34,7 +34,7 @@ public class ResourceType {
private int count;
private int offset;
private ResourceReference[] references;
-
+
/** Creates new ResourceType */
protected ResourceType(DataInput di) throws IOException {
type = di.readInt();
@@ -42,7 +42,7 @@ public class ResourceType {
offset = di.readUnsignedShort();
references = new ResourceReference[count];
}
-
+
protected void readRefs(DataInput di) throws IOException {
for (int i = 0; i < count; i++) {
references[i] = new ResourceReference(di);
@@ -58,7 +58,7 @@ public class ResourceType {
public int getType() {
return type;
}
-
+
public String getTypeAsString() {
return new StringBuilder()
.append((char)((type>>24)&0xff))
@@ -67,11 +67,11 @@ public class ResourceType {
.append((char)((type)&0xff))
.toString();
}
-
+
public int getCount() {
return count;
}
-
+
public int getOffset() {
return offset;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java
index ed615eb72..60975dd52 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/BaseTable.java
@@ -31,94 +31,100 @@ import java.io.IOException;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public class BaseTable implements Table {
-
+
private abstract class BaseCoord {
public abstract int getBaseCoordFormat();
-
+
public abstract short getCoordinate();
}
-
+
private class BaseCoordFormat1 extends BaseCoord {
private short _coordinate;
-
+
protected BaseCoordFormat1(DataInput di) throws IOException {
_coordinate = di.readShort();
}
+ @Override
public int getBaseCoordFormat() {
return 1;
}
-
+
+ @Override
public short getCoordinate() {
return _coordinate;
}
-
+
}
-
+
private class BaseCoordFormat2 extends BaseCoord {
private short _coordinate;
private int _referenceGlyph;
private int _baseCoordPoint;
-
+
protected BaseCoordFormat2(DataInput di) throws IOException {
_coordinate = di.readShort();
_referenceGlyph = di.readUnsignedShort();
_baseCoordPoint = di.readUnsignedShort();
}
+ @Override
public int getBaseCoordFormat() {
return 2;
}
-
+
+ @Override
public short getCoordinate() {
return _coordinate;
}
-
+
}
-
+
private class BaseCoordFormat3 extends BaseCoord {
private short _coordinate;
private int _deviceTableOffset;
-
+
protected BaseCoordFormat3(DataInput di) throws IOException {
_coordinate = di.readShort();
_deviceTableOffset = di.readUnsignedShort();
}
+ @Override
public int getBaseCoordFormat() {
return 2;
}
-
+
+ @Override
public short getCoordinate() {
return _coordinate;
}
-
+
}
-
+
private class FeatMinMaxRecord {
-
+
private int _tag;
private int _minCoordOffset;
private int _maxCoordOffset;
-
+
protected FeatMinMaxRecord(DataInput di) throws IOException {
_tag = di.readInt();
_minCoordOffset = di.readUnsignedShort();
_maxCoordOffset = di.readUnsignedShort();
}
}
-
+
private class MinMax {
-
+
private int _minCoordOffset;
private int _maxCoordOffset;
private int _featMinMaxCount;
private FeatMinMaxRecord[] _featMinMaxRecord;
-
+
protected MinMax(int minMaxOffset) throws IOException {
DataInput di = getDataInputForOffset(minMaxOffset);
_minCoordOffset = di.readUnsignedShort();
@@ -130,14 +136,14 @@ public class BaseTable implements Table {
}
}
}
-
+
private class BaseValues {
-
+
private int _defaultIndex;
private int _baseCoordCount;
private int[] _baseCoordOffset;
private BaseCoord[] _baseCoords;
-
+
protected BaseValues(int baseValuesOffset) throws IOException {
DataInput di = getDataInputForOffset(baseValuesOffset);
_defaultIndex = di.readUnsignedShort();
@@ -163,12 +169,12 @@ public class BaseTable implements Table {
}
}
}
-
+
private class BaseLangSysRecord {
-
+
private int _baseLangSysTag;
private int _minMaxOffset;
-
+
protected BaseLangSysRecord(DataInput di) throws IOException {
_baseLangSysTag = di.readInt();
_minMaxOffset = di.readUnsignedShort();
@@ -177,14 +183,14 @@ public class BaseTable implements Table {
public int getBaseLangSysTag() {
return _baseLangSysTag;
}
-
+
public int getMinMaxOffset() {
return _minMaxOffset;
}
}
-
+
private class BaseScript {
-
+
private int _thisOffset;
private int _baseValuesOffset;
private int _defaultMinMaxOffset;
@@ -192,7 +198,7 @@ public class BaseTable implements Table {
private BaseLangSysRecord[] _baseLangSysRecord;
private BaseValues _baseValues;
private MinMax[] _minMax;
-
+
protected BaseScript(int baseScriptOffset) throws IOException {
_thisOffset = baseScriptOffset;
DataInput di = getDataInputForOffset(baseScriptOffset);
@@ -211,6 +217,7 @@ public class BaseTable implements Table {
}
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder()
.append("\nBaseScript BaseScriptT").append(Integer.toHexString(_thisOffset))
@@ -231,9 +238,9 @@ public class BaseTable implements Table {
return sb.toString();
}
}
-
+
private class BaseScriptRecord {
-
+
private int _baseScriptTag;
private int _baseScriptOffset;
@@ -245,19 +252,19 @@ public class BaseTable implements Table {
public int getBaseScriptTag() {
return _baseScriptTag;
}
-
+
public int getBaseScriptOffset() {
return _baseScriptOffset;
}
}
-
+
private class BaseScriptList {
-
+
private int _thisOffset;
private int _baseScriptCount;
private BaseScriptRecord[] _baseScriptRecord;
private BaseScript[] _baseScripts;
-
+
protected BaseScriptList(int baseScriptListOffset) throws IOException {
_thisOffset = baseScriptListOffset;
DataInput di = getDataInputForOffset(baseScriptListOffset);
@@ -273,6 +280,7 @@ public class BaseTable implements Table {
}
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder()
.append("\nBaseScriptList BaseScriptListT").append(Integer.toHexString(_thisOffset))
@@ -288,13 +296,13 @@ public class BaseTable implements Table {
return sb.toString();
}
}
-
+
private class BaseTagList {
-
+
private int _thisOffset;
private int _baseTagCount;
private int[] _baselineTag;
-
+
protected BaseTagList(int baseTagListOffset) throws IOException {
_thisOffset = baseTagListOffset;
DataInput di = getDataInputForOffset(baseTagListOffset);
@@ -305,6 +313,7 @@ public class BaseTable implements Table {
}
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder()
.append("\nBaseTagList BaseTagListT").append(Integer.toHexString(_thisOffset))
@@ -315,9 +324,9 @@ public class BaseTable implements Table {
return sb.toString();
}
}
-
+
private class Axis {
-
+
private int _thisOffset;
private int _baseTagListOffset;
private int _baseScriptListOffset;
@@ -338,6 +347,7 @@ public class BaseTable implements Table {
}
}
+ @Override
public String toString() {
return new StringBuilder()
.append("\nAxis AxisT").append(Integer.toHexString(_thisOffset))
@@ -348,7 +358,7 @@ public class BaseTable implements Table {
.toString();
}
}
-
+
private DirectoryEntry _de;
private int _version;
private int _horizAxisOffset;
@@ -375,25 +385,25 @@ public class BaseTable implements Table {
if (_vertAxisOffset != 0) {
_vertAxis = new Axis(_vertAxisOffset);
}
-
+
// Let go of the buffer
_buf = null;
}
-
+
private DataInput getDataInputForOffset(int offset) {
return new DataInputStream(new ByteArrayInputStream(
_buf, offset,
_de.getLength() - offset));
}
-
+
// private String valueAsShortHex(int value) {
// return String.format("%1$4x", value);
// }
-//
+//
// private String valueAsLongHex(int value) {
// return String.format("%1$8x", value);
// }
-
+
static protected String tagAsString(int tag) {
char[] c = new char[4];
c[0] = (char)((tag >> 24) & 0xff);
@@ -402,11 +412,13 @@ public class BaseTable implements Table {
c[3] = (char)(tag & 0xff);
return String.valueOf(c);
}
-
+
+ @Override
public int getType() {
return BASE;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder()
.append("; 'BASE' Table - Baseline\n;-------------------------------------\n\n")
@@ -422,13 +434,14 @@ public class BaseTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java
index 966f6e17b..a36a49923 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CffTable.java
@@ -36,13 +36,13 @@ import java.util.Hashtable;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public class CffTable implements Table {
-
+
public class Dict {
-
+
private Dictionary<Integer, Object> _entries = new Hashtable<Integer, Object>();
private int[] _data;
private int _index;
-
+
protected Dict(int[] data, int offset, int length) {
_data = data;
_index = offset;
@@ -50,11 +50,11 @@ public class CffTable implements Table {
addKeyAndValueEntry();
}
}
-
+
public Object getValue(int key) {
return _entries.get(key);
}
-
+
private boolean addKeyAndValueEntry() {
ArrayList<Object> operands = new ArrayList<Object>();
Object operand = null;
@@ -74,7 +74,7 @@ public class CffTable implements Table {
}
return true;
}
-
+
private boolean isOperandAtIndex() {
int b0 = _data[_index];
if ((32 <= b0 && b0 <= 254)
@@ -97,31 +97,31 @@ public class CffTable implements Table {
private Object nextOperand() {
int b0 = _data[_index];
if (32 <= b0 && b0 <= 246) {
-
+
// 1 byte integer
++_index;
return new Integer(b0 - 139);
} else if (247 <= b0 && b0 <= 250) {
-
+
// 2 byte integer
int b1 = _data[_index + 1];
_index += 2;
return new Integer((b0 - 247) * 256 + b1 + 108);
} else if (251 <= b0 && b0 <= 254) {
-
+
// 2 byte integer
int b1 = _data[_index + 1];
_index += 2;
return new Integer(-(b0 - 251) * 256 - b1 - 108);
} else if (b0 == 28) {
-
+
// 3 byte integer
int b1 = _data[_index + 1];
int b2 = _data[_index + 2];
_index += 3;
return new Integer(b1 << 8 | b2);
} else if (b0 == 29) {
-
+
// 5 byte integer
int b1 = _data[_index + 1];
int b2 = _data[_index + 2];
@@ -130,7 +130,7 @@ public class CffTable implements Table {
_index += 5;
return new Integer(b1 << 24 | b2 << 16 | b3 << 8 | b4);
} else if (b0 == 30) {
-
+
// Real number
StringBuilder fString = new StringBuilder();
int nibble1 = 0;
@@ -142,13 +142,13 @@ public class CffTable implements Table {
++_index;
fString.append(decodeRealNibble(nibble1));
fString.append(decodeRealNibble(nibble2));
- }
+ }
return new Float(fString.toString());
} else {
return null;
}
}
-
+
private String decodeRealNibble(int nibble) {
if (nibble < 0xa) {
return Integer.toString(nibble);
@@ -163,7 +163,8 @@ public class CffTable implements Table {
}
return "";
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
Enumeration<Integer> keys = _entries.keys();
@@ -179,14 +180,14 @@ public class CffTable implements Table {
return sb.toString();
}
}
-
+
public class Index {
-
+
private int _count;
private int _offSize;
private int[] _offset;
private int[] _data;
-
+
protected Index(DataInput di) throws IOException {
_count = di.readUnsignedShort();
_offset = new int[_count + 1];
@@ -203,23 +204,24 @@ public class CffTable implements Table {
_data[i] = di.readUnsignedByte();
}
}
-
+
public int getCount() {
return _count;
}
-
+
public int getOffset(int index) {
return _offset[index];
}
-
+
public int getDataLength() {
return _offset[_offset.length - 1] - 1;
}
-
+
public int[] getData() {
return _data;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("DICT\n");
@@ -241,19 +243,20 @@ public class CffTable implements Table {
return sb.toString();
}
}
-
+
public class TopDictIndex extends Index {
protected TopDictIndex(DataInput di) throws IOException {
super(di);
}
-
+
public Dict getTopDict(int index) {
int offset = getOffset(index) - 1;
int len = getOffset(index + 1) - offset - 1;
return new Dict(getData(), offset, len);
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < getCount(); ++i) {
@@ -262,13 +265,13 @@ public class CffTable implements Table {
return sb.toString();
}
}
-
+
public class NameIndex extends Index {
protected NameIndex(DataInput di) throws IOException {
super(di);
}
-
+
public String getName(int index) {
String name = null;
int offset = getOffset(index) - 1;
@@ -286,7 +289,8 @@ public class CffTable implements Table {
}
return name;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < getCount(); ++i) {
@@ -301,7 +305,7 @@ public class CffTable implements Table {
protected StringIndex(DataInput di) throws IOException {
super(di);
}
-
+
public String getString(int index) {
if (index < CffStandardStrings.standardStrings.length) {
return CffStandardStrings.standardStrings[index];
@@ -320,7 +324,8 @@ public class CffTable implements Table {
return sb.toString();
}
}
-
+
+ @Override
public String toString() {
int nonStandardBase = CffStandardStrings.standardStrings.length;
StringBuilder sb = new StringBuilder();
@@ -331,12 +336,12 @@ public class CffTable implements Table {
return sb.toString();
}
}
-
+
private class CharsetRange {
-
+
private int _first;
private int _left;
-
+
public int getFirst() {
return _first;
}
@@ -344,7 +349,7 @@ public class CffTable implements Table {
protected void setFirst(int first) {
_first = first;
}
-
+
public int getLeft() {
return _left;
}
@@ -355,43 +360,45 @@ public class CffTable implements Table {
}
private class CharsetRange1 extends CharsetRange {
-
+
protected CharsetRange1(DataInput di) throws IOException {
setFirst(di.readUnsignedShort());
setLeft(di.readUnsignedByte());
}
}
-
+
private class CharsetRange2 extends CharsetRange {
-
+
protected CharsetRange2(DataInput di) throws IOException {
setFirst(di.readUnsignedShort());
setLeft(di.readUnsignedShort());
}
}
-
+
private abstract class Charset {
-
+
public abstract int getFormat();
-
+
public abstract int getSID(int gid);
}
-
+
private class CharsetFormat0 extends Charset {
-
+
private int[] _glyph;
-
+
protected CharsetFormat0(DataInput di, int glyphCount) throws IOException {
_glyph = new int[glyphCount - 1]; // minus 1 because .notdef is omitted
for (int i = 0; i < glyphCount - 1; ++i) {
_glyph[i] = di.readUnsignedShort();
}
}
-
+
+ @Override
public int getFormat() {
return 0;
}
+ @Override
public int getSID(int gid) {
if (gid == 0) {
return 0;
@@ -399,11 +406,11 @@ public class CffTable implements Table {
return _glyph[gid - 1];
}
}
-
+
private class CharsetFormat1 extends Charset {
-
+
private ArrayList<CharsetRange> _charsetRanges = new ArrayList<CharsetRange>();
-
+
protected CharsetFormat1(DataInput di, int glyphCount) throws IOException {
int glyphsCovered = glyphCount - 1; // minus 1 because .notdef is omitted
while (glyphsCovered > 0) {
@@ -413,15 +420,17 @@ public class CffTable implements Table {
}
}
+ @Override
public int getFormat() {
return 1;
}
+ @Override
public int getSID(int gid) {
if (gid == 0) {
return 0;
}
-
+
// Count through the ranges to find the one of interest
int count = 0;
for (CharsetRange range : _charsetRanges) {
@@ -436,9 +445,9 @@ public class CffTable implements Table {
}
private class CharsetFormat2 extends Charset {
-
+
private ArrayList<CharsetRange> _charsetRanges = new ArrayList<CharsetRange>();
-
+
protected CharsetFormat2(DataInput di, int glyphCount) throws IOException {
int glyphsCovered = glyphCount - 1; // minus 1 because .notdef is omitted
while (glyphsCovered > 0) {
@@ -448,15 +457,17 @@ public class CffTable implements Table {
}
}
+ @Override
public int getFormat() {
return 2;
}
+ @Override
public int getSID(int gid) {
if (gid == 0) {
return 0;
}
-
+
// Count through the ranges to find the one of interest
int count = 0;
for (CharsetRange range : _charsetRanges) {
@@ -469,7 +480,7 @@ public class CffTable implements Table {
return 0;
}
}
-
+
private DirectoryEntry _de;
private int _major;
private int _minor;
@@ -499,24 +510,24 @@ public class CffTable implements Table {
_minor = di2.readUnsignedByte();
_hdrSize = di2.readUnsignedByte();
_offSize = di2.readUnsignedByte();
-
+
// Name INDEX
di2 = getDataInputForOffset(_hdrSize);
_nameIndex = new NameIndex(di2);
-
+
// Top DICT INDEX
_topDictIndex = new TopDictIndex(di2);
// String INDEX
_stringIndex = new StringIndex(di2);
-
+
// Global Subr INDEX
_globalSubrIndex = new Index(di2);
-
+
// Encodings go here -- but since this is an OpenType font will this
// not always be a CIDFont? In which case there are no encodings
// within the CFF data.
-
+
// Load each of the fonts
_charStringsIndexArray = new Index[_topDictIndex.getCount()];
_charsets = new Charset[_topDictIndex.getCount()];
@@ -530,7 +541,7 @@ public class CffTable implements Table {
di2 = getDataInputForOffset(charStringsOffset);
_charStringsIndexArray[i] = new Index(di2);
int glyphCount = _charStringsIndexArray[i].getCount();
-
+
// Charsets
Integer charsetOffset = (Integer) _topDictIndex.getTopDict(i).getValue(15);
di2 = getDataInputForOffset(charsetOffset);
@@ -563,7 +574,7 @@ public class CffTable implements Table {
}
}
}
-
+
private DataInput getDataInputForOffset(int offset) {
return new DataInputStream(new ByteArrayInputStream(
_buf, offset,
@@ -573,7 +584,7 @@ public class CffTable implements Table {
public NameIndex getNameIndex() {
return _nameIndex;
}
-
+
public Charset getCharset(int fontIndex) {
return _charsets[fontIndex];
}
@@ -581,15 +592,17 @@ public class CffTable implements Table {
public Charstring getCharstring(int fontIndex, int gid) {
return _charstringsArray[fontIndex][gid];
}
-
+
public int getCharstringCount(int fontIndex) {
return _charstringsArray[fontIndex].length;
}
+ @Override
public int getType() {
return CFF;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'CFF' Table - Compact Font Format\n---------------------------------\n");
@@ -607,13 +620,14 @@ public class CffTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Charstring.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Charstring.java
index d411d1e00..01e2d4934 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Charstring.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Charstring.java
@@ -28,6 +28,6 @@ package jogamp.graph.font.typecast.ot.table;
public abstract class Charstring {
public abstract int getIndex();
-
+
public abstract String getName();
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CharstringType2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CharstringType2.java
index 9c40a0e5e..7a7b51890 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CharstringType2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CharstringType2.java
@@ -28,7 +28,7 @@ import jogamp.graph.font.typecast.ot.table.CffTable;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public class CharstringType2 extends Charstring {
-
+
private static final String[] _oneByteOperators = {
"-Reserved-",
"hstem",
@@ -105,7 +105,7 @@ public class CharstringType2 extends Charstring {
"flex1",
"-Reserved-"
};
-
+
private int _index;
private String _name;
private int[] _data;
@@ -132,15 +132,17 @@ public class CharstringType2 extends Charstring {
_localSubrIndex = localSubrIndex;
_globalSubrIndex = globalSubrIndex;
}
-
+
+ @Override
public int getIndex() {
return _index;
}
+ @Override
public String getName() {
return _name;
}
-
+
private void disassemble(StringBuilder sb) {
Number operand = null;
while (isOperandAtIndex()) {
@@ -151,7 +153,7 @@ public class CharstringType2 extends Charstring {
String mnemonic;
if (operator == 12) {
operator = nextByte();
-
+
// Check we're not exceeding the upper limit of our mnemonics
if (operator > 38) {
operator = 38;
@@ -162,7 +164,7 @@ public class CharstringType2 extends Charstring {
}
sb.append(mnemonic);
}
-
+
public void resetIP() {
_ip = _offset;
}
@@ -214,15 +216,16 @@ public class CharstringType2 extends Charstring {
return null;
}
}
-
+
public int nextByte() {
return _data[_ip++];
}
-
+
public boolean moreBytes() {
return _ip < _offset + _length;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
resetIP();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDef.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDef.java
index 4c2f3decb..21698c76b 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDef.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDef.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat1.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat1.java
index 0c99ad66a..94910e4f6 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat1.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat1.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -32,6 +32,7 @@ public class ClassDefFormat1 extends ClassDef {
}
}
+ @Override
public int getFormat() {
return 1;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat2.java
index 5b7c4d655..9906ecfb1 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ClassDefFormat2.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -30,6 +30,7 @@ public class ClassDefFormat2 extends ClassDef {
}
}
+ @Override
public int getFormat() {
return 2;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java
index 7ce531cd9..f7054852a 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat.java
@@ -58,21 +58,21 @@ import java.io.IOException;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public abstract class CmapFormat {
-
+
public class Range {
-
+
private int _startCode;
private int _endCode;
-
+
protected Range(int startCode, int endCode) {
_startCode = startCode;
_endCode = endCode;
}
-
+
public int getStartCode() {
return _startCode;
}
-
+
public int getEndCode() {
return _endCode;
}
@@ -116,12 +116,13 @@ public abstract class CmapFormat {
}
public abstract int getRangeCount();
-
+
public abstract Range getRange(int index)
throws ArrayIndexOutOfBoundsException;
public abstract int mapCharCode(int charCode);
-
+
+ @Override
public String toString() {
return new StringBuilder()
.append("format: ")
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java
index e374f82d2..dd1ede232 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat0.java
@@ -71,10 +71,12 @@ public class CmapFormat0 extends CmapFormat {
}
}
+ @Override
public int getRangeCount() {
return 1;
}
-
+
+ @Override
public Range getRange(int index) throws ArrayIndexOutOfBoundsException {
if (index != 0) {
throw new ArrayIndexOutOfBoundsException();
@@ -82,6 +84,7 @@ public class CmapFormat0 extends CmapFormat {
return new Range(0, 255);
}
+ @Override
public int mapCharCode(int charCode) {
if (0 <= charCode && charCode < 256) {
return _glyphIdArray[charCode];
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java
index 319d8c0d0..d071e9421 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat2.java
@@ -67,7 +67,7 @@ public class CmapFormat2 extends CmapFormat {
int _idRangeOffset;
int _arrayIndex;
}
-
+
private int[] _subHeaderKeys = new int[256];
private SubHeader[] _subHeaders;
private int[] _glyphIndexArray;
@@ -75,9 +75,9 @@ public class CmapFormat2 extends CmapFormat {
protected CmapFormat2(DataInput di) throws IOException {
super(di);
_format = 2;
-
+
int pos = 6;
-
+
// Read the subheader keys, noting the highest value, as this will
// determine the number of subheaders to read.
int highest = 0;
@@ -88,7 +88,7 @@ public class CmapFormat2 extends CmapFormat {
}
int subHeaderCount = highest / 8 + 1;
_subHeaders = new SubHeader[subHeaderCount];
-
+
// Read the subheaders, once again noting the highest glyphIndexArray
// index range.
int indexArrayOffset = 8 * subHeaderCount + 518;
@@ -99,18 +99,18 @@ public class CmapFormat2 extends CmapFormat {
sh._entryCount = di.readUnsignedShort();
sh._idDelta = di.readShort();
sh._idRangeOffset = di.readUnsignedShort();
-
+
// Calculate the offset into the _glyphIndexArray
pos += 8;
sh._arrayIndex =
(pos - 2 + sh._idRangeOffset - indexArrayOffset) / 2;
-
+
// What is the highest range within the glyphIndexArray?
highest = Math.max(highest, sh._arrayIndex + sh._entryCount);
-
+
_subHeaders[i] = sh;
}
-
+
// Read the glyphIndexArray
_glyphIndexArray = new int[highest];
for (int i = 0; i < _glyphIndexArray.length; ++i) {
@@ -118,15 +118,17 @@ public class CmapFormat2 extends CmapFormat {
}
}
+ @Override
public int getRangeCount() {
return _subHeaders.length;
}
-
+
+ @Override
public Range getRange(int index) throws ArrayIndexOutOfBoundsException {
if (index < 0 || index >= _subHeaders.length) {
throw new ArrayIndexOutOfBoundsException();
}
-
+
// Find the high-byte (if any)
int highByte = 0;
if (index != 0) {
@@ -137,15 +139,16 @@ public class CmapFormat2 extends CmapFormat {
}
}
}
-
+
return new Range(
highByte | _subHeaders[index]._firstCode,
highByte | (_subHeaders[index]._firstCode +
_subHeaders[index]._entryCount - 1));
}
+ @Override
public int mapCharCode(int charCode) {
-
+
// Get the appropriate subheader
int index = 0;
int highByte = charCode >> 8;
@@ -153,14 +156,14 @@ public class CmapFormat2 extends CmapFormat {
index = _subHeaderKeys[highByte] / 8;
}
SubHeader sh = _subHeaders[index];
-
+
// Is the charCode out-of-range?
int lowByte = charCode & 0xff;
if (lowByte < sh._firstCode ||
lowByte >= (sh._firstCode + sh._entryCount)) {
return 0;
}
-
+
// Now calculate the glyph index
int glyphIndex =
_glyphIndexArray[sh._arrayIndex + (lowByte - sh._firstCode)];
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java
index c09bdc8c3..2ae23d031 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat4.java
@@ -102,7 +102,7 @@ public class CmapFormat4 extends CmapFormat {
for (int i = 0; i < count; i++) {
_glyphIdArray[i] = di.readUnsignedShort();
} // + 2*count (8*segCount + 2*count + 18)
-
+
// Are there any padding bytes we need to consume?
// int leftover = length - (8*segCount + 2*count + 18);
// if (leftover > 0) {
@@ -110,10 +110,12 @@ public class CmapFormat4 extends CmapFormat {
// }
}
+ @Override
public int getRangeCount() {
return _segCount;
}
-
+
+ @Override
public Range getRange(int index) throws ArrayIndexOutOfBoundsException {
if (index < 0 || index >= _segCount) {
throw new ArrayIndexOutOfBoundsException();
@@ -121,6 +123,7 @@ public class CmapFormat4 extends CmapFormat {
return new Range(_startCode[index], _endCode[index]);
}
+ @Override
public int mapCharCode(int charCode) {
try {
for (int i = 0; i < _segCount; i++) {
@@ -142,6 +145,7 @@ public class CmapFormat4 extends CmapFormat {
return 0;
}
+ @Override
public String toString() {
return new StringBuilder()
.append(super.toString())
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java
index a58531d11..2a33d8d40 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormat6.java
@@ -67,20 +67,23 @@ public class CmapFormat6 extends CmapFormat {
protected CmapFormat6(DataInput di) throws IOException {
super(di);
_format = 6;
-
+
// HACK: As this is not yet implemented, we need to skip over the bytes
// we should be consuming
//di.skipBytes(_length - 4);
}
+ @Override
public int getRangeCount() {
return 0;
}
-
+
+ @Override
public Range getRange(int index) throws ArrayIndexOutOfBoundsException {
throw new ArrayIndexOutOfBoundsException();
}
+ @Override
public int mapCharCode(int charCode) {
return 0;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java
index 83366b593..392683bcd 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapFormatUnknown.java
@@ -30,24 +30,27 @@ import java.io.IOException;
* @version $Id: CmapFormatUnknown.java,v 1.1 2004-12-21 10:21:23 davidsch Exp $
*/
public class CmapFormatUnknown extends CmapFormat {
-
+
/** Creates a new instance of CmapFormatUnknown */
protected CmapFormatUnknown(int format, DataInput di) throws IOException {
super(di);
_format = format;
-
+
// We don't know how to handle this data, so we'll just skip over it
di.skipBytes(_length - 4);
}
+ @Override
public int getRangeCount() {
return 0;
}
-
+
+ @Override
public Range getRange(int index) throws ArrayIndexOutOfBoundsException {
throw new ArrayIndexOutOfBoundsException();
}
+ @Override
public int mapCharCode(int charCode) {
return 0;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java
index 85fdf7225..4833318d5 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapIndexEntry.java
@@ -85,11 +85,12 @@ public class CmapIndexEntry implements Comparable {
public CmapFormat getFormat() {
return _format;
}
-
+
public void setFormat(CmapFormat format) {
_format = format;
}
+ @Override
public String toString() {
return new StringBuilder()
.append("platform id: ")
@@ -104,6 +105,7 @@ public class CmapIndexEntry implements Comparable {
.append(_offset).toString();
}
+ @Override
public int compareTo(java.lang.Object obj) {
CmapIndexEntry entry = (CmapIndexEntry) obj;
if (getOffset() < entry.getOffset()) {
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java
index 0050fdd8e..2cdddb3ef 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CmapTable.java
@@ -94,7 +94,7 @@ public class CmapTable implements Table {
} else if (_entries[i].getOffset() > bytesRead) {
di.skipBytes(_entries[i].getOffset() - (int) bytesRead);
} else if (_entries[i].getOffset() != bytesRead) {
-
+
// Something is amiss
throw new IOException();
}
@@ -109,15 +109,15 @@ public class CmapTable implements Table {
public int getVersion() {
return _version;
}
-
+
public int getNumTables() {
return _numTables;
}
-
+
public CmapIndexEntry getCmapIndexEntry(int i) {
return _entries[i];
}
-
+
public CmapFormat getCmapFormat(short platformId, short encodingId) {
// Find the requested format
@@ -130,10 +130,12 @@ public class CmapTable implements Table {
return null;
}
+ @Override
public int getType() {
return cmap;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder().append("cmap\n");
@@ -148,13 +150,14 @@ public class CmapTable implements Table {
// }
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Coverage.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Coverage.java
index e85fadb5e..4f526f51d 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Coverage.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Coverage.java
@@ -68,7 +68,7 @@ public abstract class Coverage {
* can't be found.
*/
public abstract int findGlyph(int glyphId);
-
+
protected static Coverage read(DataInput di) throws IOException {
Coverage c = null;
int format = di.readUnsignedShort();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat1.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat1.java
index 712da54df..715bf11ec 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat1.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat1.java
@@ -72,10 +72,12 @@ public class CoverageFormat1 extends Coverage {
}
}
+ @Override
public int getFormat() {
return 1;
}
+ @Override
public int findGlyph(int glyphId) {
for (int i = 0; i < _glyphCount; i++) {
if (_glyphIds[i] == glyphId) {
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat2.java
index 7196ed595..bd2a28f79 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CoverageFormat2.java
@@ -72,10 +72,12 @@ public class CoverageFormat2 extends Coverage {
}
}
+ @Override
public int getFormat() {
return 2;
}
+ @Override
public int findGlyph(int glyphId) {
for (int i = 0; i < _rangeCount; i++) {
int n = _rangeRecords[i].getCoverageIndex(glyphId);
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java
index 963163584..9e1c47de9 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/CvtTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -29,6 +29,7 @@ public class CvtTable implements Table {
}
}
+ @Override
public int getType() {
return cvt;
}
@@ -37,6 +38,7 @@ public class CvtTable implements Table {
return values;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'cvt ' Table - Control Value Table\n----------------------------------\n");
@@ -47,15 +49,16 @@ public class CvtTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Device.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Device.java
index 6b4af6908..5451f4502 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Device.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Device.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DirectoryEntry.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DirectoryEntry.java
index c98f03fe9..e34fa32e8 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DirectoryEntry.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DirectoryEntry.java
@@ -70,7 +70,8 @@ public class DirectoryEntry implements Cloneable {
_offset = di.readInt();
_length = di.readInt();
}
-
+
+ @Override
public Object clone() {
try {
return super.clone();
@@ -103,7 +104,8 @@ public class DirectoryEntry implements Cloneable {
.append((char)((_tag)&0xff))
.toString();
}
-
+
+ @Override
public String toString() {
return new StringBuilder()
.append("'").append(getTagAsString())
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigEntry.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigEntry.java
index 4b41f451d..4a09a4c34 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigEntry.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigEntry.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -21,7 +21,7 @@ public class DsigEntry {
private int format;
private int length;
private int offset;
-
+
/** Creates new DsigEntry */
protected DsigEntry(DataInput di) throws IOException {
format = di.readInt();
@@ -32,11 +32,11 @@ public class DsigEntry {
public int getFormat() {
return format;
}
-
+
public int getLength() {
return length;
}
-
+
public int getOffset() {
return offset;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java
index e2784f9e6..2b85f52d8 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/DsigTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -45,20 +45,23 @@ public class DsigTable implements Table {
* Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return DSIG;
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder().append("DSIG\n");
for (int i = 0; i < numSigs; i++) {
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureList.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureList.java
index 3cfb54a38..fdedca94a 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureList.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureList.java
@@ -66,11 +66,11 @@ public class FeatureList {
/** Creates new FeatureList */
public FeatureList(DataInputStream dis, int offset) throws IOException {
-
+
// Ensure we're in the right place
dis.reset();
dis.skipBytes(offset);
-
+
// Start reading
_featureCount = dis.readUnsignedShort();
_featureRecords = new FeatureRecord[_featureCount];
@@ -88,11 +88,11 @@ public class FeatureList {
public int getFeatureCount() {
return _featureCount;
}
-
+
public FeatureRecord getFeatureRecord(int i) {
return _featureRecords[i];
}
-
+
public Feature getFeature(int i) {
return _features[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureRecord.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureRecord.java
index eb610814b..1da74f4d5 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureRecord.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FeatureRecord.java
@@ -72,7 +72,7 @@ public class FeatureRecord {
public int getTag() {
return _tag;
}
-
+
public int getOffset() {
return _offset;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java
index 9a6000156..467a4f360 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/FpgmTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -26,22 +26,25 @@ public class FpgmTable extends Program implements Table {
readInstructions(di, de.getLength());
}
+ @Override
public int getType() {
return fpgm;
}
+ @Override
public String toString() {
return Disassembler.disassemble(getInstructions(), 0);
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspRange.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspRange.java
index 2748406df..cc87b19a4 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspRange.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspRange.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -20,16 +20,17 @@ public class GaspRange {
public static final int GASP_GRIDFIT = 1;
public static final int GASP_DOGRAY = 2;
-
+
private int rangeMaxPPEM;
private int rangeGaspBehavior;
-
+
/** Creates new GaspRange */
protected GaspRange(DataInput di) throws IOException {
rangeMaxPPEM = di.readUnsignedShort();
rangeGaspBehavior = di.readUnsignedShort();
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(" rangeMaxPPEM: ").append(rangeMaxPPEM)
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java
index a83db5bff..8f91e6d00 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GaspTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -22,7 +22,7 @@ public class GaspTable implements Table {
private int version;
private int numRanges;
private GaspRange[] gaspRange;
-
+
/** Creates new GaspTable */
protected GaspTable(DirectoryEntry de, DataInput di) throws IOException {
this.de = (DirectoryEntry) de.clone();
@@ -34,10 +34,12 @@ public class GaspTable implements Table {
}
}
+ @Override
public int getType() {
return gasp;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'gasp' Table - Grid-fitting And Scan-conversion Procedure\n---------------------------------------------------------");
@@ -49,15 +51,16 @@ public class GaspTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java
index 4cf254198..50e0fa339 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfCompositeDescript.java
@@ -73,7 +73,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
int glyphIndex,
DataInput di) throws IOException {
super(parentTable, glyphIndex, (short) -1, di);
-
+
// Get all of the composite components
GlyfCompositeComp comp;
int firstIndex = 0;
@@ -99,6 +99,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
}
}
+ @Override
public int getEndPtOfContours(int i) {
GlyfCompositeComp c = getCompositeCompEndPt(i);
if (c != null) {
@@ -108,6 +109,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
return 0;
}
+ @Override
public byte getFlags(int i) {
GlyfCompositeComp c = getCompositeComp(i);
if (c != null) {
@@ -117,6 +119,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
return 0;
}
+ @Override
public short getXCoordinate(int i) {
GlyfCompositeComp c = getCompositeComp(i);
if (c != null) {
@@ -131,6 +134,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
return 0;
}
+ @Override
public short getYCoordinate(int i) {
GlyfCompositeComp c = getCompositeComp(i);
if (c != null) {
@@ -145,10 +149,12 @@ public class GlyfCompositeDescript extends GlyfDescript {
return 0;
}
+ @Override
public boolean isComposite() {
return true;
}
+ @Override
public int getPointCount() {
GlyfCompositeComp c = _components.get(_components.size()-1);
GlyphDescription gd = _parentTable.getDescription(c.getGlyphIndex());
@@ -159,6 +165,7 @@ public class GlyfCompositeDescript extends GlyfDescript {
}
}
+ @Override
public int getContourCount() {
GlyfCompositeComp c = _components.get(_components.size()-1);
return c.getFirstContour() + _parentTable.getDescription(c.getGlyphIndex()).getContourCount();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java
index a9342a434..6b06eb3de 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfDescript.java
@@ -92,26 +92,32 @@ public abstract class GlyfDescript extends Program implements GlyphDescription {
return _numberOfContours;
}
+ @Override
public int getGlyphIndex() {
return _glyphIndex;
}
+ @Override
public short getXMaximum() {
return _xMax;
}
+ @Override
public short getXMinimum() {
return _xMin;
}
+ @Override
public short getYMaximum() {
return _yMax;
}
+ @Override
public short getYMinimum() {
return _yMin;
}
-
+
+ @Override
public String toString() {
return new StringBuilder()
.append(" numberOfContours: ").append(_numberOfContours)
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java
index c11d2d8ff..c06ceaa13 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfSimpleDescript.java
@@ -73,7 +73,7 @@ public class GlyfSimpleDescript extends GlyfDescript {
short numberOfContours,
DataInput di) throws IOException {
super(parentTable, glyphIndex, numberOfContours, di);
-
+
// Simple glyph description
_endPtsOfContours = new int[numberOfContours];
for (int i = 0; i < numberOfContours; i++) {
@@ -92,30 +92,37 @@ public class GlyfSimpleDescript extends GlyfDescript {
readCoords(_count, di);
}
+ @Override
public int getEndPtOfContours(int i) {
return _endPtsOfContours[i];
}
+ @Override
public byte getFlags(int i) {
return _flags[i];
}
+ @Override
public short getXCoordinate(int i) {
return _xCoordinates[i];
}
+ @Override
public short getYCoordinate(int i) {
return _yCoordinates[i];
}
+ @Override
public boolean isComposite() {
return false;
}
+ @Override
public int getPointCount() {
return _count;
}
+ @Override
public int getContourCount() {
return getNumberOfContours();
}
@@ -184,7 +191,8 @@ public class GlyfSimpleDescript extends GlyfDescript {
System.out.println("error: array index out of bounds");
}
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(super.toString());
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java
index 22fdd8886..4b196c9e2 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyfTable.java
@@ -71,12 +71,12 @@ public class GlyfTable implements Table {
LocaTable loca) throws IOException {
_de = (DirectoryEntry) de.clone();
_descript = new GlyfDescript[maxp.getNumGlyphs()];
-
+
// Buffer the whole table so we can randomly access it
byte[] buf = new byte[de.getLength()];
di.readFully(buf);
ByteArrayInputStream bais = new ByteArrayInputStream(buf);
-
+
// Process all the simple glyphs
for (int i = 0; i < maxp.getNumGlyphs(); i++) {
int len = loca.getOffset(i + 1) - loca.getOffset(i);
@@ -116,16 +116,18 @@ public class GlyfTable implements Table {
}
}
+ @Override
public int getType() {
return glyf;
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java
index 106e17917..025778dfc 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GlyphDescription.java
@@ -56,29 +56,29 @@ package jogamp.graph.font.typecast.ot.table;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public interface GlyphDescription {
-
+
public int getGlyphIndex();
-
+
public int getEndPtOfContours(int i);
-
+
public byte getFlags(int i);
-
+
public short getXCoordinate(int i);
-
+
public short getYCoordinate(int i);
-
+
public short getXMaximum();
-
+
public short getXMinimum();
-
+
public short getYMaximum();
-
+
public short getYMinimum();
-
+
public boolean isComposite();
-
+
public int getPointCount();
-
+
public int getContourCount();
// public int getComponentIndex(int c);
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java
index 91a62362a..30ecdd051 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GposTable.java
@@ -45,10 +45,12 @@ public class GposTable implements Table {
/** Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return GPOS;
}
-
+
+ @Override
public String toString() {
return "GPOS";
}
@@ -59,8 +61,9 @@ public class GposTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java
index c002de374..c23d420a8 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/GsubTable.java
@@ -66,10 +66,10 @@ public class GsubTable implements Table, LookupSubtableFactory {
private ScriptList _scriptList;
private FeatureList _featureList;
private LookupList _lookupList;
-
+
protected GsubTable(DirectoryEntry de, DataInput di) throws IOException {
_de = (DirectoryEntry) de.clone();
-
+
// Load into a temporary buffer, and create another input stream
byte[] buf = new byte[de.getLength()];
di.readFully(buf);
@@ -86,19 +86,20 @@ public class GsubTable implements Table, LookupSubtableFactory {
// Feature List
_featureList = new FeatureList(dis, featureListOffset);
-
+
// Lookup List
_lookupList = new LookupList(dis, lookupListOffset, this);
}
/**
- * 1 - Single - Replace one glyph with one glyph
- * 2 - Multiple - Replace one glyph with more than one glyph
- * 3 - Alternate - Replace one glyph with one of many glyphs
- * 4 - Ligature - Replace multiple glyphs with one glyph
- * 5 - Context - Replace one or more glyphs in context
+ * 1 - Single - Replace one glyph with one glyph
+ * 2 - Multiple - Replace one glyph with more than one glyph
+ * 3 - Alternate - Replace one glyph with one of many glyphs
+ * 4 - Ligature - Replace multiple glyphs with one glyph
+ * 5 - Context - Replace one or more glyphs in context
* 6 - Chaining - Context Replace one or more glyphs in chained context
*/
+ @Override
public LookupSubtable read(
int type,
DataInputStream dis,
@@ -130,6 +131,7 @@ public class GsubTable implements Table, LookupSubtableFactory {
/** Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return GSUB;
}
@@ -146,6 +148,7 @@ public class GsubTable implements Table, LookupSubtableFactory {
return _lookupList;
}
+ @Override
public String toString() {
return "GSUB";
}
@@ -167,15 +170,16 @@ public class GsubTable implements Table, LookupSubtableFactory {
}
return "Unknown";
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java
index 5b1fa2020..64f5e6415 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HdmxTable.java
@@ -30,9 +30,9 @@ import java.io.IOException;
* @version $Id: HdmxTable.java,v 1.2 2007-07-26 11:12:30 davidsch Exp $
*/
public class HdmxTable implements Table {
-
+
public class DeviceRecord {
-
+
private short _pixelSize;
private short _maxWidth;
private short[] _widths;
@@ -49,11 +49,11 @@ public class HdmxTable implements Table {
public short getPixelSize() {
return _pixelSize;
}
-
+
public short getMaxWidth() {
return _maxWidth;
}
-
+
public short[] getWidths() {
return _widths;
}
@@ -61,9 +61,9 @@ public class HdmxTable implements Table {
public short getWidth(int glyphidx) {
return _widths[glyphidx];
}
-
+
}
-
+
private DirectoryEntry _de;
private int _version;
private short _numRecords;
@@ -78,7 +78,7 @@ public class HdmxTable implements Table {
_numRecords = di.readShort();
_sizeDeviceRecords = di.readInt();
_records = new DeviceRecord[_numRecords];
-
+
// Read the device records
for (int i = 0; i < _numRecords; ++i) {
_records[i] = new DeviceRecord(maxp.getNumGlyphs(), di);
@@ -88,15 +88,17 @@ public class HdmxTable implements Table {
public int getNumberOfRecords() {
return _numRecords;
}
-
+
public DeviceRecord getRecord(int i) {
return _records[i];
}
-
+
+ @Override
public int getType() {
return hdmx;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'hdmx' Table - Horizontal Device Metrics\n----------------------------------------\n");
@@ -124,6 +126,7 @@ public class HdmxTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java
index 9d7fe4251..47e60f900 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HeadTable.java
@@ -142,6 +142,7 @@ public class HeadTable implements Table {
return _modified;
}
+ @Override
public int getType() {
return head;
}
@@ -170,6 +171,7 @@ public class HeadTable implements Table {
return _yMin;
}
+ @Override
public String toString() {
return new StringBuilder()
.append("'head' Table - Font Header\n--------------------------")
@@ -192,15 +194,16 @@ public class HeadTable implements Table {
.append("\n glyphDataFormat: ").append(_glyphDataFormat)
.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java
index 20a21e4d9..242c9b139 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HheaTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -92,6 +92,7 @@ public class HheaTable implements Table {
return numberOfHMetrics;
}
+ @Override
public int getType() {
return hhea;
}
@@ -100,6 +101,7 @@ public class HheaTable implements Table {
return xMaxExtent;
}
+ @Override
public String toString() {
return new StringBuilder()
.append("'hhea' Table - Horizontal Header\n--------------------------------")
@@ -122,15 +124,16 @@ public class HheaTable implements Table {
.append("\n numOf_LongHorMetrics: ").append(numberOfHMetrics)
.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java
index dacd9e265..122a0a826 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/HmtxTable.java
@@ -106,10 +106,12 @@ public class HmtxTable implements Table {
}
}
+ @Override
public int getType() {
return hmtx;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'hmtx' Table - Horizontal Metrics\n---------------------------------\n");
@@ -135,6 +137,7 @@ public class HmtxTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java
index 9fd66e728..eed8c1841 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ID.java
@@ -38,7 +38,7 @@ public abstract class ID {
public static final short encodingUnicode11Semantics = 1;
public static final short encodingISO10646Semantics = 2;
public static final short encodingUnicode20Semantics = 3;
-
+
// Microsoft Encoding IDs
// public static final short encodingUndefined = 0;
// public static final short encodingUGL = 1;
@@ -203,7 +203,7 @@ public abstract class ID {
public static String getEncodingName(short platformId, short encodingId) {
if (platformId == platformUnicode) {
-
+
// Unicode specific encodings
switch (encodingId) {
case encodingUnicode10Semantics: return "Unicode 1.0 semantics";
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtable.java
index 7a4cccba2..04fd646a7 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -21,7 +21,7 @@ public abstract class KernSubtable {
/** Creates new KernSubtable */
protected KernSubtable() {
}
-
+
public abstract int getKerningPairCount();
public abstract KerningPair getKerningPair(int i);
@@ -32,7 +32,7 @@ public abstract class KernSubtable {
int length = di.readUnsignedShort();
int coverage = di.readUnsignedShort();
int format = coverage >> 8;
-
+
switch (format) {
case 0:
table = new KernSubtableFormat0(di);
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat0.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat0.java
index b55bef6d5..1e7ff8c2d 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat0.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat0.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -17,7 +17,7 @@ import java.io.IOException;
* @version $Id: KernSubtableFormat0.java,v 1.1.1.1 2004-12-05 23:14:48 davidsch Exp $
*/
public class KernSubtableFormat0 extends KernSubtable {
-
+
private int nPairs;
private int searchRange;
private int entrySelector;
@@ -36,10 +36,12 @@ public class KernSubtableFormat0 extends KernSubtable {
}
}
+ @Override
public int getKerningPairCount() {
return nPairs;
}
+ @Override
public KerningPair getKerningPair(int i) {
return kerningPairs[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat2.java
index 60d584ca6..9c7fc81f9 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernSubtableFormat2.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -31,10 +31,12 @@ public class KernSubtableFormat2 extends KernSubtable {
array = di.readUnsignedShort();
}
+ @Override
public int getKerningPairCount() {
return 0;
}
+ @Override
public KerningPair getKerningPair(int i) {
return null;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java
index 70aee70d2..006a86895 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KernTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -17,7 +17,7 @@ import java.io.IOException;
* @version $Id: KernTable.java,v 1.1.1.1 2004-12-05 23:14:48 davidsch Exp $
*/
public class KernTable implements Table {
-
+
private DirectoryEntry de;
private int version;
private int nTables;
@@ -37,7 +37,7 @@ public class KernTable implements Table {
public int getSubtableCount() {
return nTables;
}
-
+
public KernSubtable getSubtable(int i) {
return tables[i];
}
@@ -45,6 +45,7 @@ public class KernTable implements Table {
/** Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return kern;
}
@@ -55,8 +56,9 @@ public class KernTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KerningPair.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KerningPair.java
index ce7cebc97..52f82cc85 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KerningPair.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/KerningPair.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSys.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSys.java
index 6759208f5..1ab112a78 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSys.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSys.java
@@ -64,7 +64,7 @@ public class LangSys {
private int _reqFeatureIndex;
private int _featureCount;
private int[] _featureIndex;
-
+
/** Creates new LangSys */
protected LangSys(DataInput di) throws IOException {
_lookupOrder = di.readUnsignedShort();
@@ -75,19 +75,19 @@ public class LangSys {
_featureIndex[i] = di.readUnsignedShort();
}
}
-
+
public int getLookupOrder() {
return _lookupOrder;
}
-
+
public int getReqFeatureIndex() {
return _reqFeatureIndex;
}
-
+
public int getFeatureCount() {
return _featureCount;
}
-
+
public int getFeatureIndex(int i) {
return _featureIndex[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSysRecord.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSysRecord.java
index 9511f66ba..f3befe3b6 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSysRecord.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LangSysRecord.java
@@ -62,7 +62,7 @@ public class LangSysRecord {
private int _tag;
private int _offset;
-
+
/** Creates new LangSysRecord */
public LangSysRecord(DataInput di) throws IOException {
_tag = di.readInt();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Ligature.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Ligature.java
index d3e2ad5cd..de862a983 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Ligature.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Ligature.java
@@ -73,11 +73,11 @@ public class Ligature {
_components[i] = di.readUnsignedShort();
}
}
-
+
public int getGlyphCount() {
return _compCount;
}
-
+
public int getGlyphId(int i) {
return (i == 0) ? _ligGlyph : _components[i-1];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LigatureSubstFormat1.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LigatureSubstFormat1.java
index a0f42662c..1979ea586 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LigatureSubstFormat1.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LigatureSubstFormat1.java
@@ -89,7 +89,8 @@ public class LigatureSubstFormat1 extends LigatureSubst {
return 1;
}
+ @Override
public String getTypeAsString() {
return "LigatureSubstFormat1";
- }
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java
index 5eb7c5856..2c7079fec 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LocaTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -49,10 +49,12 @@ public class LocaTable implements Table {
return _offsets[i] * _factor;
}
+ @Override
public int getType() {
return loca;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'loca' Table - Index To Location Table\n--------------------------------------\n")
@@ -64,13 +66,14 @@ public class LocaTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Lookup.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Lookup.java
index 2899c24d9..6496c3791 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Lookup.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Lookup.java
@@ -79,7 +79,7 @@ public class Lookup {
// Ensure we're in the right place
dis.reset();
dis.skipBytes(offset);
-
+
// Start reading
_type = dis.readUnsignedShort();
_flag = dis.readUnsignedShort();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupList.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupList.java
index a3b71b639..e70a932e4 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupList.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupList.java
@@ -67,11 +67,11 @@ public class LookupList {
/** Creates new LookupList */
public LookupList(DataInputStream dis, int offset, LookupSubtableFactory factory)
throws IOException {
-
+
// Ensure we're in the right place
dis.reset();
dis.skipBytes(offset);
-
+
// Start reading
_lookupCount = dis.readUnsignedShort();
_lookupOffsets = new int[_lookupCount];
@@ -87,11 +87,11 @@ public class LookupList {
public int getLookupCount() {
return _lookupCount;
}
-
+
public int getLookupOffset(int i) {
return _lookupOffsets[i];
}
-
+
public Lookup getLookup(int i) {
return _lookups[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupSubtableFactory.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupSubtableFactory.java
index cb4d28d2c..ca67df7fb 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupSubtableFactory.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LookupSubtableFactory.java
@@ -47,13 +47,13 @@
Apache Software Foundation, please see <http://www.apache.org/>.
*/
-
+
package jogamp.graph.font.typecast.ot.table;
import java.io.DataInputStream;
import java.io.IOException;
-/**
+/**
*
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
* @version $Id: LookupSubtableFactory.java,v 1.2 2007-01-24 09:47:46 davidsch Exp $
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java
index ace3d38b5..47874cc56 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/LtshTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -22,7 +22,7 @@ public class LtshTable implements Table {
private int version;
private int numGlyphs;
private int[] yPels;
-
+
/** Creates new LtshTable */
protected LtshTable(DirectoryEntry de, DataInput di) throws IOException {
this.de = (DirectoryEntry) de.clone();
@@ -38,10 +38,12 @@ public class LtshTable implements Table {
* Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return LTSH;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'LTSH' Table - Linear Threshold Table\n-------------------------------------")
@@ -54,15 +56,16 @@ public class LtshTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java
index 0e8ec44c7..abb6047fc 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/MaxpTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -39,7 +39,7 @@ public class MaxpTable implements Table {
protected MaxpTable(DirectoryEntry de, DataInput di) throws IOException {
this.de = (DirectoryEntry) de.clone();
versionNumber = di.readInt();
-
+
// CFF fonts use version 0.5, TrueType fonts use version 1.0
if (versionNumber == 0x00005000) {
numGlyphs = di.readUnsignedShort();
@@ -121,10 +121,12 @@ public class MaxpTable implements Table {
return numGlyphs;
}
+ @Override
public int getType() {
return maxp;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'maxp' Table - Maximum Profile\n------------------------------")
@@ -149,15 +151,16 @@ public class MaxpTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java
index 268d6cfca..a1787e3e7 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameRecord.java
@@ -75,19 +75,19 @@ public class NameRecord {
_stringLength = di.readShort();
_stringOffset = di.readShort();
}
-
+
public short getEncodingId() {
return _encodingId;
}
-
+
public short getLanguageId() {
return _languageId;
}
-
+
public short getNameId() {
return _nameId;
}
-
+
public short getPlatformId() {
return _platformId;
}
@@ -101,7 +101,7 @@ public class NameRecord {
StringBuilder sb = new StringBuilder();
di.skipBytes(_stringOffset);
if (_platformId == ID.platformUnicode) {
-
+
// Unicode (big-endian)
for (int i = 0; i < _stringLength/2; i++) {
sb.append(di.readChar());
@@ -113,13 +113,13 @@ public class NameRecord {
sb.append((char) di.readByte());
}
} else if (_platformId == ID.platformISO) {
-
+
// ISO encoding, ASCII
for (int i = 0; i < _stringLength; i++) {
sb.append((char) di.readByte());
}
} else if (_platformId == ID.platformMicrosoft) {
-
+
// Microsoft encoding, Unicode
char c;
for (int i = 0; i < _stringLength/2; i++) {
@@ -130,9 +130,10 @@ public class NameRecord {
_record = sb.toString();
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
-
+
sb.append(" Platform ID: ").append(_platformId)
.append("\n Specific ID: ").append(_encodingId)
.append("\n Language ID: ").append(_languageId)
@@ -140,7 +141,7 @@ public class NameRecord {
.append("\n Length: ").append(_stringLength)
.append("\n Offset: ").append(_stringOffset)
.append("\n\n").append(_record);
-
+
return sb.toString();
}
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java
index 6daf2ad60..ad8198b7f 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/NameTable.java
@@ -68,25 +68,25 @@ public class NameTable implements Table {
private short _numberOfNameRecords;
private short _stringStorageOffset;
private NameRecord[] _records;
-
+
protected NameTable(DirectoryEntry de, DataInput di) throws IOException {
_de = (DirectoryEntry) de.clone();
_formatSelector = di.readShort();
_numberOfNameRecords = di.readShort();
_stringStorageOffset = di.readShort();
_records = new NameRecord[_numberOfNameRecords];
-
+
// Load the records, which contain the encoding information and string
// offsets
for (int i = 0; i < _numberOfNameRecords; i++) {
_records[i] = new NameRecord(di);
}
-
+
// Load the string data into a buffer so the records can copy out the
// bits they are interested in
byte[] buffer = new byte[_de.getLength() - _stringStorageOffset];
di.readFully(buffer);
-
+
// Now let the records get their hands on them
for (int i = 0; i < _numberOfNameRecords; i++) {
_records[i].loadString(
@@ -98,7 +98,7 @@ public class NameTable implements Table {
return _numberOfNameRecords;
}
-
+
public NameRecord getRecord(int i) {
if(_numberOfNameRecords > i) {
return _records[i];
@@ -130,18 +130,20 @@ public class NameTable implements Table {
return sb;
}
+ @Override
public int getType() {
return name;
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java
index f4fa76e81..5340b297c 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Os2Table.java
@@ -134,7 +134,7 @@ public class Os2Table implements Table {
_usWinDescent = di.readUnsignedShort();
_ulCodePageRange1 = di.readInt();
_ulCodePageRange2 = di.readInt();
-
+
// OpenType 1.3
if (_version == 2) {
_sxHeight = di.readShort();
@@ -276,27 +276,29 @@ public class Os2Table implements Table {
public short getXHeight() {
return _sxHeight;
}
-
+
public short getCapHeight() {
return _sCapHeight;
}
-
+
public int getDefaultChar() {
return _usDefaultChar;
}
-
+
public int getBreakChar() {
return _usBreakChar;
}
-
+
public int getMaxContext() {
return _usMaxContext;
}
+ @Override
public int getType() {
return OS_2;
}
+ @Override
public String toString() {
return new StringBuilder()
.append("'OS/2' Table - OS/2 and Windows Metrics\n---------------------------------------")
@@ -335,7 +337,7 @@ public class Os2Table implements Table {
.append("\n CodePage Range 2( Bits 32- 63 ): ").append(Integer.toHexString(_ulCodePageRange2).toUpperCase())
.toString();
}
-
+
private String getVendorIDAsString() {
return new StringBuilder()
.append((char)((_achVendorID>>24)&0xff))
@@ -344,13 +346,14 @@ public class Os2Table implements Table {
.append((char)((_achVendorID)&0xff))
.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Panose.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Panose.java
index 6127140d1..771318108 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Panose.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Panose.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -42,11 +42,11 @@ public class Panose {
public byte getFamilyType() {
return bFamilyType;
}
-
+
public byte getSerifStyle() {
return bSerifStyle;
}
-
+
public byte getWeight() {
return bWeight;
}
@@ -54,31 +54,32 @@ public class Panose {
public byte getProportion() {
return bProportion;
}
-
+
public byte getContrast() {
return bContrast;
}
-
+
public byte getStrokeVariation() {
return bStrokeVariation;
}
-
+
public byte getArmStyle() {
return bArmStyle;
}
-
+
public byte getLetterForm() {
return bLetterform;
}
-
+
public byte getMidline() {
return bMidline;
}
-
+
public byte getXHeight() {
return bXHeight;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(String.valueOf(bFamilyType)).append(" ")
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java
index f9dcf2ce7..a1f603d8f 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PcltTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -65,10 +65,12 @@ public class PcltTable implements Table {
* Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return PCLT;
}
-
+
+ @Override
public String toString() {
return new StringBuilder()
.append("'PCLT' Table - Printer Command Language Table\n---------------------------------------------")
@@ -91,15 +93,16 @@ public class PcltTable implements Table {
.append("\n reserved: ").append(reserved)
.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java
index c913b4c71..188b441ac 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PostTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -294,7 +294,7 @@ public class PostTable implements Table {
private int maxMemType42;
private int minMemType1;
private int maxMemType1;
-
+
// v2
private int numGlyphs;
private int[] glyphNameIndex;
@@ -312,7 +312,7 @@ public class PostTable implements Table {
maxMemType42 = di.readInt();
minMemType1 = di.readInt();
maxMemType1 = di.readInt();
-
+
if (version == 0x00020000) {
numGlyphs = di.readUnsignedShort();
glyphNameIndex = new int[numGlyphs];
@@ -366,14 +366,16 @@ public class PostTable implements Table {
return false;
}
}
-
+
/** Get the table type, as a table directory value.
* @return The table type
*/
+ @Override
public int getType() {
return post;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'post' Table - PostScript Metrics\n---------------------------------\n")
@@ -409,15 +411,16 @@ public class PostTable implements Table {
}
return sb.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java
index aac10c539..4c64673b7 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/PrepTable.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -26,22 +26,25 @@ public class PrepTable extends Program implements Table {
readInstructions(di, de.getLength());
}
+ @Override
public int getType() {
return prep;
}
+ @Override
public String toString() {
return Disassembler.disassemble(getInstructions(), 0);
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return de;
}
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java
index 28c148c2b..e3beabef8 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Program.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/RangeRecord.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/RangeRecord.java
index 72d703bb4..40ddf4215 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/RangeRecord.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/RangeRecord.java
@@ -75,7 +75,7 @@ public class RangeRecord {
public boolean isInRange(int glyphId) {
return (_start <= glyphId && glyphId <= _end);
}
-
+
public int getCoverageIndex(int glyphId) {
if (isInRange(glyphId)) {
return _startCoverageIndex + glyphId - _start;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Script.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Script.java
index eb534b5dd..04781a8f9 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Script.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Script.java
@@ -65,14 +65,14 @@ public class Script {
private LangSysRecord[] _langSysRecords;
private LangSys _defaultLangSys;
private LangSys[] _langSys;
-
+
/** Creates new ScriptTable */
protected Script(DataInputStream dis, int offset) throws IOException {
// Ensure we're in the right place
dis.reset();
dis.skipBytes(offset);
-
+
// Start reading
_defaultLangSysOffset = dis.readUnsignedShort();
_langSysCount = dis.readUnsignedShort();
@@ -102,7 +102,7 @@ public class Script {
public int getLangSysCount() {
return _langSysCount;
}
-
+
public LangSysRecord getLangSysRecord(int i) {
return _langSysRecords[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptList.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptList.java
index 4af62b0ee..18589b712 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptList.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptList.java
@@ -63,14 +63,14 @@ public class ScriptList {
private int _scriptCount = 0;
private ScriptRecord[] _scriptRecords;
private Script[] _scripts;
-
+
/** Creates new ScriptList */
protected ScriptList(DataInputStream dis, int offset) throws IOException {
-
+
// Ensure we're in the right place
dis.reset();
dis.skipBytes(offset);
-
+
// Start reading
_scriptCount = dis.readUnsignedShort();
_scriptRecords = new ScriptRecord[_scriptCount];
@@ -86,15 +86,15 @@ public class ScriptList {
public int getScriptCount() {
return _scriptCount;
}
-
+
public ScriptRecord getScriptRecord(int i) {
return _scriptRecords[i];
}
-
+
public Script getScript(int i) {
return _scripts[i];
}
-
+
public Script findScript(String tag) {
if (tag.length() != 4) {
return null;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptRecord.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptRecord.java
index 5da0608dd..183ca2ffd 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptRecord.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/ScriptRecord.java
@@ -62,7 +62,7 @@ public class ScriptRecord {
private int _tag;
private int _offset;
-
+
/** Creates new ScriptRecord */
protected ScriptRecord(DataInput di) throws IOException {
_tag = di.readInt();
@@ -72,7 +72,7 @@ public class ScriptRecord {
public int getTag() {
return _tag;
}
-
+
public int getOffset() {
return _offset;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SignatureBlock.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SignatureBlock.java
index 5a5de119f..31a2d17c9 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SignatureBlock.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SignatureBlock.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -22,7 +22,7 @@ public class SignatureBlock {
private int reserved2;
private int signatureLen;
private byte[] signature;
-
+
/** Creates new SignatureBlock */
protected SignatureBlock(DataInput di) throws IOException {
reserved1 = di.readUnsignedShort();
@@ -32,6 +32,7 @@ public class SignatureBlock {
di.readFully(signature);
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < signatureLen; i += 16) {
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubst.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubst.java
index 8c56a740f..e31281f2e 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubst.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubst.java
@@ -63,7 +63,7 @@ public abstract class SingleSubst extends LookupSubtable {
public abstract int getFormat();
public abstract int substitute(int glyphId);
-
+
public static SingleSubst read(DataInputStream dis, int offset) throws IOException {
SingleSubst s = null;
dis.reset();
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat1.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat1.java
index 99b85f35c..e97e62a58 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat1.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat1.java
@@ -73,10 +73,12 @@ public class SingleSubstFormat1 extends SingleSubst {
_coverage = Coverage.read(dis);
}
+ @Override
public int getFormat() {
return 1;
}
+ @Override
public int substitute(int glyphId) {
int i = _coverage.findGlyph(glyphId);
if (i > -1) {
@@ -84,7 +86,8 @@ public class SingleSubstFormat1 extends SingleSubst {
}
return glyphId;
}
-
+
+ @Override
public String getTypeAsString() {
return "SingleSubstFormat1";
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat2.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat2.java
index cd3b6d147..4d46b07b4 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat2.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/SingleSubstFormat2.java
@@ -78,10 +78,12 @@ public class SingleSubstFormat2 extends SingleSubst {
_coverage = Coverage.read(dis);
}
+ @Override
public int getFormat() {
return 2;
}
+ @Override
public int substitute(int glyphId) {
int i = _coverage.findGlyph(glyphId);
if (i > -1) {
@@ -90,8 +92,9 @@ public class SingleSubstFormat2 extends SingleSubst {
return glyphId;
}
+ @Override
public String getTypeAsString() {
return "SingleSubstFormat2";
- }
+ }
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TTCHeader.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TTCHeader.java
index b801517f8..f7c7d99b5 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TTCHeader.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TTCHeader.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -17,7 +17,7 @@ import java.io.IOException;
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
*/
public class TTCHeader {
-
+
public static final int ttcf = 0x74746366;
private int ttcTag;
@@ -47,7 +47,7 @@ public class TTCHeader {
public int getDirectoryCount() {
return directoryCount;
}
-
+
public int getTableDirectory(int i) {
return tableDirectory[i];
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java
index 624f47bef..30fd2f457 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/Table.java
@@ -1,9 +1,9 @@
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * This software is published under the terms of the Apache Software License *
- * version 1.1, a copy of which has been included with this distribution in *
- * the LICENSE file. *
+ * ------------------------------------------------------------------------- *
+ * This software is published under the terms of the Apache Software License *
+ * version 1.1, a copy of which has been included with this distribution in *
+ * the LICENSE file. *
*****************************************************************************/
package jogamp.graph.font.typecast.ot.table;
@@ -51,7 +51,7 @@ public interface Table {
public static final int vmtx = 0x766d7478; // Vertical Metrics
public static final String notAvailable = "n/a";
-
+
/**
* Get the table type, as a table directory value.
* @return The table type
@@ -65,5 +65,5 @@ public interface Table {
* @return A directory entry
*/
public DirectoryEntry getDirectoryEntry();
-
+
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java
index bacc26d30..23ecba804 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableDirectory.java
@@ -112,7 +112,8 @@ public class TableDirectory {
public int getVersion() {
return _version;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder()
.append("Offset Table\n------ -----")
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableException.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableException.java
index 7749ea856..65aa84bff 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableException.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableException.java
@@ -26,7 +26,7 @@ package jogamp.graph.font.typecast.ot.table;
* @version $Id: TableException.java,v 1.1.1.1 2004-12-05 23:15:00 davidsch Exp $
*/
public class TableException extends java.lang.Exception {
-
+
private static final long serialVersionUID = 1L;
/**
@@ -34,8 +34,8 @@ public class TableException extends java.lang.Exception {
*/
public TableException() {
}
-
-
+
+
/**
* Constructs an instance of <code>TableException</code> with the specified detail message.
* @param msg the detail message.
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableFactory.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableFactory.java
index 998ce08e3..956d1aecd 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableFactory.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/TableFactory.java
@@ -47,7 +47,7 @@
Apache Software Foundation, please see <http://www.apache.org/>.
*/
-
+
package jogamp.graph.font.typecast.ot.table;
import java.io.DataInputStream;
@@ -56,7 +56,7 @@ import java.io.IOException;
import jogamp.graph.font.typecast.ot.OTFont;
import jogamp.graph.font.typecast.ot.OTFontCollection;
-/**
+/**
*
* @version $Id: TableFactory.java,v 1.7 2007-02-05 12:39:51 davidsch Exp $
* @author <a href="mailto:[email protected]">David Schweinsberg</a>
@@ -69,7 +69,7 @@ public class TableFactory {
DirectoryEntry de,
DataInputStream dis) throws IOException {
Table t = null;
-
+
// First, if we have a font collection, look for the table there
if (fc != null) {
t = fc.getTable(de);
@@ -77,7 +77,7 @@ public class TableFactory {
return t;
}
}
-
+
// Create the table
switch (de.getTag()) {
case Table.BASE:
@@ -175,7 +175,7 @@ public class TableFactory {
t = new VmtxTable(de, dis, font.getVheaTable(), font.getMaxpTable());
break;
}
-
+
// If we have a font collection, add this table to it
if ((fc != null) && (t != null)) {
fc.addTable(t);
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java
index 80579f5cd..bebd7f946 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VdmxTable.java
@@ -31,12 +31,12 @@ import java.io.IOException;
public class VdmxTable implements Table {
private class Ratio {
-
+
private byte _bCharSet;
private byte _xRatio;
private byte _yStartRatio;
private byte _yEndRatio;
-
+
protected Ratio(DataInput di) throws IOException {
_bCharSet = di.readByte();
_xRatio = di.readByte();
@@ -47,26 +47,26 @@ public class VdmxTable implements Table {
public byte getBCharSet() {
return _bCharSet;
}
-
+
public byte getXRatio() {
return _xRatio;
}
-
+
public byte getYStartRatio() {
return _yStartRatio;
}
-
+
public byte getYEndRatio() {
return _yEndRatio;
}
}
-
+
private class VTableRecord {
-
+
private int _yPelHeight;
private short _yMax;
private short _yMin;
-
+
protected VTableRecord(DataInput di) throws IOException {
_yPelHeight = di.readUnsignedShort();
_yMax = di.readShort();
@@ -76,23 +76,23 @@ public class VdmxTable implements Table {
public int getYPelHeight() {
return _yPelHeight;
}
-
+
public short getYMax() {
return _yMax;
}
-
+
public short getYMin() {
return _yMin;
}
}
-
+
private class Group {
-
+
private int _recs;
private int _startsz;
private int _endsz;
private VTableRecord[] _entry;
-
+
protected Group(DataInput di) throws IOException {
_recs = di.readUnsignedShort();
_startsz = di.readUnsignedByte();
@@ -106,20 +106,20 @@ public class VdmxTable implements Table {
public int getRecs() {
return _recs;
}
-
+
public int getStartSZ() {
return _startsz;
}
-
+
public int getEndSZ() {
return _endsz;
}
-
+
public VTableRecord[] getEntry() {
return _entry;
}
}
-
+
private DirectoryEntry _de;
private int _version;
private int _numRecs;
@@ -127,7 +127,7 @@ public class VdmxTable implements Table {
private Ratio[] _ratRange;
private int _offset[];
private Group[] _groups;
-
+
/** Creates a new instance of VdmxTable */
protected VdmxTable(DirectoryEntry de, DataInput di) throws IOException {
_de = (DirectoryEntry) de.clone();
@@ -147,11 +147,13 @@ public class VdmxTable implements Table {
_groups[i] = new Group(di);
}
}
-
+
+ @Override
public int getType() {
return VDMX;
}
-
+
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'VDMX' Table - Precomputed Vertical Device Metrics\n")
@@ -191,6 +193,7 @@ public class VdmxTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java
index 19c91765b..521b87cc8 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VheaTable.java
@@ -105,6 +105,7 @@ public class VheaTable implements Table {
return _numberOfLongVerMetrics;
}
+ @Override
public int getType() {
return vhea;
}
@@ -113,6 +114,7 @@ public class VheaTable implements Table {
return _yMaxExtent;
}
+ @Override
public String toString() {
return new StringBuilder()
.append("'vhea' Table - Vertical Header\n------------------------------")
@@ -135,13 +137,14 @@ public class VheaTable implements Table {
.append("\n numOf_LongVerMetrics: ").append(_numberOfLongVerMetrics)
.toString();
}
-
+
/**
* Get a directory entry for this table. This uniquely identifies the
* table in collections where there may be more than one instance of a
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java
index 348405380..1b77a6fdc 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/ot/table/VmtxTable.java
@@ -77,10 +77,12 @@ public class VmtxTable implements Table {
}
}
+ @Override
public int getType() {
return vmtx;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("'vmtx' Table - Vertical Metrics\n-------------------------------\n");
@@ -106,6 +108,7 @@ public class VmtxTable implements Table {
* particular table.
* @return A directory entry
*/
+ @Override
public DirectoryEntry getDirectoryEntry() {
return _de;
}
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/t2/T2Interpreter.java b/src/jogl/classes/jogamp/graph/font/typecast/t2/T2Interpreter.java
index 887f8c34f..181ec7e10 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/t2/T2Interpreter.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/t2/T2Interpreter.java
@@ -34,23 +34,23 @@ import jogamp.graph.font.typecast.ot.table.CharstringType2;
* @version $Id: T2Interpreter.java,v 1.2 2007-07-26 11:10:18 davidsch Exp $
*/
public class T2Interpreter {
-
+
private static final int ARGUMENT_STACK_LIMIT = 48;
private static final int SUBR_STACK_LIMIT = 10;
private static final int TRANSIENT_ARRAY_ELEMENT_COUNT = 32;
-
+
private Number[] _argStack = new Number[ARGUMENT_STACK_LIMIT];
private int _argStackIndex = 0;
private int[] _subrStack = new int[SUBR_STACK_LIMIT];
private int _subrStackIndex = 0;
private Number[] _transientArray = new Number[TRANSIENT_ARRAY_ELEMENT_COUNT];
-
+
private ArrayList<Point> _points;
/** Creates a new instance of T2Interpreter */
public T2Interpreter() {
}
-
+
/**
* Moves the current point to a position at the relative coordinates
* (dx1, dy1).
@@ -72,7 +72,7 @@ public class T2Interpreter {
Point lastPoint = getLastPoint();
moveTo(lastPoint.x + dx1, lastPoint.y);
}
-
+
/**
* Moves the current point dy1 units in the vertical direction.
*/
@@ -82,7 +82,7 @@ public class T2Interpreter {
Point lastPoint = getLastPoint();
moveTo(lastPoint.x, lastPoint.y + dy1);
}
-
+
/**
* Appends a line from the current point to a position at the
* relative coordinates dxa, dya. Additional rlineto operations are
@@ -103,7 +103,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends a horizontal line of length dx1 to the current point.
* With an odd number of arguments, subsequent argument pairs
@@ -130,7 +130,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends a vertical line of length dy1 to the current point. With
* an odd number of arguments, subsequent argument pairs are
@@ -157,7 +157,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends a Bezier curve, defined by dxa...dyc, to the current
* point. For each subsequent set of six arguments, an additional
@@ -194,7 +194,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends one or more Bezier curves, as described by the
* dxa...dxc set of arguments, to the current point. For each curve,
@@ -230,7 +230,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends one or more Bezier curves to the current point. The
* tangent for the first Bezier must be horizontal, and the second
@@ -327,13 +327,13 @@ public class T2Interpreter {
int yf = ye + dyf[i];
curveTo(xa, ya, xb, yb, xc, yc);
curveTo(xd, yd, xe, ye, xf, yf);
-
+
// What on earth do we do with dx1, dx2, dy2 and dy3?
}
}
clearArg();
}
-
+
/**
* Is equivalent to one rrcurveto for each set of six arguments
* dxa...dyc, followed by exactly one rlineto using the dxd, dyd
@@ -373,7 +373,7 @@ public class T2Interpreter {
lineTo(xc + dxd, yc + dyd);
clearArg();
}
-
+
/**
* Is equivalent to one rlineto for each pair of arguments beyond
* the six arguments dxb...dyd needed for the one rrcurveto
@@ -411,7 +411,7 @@ public class T2Interpreter {
curveTo(xb, yb, xc, yc, xd, yd);
clearArg();
}
-
+
/**
* Appends one or more Bezier curves to the current point, where
* the first tangent is vertical and the second tangent is horizontal.
@@ -465,7 +465,7 @@ public class T2Interpreter {
}
clearArg();
}
-
+
/**
* Appends one or more curves to the current point. If the argument
* count is a multiple of four, the curve starts and ends vertical. If
@@ -473,10 +473,10 @@ public class T2Interpreter {
* vertical tangent.
*/
private void _vvcurveto() {
-
+
clearArg();
}
-
+
/**
* Causes two Bezier curves, as described by the arguments (as
* shown in Figure 2 below), to be rendered as a straight line when
@@ -485,10 +485,10 @@ public class T2Interpreter {
* pixels.
*/
private void _flex() {
-
+
clearArg();
}
-
+
/**
* Causes the two curves described by the arguments dx1...dx6 to
* be rendered as a straight line when the flex depth is less than
@@ -496,10 +496,10 @@ public class T2Interpreter {
* flex depth is greater than or equal to 0.5 device pixels.
*/
private void _hflex() {
-
+
clearArg();
}
-
+
/**
* Causes the two curves described by the arguments to be
* rendered as a straight line when the flex depth is less than 0.5
@@ -507,10 +507,10 @@ public class T2Interpreter {
* than or equal to 0.5 device pixels.
*/
private void _hflex1() {
-
+
clearArg();
}
-
+
/**
* Causes the two curves described by the arguments to be
* rendered as a straight line when the flex depth is less than 0.5
@@ -518,10 +518,10 @@ public class T2Interpreter {
* than or equal to 0.5 device pixels.
*/
private void _flex1() {
-
+
clearArg();
}
-
+
/**
* Finishes a charstring outline definition, and must be the
* last operator in a character's outline.
@@ -530,37 +530,37 @@ public class T2Interpreter {
endContour();
clearArg();
}
-
+
private void _hstem() {
-
+
clearArg();
}
-
+
private void _vstem() {
-
+
clearArg();
}
-
+
private void _hstemhm() {
-
+
clearArg();
}
-
+
private void _vstemhm() {
-
+
clearArg();
}
-
+
private void _hintmask() {
-
+
clearArg();
}
-
+
private void _cntrmask() {
-
+
clearArg();
}
-
+
/**
* Returns the absolute value of num.
*/
@@ -568,7 +568,7 @@ public class T2Interpreter {
double num = popArg().doubleValue();
pushArg(Math.abs(num));
}
-
+
/**
* Returns the sum of the two numbers num1 and num2.
*/
@@ -577,7 +577,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg(num1 + num2);
}
-
+
/**
* Returns the result of subtracting num2 from num1.
*/
@@ -586,7 +586,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg(num1 - num2);
}
-
+
/**
* Returns the quotient of num1 divided by num2. The result is
* undefined if overflow occurs and is zero for underflow.
@@ -596,7 +596,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg(num1 / num2);
}
-
+
/**
* Returns the negative of num.
*/
@@ -604,7 +604,7 @@ public class T2Interpreter {
double num = popArg().doubleValue();
pushArg(-num);
}
-
+
/**
* Returns a pseudo random number num2 in the range (0,1], that
* is, greater than zero and less than or equal to one.
@@ -612,7 +612,7 @@ public class T2Interpreter {
private void _random() {
pushArg(1.0 - Math.random());
}
-
+
/**
* Returns the product of num1 and num2. If overflow occurs, the
* result is undefined, and zero is returned for underflow.
@@ -622,7 +622,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg(num1 * num2);
}
-
+
/**
* Returns the square root of num. If num is negative, the result is
* undefined.
@@ -631,14 +631,14 @@ public class T2Interpreter {
double num = popArg().doubleValue();
pushArg(Math.sqrt(num));
}
-
+
/**
* Removes the top element num from the Type 2 argument stack.
*/
private void _drop() {
popArg();
}
-
+
/**
* Exchanges the top two elements on the argument stack.
*/
@@ -648,7 +648,7 @@ public class T2Interpreter {
pushArg(num2);
pushArg(num1);
}
-
+
/**
* Retrieves the element i from the top of the argument stack and
* pushes a copy of that element onto that stack. If i is negative,
@@ -666,7 +666,7 @@ public class T2Interpreter {
}
pushArg(nums[i]);
}
-
+
/**
* Performs a circular shift of the elements num(Nx1) ... num0 on
* the argument stack by the amount J. Positive J indicates upward
@@ -685,7 +685,7 @@ public class T2Interpreter {
pushArg(nums[(n + i + j) % n]);
}
}
-
+
/**
* Duplicates the top element on the argument stack.
*/
@@ -694,7 +694,7 @@ public class T2Interpreter {
pushArg(any);
pushArg(any);
}
-
+
/**
* Stores val into the transient array at the location given by i.
*/
@@ -703,7 +703,7 @@ public class T2Interpreter {
Number val = popArg();
_transientArray[i] = val;
}
-
+
/**
* Retrieves the value stored in the transient array at the location
* given by i and pushes the value onto the argument stack. If get
@@ -714,7 +714,7 @@ public class T2Interpreter {
int i = popArg().intValue();
pushArg(_transientArray[i]);
}
-
+
/**
* Puts a 1 on the stack if num1 and num2 are both non-zero, and
* puts a 0 on the stack if either argument is zero.
@@ -724,7 +724,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg((num1!=0.0) && (num2!=0.0) ? 1 : 0);
}
-
+
/**
* Puts a 1 on the stack if either num1 or num2 are non-zero, and
* puts a 0 on the stack if both arguments are zero.
@@ -734,7 +734,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg((num1!=0.0) || (num2!=0.0) ? 1 : 0);
}
-
+
/**
* Returns a 0 if num1 is non-zero; returns a 1 if num1 is zero.
*/
@@ -742,7 +742,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg((num1!=0.0) ? 0 : 1);
}
-
+
/**
* Puts a 1 on the stack if num1 equals num2, otherwise a 0 (zero)
* is put on the stack.
@@ -752,7 +752,7 @@ public class T2Interpreter {
double num1 = popArg().doubleValue();
pushArg(num1 == num2 ? 1 : 0);
}
-
+
/**
* Leaves the value s1 on the stack if v1 ? v2, or leaves s2 on the
* stack if v1 > v2. The value of s1 and s2 is usually the biased
@@ -765,7 +765,7 @@ public class T2Interpreter {
Number s1 = popArg();
pushArg(v1 <= v2 ? s1 : s2);
}
-
+
/**
* Calls a charstring subroutine with index subr# (actually the subr
* number plus the subroutine bias number, as described in section
@@ -777,25 +777,25 @@ public class T2Interpreter {
* Calling an undefined subr (gsubr) has undefined results.
*/
private void _callsubr() {
-
+
}
-
+
/**
* Operates in the same manner as callsubr except that it calls a
* global subroutine.
*/
private void _callgsubr() {
-
+
}
-
+
/**
* Returns from either a local or global charstring subroutine, and
* continues execution after the corresponding call(g)subr.
*/
private void _return() {
-
+
}
-
+
public Point[] execute(CharstringType2 cs) {
_points = new ArrayList<Point>();
cs.resetIP();
@@ -975,7 +975,7 @@ public class T2Interpreter {
private int getArgCount() {
return _argStackIndex;
}
-
+
/**
* Pop a value off the argument stack
*/
@@ -989,7 +989,7 @@ public class T2Interpreter {
private void pushArg(Number n) {
_argStack[_argStackIndex++] = n;
}
-
+
/**
* Pop a value off the subroutine stack
*/
@@ -1003,14 +1003,14 @@ public class T2Interpreter {
private void pushSubr(int n) {
_subrStack[_subrStackIndex++] = n;
}
-
+
/**
* Clear the argument stack
*/
private void clearArg() {
_argStackIndex = 0;
}
-
+
private Point getLastPoint() {
int size = _points.size();
if (size > 0) {
@@ -1019,22 +1019,22 @@ public class T2Interpreter {
return new Point(0, 0, true, false);
}
}
-
+
private void moveTo(int x, int y) {
endContour();
_points.add(new Point(x, y, true, false));
}
-
+
private void lineTo(int x, int y) {
_points.add(new Point(x, y, true, false));
}
-
+
private void curveTo(int cx1, int cy1, int cx2, int cy2, int x, int y) {
_points.add(new Point(cx1, cy1, false, false));
_points.add(new Point(cx2, cy2, false, false));
_points.add(new Point(x, y, true, false));
}
-
+
private void endContour() {
Point lastPoint = getLastPoint();
if (lastPoint != null) {
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Interpreter.java b/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Interpreter.java
index a659a7003..2bb5cec0c 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Interpreter.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Interpreter.java
@@ -570,7 +570,7 @@ public class Interpreter {
private void _mps() {
push(0);
}
-
+
private void _msirp(short param) {
pop();
pop();
@@ -1190,7 +1190,7 @@ public class Interpreter {
while (ip < ((ip & 0xffff0000) | parser.getISLength(ip >> 16))) {
short opcode = parser.getOpcode(ip);
if (inFuncDef) {
-
+
// We're within a function definition, so don't execute the code
if (opcode == Mnemonic.ENDF) {
inFuncDef = false;
diff --git a/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Parser.java b/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Parser.java
index c5a2b6e87..1159b2c17 100644
--- a/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Parser.java
+++ b/src/jogl/classes/jogamp/graph/font/typecast/tt/engine/Parser.java
@@ -148,6 +148,7 @@ public class Parser {
instructions[2] = program;
}
+ @Override
public String toString() {
StringBuilder sb = new StringBuilder();
int ip = 0;