diff options
Diffstat (limited to 'core/fpdfapi/font/cfx_cttgsubtable.h')
-rw-r--r-- | core/fpdfapi/font/cfx_cttgsubtable.h | 160 |
1 files changed, 32 insertions, 128 deletions
diff --git a/core/fpdfapi/font/cfx_cttgsubtable.h b/core/fpdfapi/font/cfx_cttgsubtable.h index fc8d125f3e..8722bf665c 100644 --- a/core/fpdfapi/font/cfx_cttgsubtable.h +++ b/core/fpdfapi/font/cfx_cttgsubtable.h @@ -25,95 +25,45 @@ class CFX_CTTGSUBTable { bool GetVerticalGlyph(uint32_t glyphnum, uint32_t* vglyphnum); private: - struct TLangSys { - TLangSys(); - ~TLangSys(); + struct TLangSysRecord { + TLangSysRecord(); + ~TLangSysRecord(); + uint32_t LangSysTag; uint16_t LookupOrder; uint16_t ReqFeatureIndex; std::vector<uint16_t> FeatureIndices; - - private: - TLangSys(const TLangSys&) = delete; - TLangSys& operator=(const TLangSys&) = delete; - }; - - struct TLangSysRecord { - TLangSysRecord() : LangSysTag(0) {} - - uint32_t LangSysTag; - TLangSys LangSys; - - private: - TLangSysRecord(const TLangSysRecord&) = delete; - TLangSysRecord& operator=(const TLangSysRecord&) = delete; - }; - - struct TScript { - TScript(); - ~TScript(); - - uint16_t DefaultLangSys; - std::vector<TLangSysRecord> LangSysRecords; - - private: - TScript(const TScript&) = delete; - TScript& operator=(const TScript&) = delete; }; struct TScriptRecord { - TScriptRecord() : ScriptTag(0) {} + TScriptRecord(); + ~TScriptRecord(); uint32_t ScriptTag; - TScript Script; - - private: - TScriptRecord(const TScriptRecord&) = delete; - TScriptRecord& operator=(const TScriptRecord&) = delete; + uint16_t DefaultLangSys; + std::vector<TLangSysRecord> LangSysRecords; }; - struct TFeature { - TFeature(); - ~TFeature(); + struct TFeatureRecord { + TFeatureRecord(); + ~TFeatureRecord(); + uint32_t FeatureTag; uint16_t FeatureParams; std::vector<uint16_t> LookupListIndices; - - private: - TFeature(const TFeature&) = delete; - TFeature& operator=(const TFeature&) = delete; }; - struct TFeatureRecord { - TFeatureRecord() : FeatureTag(0) {} - - uint32_t FeatureTag; - TFeature Feature; - - private: - TFeatureRecord(const TFeatureRecord&) = delete; - TFeatureRecord& operator=(const TFeatureRecord&) = delete; - }; + struct TRangeRecord { + TRangeRecord(); - enum TLookupFlag { - LOOKUPFLAG_RightToLeft = 0x0001, - LOOKUPFLAG_IgnoreBaseGlyphs = 0x0002, - LOOKUPFLAG_IgnoreLigatures = 0x0004, - LOOKUPFLAG_IgnoreMarks = 0x0008, - LOOKUPFLAG_Reserved = 0x00F0, - LOOKUPFLAG_MarkAttachmentType = 0xFF00, + uint16_t Start; + uint16_t End; + uint16_t StartCoverageIndex; }; struct TCoverageFormatBase { - TCoverageFormatBase() : CoverageFormat(0) {} - explicit TCoverageFormatBase(uint16_t format) : CoverageFormat(format) {} virtual ~TCoverageFormatBase() {} - uint16_t CoverageFormat; - - private: - TCoverageFormatBase(const TCoverageFormatBase&); - TCoverageFormatBase& operator=(const TCoverageFormatBase&); }; struct TCoverageFormat1 : public TCoverageFormatBase { @@ -121,25 +71,6 @@ class CFX_CTTGSUBTable { ~TCoverageFormat1() override; std::vector<uint16_t> GlyphArray; - - private: - TCoverageFormat1(const TCoverageFormat1&) = delete; - TCoverageFormat1& operator=(const TCoverageFormat1&) = delete; - }; - - struct TRangeRecord { - TRangeRecord(); - - friend bool operator>(const TRangeRecord& r1, const TRangeRecord& r2) { - return r1.Start > r2.Start; - } - - uint16_t Start; - uint16_t End; - uint16_t StartCoverageIndex; - - private: - TRangeRecord(const TRangeRecord&) = delete; }; struct TCoverageFormat2 : public TCoverageFormatBase { @@ -147,10 +78,6 @@ class CFX_CTTGSUBTable { ~TCoverageFormat2() override; std::vector<TRangeRecord> RangeRecords; - - private: - TCoverageFormat2(const TCoverageFormat2&) = delete; - TCoverageFormat2& operator=(const TCoverageFormat2&) = delete; }; struct TDevice { @@ -159,46 +86,28 @@ class CFX_CTTGSUBTable { uint16_t StartSize; uint16_t EndSize; uint16_t DeltaFormat; - - private: - TDevice(const TDevice&) = delete; - TDevice& operator=(const TDevice&) = delete; }; struct TSubTableBase { - TSubTableBase() : SubstFormat(0) {} - explicit TSubTableBase(uint16_t format) : SubstFormat(format) {} - virtual ~TSubTableBase() {} + TSubTableBase(); + virtual ~TSubTableBase(); + std::unique_ptr<TCoverageFormatBase> Coverage; uint16_t SubstFormat; - - private: - TSubTableBase(const TSubTableBase&) = delete; - TSubTableBase& operator=(const TSubTableBase&) = delete; }; - struct TSingleSubstFormat1 : public TSubTableBase { - TSingleSubstFormat1(); - ~TSingleSubstFormat1() override; + struct TSubTable1 : public TSubTableBase { + TSubTable1(); + ~TSubTable1() override; - std::unique_ptr<TCoverageFormatBase> Coverage; int16_t DeltaGlyphID; - - private: - TSingleSubstFormat1(const TSingleSubstFormat1&) = delete; - TSingleSubstFormat1& operator=(const TSingleSubstFormat1&) = delete; }; - struct TSingleSubstFormat2 : public TSubTableBase { - TSingleSubstFormat2(); - ~TSingleSubstFormat2() override; + struct TSubTable2 : public TSubTableBase { + TSubTable2(); + ~TSubTable2() override; - std::unique_ptr<TCoverageFormatBase> Coverage; std::vector<uint16_t> Substitutes; - - private: - TSingleSubstFormat2(const TSingleSubstFormat2&) = delete; - TSingleSubstFormat2& operator=(const TSingleSubstFormat2&) = delete; }; struct TLookup { @@ -208,30 +117,26 @@ class CFX_CTTGSUBTable { uint16_t LookupType; uint16_t LookupFlag; std::vector<std::unique_ptr<TSubTableBase>> SubTables; - - private: - TLookup(const TLookup&) = delete; - TLookup& operator=(const TLookup&) = delete; }; bool Parse(FT_Bytes scriptlist, FT_Bytes featurelist, FT_Bytes lookuplist); void ParseScriptList(FT_Bytes raw); - void ParseScript(FT_Bytes raw, TScript* rec); - void ParseLangSys(FT_Bytes raw, TLangSys* rec); + void ParseScript(FT_Bytes raw, TScriptRecord* rec); + void ParseLangSys(FT_Bytes raw, TLangSysRecord* rec); void ParseFeatureList(FT_Bytes raw); - void ParseFeature(FT_Bytes raw, TFeature* rec); + void ParseFeature(FT_Bytes raw, TFeatureRecord* rec); void ParseLookupList(FT_Bytes raw); void ParseLookup(FT_Bytes raw, TLookup* rec); std::unique_ptr<TCoverageFormatBase> ParseCoverage(FT_Bytes raw); void ParseCoverageFormat1(FT_Bytes raw, TCoverageFormat1* rec); void ParseCoverageFormat2(FT_Bytes raw, TCoverageFormat2* rec); void ParseSingleSubst(FT_Bytes raw, std::unique_ptr<TSubTableBase>* rec); - void ParseSingleSubstFormat1(FT_Bytes raw, TSingleSubstFormat1* rec); - void ParseSingleSubstFormat2(FT_Bytes raw, TSingleSubstFormat2* rec); + void ParseSingleSubstFormat1(FT_Bytes raw, TSubTable1* rec); + void ParseSingleSubstFormat2(FT_Bytes raw, TSubTable2* rec); bool GetVerticalGlyphSub(uint32_t glyphnum, uint32_t* vglyphnum, - TFeature* Feature); + TFeatureRecord* Feature); bool GetVerticalGlyphSub2(uint32_t glyphnum, uint32_t* vglyphnum, TLookup* Lookup); @@ -245,7 +150,6 @@ class CFX_CTTGSUBTable { std::set<uint32_t> m_featureSet; bool m_bFeautureMapLoad; - bool loaded; std::vector<TScriptRecord> ScriptList; std::vector<TFeatureRecord> FeatureList; std::vector<TLookup> LookupList; |