|
|
import r from 'restructure';
|
|
|
|
|
|
let LayerRecord = new r.Struct({
|
|
|
gid: r.uint16, // Glyph ID of layer glyph (must be in z-order from bottom to top).
|
|
|
paletteIndex: r.uint16 // Index value to use in the appropriate palette. This value must
|
|
|
}); // be less than numPaletteEntries in the CPAL table, except for
|
|
|
// the special case noted below. Each palette entry is 16 bits.
|
|
|
// A palette index of 0xFFFF is a special case indicating that
|
|
|
// the text foreground color should be used.
|
|
|
|
|
|
let BaseGlyphRecord = new r.Struct({
|
|
|
gid: r.uint16, // Glyph ID of reference glyph. This glyph is for reference only
|
|
|
// and is not rendered for color.
|
|
|
firstLayerIndex: r.uint16, // Index (from beginning of the Layer Records) to the layer record.
|
|
|
// There will be numLayers consecutive entries for this base glyph.
|
|
|
numLayers: r.uint16
|
|
|
});
|
|
|
|
|
|
export default new r.Struct({
|
|
|
version: r.uint16,
|
|
|
numBaseGlyphRecords: r.uint16,
|
|
|
baseGlyphRecord: new r.Pointer(r.uint32, new r.Array(BaseGlyphRecord, 'numBaseGlyphRecords')),
|
|
|
layerRecords: new r.Pointer(r.uint32, new r.Array(LayerRecord, 'numLayerRecords'), { lazy: true }),
|
|
|
numLayerRecords: r.uint16
|
|
|
});
|
|
|
|