| Index: core/fpdfapi/fpdf_font/ttgsubtable.h
|
| diff --git a/core/fpdfapi/fpdf_font/ttgsubtable.h b/core/fpdfapi/fpdf_font/ttgsubtable.h
|
| deleted file mode 100644
|
| index 492a6a21de07e4929b310246435e4f9d6d65e371..0000000000000000000000000000000000000000
|
| --- a/core/fpdfapi/fpdf_font/ttgsubtable.h
|
| +++ /dev/null
|
| @@ -1,301 +0,0 @@
|
| -// Copyright 2014 PDFium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
| -
|
| -#ifndef CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_
|
| -#define CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_
|
| -
|
| -#include <stdint.h>
|
| -
|
| -#include <map>
|
| -#include <memory>
|
| -
|
| -#include "core/fxcrt/fx_basic.h"
|
| -#include "core/fxge/fx_font.h"
|
| -#include "core/fxge/fx_freetype.h"
|
| -
|
| -class CFX_GlyphMap {
|
| - public:
|
| - CFX_GlyphMap();
|
| - ~CFX_GlyphMap();
|
| -
|
| - void SetAt(int key, int value);
|
| - FX_BOOL Lookup(int key, int& value);
|
| -
|
| - protected:
|
| - CFX_BinaryBuf m_Buffer;
|
| -};
|
| -
|
| -class CFX_CTTGSUBTable {
|
| - public:
|
| - CFX_CTTGSUBTable();
|
| - explicit CFX_CTTGSUBTable(FT_Bytes gsub);
|
| - virtual ~CFX_CTTGSUBTable();
|
| -
|
| - bool IsOk() const;
|
| - bool LoadGSUBTable(FT_Bytes gsub);
|
| - bool GetVerticalGlyph(uint32_t glyphnum, uint32_t* vglyphnum);
|
| -
|
| - private:
|
| - struct tt_gsub_header {
|
| - uint32_t Version;
|
| - uint16_t ScriptList;
|
| - uint16_t FeatureList;
|
| - uint16_t LookupList;
|
| - };
|
| - struct TLangSys {
|
| - TLangSys();
|
| - ~TLangSys();
|
| -
|
| - uint16_t LookupOrder;
|
| - uint16_t ReqFeatureIndex;
|
| - uint16_t FeatureCount;
|
| - std::unique_ptr<uint16_t[]> FeatureIndex;
|
| -
|
| - private:
|
| - TLangSys(const TLangSys&);
|
| - TLangSys& operator=(const TLangSys&);
|
| - };
|
| - struct TLangSysRecord {
|
| - TLangSysRecord() : LangSysTag(0) {}
|
| -
|
| - uint32_t LangSysTag;
|
| - TLangSys LangSys;
|
| -
|
| - private:
|
| - TLangSysRecord(const TLangSysRecord&);
|
| - TLangSysRecord& operator=(const TLangSysRecord&);
|
| - };
|
| - struct TScript {
|
| - TScript();
|
| - ~TScript();
|
| -
|
| - uint16_t DefaultLangSys;
|
| - uint16_t LangSysCount;
|
| - std::unique_ptr<TLangSysRecord[]> LangSysRecord;
|
| -
|
| - private:
|
| - TScript(const TScript&);
|
| - TScript& operator=(const TScript&);
|
| - };
|
| - struct TScriptRecord {
|
| - TScriptRecord() : ScriptTag(0) {}
|
| -
|
| - uint32_t ScriptTag;
|
| - TScript Script;
|
| -
|
| - private:
|
| - TScriptRecord(const TScriptRecord&);
|
| - TScriptRecord& operator=(const TScriptRecord&);
|
| - };
|
| - struct TScriptList {
|
| - TScriptList();
|
| - ~TScriptList();
|
| -
|
| - uint16_t ScriptCount;
|
| - std::unique_ptr<TScriptRecord[]> ScriptRecord;
|
| -
|
| - private:
|
| - TScriptList(const TScriptList&);
|
| - TScriptList& operator=(const TScriptList&);
|
| - };
|
| - struct TFeature {
|
| - TFeature();
|
| - ~TFeature();
|
| -
|
| - uint16_t FeatureParams;
|
| - int LookupCount;
|
| - std::unique_ptr<uint16_t[]> LookupListIndex;
|
| -
|
| - private:
|
| - TFeature(const TFeature&);
|
| - TFeature& operator=(const TFeature&);
|
| - };
|
| - struct TFeatureRecord {
|
| - TFeatureRecord() : FeatureTag(0) {}
|
| -
|
| - uint32_t FeatureTag;
|
| - TFeature Feature;
|
| -
|
| - private:
|
| - TFeatureRecord(const TFeatureRecord&);
|
| - TFeatureRecord& operator=(const TFeatureRecord&);
|
| - };
|
| - struct TFeatureList {
|
| - TFeatureList();
|
| - ~TFeatureList();
|
| -
|
| - int FeatureCount;
|
| - std::unique_ptr<TFeatureRecord[]> FeatureRecord;
|
| -
|
| - private:
|
| - TFeatureList(const TFeatureList&);
|
| - TFeatureList& operator=(const TFeatureList&);
|
| - };
|
| - enum TLookupFlag {
|
| - LOOKUPFLAG_RightToLeft = 0x0001,
|
| - LOOKUPFLAG_IgnoreBaseGlyphs = 0x0002,
|
| - LOOKUPFLAG_IgnoreLigatures = 0x0004,
|
| - LOOKUPFLAG_IgnoreMarks = 0x0008,
|
| - LOOKUPFLAG_Reserved = 0x00F0,
|
| - LOOKUPFLAG_MarkAttachmentType = 0xFF00,
|
| - };
|
| - struct TCoverageFormatBase {
|
| - TCoverageFormatBase() : CoverageFormat(0) {}
|
| - explicit TCoverageFormatBase(uint16_t format) : CoverageFormat(format) {}
|
| - virtual ~TCoverageFormatBase() {}
|
| -
|
| - uint16_t CoverageFormat;
|
| - CFX_GlyphMap m_glyphMap;
|
| -
|
| - private:
|
| - TCoverageFormatBase(const TCoverageFormatBase&);
|
| - TCoverageFormatBase& operator=(const TCoverageFormatBase&);
|
| - };
|
| - struct TCoverageFormat1 : public TCoverageFormatBase {
|
| - TCoverageFormat1();
|
| - ~TCoverageFormat1() override;
|
| -
|
| - uint16_t GlyphCount;
|
| - std::unique_ptr<uint16_t[]> GlyphArray;
|
| -
|
| - private:
|
| - TCoverageFormat1(const TCoverageFormat1&);
|
| - TCoverageFormat1& operator=(const TCoverageFormat1&);
|
| - };
|
| - 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&);
|
| - };
|
| - struct TCoverageFormat2 : public TCoverageFormatBase {
|
| - TCoverageFormat2();
|
| - ~TCoverageFormat2() override;
|
| -
|
| - uint16_t RangeCount;
|
| - std::unique_ptr<TRangeRecord[]> RangeRecord;
|
| -
|
| - private:
|
| - TCoverageFormat2(const TCoverageFormat2&);
|
| - TCoverageFormat2& operator=(const TCoverageFormat2&);
|
| - };
|
| - struct TDevice {
|
| - TDevice() : StartSize(0), EndSize(0), DeltaFormat(0) {}
|
| -
|
| - uint16_t StartSize;
|
| - uint16_t EndSize;
|
| - uint16_t DeltaFormat;
|
| -
|
| - private:
|
| - TDevice(const TDevice&);
|
| - TDevice& operator=(const TDevice&);
|
| - };
|
| - struct TSubTableBase {
|
| - TSubTableBase() : SubstFormat(0) {}
|
| - explicit TSubTableBase(uint16_t format) : SubstFormat(format) {}
|
| - virtual ~TSubTableBase() {}
|
| -
|
| - uint16_t SubstFormat;
|
| -
|
| - private:
|
| - TSubTableBase(const TSubTableBase&);
|
| - TSubTableBase& operator=(const TSubTableBase&);
|
| - };
|
| - struct TSingleSubstFormat1 : public TSubTableBase {
|
| - TSingleSubstFormat1();
|
| - ~TSingleSubstFormat1() override;
|
| -
|
| - std::unique_ptr<TCoverageFormatBase> Coverage;
|
| - int16_t DeltaGlyphID;
|
| -
|
| - private:
|
| - TSingleSubstFormat1(const TSingleSubstFormat1&);
|
| - TSingleSubstFormat1& operator=(const TSingleSubstFormat1&);
|
| - };
|
| - struct TSingleSubstFormat2 : public TSubTableBase {
|
| - TSingleSubstFormat2();
|
| - ~TSingleSubstFormat2() override;
|
| -
|
| - std::unique_ptr<TCoverageFormatBase> Coverage;
|
| - uint16_t GlyphCount;
|
| - std::unique_ptr<uint16_t[]> Substitute;
|
| -
|
| - private:
|
| - TSingleSubstFormat2(const TSingleSubstFormat2&);
|
| - TSingleSubstFormat2& operator=(const TSingleSubstFormat2&);
|
| - };
|
| - struct TLookup {
|
| - TLookup();
|
| - ~TLookup();
|
| -
|
| - uint16_t LookupType;
|
| - uint16_t LookupFlag;
|
| - uint16_t SubTableCount;
|
| - std::unique_ptr<TSubTableBase* []> SubTable;
|
| -
|
| - private:
|
| - TLookup(const TLookup&);
|
| - TLookup& operator=(const TLookup&);
|
| - };
|
| - struct TLookupList {
|
| - TLookupList();
|
| - ~TLookupList();
|
| -
|
| - int LookupCount;
|
| - std::unique_ptr<TLookup[]> Lookup;
|
| -
|
| - private:
|
| - TLookupList(const TLookupList&);
|
| - TLookupList& operator=(const TLookupList&);
|
| - };
|
| -
|
| - bool Parse(FT_Bytes scriptlist, FT_Bytes featurelist, FT_Bytes lookuplist);
|
| - void ParseScriptList(FT_Bytes raw, TScriptList* rec);
|
| - void ParseScript(FT_Bytes raw, TScript* rec);
|
| - void ParseLangSys(FT_Bytes raw, TLangSys* rec);
|
| - void ParseFeatureList(FT_Bytes raw, TFeatureList* rec);
|
| - void ParseFeature(FT_Bytes raw, TFeature* rec);
|
| - void ParseLookupList(FT_Bytes raw, TLookupList* rec);
|
| - void ParseLookup(FT_Bytes raw, TLookup* rec);
|
| - TCoverageFormatBase* ParseCoverage(FT_Bytes raw);
|
| - void ParseCoverageFormat1(FT_Bytes raw, TCoverageFormat1* rec);
|
| - void ParseCoverageFormat2(FT_Bytes raw, TCoverageFormat2* rec);
|
| - void ParseSingleSubst(FT_Bytes raw, TSubTableBase** rec);
|
| - void ParseSingleSubstFormat1(FT_Bytes raw, TSingleSubstFormat1* rec);
|
| - void ParseSingleSubstFormat2(FT_Bytes raw, TSingleSubstFormat2* rec);
|
| -
|
| - bool GetVerticalGlyphSub(uint32_t glyphnum,
|
| - uint32_t* vglyphnum,
|
| - TFeature* Feature) const;
|
| - bool GetVerticalGlyphSub2(uint32_t glyphnum,
|
| - uint32_t* vglyphnum,
|
| - TLookup* Lookup) const;
|
| - int GetCoverageIndex(TCoverageFormatBase* Coverage, uint32_t g) const;
|
| -
|
| - uint8_t GetUInt8(FT_Bytes& p) const;
|
| - int16_t GetInt16(FT_Bytes& p) const;
|
| - uint16_t GetUInt16(FT_Bytes& p) const;
|
| - int32_t GetInt32(FT_Bytes& p) const;
|
| - uint32_t GetUInt32(FT_Bytes& p) const;
|
| -
|
| - std::map<uint32_t, uint32_t> m_featureMap;
|
| - FX_BOOL m_bFeautureMapLoad;
|
| - bool loaded;
|
| - tt_gsub_header header;
|
| - TScriptList ScriptList;
|
| - TFeatureList FeatureList;
|
| - TLookupList LookupList;
|
| -};
|
| -
|
| -#endif // CORE_FPDFAPI_FPDF_FONT_TTGSUBTABLE_H_
|
|
|