OLD | NEW |
| (Empty) |
1 /*************************************************************************** | |
2 * | |
3 * Copyright (C) 1998-2013, International Business Machines | |
4 * Corporation and others. All Rights Reserved. | |
5 * | |
6 ************************************************************************/ | |
7 | |
8 | |
9 #ifndef __CMAPS_H | |
10 #define __CMAPS_H | |
11 | |
12 #include "layout/LETypes.h" | |
13 //#include "letest.h" | |
14 #include "sfnt.h" | |
15 | |
16 class CMAPMapper | |
17 { | |
18 public: | |
19 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const = 0; | |
20 | |
21 virtual ~CMAPMapper(); | |
22 | |
23 static CMAPMapper *createUnicodeMapper(const CMAPTable *cmap); | |
24 | |
25 protected: | |
26 CMAPMapper(const CMAPTable *cmap); | |
27 | |
28 CMAPMapper() {}; | |
29 | |
30 private: | |
31 const CMAPTable *fcmap; | |
32 }; | |
33 | |
34 class CMAPFormat4Mapper : public CMAPMapper | |
35 { | |
36 public: | |
37 CMAPFormat4Mapper(const CMAPTable *cmap, const CMAPFormat4Encoding *header); | |
38 | |
39 virtual ~CMAPFormat4Mapper(); | |
40 | |
41 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const; | |
42 | |
43 protected: | |
44 CMAPFormat4Mapper() {}; | |
45 | |
46 private: | |
47 le_uint16 fEntrySelector; | |
48 le_uint16 fRangeShift; | |
49 const le_uint16 *fEndCodes; | |
50 const le_uint16 *fStartCodes; | |
51 const le_uint16 *fIdDelta; | |
52 const le_uint16 *fIdRangeOffset; | |
53 }; | |
54 | |
55 class CMAPGroupMapper : public CMAPMapper | |
56 { | |
57 public: | |
58 CMAPGroupMapper(const CMAPTable *cmap, const CMAPGroup *groups, le_uint32 nG
roups); | |
59 | |
60 virtual ~CMAPGroupMapper(); | |
61 | |
62 virtual LEGlyphID unicodeToGlyph(LEUnicode32 unicode32) const; | |
63 | |
64 protected: | |
65 CMAPGroupMapper() {}; | |
66 | |
67 private: | |
68 le_int32 fPower; | |
69 le_int32 fRangeOffset; | |
70 const CMAPGroup *fGroups; | |
71 }; | |
72 | |
73 inline CMAPMapper::CMAPMapper(const CMAPTable *cmap) | |
74 : fcmap(cmap) | |
75 { | |
76 // nothing else to do | |
77 } | |
78 | |
79 inline CMAPMapper::~CMAPMapper() | |
80 { | |
81 LE_DELETE_ARRAY(fcmap); | |
82 } | |
83 | |
84 #endif | |
85 | |
OLD | NEW |