Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ | 7 #ifndef CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ |
| 8 #define CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ | 8 #define CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ |
| 9 | 9 |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| 11 | 11 |
| 12 #include <map> | 12 #include <map> |
| 13 #include <memory> | |
| 13 | 14 |
| 14 #include "core/fxcrt/include/fx_basic.h" | 15 #include "core/fxcrt/include/fx_basic.h" |
| 15 #include "core/fxge/include/fx_font.h" | 16 #include "core/fxge/include/fx_font.h" |
| 16 #include "core/fxge/include/fx_freetype.h" | 17 #include "core/fxge/include/fx_freetype.h" |
| 17 | 18 |
| 18 class CFX_GlyphMap { | 19 class CFX_GlyphMap { |
| 19 public: | 20 public: |
| 20 CFX_GlyphMap(); | 21 CFX_GlyphMap(); |
| 21 ~CFX_GlyphMap(); | 22 ~CFX_GlyphMap(); |
| 22 | 23 |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 38 bool GetVerticalGlyph(uint32_t glyphnum, uint32_t* vglyphnum); | 39 bool GetVerticalGlyph(uint32_t glyphnum, uint32_t* vglyphnum); |
| 39 | 40 |
| 40 private: | 41 private: |
| 41 struct tt_gsub_header { | 42 struct tt_gsub_header { |
| 42 uint32_t Version; | 43 uint32_t Version; |
| 43 uint16_t ScriptList; | 44 uint16_t ScriptList; |
| 44 uint16_t FeatureList; | 45 uint16_t FeatureList; |
| 45 uint16_t LookupList; | 46 uint16_t LookupList; |
| 46 }; | 47 }; |
| 47 struct TLangSys { | 48 struct TLangSys { |
| 48 TLangSys() | 49 TLangSys(); |
| 49 : LookupOrder(0), | 50 ~TLangSys(); |
| 50 ReqFeatureIndex(0), | |
| 51 FeatureCount(0), | |
| 52 FeatureIndex(nullptr) {} | |
| 53 ~TLangSys() { delete[] FeatureIndex; } | |
| 54 | 51 |
| 55 uint16_t LookupOrder; | 52 uint16_t LookupOrder; |
| 56 uint16_t ReqFeatureIndex; | 53 uint16_t ReqFeatureIndex; |
| 57 uint16_t FeatureCount; | 54 uint16_t FeatureCount; |
| 58 uint16_t* FeatureIndex; | 55 std::unique_ptr<uint16_t[]> FeatureIndex; |
| 59 | 56 |
| 60 private: | 57 private: |
| 61 TLangSys(const TLangSys&); | 58 TLangSys(const TLangSys&); |
| 62 TLangSys& operator=(const TLangSys&); | 59 TLangSys& operator=(const TLangSys&); |
| 63 }; | 60 }; |
| 64 struct TLangSysRecord { | 61 struct TLangSysRecord { |
| 65 TLangSysRecord() : LangSysTag(0) {} | 62 TLangSysRecord() : LangSysTag(0) {} |
| 66 | 63 |
| 67 uint32_t LangSysTag; | 64 uint32_t LangSysTag; |
| 68 struct TLangSys LangSys; | 65 TLangSys LangSys; |
| 69 | 66 |
| 70 private: | 67 private: |
| 71 TLangSysRecord(const TLangSysRecord&); | 68 TLangSysRecord(const TLangSysRecord&); |
| 72 TLangSysRecord& operator=(const TLangSysRecord&); | 69 TLangSysRecord& operator=(const TLangSysRecord&); |
| 73 }; | 70 }; |
| 74 struct TScript { | 71 struct TScript { |
| 75 TScript() : DefaultLangSys(0), LangSysCount(0), LangSysRecord(nullptr) {} | 72 TScript(); |
| 76 ~TScript() { delete[] LangSysRecord; } | 73 ~TScript(); |
| 77 | 74 |
| 78 uint16_t DefaultLangSys; | 75 uint16_t DefaultLangSys; |
| 79 uint16_t LangSysCount; | 76 uint16_t LangSysCount; |
| 80 // TODO(weili): Replace with a smart pointer type, pdfium:518. | 77 std::unique_ptr<TLangSysRecord[]> LangSysRecord; |
| 81 struct TLangSysRecord* LangSysRecord; | |
| 82 | 78 |
| 83 private: | 79 private: |
| 84 TScript(const TScript&); | 80 TScript(const TScript&); |
| 85 TScript& operator=(const TScript&); | 81 TScript& operator=(const TScript&); |
| 86 }; | 82 }; |
| 87 struct TScriptRecord { | 83 struct TScriptRecord { |
| 88 TScriptRecord() : ScriptTag(0) {} | 84 TScriptRecord() : ScriptTag(0) {} |
| 89 | 85 |
| 90 uint32_t ScriptTag; | 86 uint32_t ScriptTag; |
| 91 struct TScript Script; | 87 TScript Script; |
| 92 | 88 |
| 93 private: | 89 private: |
| 94 TScriptRecord(const TScriptRecord&); | 90 TScriptRecord(const TScriptRecord&); |
| 95 TScriptRecord& operator=(const TScriptRecord&); | 91 TScriptRecord& operator=(const TScriptRecord&); |
| 96 }; | 92 }; |
| 97 struct TScriptList { | 93 struct TScriptList { |
| 98 TScriptList() : ScriptCount(0), ScriptRecord(nullptr) {} | 94 TScriptList(); |
| 99 ~TScriptList() { delete[] ScriptRecord; } | 95 ~TScriptList(); |
| 100 | 96 |
| 101 uint16_t ScriptCount; | 97 uint16_t ScriptCount; |
| 102 struct TScriptRecord* ScriptRecord; | 98 std::unique_ptr<TScriptRecord[]> ScriptRecord; |
| 103 | 99 |
| 104 private: | 100 private: |
| 105 TScriptList(const TScriptList&); | 101 TScriptList(const TScriptList&); |
| 106 TScriptList& operator=(const TScriptList&); | 102 TScriptList& operator=(const TScriptList&); |
| 107 }; | 103 }; |
| 108 struct TFeature { | 104 struct TFeature { |
| 109 TFeature() : FeatureParams(0), LookupCount(0), LookupListIndex(nullptr) {} | 105 TFeature(); |
| 110 ~TFeature() { delete[] LookupListIndex; } | 106 ~TFeature(); |
| 111 | 107 |
| 112 uint16_t FeatureParams; | 108 uint16_t FeatureParams; |
| 113 int LookupCount; | 109 int LookupCount; |
| 114 uint16_t* LookupListIndex; | 110 std::unique_ptr<uint16_t[]> LookupListIndex; |
| 115 | 111 |
| 116 private: | 112 private: |
| 117 TFeature(const TFeature&); | 113 TFeature(const TFeature&); |
| 118 TFeature& operator=(const TFeature&); | 114 TFeature& operator=(const TFeature&); |
| 119 }; | 115 }; |
| 120 struct TFeatureRecord { | 116 struct TFeatureRecord { |
| 121 TFeatureRecord() : FeatureTag(0) {} | 117 TFeatureRecord() : FeatureTag(0) {} |
| 122 | 118 |
| 123 uint32_t FeatureTag; | 119 uint32_t FeatureTag; |
| 124 struct TFeature Feature; | 120 TFeature Feature; |
| 125 | 121 |
| 126 private: | 122 private: |
| 127 TFeatureRecord(const TFeatureRecord&); | 123 TFeatureRecord(const TFeatureRecord&); |
| 128 TFeatureRecord& operator=(const TFeatureRecord&); | 124 TFeatureRecord& operator=(const TFeatureRecord&); |
| 129 }; | 125 }; |
| 130 struct TFeatureList { | 126 struct TFeatureList { |
| 131 TFeatureList() : FeatureCount(0), FeatureRecord(nullptr) {} | 127 TFeatureList(); |
| 132 ~TFeatureList() { delete[] FeatureRecord; } | 128 ~TFeatureList(); |
| 133 | 129 |
| 134 int FeatureCount; | 130 int FeatureCount; |
| 135 struct TFeatureRecord* FeatureRecord; | 131 std::unique_ptr<TFeatureRecord[]> FeatureRecord; |
| 136 | 132 |
| 137 private: | 133 private: |
| 138 TFeatureList(const TFeatureList&); | 134 TFeatureList(const TFeatureList&); |
| 139 TFeatureList& operator=(const TFeatureList&); | 135 TFeatureList& operator=(const TFeatureList&); |
| 140 }; | 136 }; |
| 141 enum TLookupFlag { | 137 enum TLookupFlag { |
| 142 LOOKUPFLAG_RightToLeft = 0x0001, | 138 LOOKUPFLAG_RightToLeft = 0x0001, |
| 143 LOOKUPFLAG_IgnoreBaseGlyphs = 0x0002, | 139 LOOKUPFLAG_IgnoreBaseGlyphs = 0x0002, |
| 144 LOOKUPFLAG_IgnoreLigatures = 0x0004, | 140 LOOKUPFLAG_IgnoreLigatures = 0x0004, |
| 145 LOOKUPFLAG_IgnoreMarks = 0x0008, | 141 LOOKUPFLAG_IgnoreMarks = 0x0008, |
| 146 LOOKUPFLAG_Reserved = 0x00F0, | 142 LOOKUPFLAG_Reserved = 0x00F0, |
| 147 LOOKUPFLAG_MarkAttachmentType = 0xFF00, | 143 LOOKUPFLAG_MarkAttachmentType = 0xFF00, |
| 148 }; | 144 }; |
| 149 struct TCoverageFormatBase { | 145 struct TCoverageFormatBase { |
| 150 TCoverageFormatBase() : CoverageFormat(0) {} | 146 TCoverageFormatBase() : CoverageFormat(0) {} |
| 147 explicit TCoverageFormatBase(uint16_t format) : CoverageFormat(format) {} | |
| 151 virtual ~TCoverageFormatBase() {} | 148 virtual ~TCoverageFormatBase() {} |
| 152 | 149 |
| 153 uint16_t CoverageFormat; | 150 uint16_t CoverageFormat; |
| 154 CFX_GlyphMap m_glyphMap; | 151 CFX_GlyphMap m_glyphMap; |
| 155 | 152 |
| 156 private: | 153 private: |
| 157 TCoverageFormatBase(const TCoverageFormatBase&); | 154 TCoverageFormatBase(const TCoverageFormatBase&); |
| 158 TCoverageFormatBase& operator=(const TCoverageFormatBase&); | 155 TCoverageFormatBase& operator=(const TCoverageFormatBase&); |
| 159 }; | 156 }; |
| 160 struct TCoverageFormat1 : public TCoverageFormatBase { | 157 struct TCoverageFormat1 : public TCoverageFormatBase { |
| 161 TCoverageFormat1(); | 158 TCoverageFormat1(); |
| 162 ~TCoverageFormat1() override; | 159 ~TCoverageFormat1() override; |
| 163 | 160 |
| 164 uint16_t GlyphCount; | 161 uint16_t GlyphCount; |
| 165 uint16_t* GlyphArray; | 162 std::unique_ptr<uint16_t[]> GlyphArray; |
| 166 | 163 |
| 167 private: | 164 private: |
| 168 TCoverageFormat1(const TCoverageFormat1&); | 165 TCoverageFormat1(const TCoverageFormat1&); |
| 169 TCoverageFormat1& operator=(const TCoverageFormat1&); | 166 TCoverageFormat1& operator=(const TCoverageFormat1&); |
| 170 }; | 167 }; |
| 171 struct TRangeRecord { | 168 struct TRangeRecord { |
| 172 TRangeRecord(); | 169 TRangeRecord(); |
| 173 | 170 |
| 174 friend bool operator>(const TRangeRecord& r1, const TRangeRecord& r2) { | 171 friend bool operator>(const TRangeRecord& r1, const TRangeRecord& r2) { |
| 175 return r1.Start > r2.Start; | 172 return r1.Start > r2.Start; |
| 176 } | 173 } |
| 177 | 174 |
| 178 uint16_t Start; | 175 uint16_t Start; |
| 179 uint16_t End; | 176 uint16_t End; |
| 180 uint16_t StartCoverageIndex; | 177 uint16_t StartCoverageIndex; |
| 181 | 178 |
| 182 private: | 179 private: |
| 183 TRangeRecord(const TRangeRecord&); | 180 TRangeRecord(const TRangeRecord&); |
| 184 }; | 181 }; |
| 185 struct TCoverageFormat2 : public TCoverageFormatBase { | 182 struct TCoverageFormat2 : public TCoverageFormatBase { |
| 186 TCoverageFormat2(); | 183 TCoverageFormat2(); |
| 187 ~TCoverageFormat2() override; | 184 ~TCoverageFormat2() override; |
| 188 | 185 |
| 189 uint16_t RangeCount; | 186 uint16_t RangeCount; |
| 190 struct TRangeRecord* RangeRecord; | 187 std::unique_ptr<TRangeRecord[]> RangeRecord; |
| 191 | 188 |
| 192 private: | 189 private: |
| 193 TCoverageFormat2(const TCoverageFormat2&); | 190 TCoverageFormat2(const TCoverageFormat2&); |
| 194 TCoverageFormat2& operator=(const TCoverageFormat2&); | 191 TCoverageFormat2& operator=(const TCoverageFormat2&); |
| 195 }; | 192 }; |
| 196 struct TClassDefFormatBase { | |
| 197 TClassDefFormatBase() : ClassFormat(0) {} | |
| 198 virtual ~TClassDefFormatBase() {} | |
| 199 | |
| 200 uint16_t ClassFormat; | |
| 201 | |
| 202 private: | |
| 203 TClassDefFormatBase(const TClassDefFormatBase&); | |
| 204 TClassDefFormatBase& operator=(const TClassDefFormatBase&); | |
| 205 }; | |
| 206 struct TClassDefFormat1 : public TClassDefFormatBase { | |
| 207 TClassDefFormat1(); | |
| 208 ~TClassDefFormat1() override; | |
| 209 | |
| 210 uint16_t StartGlyph; | |
| 211 uint16_t GlyphCount; | |
| 212 uint16_t* ClassValueArray; | |
| 213 | |
| 214 private: | |
| 215 TClassDefFormat1(const TClassDefFormat1&); | |
| 216 TClassDefFormat1& operator=(const TClassDefFormat1&); | |
| 217 }; | |
| 218 struct TClassRangeRecord { | |
| 219 TClassRangeRecord() : Start(0), End(0), Class(0) {} | |
| 220 | |
| 221 uint16_t Start; | |
| 222 uint16_t End; | |
| 223 uint16_t Class; | |
| 224 | |
| 225 private: | |
| 226 TClassRangeRecord(const TClassRangeRecord&); | |
| 227 TClassRangeRecord& operator=(const TClassRangeRecord&); | |
| 228 }; | |
| 229 struct TClassDefFormat2 : public TClassDefFormatBase { | |
| 230 TClassDefFormat2(); | |
| 231 ~TClassDefFormat2() override; | |
| 232 | |
| 233 uint16_t ClassRangeCount; | |
| 234 struct TClassRangeRecord* ClassRangeRecord; | |
| 235 | |
| 236 private: | |
| 237 TClassDefFormat2(const TClassDefFormat2&); | |
| 238 TClassDefFormat2& operator=(const TClassDefFormat2&); | |
| 239 }; | |
| 240 struct TDevice { | 193 struct TDevice { |
| 241 TDevice() : StartSize(0), EndSize(0), DeltaFormat(0) {} | 194 TDevice() : StartSize(0), EndSize(0), DeltaFormat(0) {} |
| 242 | 195 |
| 243 uint16_t StartSize; | 196 uint16_t StartSize; |
| 244 uint16_t EndSize; | 197 uint16_t EndSize; |
| 245 uint16_t DeltaFormat; | 198 uint16_t DeltaFormat; |
| 246 | 199 |
| 247 private: | 200 private: |
| 248 TDevice(const TDevice&); | 201 TDevice(const TDevice&); |
| 249 TDevice& operator=(const TDevice&); | 202 TDevice& operator=(const TDevice&); |
| 250 }; | 203 }; |
| 251 struct TSubTableBase { | 204 struct TSubTableBase { |
| 252 TSubTableBase() : SubstFormat(0) {} | 205 TSubTableBase() : SubstFormat(0) {} |
| 206 explicit TSubTableBase(uint16_t format) : SubstFormat(format) {} | |
| 253 virtual ~TSubTableBase() {} | 207 virtual ~TSubTableBase() {} |
|
Lei Zhang
2016/07/06 23:19:56
BTW, does this need to be virtual? There are subcl
Wei Li
2016/07/07 00:03:35
yes since the destructors of subclasses are virtua
| |
| 254 | 208 |
| 255 uint16_t SubstFormat; | 209 uint16_t SubstFormat; |
| 256 | 210 |
| 257 private: | 211 private: |
| 258 TSubTableBase(const TSubTableBase&); | 212 TSubTableBase(const TSubTableBase&); |
| 259 TSubTableBase& operator=(const TSubTableBase&); | 213 TSubTableBase& operator=(const TSubTableBase&); |
| 260 }; | 214 }; |
| 261 struct TSingleSubstFormat1 : public TSubTableBase { | 215 struct TSingleSubstFormat1 : public TSubTableBase { |
| 262 TSingleSubstFormat1(); | 216 TSingleSubstFormat1(); |
| 263 ~TSingleSubstFormat1() override; | 217 ~TSingleSubstFormat1() override; |
| 264 | 218 |
| 265 TCoverageFormatBase* Coverage; | 219 std::unique_ptr<TCoverageFormatBase> Coverage; |
| 266 int16_t DeltaGlyphID; | 220 int16_t DeltaGlyphID; |
| 267 | 221 |
| 268 private: | 222 private: |
| 269 TSingleSubstFormat1(const TSingleSubstFormat1&); | 223 TSingleSubstFormat1(const TSingleSubstFormat1&); |
| 270 TSingleSubstFormat1& operator=(const TSingleSubstFormat1&); | 224 TSingleSubstFormat1& operator=(const TSingleSubstFormat1&); |
| 271 }; | 225 }; |
| 272 struct TSingleSubstFormat2 : public TSubTableBase { | 226 struct TSingleSubstFormat2 : public TSubTableBase { |
| 273 TSingleSubstFormat2(); | 227 TSingleSubstFormat2(); |
| 274 ~TSingleSubstFormat2() override; | 228 ~TSingleSubstFormat2() override; |
| 275 | 229 |
| 276 TCoverageFormatBase* Coverage; | 230 std::unique_ptr<TCoverageFormatBase> Coverage; |
| 277 uint16_t GlyphCount; | 231 uint16_t GlyphCount; |
| 278 uint16_t* Substitute; | 232 std::unique_ptr<uint16_t[]> Substitute; |
| 279 | 233 |
| 280 private: | 234 private: |
| 281 TSingleSubstFormat2(const TSingleSubstFormat2&); | 235 TSingleSubstFormat2(const TSingleSubstFormat2&); |
| 282 TSingleSubstFormat2& operator=(const TSingleSubstFormat2&); | 236 TSingleSubstFormat2& operator=(const TSingleSubstFormat2&); |
| 283 }; | 237 }; |
| 284 struct TLookup { | 238 struct TLookup { |
| 285 TLookup(); | 239 TLookup(); |
| 286 ~TLookup(); | 240 ~TLookup(); |
| 287 | 241 |
| 288 uint16_t LookupType; | 242 uint16_t LookupType; |
| 289 uint16_t LookupFlag; | 243 uint16_t LookupFlag; |
| 290 uint16_t SubTableCount; | 244 uint16_t SubTableCount; |
| 291 struct TSubTableBase** SubTable; | 245 std::unique_ptr<TSubTableBase* []> SubTable; |
| 292 | 246 |
| 293 private: | 247 private: |
| 294 TLookup(const TLookup&); | 248 TLookup(const TLookup&); |
| 295 TLookup& operator=(const TLookup&); | 249 TLookup& operator=(const TLookup&); |
| 296 }; | 250 }; |
| 297 struct TLookupList { | 251 struct TLookupList { |
| 298 TLookupList() : LookupCount(0), Lookup(nullptr) {} | 252 TLookupList(); |
| 299 ~TLookupList() { delete[] Lookup; } | 253 ~TLookupList(); |
| 300 | 254 |
| 301 int LookupCount; | 255 int LookupCount; |
| 302 struct TLookup* Lookup; | 256 std::unique_ptr<TLookup[]> Lookup; |
| 303 | 257 |
| 304 private: | 258 private: |
| 305 TLookupList(const TLookupList&); | 259 TLookupList(const TLookupList&); |
| 306 TLookupList& operator=(const TLookupList&); | 260 TLookupList& operator=(const TLookupList&); |
| 307 }; | 261 }; |
| 308 | 262 |
| 309 bool Parse(FT_Bytes scriptlist, FT_Bytes featurelist, FT_Bytes lookuplist); | 263 bool Parse(FT_Bytes scriptlist, FT_Bytes featurelist, FT_Bytes lookuplist); |
| 310 void ParseScriptList(FT_Bytes raw, TScriptList* rec); | 264 void ParseScriptList(FT_Bytes raw, TScriptList* rec); |
| 311 void ParseScript(FT_Bytes raw, TScript* rec); | 265 void ParseScript(FT_Bytes raw, TScript* rec); |
| 312 void ParseLangSys(FT_Bytes raw, TLangSys* rec); | 266 void ParseLangSys(FT_Bytes raw, TLangSys* rec); |
| 313 void ParseFeatureList(FT_Bytes raw, TFeatureList* rec); | 267 void ParseFeatureList(FT_Bytes raw, TFeatureList* rec); |
| 314 void ParseFeature(FT_Bytes raw, TFeature* rec); | 268 void ParseFeature(FT_Bytes raw, TFeature* rec); |
| 315 void ParseLookupList(FT_Bytes raw, TLookupList* rec); | 269 void ParseLookupList(FT_Bytes raw, TLookupList* rec); |
| 316 void ParseLookup(FT_Bytes raw, TLookup* rec); | 270 void ParseLookup(FT_Bytes raw, TLookup* rec); |
| 317 void ParseCoverage(FT_Bytes raw, TCoverageFormatBase** rec); | 271 TCoverageFormatBase* ParseCoverage(FT_Bytes raw); |
| 318 void ParseCoverageFormat1(FT_Bytes raw, TCoverageFormat1* rec); | 272 void ParseCoverageFormat1(FT_Bytes raw, TCoverageFormat1* rec); |
| 319 void ParseCoverageFormat2(FT_Bytes raw, TCoverageFormat2* rec); | 273 void ParseCoverageFormat2(FT_Bytes raw, TCoverageFormat2* rec); |
| 320 void ParseSingleSubst(FT_Bytes raw, TSubTableBase** rec); | 274 void ParseSingleSubst(FT_Bytes raw, TSubTableBase** rec); |
| 321 void ParseSingleSubstFormat1(FT_Bytes raw, TSingleSubstFormat1* rec); | 275 void ParseSingleSubstFormat1(FT_Bytes raw, TSingleSubstFormat1* rec); |
| 322 void ParseSingleSubstFormat2(FT_Bytes raw, TSingleSubstFormat2* rec); | 276 void ParseSingleSubstFormat2(FT_Bytes raw, TSingleSubstFormat2* rec); |
| 323 | 277 |
| 324 bool GetVerticalGlyphSub(uint32_t glyphnum, | 278 bool GetVerticalGlyphSub(uint32_t glyphnum, |
| 325 uint32_t* vglyphnum, | 279 uint32_t* vglyphnum, |
| 326 struct TFeature* Feature) const; | 280 TFeature* Feature) const; |
| 327 bool GetVerticalGlyphSub2(uint32_t glyphnum, | 281 bool GetVerticalGlyphSub2(uint32_t glyphnum, |
| 328 uint32_t* vglyphnum, | 282 uint32_t* vglyphnum, |
| 329 struct TLookup* Lookup) const; | 283 TLookup* Lookup) const; |
| 330 int GetCoverageIndex(struct TCoverageFormatBase* Coverage, uint32_t g) const; | 284 int GetCoverageIndex(TCoverageFormatBase* Coverage, uint32_t g) const; |
| 331 | 285 |
| 332 uint8_t GetUInt8(FT_Bytes& p) const; | 286 uint8_t GetUInt8(FT_Bytes& p) const; |
| 333 int16_t GetInt16(FT_Bytes& p) const; | 287 int16_t GetInt16(FT_Bytes& p) const; |
| 334 uint16_t GetUInt16(FT_Bytes& p) const; | 288 uint16_t GetUInt16(FT_Bytes& p) const; |
| 335 int32_t GetInt32(FT_Bytes& p) const; | 289 int32_t GetInt32(FT_Bytes& p) const; |
| 336 uint32_t GetUInt32(FT_Bytes& p) const; | 290 uint32_t GetUInt32(FT_Bytes& p) const; |
| 337 | 291 |
| 338 std::map<uint32_t, uint32_t> m_featureMap; | 292 std::map<uint32_t, uint32_t> m_featureMap; |
| 339 FX_BOOL m_bFeautureMapLoad; | 293 FX_BOOL m_bFeautureMapLoad; |
| 340 bool loaded; | 294 bool loaded; |
| 341 struct tt_gsub_header header; | 295 tt_gsub_header header; |
| 342 struct TScriptList ScriptList; | 296 TScriptList ScriptList; |
| 343 struct TFeatureList FeatureList; | 297 TFeatureList FeatureList; |
| 344 struct TLookupList LookupList; | 298 TLookupList LookupList; |
| 345 }; | 299 }; |
| 346 | 300 |
| 347 #endif // CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ | 301 #endif // CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_ |
| OLD | NEW |