// The `head` table contains global information about the font. // https://www.microsoft.com/typography/OTSPEC/head.htm import check from '../check'; import parse from '../parse'; // Parse the header `head` table function parseHeadTable(data, start) { const head = {}; const p = new parse.Parser(data, start); head.version = p.parseVersion(); head.fontRevision = Math.round(p.parseFixed() * 1000) / 1000; head.checkSumAdjustment = p.parseULong(); head.magicNumber = p.parseULong(); check.argument( head.magicNumber === 0x5f0f3cf5, 'Font header has wrong magic number.' ); head.flags = p.parseUShort(); head.unitsPerEm = p.parseUShort(); head.created = p.parseLongDateTime(); head.modified = p.parseLongDateTime(); head.xMin = p.parseShort(); head.yMin = p.parseShort(); head.xMax = p.parseShort(); head.yMax = p.parseShort(); head.macStyle = p.parseUShort(); head.lowestRecPPEM = p.parseUShort(); head.fontDirectionHint = p.parseShort(); head.indexToLocFormat = p.parseShort(); head.glyphDataFormat = p.parseShort(); return head; } export default { parse: parseHeadTable };