47 class LEGlyphStorage; |
47 class LEGlyphStorage; |
48 |
48 |
49 class StateTableProcessor : public SubtableProcessor |
49 class StateTableProcessor : public SubtableProcessor |
50 { |
50 { |
51 public: |
51 public: |
52 void process(LEGlyphStorage &glyphStorage); |
52 void process(LEGlyphStorage &glyphStorage, LEErrorCode &success); |
53 |
53 |
54 virtual void beginStateTable() = 0; |
54 virtual void beginStateTable() = 0; |
55 |
55 |
56 virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0; |
56 virtual ByteOffset processStateEntry(LEGlyphStorage &glyphStorage, le_int32 &currGlyph, EntryTableIndex index) = 0; |
57 |
57 |
58 virtual void endStateTable() = 0; |
58 virtual void endStateTable() = 0; |
59 |
59 |
60 protected: |
60 protected: |
61 StateTableProcessor(const MorphSubtableHeader *morphSubtableHeader); |
61 StateTableProcessor(const LEReferenceTo<MorphSubtableHeader> &morphSubtableHeader, LEErrorCode &success); |
62 virtual ~StateTableProcessor(); |
62 virtual ~StateTableProcessor(); |
63 |
63 |
64 StateTableProcessor(); |
64 StateTableProcessor(); |
65 |
65 |
66 le_int16 stateSize; |
66 le_int16 stateSize; |
67 ByteOffset classTableOffset; |
67 ByteOffset classTableOffset; |
68 ByteOffset stateArrayOffset; |
68 ByteOffset stateArrayOffset; |
69 ByteOffset entryTableOffset; |
69 ByteOffset entryTableOffset; |
70 |
70 |
71 const ClassTable *classTable; |
71 LEReferenceTo<ClassTable> classTable; |
72 TTGlyphID firstGlyph; |
72 TTGlyphID firstGlyph; |
73 TTGlyphID lastGlyph; |
73 TTGlyphID lastGlyph; |
74 |
74 |
75 const MorphStateTableHeader *stateTableHeader; |
75 LEReferenceTo<MorphStateTableHeader> stateTableHeader; |
|
76 LEReferenceTo<StateTableHeader> stHeader; // for convenience |
76 |
77 |
77 private: |
78 private: |
78 StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class |
79 StateTableProcessor(const StateTableProcessor &other); // forbid copying of this class |
79 StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class |
80 StateTableProcessor &operator=(const StateTableProcessor &other); // forbid copying of this class |
80 }; |
81 }; |