Show More
Commit Description:
prevent multiple place login using uuid cookie
Commit Description:
prevent multiple place login using uuid cookie
References:
File last commit:
Show/Diff file:
Action:
node_modules/fontkit/src/tables/kern.js
| 91 lines
| 3.1 KiB
| application/javascript
| JavascriptLexer
|
r789 | import r from 'restructure'; | |||
let KernPair = new r.Struct({ | ||||
left: r.uint16, | ||||
right: r.uint16, | ||||
value: r.int16 | ||||
}); | ||||
let ClassTable = new r.Struct({ | ||||
firstGlyph: r.uint16, | ||||
nGlyphs: r.uint16, | ||||
offsets: new r.Array(r.uint16, 'nGlyphs'), | ||||
max: t => t.offsets.length && Math.max.apply(Math, t.offsets) | ||||
}); | ||||
let Kern2Array = new r.Struct({ | ||||
off: t => t._startOffset - t.parent.parent._startOffset, | ||||
len: t => (((t.parent.leftTable.max - t.off) / t.parent.rowWidth) + 1) * (t.parent.rowWidth / 2), | ||||
values: new r.LazyArray(r.int16, 'len') | ||||
}); | ||||
let KernSubtable = new r.VersionedStruct('format', { | ||||
0: { | ||||
nPairs: r.uint16, | ||||
searchRange: r.uint16, | ||||
entrySelector: r.uint16, | ||||
rangeShift: r.uint16, | ||||
pairs: new r.Array(KernPair, 'nPairs') | ||||
}, | ||||
2: { | ||||
rowWidth: r.uint16, | ||||
leftTable: new r.Pointer(r.uint16, ClassTable, {type: 'parent'}), | ||||
rightTable: new r.Pointer(r.uint16, ClassTable, {type: 'parent'}), | ||||
array: new r.Pointer(r.uint16, Kern2Array, {type: 'parent'}) | ||||
}, | ||||
3: { | ||||
glyphCount: r.uint16, | ||||
kernValueCount: r.uint8, | ||||
leftClassCount: r.uint8, | ||||
rightClassCount: r.uint8, | ||||
flags: r.uint8, | ||||
kernValue: new r.Array(r.int16, 'kernValueCount'), | ||||
leftClass: new r.Array(r.uint8, 'glyphCount'), | ||||
rightClass: new r.Array(r.uint8, 'glyphCount'), | ||||
kernIndex: new r.Array(r.uint8, t => t.leftClassCount * t.rightClassCount) | ||||
} | ||||
}); | ||||
let KernTable = new r.VersionedStruct('version', { | ||||
0: { // Microsoft uses this format | ||||
subVersion: r.uint16, // Microsoft has an extra sub-table version number | ||||
length: r.uint16, // Length of the subtable, in bytes | ||||
format: r.uint8, // Format of subtable | ||||
coverage: new r.Bitfield(r.uint8, [ | ||||
'horizontal', // 1 if table has horizontal data, 0 if vertical | ||||
'minimum', // If set to 1, the table has minimum values. If set to 0, the table has kerning values. | ||||
'crossStream', // If set to 1, kerning is perpendicular to the flow of the text | ||||
'override' // If set to 1 the value in this table replaces the accumulated value | ||||
]), | ||||
subtable: KernSubtable, | ||||
padding: new r.Reserved(r.uint8, t => t.length - t._currentOffset) | ||||
}, | ||||
1: { // Apple uses this format | ||||
length: r.uint32, | ||||
coverage: new r.Bitfield(r.uint8, [ | ||||
null, null, null, null, null, | ||||
'variation', // Set if table has variation kerning values | ||||
'crossStream', // Set if table has cross-stream kerning values | ||||
'vertical' // Set if table has vertical kerning values | ||||
]), | ||||
format: r.uint8, | ||||
tupleIndex: r.uint16, | ||||
subtable: KernSubtable, | ||||
padding: new r.Reserved(r.uint8, t => t.length - t._currentOffset) | ||||
} | ||||
}); | ||||
export default new r.VersionedStruct(r.uint16, { | ||||
0: { // Microsoft Version | ||||
nTables: r.uint16, | ||||
tables: new r.Array(KernTable, 'nTables') | ||||
}, | ||||
1: { // Apple Version | ||||
reserved: new r.Reserved(r.uint16), // the other half of the version number | ||||
nTables: r.uint32, | ||||
tables: new r.Array(KernTable, 'nTables') | ||||
} | ||||
}); | ||||