]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/test/perf/leperf/SimpleFontInstance.cpp
ICU-531.30.tar.gz
[apple/icu.git] / icuSources / test / perf / leperf / SimpleFontInstance.cpp
diff --git a/icuSources/test/perf/leperf/SimpleFontInstance.cpp b/icuSources/test/perf/leperf/SimpleFontInstance.cpp
new file mode 100644 (file)
index 0000000..d240a6a
--- /dev/null
@@ -0,0 +1,132 @@
+/*
+ *******************************************************************************
+ *
+ *   Copyright (C) 1999-2013, International Business Machines
+ *   Corporation and others.  All Rights Reserved.
+ *
+ *******************************************************************************
+ *   file name:  SimpleFontInstance.cpp
+ *
+ *   created on: 03/30/2006
+ *   created by: Eric R. Mader
+ */
+
+#include "unicode/utypes.h"
+#include "unicode/uchar.h"
+
+#include "layout/LETypes.h"
+#include "layout/LEFontInstance.h"
+
+#include "layout/CanonShaping.h"
+#include "SimpleFontInstance.h"
+
+SimpleFontInstance::SimpleFontInstance(float pointSize, LEErrorCode &status)
+    : fPointSize(pointSize), fAscent(0), fDescent(0)
+{
+    if (LE_FAILURE(status)) {
+        return;
+    }
+
+    fAscent  = (le_int32) yUnitsToPoints(2000.0);
+    fDescent = (le_int32) yUnitsToPoints(600.0);
+
+    return;
+}
+
+SimpleFontInstance::~SimpleFontInstance()
+{
+    // nothing to do...
+}
+
+const void *SimpleFontInstance::getFontTable(LETag tableTag) const
+{
+    if (tableTag == LE_GSUB_TABLE_TAG) {
+        return CanonShaping::glyphSubstitutionTable;
+    }
+    
+    if (tableTag == LE_GDEF_TABLE_TAG) {
+        return CanonShaping::glyphDefinitionTable;
+    }
+
+    return NULL;
+}
+
+void SimpleFontInstance::getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
+{
+#if 0
+    if (u_getCombiningClass((UChar32) glyph) == 0) {
+        advance.fX = xUnitsToPoints(2048);
+    } else {
+        advance.fX = 0;
+    }
+#else
+    advance.fX = xUnitsToPoints(2048);
+#endif
+
+    advance.fY = 0;
+}
+
+le_int32 SimpleFontInstance::getUnitsPerEM() const
+{
+    return 2048;
+}
+
+le_int32 SimpleFontInstance::getAscent() const
+{
+    return fAscent;
+}
+
+le_int32 SimpleFontInstance::getDescent() const
+{
+    return fDescent;
+}
+
+le_int32 SimpleFontInstance::getLeading() const
+{
+    return 0;
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
+{
+    return LEFontInstance::mapCharToGlyph(ch, mapper, filterZeroWidth);
+}
+
+// We really want to inherit this method from the superclass, but some compilers
+// issue a warning if we don't implement it...
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
+{
+    return LEFontInstance::mapCharToGlyph(ch, mapper);
+}
+
+LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch) const
+{
+    return (LEGlyphID) ch;
+}
+
+float SimpleFontInstance::getXPixelsPerEm() const
+{
+    return fPointSize;
+}
+
+float SimpleFontInstance::getYPixelsPerEm() const
+{
+    return fPointSize;
+}
+
+float SimpleFontInstance::getScaleFactorX() const
+{
+    return 1.0;
+}
+
+float SimpleFontInstance::getScaleFactorY() const
+{
+    return 1.0;
+}
+
+le_bool SimpleFontInstance::getGlyphPoint(LEGlyphID /*glyph*/, le_int32 /*pointNumber*/, LEPoint &/*point*/) const
+{
+    return FALSE;
+}
+