Files
nothoughts/node_modules/pixi.js/lib/scene/text-bitmap/asset/loadBitmapFont.mjs.map
2025-08-04 18:57:35 +02:00

1 line
6.6 KiB
Plaintext

{"version":3,"file":"loadBitmapFont.mjs","sources":["../../../../src/scene/text-bitmap/asset/loadBitmapFont.ts"],"sourcesContent":["import { LoaderParserPriority } from '../../../assets/loader/parsers/LoaderParser';\nimport { copySearchParams } from '../../../assets/utils/copySearchParams';\nimport { DOMAdapter } from '../../../environment/adapter';\nimport { ExtensionType } from '../../../extensions/Extensions';\nimport { path } from '../../../utils/path';\nimport { BitmapFont } from '../BitmapFont';\nimport { bitmapFontTextParser } from './bitmapFontTextParser';\nimport { bitmapFontXMLStringParser } from './bitmapFontXMLStringParser';\n\nimport type { CacheParser } from '../../../assets/cache/CacheParser';\nimport type { Loader } from '../../../assets/loader/Loader';\nimport type { LoaderParserAdvanced } from '../../../assets/loader/parsers/LoaderParser';\nimport type { ResolvedAsset } from '../../../assets/types';\nimport type { Texture } from '../../../rendering/renderers/shared/texture/Texture';\n\nconst validExtensions = ['.xml', '.fnt'];\n\n/** simple loader plugin for loading in bitmap fonts! */\nexport const bitmapFontCachePlugin = {\n extension: {\n type: ExtensionType.CacheParser,\n name: 'cacheBitmapFont',\n },\n test: (asset: BitmapFont) => asset instanceof BitmapFont,\n getCacheableAssets(keys: string[], asset: BitmapFont)\n {\n const out: Record<string, BitmapFont> = {};\n\n keys.forEach((key) =>\n {\n out[key] = asset;\n out[`${key}-bitmap`] = asset;\n });\n\n out[`${asset.fontFamily}-bitmap`] = asset;\n\n return out;\n }\n} satisfies CacheParser<BitmapFont>;\n\nexport const loadBitmapFont = {\n extension: {\n type: ExtensionType.LoadParser,\n priority: LoaderParserPriority.Normal,\n },\n\n name: 'loadBitmapFont',\n\n test(url: string): boolean\n {\n return validExtensions.includes(path.extname(url).toLowerCase());\n },\n\n async testParse(data: string): Promise<boolean>\n {\n return bitmapFontTextParser.test(data) || bitmapFontXMLStringParser.test(data);\n },\n\n async parse(asset: string, data: ResolvedAsset, loader: Loader): Promise<BitmapFont>\n {\n const bitmapFontData = bitmapFontTextParser.test(asset)\n ? bitmapFontTextParser.parse(asset)\n : bitmapFontXMLStringParser.parse(asset);\n\n const { src } = data;\n const { pages } = bitmapFontData;\n const textureUrls = [];\n\n // if we have a distance field - we can assume this is a signed distance field font\n // and we should use force linear filtering and no alpha premultiply\n const textureOptions = (bitmapFontData.distanceField) ? {\n scaleMode: 'linear',\n alphaMode: 'premultiply-alpha-on-upload',\n autoGenerateMipmaps: false,\n resolution: 1,\n } : {};\n\n for (let i = 0; i < pages.length; ++i)\n {\n const pageFile = pages[i].file;\n let imagePath = path.join(path.dirname(src), pageFile);\n\n imagePath = copySearchParams(imagePath, src);\n\n textureUrls.push({\n src: imagePath,\n data: textureOptions\n });\n }\n\n const loadedTextures = await loader.load<Texture>(textureUrls);\n const textures = textureUrls.map((url) => loadedTextures[url.src]);\n\n const bitmapFont = new BitmapFont({\n data: bitmapFontData,\n textures\n }, src);\n\n return bitmapFont;\n },\n\n async load(url: string, _options: ResolvedAsset): Promise<string>\n {\n const response = await DOMAdapter.get().fetch(url);\n\n return await response.text();\n },\n\n async unload(bitmapFont: BitmapFont, _resolvedAsset, loader): Promise<void>\n {\n await Promise.all(bitmapFont.pages.map((page) => loader.unload(page.texture.source._sourceOrigin)));\n\n bitmapFont.destroy();\n }\n} satisfies LoaderParserAdvanced<string, BitmapFont, BitmapFont>;\n"],"names":[],"mappings":"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"}