00001 00002 #ifndef SkSfntUtils_DEFINED 00003 #define SkSfntUtils_DEFINED 00004 00005 #include "SkFontHost.h" 00006 00007 struct SkSfntTable_head { 00008 SkFixed fVersion; 00009 SkFixed fRevision; 00010 uint32_t fCheckSumAdjustment; 00011 uint32_t fMagicNumber; 00012 uint16_t fFlags; 00013 uint16_t fUnitsPerEm; 00014 Sk64 fDateCreated; 00015 Sk64 fDateModified; 00016 int16_t fXMin; 00017 int16_t fYMin; 00018 int16_t fXMax; 00019 int16_t fYMax; 00020 uint16_t fMacStyle; 00021 uint16_t fLowestPPEM; 00022 int16_t fFontDirectionHint; 00023 int16_t fIndexToLocFormat; 00024 int16_t fGlyphDataFormat; 00025 }; 00026 00027 struct SkSfntTable_maxp { 00028 SkFixed fVersion; 00029 uint16_t fNumGlyphs; 00030 uint16_t fMaxPoints; 00031 uint16_t fMaxContours; 00032 uint16_t fMaxComponentPoints; 00033 uint16_t fMaxComponentContours; 00034 uint16_t fMaxZones; 00035 uint16_t fMaxTwilightPoints; 00036 uint16_t fMaxStorage; 00037 uint16_t fMaxFunctionDefs; 00038 uint16_t fMaxInstructionDefs; 00039 uint16_t fMaxStackElements; 00040 uint16_t fMaxSizeOfInstructions; 00041 uint16_t fMaxComponentElements; 00042 uint16_t fMaxComponentDepth; 00043 }; 00044 00045 class SkSfntUtils { 00046 public: 00047 static bool ReadTable_head(SkFontID, SkSfntTable_head*); 00048 static bool ReadTable_maxp(SkFontID, SkSfntTable_maxp*); 00049 }; 00050 00051 #endif 00052