pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 7.08 kB
Source Map (JSON)
{"version":3,"file":"bitmapFontXMLParser.mjs","sources":["../../../../src/scene/text-bitmap/asset/bitmapFontXMLParser.ts"],"sourcesContent":["import type { BitmapFontData, RawCharData } from '../AbstractBitmapFont';\n\n/** @internal */\nexport const bitmapFontXMLParser = {\n test(data: string | XMLDocument | BitmapFontData): boolean\n {\n const xml = data as Document;\n\n return typeof xml !== 'string'\n && 'getElementsByTagName' in xml\n && xml.getElementsByTagName('page').length\n && xml.getElementsByTagName('info')[0].getAttribute('face') !== null;\n },\n\n parse(xml: Document): BitmapFontData\n {\n const data: BitmapFontData = {\n chars: {},\n pages: [],\n lineHeight: 0,\n fontSize: 0,\n fontFamily: '',\n distanceField: null,\n baseLineOffset: 0,\n };\n\n const info = xml.getElementsByTagName('info')[0];\n const common = xml.getElementsByTagName('common')[0];\n const distanceField = xml.getElementsByTagName('distanceField')[0];\n\n if (distanceField)\n {\n data.distanceField = {\n type: distanceField.getAttribute('fieldType') as 'sdf' | 'msdf' | 'none',\n range: parseInt(distanceField.getAttribute('distanceRange'), 10),\n };\n }\n\n // pages and chars:\n const page = xml.getElementsByTagName('page');\n const char = xml.getElementsByTagName('char');\n const kerning = xml.getElementsByTagName('kerning');\n\n data.fontSize = parseInt(info.getAttribute('size'), 10);\n data.fontFamily = info.getAttribute('face');\n data.lineHeight = parseInt(common.getAttribute('lineHeight'), 10);\n\n for (let i = 0; i < page.length; i++)\n {\n data.pages.push({\n id: parseInt(page[i].getAttribute('id'), 10) || 0,\n file: page[i].getAttribute('file'),\n });\n }\n\n const map: Record<string, string> = {};\n\n data.baseLineOffset = data.lineHeight - parseInt(common.getAttribute('base'), 10);\n\n for (let i = 0; i < char.length; i++)\n {\n const charNode = char[i];\n const id = parseInt(charNode.getAttribute('id'), 10);\n\n let letter = charNode.getAttribute('letter') ?? charNode.getAttribute('char') ?? String.fromCharCode(id);\n\n if (letter === 'space')letter = ' ';\n\n map[id] = letter;\n\n data.chars[letter] = {\n id,\n // texture deets..\n page: parseInt(charNode.getAttribute('page'), 10) || 0,\n x: parseInt(charNode.getAttribute('x'), 10),\n y: parseInt(charNode.getAttribute('y'), 10),\n width: parseInt(charNode.getAttribute('width'), 10),\n height: parseInt(charNode.getAttribute('height'), 10),\n\n // render deets..\n xOffset: parseInt(charNode.getAttribute('xoffset'), 10),\n yOffset: parseInt(charNode.getAttribute('yoffset'), 10), // + baseLineOffset,\n xAdvance: parseInt(charNode.getAttribute('xadvance'), 10),\n kerning: {},\n } as RawCharData;\n }\n\n for (let i = 0; i < kerning.length; i++)\n {\n const first = parseInt(kerning[i].getAttribute('first'), 10);\n const second = parseInt(kerning[i].getAttribute('second'), 10);\n const amount = parseInt(kerning[i].getAttribute('amount'), 10);\n\n if (data.chars[map[second]]) data.chars[map[second]].kerning[map[first]] = amount;// * 10000;\n }\n\n return data;\n }\n};\n"],"names":[],"mappings":"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"}