16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/***************************************************************************
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Copyright (C) 1998-2013, International Business Machines
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Corporation and others.  All Rights Reserved.
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org************************************************************************/
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __SFNT_H
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define __SFNT_H
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "layout/LETypes.h"
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgU_NAMESPACE_USE
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef ANY_NUMBER
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#define ANY_NUMBER 1
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct DirectoryEntry
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   tag;
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   checksum;
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   offset;
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   length;
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct DirectoryEntry DirectoryEntry;
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct SFNTDirectory
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32       scalerType;
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16       numTables;
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16       searchRange;
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16       entrySelector;
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16       rangeShift;
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    DirectoryEntry  tableDirectory[ANY_NUMBER];
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct SFNTDirectory SFNTDirectory;
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPEncodingSubtableHeader
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   platformID;
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   platformSpecificID;
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   encodingOffset;
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPEncodingSubtableHeader CMAPEncodingSubtableHeader;
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPTable
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   version;
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   numberSubtables;
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER];
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPTable CMAPTable;
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPEncodingSubtable
696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   format;
716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   length;
726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   language;
736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPEncodingSubtable CMAPEncodingSubtable;
776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat0Encoding : CMAPEncodingSubtable
816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint8    glyphIndexArray[256];
836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat0Encoding
866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable base;
886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	le_uint8 glyphIndexArray[256];
906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat0Encoding CMAPFormat0Encoding;
936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat2Subheader
966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   firstCode;
986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   entryCount;
996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    idDelta;
1006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   idRangeOffset;
1016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
1046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat2Subheader CMAPFormat2Subheader;
1056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
1066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
1086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat2Encoding : CMAPEncodingSubtable
1096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16  subHeadKeys[256];
1116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPFormat2Subheader subheaders[ANY_NUMBER];
1126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
1146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat2Encoding
1156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable base;
1176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16  subHeadKeys[256];
1196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPFormat2Subheader subheaders[ANY_NUMBER];
1206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat2Encoding CMAPFormat2Encoding;
1236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
1246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
1266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat4Encoding : CMAPEncodingSubtable
1276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   segCountX2;
1296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   searchRange;
1306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   entrySelector;
1316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   rangeShift;
1326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   endCodes[ANY_NUMBER];
1336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
1346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   reservedPad;
1356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   startCodes[ANY_NUMBER];
1366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   idDelta[ANY_NUMBER];
1376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   idRangeOffset[ANY_NUMBER];
1386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   glyphIndexArray[ANY_NUMBER];
1396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
1406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
1426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat4Encoding
1436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable base;
1456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   segCountX2;
1476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   searchRange;
1486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   entrySelector;
1496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   rangeShift;
1506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   endCodes[ANY_NUMBER];
1516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
1526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//  le_uint16   reservedPad;
1536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//  le_uint16   startCodes[ANY_NUMBER];
1546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//  le_uint16   idDelta[ANY_NUMBER];
1556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//  le_uint16   idRangeOffset[ANY_NUMBER];
1566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org//  le_uint16   glyphIndexArray[ANY_NUMBER];
1576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
1586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat4Encoding CMAPFormat4Encoding;
1616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
1626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
1646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat6Encoding : CMAPEncodingSubtable
1656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   firstCode;
1676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   entryCount;
1686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   glyphIndexArray[ANY_NUMBER];
1696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
1716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat6Encoding
1726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable base;
1746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   firstCode;
1766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   entryCount;
1776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   glyphIndexArray[ANY_NUMBER];
1786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat6Encoding CMAPFormat6Encoding;
1816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
1826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPEncodingSubtable32
1846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   format;
1866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   length;
1876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   language;
1886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
1896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
1916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPEncodingSubtable32 CMAPEncodingSubtable32;
1926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
1936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
1946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPGroup
1956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
1966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   startCharCode;
1976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   endCharCode;
1986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   startGlyphCode;
1996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
2026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPGroup CMAPGroup;
2036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
2066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat8Encoding : CMAPEncodingSubtable32
2076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   is32[65536/32];
2096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   nGroups;
2106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPGroup   groups[ANY_NUMBER];
2116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
2136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat8Encoding
2146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable32 base;
2166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   is32[65536/32];
2186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   nGroups;
2196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPGroup   groups[ANY_NUMBER];
2206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat8Encoding CMAPFormat8Encoding;
2236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
2266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat10Encoding : CMAPEncodingSubtable32
2276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   startCharCode;
2296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   numCharCodes;
2306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   glyphs[ANY_NUMBER];
2316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
2336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat10Encoding
2346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable32 base;
2366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   startCharCode;
2386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   numCharCodes;
2396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   glyphs[ANY_NUMBER];
2406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat10Encoding CMAPFormat10Encoding;
2436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifdef __cplusplus
2466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat12Encoding : CMAPEncodingSubtable32
2476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   nGroups;
2496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPGroup   groups[ANY_NUMBER];
2506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#else
2526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct CMAPFormat12Encoding
2536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org	CMAPEncodingSubtable32 base;
2556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   nGroups;
2576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    CMAPGroup   groups[ANY_NUMBER];
2586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct CMAPFormat12Encoding CMAPFormat12Encoding;
2616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef le_int32 fixed;
2646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct BigDate
2666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   bc;
2686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   ad;
2696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
2726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct BigDate BigDate;
2736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct HEADTable
2766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
2776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fixed       version;
2786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fixed       fontRevision;
2796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   checksumAdjustment;
2806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint32   magicNumber;
2816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   flags;
2826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   unitsPerEm;
2836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    BigDate     created;
2846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    BigDate     modified;
2856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    xMin;
2866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    yMin;
2876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    xMax;
2886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    yMax;
2896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    lowestRecPPEM;
2906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    fontDirectionHint;
2916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    indexToLocFormat;
2926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    glyphDataFormat;
2936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
2946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
2966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct HEADTable HEADTable;
2976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
2986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
2996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct MAXPTable
3006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fixed       version;
3026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   numGlyphs;
3036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxPoints;
3046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxContours;
3056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxComponentPoints;
3066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxComponentContours;
3076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxZones;
3086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxTwilightPoints;
3096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxStorage;
3106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxFunctionDefs;
3116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxInstructionDefs;
3126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxStackElements;
3136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxSizeOfInstructions;
3146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxComponentElements;
3156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   maxComponentDepth;
3166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
3196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct MAXPTable MAXPTable;
3206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
3216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct HHEATable
3236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    fixed       version;
3256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    ascent;
3266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    descent;
3276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    lineGap;
3286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   advanceWidthMax;
3296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    minLeftSideBearing;
3306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    minRightSideBearing;
3316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    xMaxExtent;
3326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    caretSlopeRise;
3336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    caretSlopeRun;
3346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    caretOffset;
3356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    reserved1;
3366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    reserved2;
3376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    reserved3;
3386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    reserved4;
3396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    metricDataFormat;
3406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   numOfLongHorMetrics;
3416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
3446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct HHEATable HHEATable;
3456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
3466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct LongHorMetric
3486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16   advanceWidth;
3506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_int16    leftSideBearing;
3516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
3546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct LongHorMetric LongHorMetric;
3556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
3566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct HMTXTable
3586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    LongHorMetric hMetrics[ANY_NUMBER];       /* ANY_NUMBER = numOfLongHorMetrics from hhea table */
3606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* le_int16        leftSideBearing[ANY_NUMBER];  ANY_NUMBER = numGlyphs - numOfLongHorMetrics     */
3616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
3646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct HMTXTable HMTXTable;
3656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
3666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum PlatformID
3686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    PLATFORM_UNICODE = 0,
3706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    PLATFORM_MACINTOSH = 1,
3716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    PLATFORM_ISO       = 2,
3726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    PLATFORM_MICROSOFT = 3,
3736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    PLATFORM_CUSTOM    = 4
3746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum MacintoshEncodingID
3776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MACINTOSH_ROMAN = 0
3796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum MacintoshLanguageID
3826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MACINTOSH_ENGLISH = 0
3846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3866f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum MicrosoftEncodingID
3876f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3886f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MICROSOFT_UNICODE_BMP  =  1,
3896f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MICROSOFT_UNICODE_FULL = 10
3906f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3916f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3926f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum MicrosoftLanguageID
3936f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3946f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    MICROSOFT_ENGLISH = 0x409
3956f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
3966f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
3976f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgenum NameID
3986f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
3996f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_COPYRIGHT_NOTICE     = 0,
4006f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_FONT_FAMILY          = 1,
4016f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_FONT_SUB_FAMILY      = 2,
4026f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_UNIQUE_FONT_ID       = 3,
4036f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_FULL_FONT_NAME       = 4,
4046f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_VERSION_STRING       = 5,
4056f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_POSTSCRIPT_NAME      = 6,
4066f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_TRADEMARK            = 7,
4076f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_MANUFACTURER         = 8,
4086f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_DESIGNER             = 9,
4096f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_DESCRIPTION          = 10,
4106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_VENDOR_URL           = 11,
4116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_DESIGNER_URL         = 12,
4126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_LICENSE_DESCRIPTION  = 13,
4136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_LICENSE_URL          = 14,
4146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_RESERVED             = 15,
4156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_PREFERRED_FAMILY     = 16,
4166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_PREFERRED_SUB_FAMILY = 17,
4176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_COMPATIBLE_FULL      = 18,
4186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_SAMPLE_TEXT          = 19,
4196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NAME_POSTSCRIPT_CID       = 20
4206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
4216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct NameRecord
4236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
4246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 platformID;
4256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 encodingID;
4266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 languageID;
4276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 nameID;
4286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 length;
4296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 offset;
4306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
4316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
4336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct NameRecord NameRecord;
4346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
4356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgstruct NAMETable
4376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
4386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 version;
4396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 count;
4406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    le_uint16 stringOffset;
4416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    NameRecord nameRecords[ANY_NUMBER];
4426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org};
4436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#ifndef __cplusplus
4456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgtypedef struct NAMETable NAMETable;
4466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
4476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
4486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#endif
4496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
450