diff options
Diffstat (limited to 'Build/source/libs/icu-xetex/test/letest/FontObject.h')
-rw-r--r-- | Build/source/libs/icu-xetex/test/letest/FontObject.h | 235 |
1 files changed, 0 insertions, 235 deletions
diff --git a/Build/source/libs/icu-xetex/test/letest/FontObject.h b/Build/source/libs/icu-xetex/test/letest/FontObject.h deleted file mode 100644 index 76af46b5ee5..00000000000 --- a/Build/source/libs/icu-xetex/test/letest/FontObject.h +++ /dev/null @@ -1,235 +0,0 @@ -/*************************************************************************** -* -* Copyright (C) 1998-2002, International Business Machines -* Corporation and others. All Rights Reserved. -* -************************************************************************/ - - -#ifndef __FONTOBJECT_H -#define __FONTOBJECT_H - -#include <stdio.h> - -#include "LETypes.h" - - -#ifndef ANY_NUMBER -#define ANY_NUMBER 1 -#endif - -struct DirectoryEntry -{ - le_uint32 tag; - le_uint32 checksum; - le_uint32 offset; - le_uint32 length; -}; - -struct SFNTDirectory -{ - le_uint32 scalerType; - le_uint16 numTables; - le_uint16 searchRange; - le_uint16 entrySelector; - le_uint16 rangeShift; - DirectoryEntry tableDirectory[ANY_NUMBER]; -}; - - -struct CMAPEncodingSubtableHeader -{ - le_uint16 platformID; - le_uint16 platformSpecificID; - le_uint32 encodingOffset; -}; - -struct CMAPTable -{ - le_uint16 version; - le_uint16 numberSubtables; - CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER]; -}; - -struct CMAPEncodingSubtable -{ - le_uint16 format; - le_uint16 length; - le_uint16 language; -}; - -struct CMAPFormat0Encoding : CMAPEncodingSubtable -{ - le_uint8 glyphIndexArray[256]; -}; - -struct CMAPFormat2Subheader -{ - le_uint16 firstCode; - le_uint16 entryCount; - le_int16 idDelta; - le_uint16 idRangeOffset; -}; - -struct CMAPFormat2Encoding : CMAPEncodingSubtable -{ - le_uint16 subHeadKeys[256]; - CMAPFormat2Subheader subheaders[ANY_NUMBER]; -}; - -struct CMAPFormat4Encoding : CMAPEncodingSubtable -{ - le_uint16 segCountX2; - le_uint16 searchRange; - le_uint16 entrySelector; - le_uint16 rangeShift; - le_uint16 endCodes[ANY_NUMBER]; -// le_uint16 reservedPad; -// le_uint16 startCodes[ANY_NUMBER]; -// le_uint16 idDelta[ANY_NUMBER]; -// le_uint16 idRangeOffset[ANY_NUMBER]; -// le_uint16 glyphIndexArray[ANY_NUMBER]; -}; - -struct CMAPFormat6Encoding : CMAPEncodingSubtable -{ - le_uint16 firstCode; - le_uint16 entryCount; - le_uint16 glyphIndexArray[ANY_NUMBER]; -}; - -typedef le_int32 fixed; - -struct BigDate -{ - le_uint32 bc; - le_uint32 ad; -}; - -struct HEADTable -{ - fixed version; - fixed fontRevision; - le_uint32 checksumAdjustment; - le_uint32 magicNumber; - le_uint16 flags; - le_uint16 unitsPerEm; - BigDate created; - BigDate modified; - le_int16 xMin; - le_int16 yMin; - le_int16 xMax; - le_int16 yMax; - le_int16 lowestRecPPEM; - le_int16 fontDirectionHint; - le_int16 indexToLocFormat; - le_int16 glyphDataFormat; -}; - -struct MAXPTable -{ - fixed version; - le_uint16 numGlyphs; - le_uint16 maxPoints; - le_uint16 maxContours; - le_uint16 maxComponentPoints; - le_uint16 maxComponentContours; - le_uint16 maxZones; - le_uint16 maxTwilightPoints; - le_uint16 maxStorage; - le_uint16 maxFunctionDefs; - le_uint16 maxInstructionDefs; - le_uint16 maxStackElements; - le_uint16 maxSizeOfInstructions; - le_uint16 maxComponentElements; - le_uint16 maxComponentDepth; -}; - -struct HHEATable -{ - fixed version; - le_int16 ascent; - le_int16 descent; - le_int16 lineGap; - le_uint16 advanceWidthMax; - le_int16 minLeftSideBearing; - le_int16 minRightSideBearing; - le_int16 xMaxExtent; - le_int16 caretSlopeRise; - le_int16 caretSlopeRun; - le_int16 caretOffset; - le_int16 reserved1; - le_int16 reserved2; - le_int16 reserved3; - le_int16 reserved4; - le_int16 metricDataFormat; - le_uint16 numOfLongHorMetrics; -}; - -struct LongHorMetric -{ - le_uint16 advanceWidth; - le_int16 leftSideBearing; -}; - -struct HMTXTable -{ - LongHorMetric hMetrics[ANY_NUMBER]; // ANY_NUMBER = numOfLongHorMetrics from hhea table -// le_int16 leftSideBearing[ANY_NUMBER]; // ANY_NUMBER = numGlyphs - numOfLongHorMetrics -}; - -class FontObject -{ -public: - FontObject(char *fontName); - ~FontObject(); - - void *readTable(LETag tag, le_uint32 *length); - void deleteTable(void *table); - - LEGlyphID unicodeToGlyph(LEUnicode32 unicode); - -#if 0 - le_uint32 unicodesToGlyphs(LEUnicode *chars, le_uint32 nChars, LEGlyphID *glyphs, - le_uint32 *charIndices, le_bool rightToLeft); -#endif - - le_uint16 getUnitsPerEM(); - - le_uint16 getGlyphAdvance(LEGlyphID glyph); - -private: - FontObject(); - - DirectoryEntry *findTable(LETag tag); - CMAPEncodingSubtable *findCMAP(le_uint16 platformID, le_uint16 platformSpecificID); - void initUnicodeCMAP(); - - SFNTDirectory *directory; - le_uint16 numTables; - le_uint16 searchRange; - le_uint16 entrySelector; - le_uint16 rangeShift; - - CMAPTable *cmapTable; - le_uint16 cmSegCount; - le_uint16 cmSearchRange; - le_uint16 cmEntrySelector; - le_uint16 cmRangeShift; - le_uint16 *cmEndCodes; - le_uint16 *cmStartCodes; - le_uint16 *cmIdDelta; - le_uint16 *cmIdRangeOffset; - - HEADTable *headTable; - - HMTXTable *hmtxTable; - le_uint16 numGlyphs; - le_uint16 numOfLongHorMetrics; - - FILE *file; - -}; - -#endif - |