X-Git-Url: https://git.saurik.com/apple/icu.git/blobdiff_plain/b75a7d8f3b4adbae880cab104ce2c6a50eee4db2..e4f10fab0c078f399c9deef476d9c9b73b47dff8:/icuSources/test/letest/sfnt.h diff --git a/icuSources/test/letest/sfnt.h b/icuSources/test/letest/sfnt.h index b467f976..bd5888fc 100644 --- a/icuSources/test/letest/sfnt.h +++ b/icuSources/test/letest/sfnt.h @@ -1,6 +1,6 @@ /*************************************************************************** * -* Copyright (C) 1998-2002, International Business Machines +* Copyright (C) 1998-2011, International Business Machines * Corporation and others. All Rights Reserved. * ************************************************************************/ @@ -10,6 +10,7 @@ #include "LETypes.h" +U_NAMESPACE_USE #ifndef ANY_NUMBER #define ANY_NUMBER 1 @@ -23,6 +24,10 @@ struct DirectoryEntry le_uint32 length; }; +#ifndef __cplusplus +typedef struct DirectoryEntry DirectoryEntry; +#endif + struct SFNTDirectory { le_uint32 scalerType; @@ -33,6 +38,10 @@ struct SFNTDirectory DirectoryEntry tableDirectory[ANY_NUMBER]; }; +#ifndef __cplusplus +typedef struct SFNTDirectory SFNTDirectory; +#endif + struct CMAPEncodingSubtableHeader { @@ -41,6 +50,10 @@ struct CMAPEncodingSubtableHeader le_uint32 encodingOffset; }; +#ifndef __cplusplus +typedef struct CMAPEncodingSubtableHeader CMAPEncodingSubtableHeader; +#endif + struct CMAPTable { le_uint16 version; @@ -48,6 +61,10 @@ struct CMAPTable CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER]; }; +#ifndef __cplusplus +typedef struct CMAPTable CMAPTable; +#endif + struct CMAPEncodingSubtable { le_uint16 format; @@ -55,10 +72,25 @@ struct CMAPEncodingSubtable le_uint16 language; }; +#ifndef __cplusplus +typedef struct CMAPEncodingSubtable CMAPEncodingSubtable; +#endif + +#ifdef __cplusplus struct CMAPFormat0Encoding : CMAPEncodingSubtable { le_uint8 glyphIndexArray[256]; }; +#else +struct CMAPFormat0Encoding +{ + CMAPEncodingSubtable base; + + le_uint8 glyphIndexArray[256]; +}; + +typedef struct CMAPFormat0Encoding CMAPFormat0Encoding; +#endif struct CMAPFormat2Subheader { @@ -68,12 +100,29 @@ struct CMAPFormat2Subheader le_uint16 idRangeOffset; }; +#ifndef __cplusplus +typedef struct CMAPFormat2Subheader CMAPFormat2Subheader; +#endif + +#ifdef __cplusplus struct CMAPFormat2Encoding : CMAPEncodingSubtable { le_uint16 subHeadKeys[256]; CMAPFormat2Subheader subheaders[ANY_NUMBER]; }; +#else +struct CMAPFormat2Encoding +{ + CMAPEncodingSubtable base; + + le_uint16 subHeadKeys[256]; + CMAPFormat2Subheader subheaders[ANY_NUMBER]; +}; + +typedef struct CMAPFormat2Encoding CMAPFormat2Encoding; +#endif +#ifdef __cplusplus struct CMAPFormat4Encoding : CMAPEncodingSubtable { le_uint16 segCountX2; @@ -81,19 +130,55 @@ struct CMAPFormat4Encoding : CMAPEncodingSubtable 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]; +*/ +}; +#else +struct CMAPFormat4Encoding +{ + CMAPEncodingSubtable base; + + 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]; +*/ }; +typedef struct CMAPFormat4Encoding CMAPFormat4Encoding; +#endif + +#ifdef __cplusplus struct CMAPFormat6Encoding : CMAPEncodingSubtable { le_uint16 firstCode; le_uint16 entryCount; le_uint16 glyphIndexArray[ANY_NUMBER]; }; +#else +struct CMAPFormat6Encoding +{ + CMAPEncodingSubtable base; + + le_uint16 firstCode; + le_uint16 entryCount; + le_uint16 glyphIndexArray[ANY_NUMBER]; +}; + +typedef struct CMAPFormat6Encoding CMAPFormat6Encoding; +#endif struct CMAPEncodingSubtable32 { @@ -102,6 +187,10 @@ struct CMAPEncodingSubtable32 le_uint32 language; }; +#ifndef __cplusplus +typedef struct CMAPEncodingSubtable32 CMAPEncodingSubtable32; +#endif + struct CMAPGroup { le_uint32 startCharCode; @@ -109,25 +198,67 @@ struct CMAPGroup le_uint32 startGlyphCode; }; +#ifndef __cplusplus +typedef struct CMAPGroup CMAPGroup; +#endif + +#ifdef __cplusplus struct CMAPFormat8Encoding : CMAPEncodingSubtable32 { le_uint32 is32[65536/32]; le_uint32 nGroups; CMAPGroup groups[ANY_NUMBER]; }; +#else +struct CMAPFormat8Encoding +{ + CMAPEncodingSubtable32 base; + + le_uint32 is32[65536/32]; + le_uint32 nGroups; + CMAPGroup groups[ANY_NUMBER]; +}; + +typedef struct CMAPFormat8Encoding CMAPFormat8Encoding; +#endif +#ifdef __cplusplus struct CMAPFormat10Encoding : CMAPEncodingSubtable32 { le_uint32 startCharCode; le_uint32 numCharCodes; le_uint16 glyphs[ANY_NUMBER]; }; +#else +struct CMAPFormat10Encoding +{ + CMAPEncodingSubtable32 base; + + le_uint32 startCharCode; + le_uint32 numCharCodes; + le_uint16 glyphs[ANY_NUMBER]; +}; + +typedef struct CMAPFormat10Encoding CMAPFormat10Encoding; +#endif +#ifdef __cplusplus struct CMAPFormat12Encoding : CMAPEncodingSubtable32 { le_uint32 nGroups; CMAPGroup groups[ANY_NUMBER]; }; +#else +struct CMAPFormat12Encoding +{ + CMAPEncodingSubtable32 base; + + le_uint32 nGroups; + CMAPGroup groups[ANY_NUMBER]; +}; + +typedef struct CMAPFormat12Encoding CMAPFormat12Encoding; +#endif typedef le_int32 fixed; @@ -137,6 +268,10 @@ struct BigDate le_uint32 ad; }; +#ifndef __cplusplus +typedef struct BigDate BigDate; +#endif + struct HEADTable { fixed version; @@ -157,6 +292,10 @@ struct HEADTable le_int16 glyphDataFormat; }; +#ifndef __cplusplus +typedef struct HEADTable HEADTable; +#endif + struct MAXPTable { fixed version; @@ -176,6 +315,10 @@ struct MAXPTable le_uint16 maxComponentDepth; }; +#ifndef __cplusplus +typedef struct MAXPTable MAXPTable; +#endif + struct HHEATable { fixed version; @@ -197,17 +340,110 @@ struct HHEATable le_uint16 numOfLongHorMetrics; }; +#ifndef __cplusplus +typedef struct HHEATable HHEATable; +#endif + struct LongHorMetric { le_uint16 advanceWidth; le_int16 leftSideBearing; }; +#ifndef __cplusplus +typedef struct LongHorMetric LongHorMetric; +#endif + struct HMTXTable { - LongHorMetric hMetrics[ANY_NUMBER]; // ANY_NUMBER = numOfLongHorMetrics from hhea table -// le_int16 leftSideBearing[ANY_NUMBER]; // ANY_NUMBER = numGlyphs - numOfLongHorMetrics + LongHorMetric hMetrics[ANY_NUMBER]; /* ANY_NUMBER = numOfLongHorMetrics from hhea table */ +/* le_int16 leftSideBearing[ANY_NUMBER]; ANY_NUMBER = numGlyphs - numOfLongHorMetrics */ }; +#ifndef __cplusplus +typedef struct HMTXTable HMTXTable; +#endif + +enum PlatformID +{ + PLATFORM_UNICODE = 0, + PLATFORM_MACINTOSH = 1, + PLATFORM_ISO = 2, + PLATFORM_MICROSOFT = 3, + PLATFORM_CUSTOM = 4 +}; + +enum MacintoshEncodingID +{ + MACINTOSH_ROMAN = 0 +}; + +enum MacintoshLanguageID +{ + MACINTOSH_ENGLISH = 0 +}; + +enum MicrosoftEncodingID +{ + MICROSOFT_UNICODE_BMP = 1, + MICROSOFT_UNICODE_FULL = 10 +}; + +enum MicrosoftLanguageID +{ + MICROSOFT_ENGLISH = 0x409 +}; + +enum NameID +{ + NAME_COPYRIGHT_NOTICE = 0, + NAME_FONT_FAMILY = 1, + NAME_FONT_SUB_FAMILY = 2, + NAME_UNIQUE_FONT_ID = 3, + NAME_FULL_FONT_NAME = 4, + NAME_VERSION_STRING = 5, + NAME_POSTSCRIPT_NAME = 6, + NAME_TRADEMARK = 7, + NAME_MANUFACTURER = 8, + NAME_DESIGNER = 9, + NAME_DESCRIPTION = 10, + NAME_VENDOR_URL = 11, + NAME_DESIGNER_URL = 12, + NAME_LICENSE_DESCRIPTION = 13, + NAME_LICENSE_URL = 14, + NAME_RESERVED = 15, + NAME_PREFERRED_FAMILY = 16, + NAME_PREFERRED_SUB_FAMILY = 17, + NAME_COMPATIBLE_FULL = 18, + NAME_SAMPLE_TEXT = 19, + NAME_POSTSCRIPT_CID = 20 +}; + +struct NameRecord +{ + le_uint16 platformID; + le_uint16 encodingID; + le_uint16 languageID; + le_uint16 nameID; + le_uint16 length; + le_uint16 offset; +}; + +#ifndef __cplusplus +typedef struct NameRecord NameRecord; +#endif + +struct NAMETable +{ + le_uint16 version; + le_uint16 count; + le_uint16 stringOffset; + NameRecord nameRecords[ANY_NUMBER]; +}; + +#ifndef __cplusplus +typedef struct NAMETable NAMETable; +#endif + #endif