Type | Name | Description |
FIXED | version | initially defined as 0x00020000 |
ULONG | numSizes | Number of bitmapSizeTables |
Type | Name | Description |
ULONG | indexSubTableArrayOffset | offset to index subtable from beginning of EBLC. |
ULONG | indexTablesSize | number of bytes in corresponding index subtables and array |
ULONG | numberOfIndexSubTables | an index subtable for each range or format change |
ULONG | colorRef | not used; set to 0. |
sbitLineMetrics | hori | line metrics for text rendered horizontally |
sbitLineMetrics | vert | line metrics for text rendered vertically |
USHORT | startGlyphIndex | lowest glyph index for this size |
USHORT | endGlyphIndex | highest glyph index for this size |
BYTE | ppemX | horizontal pixels per Em |
BYTE | ppemY | vertical pixels per Em |
BYTE | bitDepth | set to 1 for now |
CHAR | flags | vertical or horizontal (see bitmapFlags) |
Type | Name |
CHAR | ascender |
CHAR | descender |
BYTE | widthMax |
CHAR | caretSlopeNumerator |
CHAR | caretSlopeDenominator |
CHAR | caretOffset |
CHAR | minOriginSB |
CHAR | minAdvanceSB |
CHAR | maxBeforeBL |
CHAR | minAfterBL |
CHAR | pad1 |
CHAR | pad2 |
Type | Value | Description |
CHAR | 0x01 | Horizontal |
CHAR | 0x02 | Vertical |
Type | Name |
BYTE | height |
BYTE | width |
CHAR | horiBearingX |
CHAR | horiBearingY |
BYTE | horiAdvance |
CHAR | vertBearingX |
CHAR | vertBearingY |
BYTE | vertAdvance |
Type | Name |
BYTE | height |
BYTE | width |
CHAR | BearingX |
CHAR | BearingY |
BYTE | Advance |
Type | Name | Description |
USHORT | firstGlyphIndex | first glyph code of this range |
USHORT | lastGlyphIndex | last glyph code of this range (inclusive) |
ULONG | additionalOffsetToIndexSubtable | add to indexSubTableArrayOffset to get offset from beginning of 'EBLC' |
Type | Name | Description |
USHORT | indexFormat | format of this indexSubTable |
USHORT | imageFormat | format of 'EBDT' image data |
ULONG | imageDataOffset | offset to image data in 'EBDT' table |
Type | Name | Description |
indexSubHeader | header | header info |
ULONG | offsetArray[] | offsetArray[glyphIndex]+imageDataOffset=glyphData |
Type | Name | Description |
indexSubHeader | header | header info |
ULONG | imageSize | all the glyphs are of the same size |
bigGlyphMetrics | bigMetrics | all glyphs have the same metrics; glyph data may be compressed, byte-aligned, or bit-aligned |
Type | Name | Description |
indexSubHeader | header | header info |
USHORT | offsetArray[] | offsetArray[glyphIndex]+imageDataOffset=glyphData |
Type | Name | Description |
indexSubHeader | header | header info |
ULONG | numGlyphs | array length |
codeOffsetPair | glyphArray[] | one per glyph; sizeOfArray=lastGlyph-firstGlyph+1 |
Type | Name | Description |
USHORT | glyphCode | code of glyph present |
USHORT | offset | location in EBDT |
Type | Name | Description |
indexSubHeader | header | header info |
ULONG | imageSize | all glyphs have the same data size |
bigGlyphMetrics | bigMetrics | all glyphs have the same metrics |
ULONG | numGlyphs | array length |
USHORT | glyphCodeArray[] | one per glyph, sorted by glyph code; sizeOfArray=lastGlyph-firstGlyph+1+1 pad if needed. |