OLD | NEW |
(Empty) | |
| 1 /*************************************************************************** |
| 2 * |
| 3 * Copyright (C) 1998-2006, 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 DELETE_ARRAY(fcmap); |
| 82 } |
| 83 |
| 84 #endif |
| 85 |
OLD | NEW |