#include "layout.h"
#include <limits>
#include <vector>
#include "fvar.h"
#include "gdef.h"
#define TABLE_NAME …
namespace {
const uint32_t kScriptTableTagDflt = …;
const uint16_t kNoRequiredFeatureIndexDefined = …;
const uint16_t kUseMarkFilteringSetBit = …;
const uint16_t kMaxDeltaFormatType = …;
const uint16_t kVariationIndex = …;
struct ScriptRecord { … };
struct LangSysRecord { … };
struct FeatureRecord { … };
bool ParseLangSysTable(const ots::Font *font,
ots::Buffer *subtable, const uint32_t tag,
const uint16_t num_features) { … }
bool ParseScriptTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint32_t tag, const uint16_t num_features) { … }
bool ParseFeatureTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_lookups) { … }
bool ParseLookupTable(ots::Font *font, const uint8_t *data,
const size_t length,
const ots::LookupSubtableParser* parser) { … }
bool ParseClassDefFormat1(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t num_classes) { … }
bool ParseClassDefFormat2(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t num_classes) { … }
bool ParseCoverageFormat1(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t expected_num_glyphs) { … }
bool ParseCoverageFormat2(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t expected_num_glyphs) { … }
bool ParseLookupRecord(const ots::Font *font,
ots::Buffer *subtable, const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseRuleSubtable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseRuleSetTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseContextFormat1(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseClassRuleTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseClassSetTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseContextFormat2(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseContextFormat3(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainRuleSubtable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainRuleSetTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainContextFormat1(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainClassRuleSubtable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainClassSetTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainContextFormat2(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainContextFormat3(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
}
namespace ots {
bool LookupSubtableParser::Parse(const Font *font, const uint8_t *data,
const size_t length,
const uint16_t lookup_type) const { … }
bool ParseScriptListTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_features) { … }
bool ParseFeatureListTable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_lookups,
uint16_t* num_features) { … }
bool ParseLookupListTable(Font *font, const uint8_t *data,
const size_t length,
const LookupSubtableParser* parser,
uint16_t *num_lookups) { … }
bool ParseClassDefTable(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t num_classes) { … }
bool ParseCoverageTable(const ots::Font *font,
const uint8_t *data, size_t length,
const uint16_t num_glyphs,
const uint16_t expected_num_glyphs) { … }
bool ParseDeviceTable(const ots::Font *font,
const uint8_t *data, size_t length) { … }
bool ParseContextSubtable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseChainingContextSubtable(const ots::Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_glyphs,
const uint16_t num_lookups) { … }
bool ParseExtensionSubtable(const Font *font,
const uint8_t *data, const size_t length,
const LookupSubtableParser* parser) { … }
bool ParseConditionTable(const Font *font,
const uint8_t *data, const size_t length,
const uint16_t axis_count) { … }
bool ParseConditionSetTable(const Font *font,
const uint8_t *data, const size_t length,
const uint16_t axis_count) { … }
bool ParseFeatureTableSubstitutionTable(const Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_lookups) { … }
bool ParseFeatureVariationsTable(const Font *font,
const uint8_t *data, const size_t length,
const uint16_t num_lookups) { … }
}
#undef TABLE_NAME