]> git.saurik.com Git - apple/icu.git/blame - icuSources/test/perf/leperf/SimpleFontInstance.cpp
ICU-531.30.tar.gz
[apple/icu.git] / icuSources / test / perf / leperf / SimpleFontInstance.cpp
CommitLineData
57a6839d
A
1/*
2 *******************************************************************************
3 *
4 * Copyright (C) 1999-2013, International Business Machines
5 * Corporation and others. All Rights Reserved.
6 *
7 *******************************************************************************
8 * file name: SimpleFontInstance.cpp
9 *
10 * created on: 03/30/2006
11 * created by: Eric R. Mader
12 */
13
14#include "unicode/utypes.h"
15#include "unicode/uchar.h"
16
17#include "layout/LETypes.h"
18#include "layout/LEFontInstance.h"
19
20#include "layout/CanonShaping.h"
21#include "SimpleFontInstance.h"
22
23SimpleFontInstance::SimpleFontInstance(float pointSize, LEErrorCode &status)
24 : fPointSize(pointSize), fAscent(0), fDescent(0)
25{
26 if (LE_FAILURE(status)) {
27 return;
28 }
29
30 fAscent = (le_int32) yUnitsToPoints(2000.0);
31 fDescent = (le_int32) yUnitsToPoints(600.0);
32
33 return;
34}
35
36SimpleFontInstance::~SimpleFontInstance()
37{
38 // nothing to do...
39}
40
41const void *SimpleFontInstance::getFontTable(LETag tableTag) const
42{
43 if (tableTag == LE_GSUB_TABLE_TAG) {
44 return CanonShaping::glyphSubstitutionTable;
45 }
46
47 if (tableTag == LE_GDEF_TABLE_TAG) {
48 return CanonShaping::glyphDefinitionTable;
49 }
50
51 return NULL;
52}
53
54void SimpleFontInstance::getGlyphAdvance(LEGlyphID glyph, LEPoint &advance) const
55{
56#if 0
57 if (u_getCombiningClass((UChar32) glyph) == 0) {
58 advance.fX = xUnitsToPoints(2048);
59 } else {
60 advance.fX = 0;
61 }
62#else
63 advance.fX = xUnitsToPoints(2048);
64#endif
65
66 advance.fY = 0;
67}
68
69le_int32 SimpleFontInstance::getUnitsPerEM() const
70{
71 return 2048;
72}
73
74le_int32 SimpleFontInstance::getAscent() const
75{
76 return fAscent;
77}
78
79le_int32 SimpleFontInstance::getDescent() const
80{
81 return fDescent;
82}
83
84le_int32 SimpleFontInstance::getLeading() const
85{
86 return 0;
87}
88
89// We really want to inherit this method from the superclass, but some compilers
90// issue a warning if we don't implement it...
91LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth) const
92{
93 return LEFontInstance::mapCharToGlyph(ch, mapper, filterZeroWidth);
94}
95
96// We really want to inherit this method from the superclass, but some compilers
97// issue a warning if we don't implement it...
98LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch, const LECharMapper *mapper) const
99{
100 return LEFontInstance::mapCharToGlyph(ch, mapper);
101}
102
103LEGlyphID SimpleFontInstance::mapCharToGlyph(LEUnicode32 ch) const
104{
105 return (LEGlyphID) ch;
106}
107
108float SimpleFontInstance::getXPixelsPerEm() const
109{
110 return fPointSize;
111}
112
113float SimpleFontInstance::getYPixelsPerEm() const
114{
115 return fPointSize;
116}
117
118float SimpleFontInstance::getScaleFactorX() const
119{
120 return 1.0;
121}
122
123float SimpleFontInstance::getScaleFactorY() const
124{
125 return 1.0;
126}
127
128le_bool SimpleFontInstance::getGlyphPoint(LEGlyphID /*glyph*/, le_int32 /*pointNumber*/, LEPoint &/*point*/) const
129{
130 return FALSE;
131}
132