UNPKG

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 6.95 kB
{"version":3,"file":"HTMLTextPipe.mjs","sources":["../../../src/scene/text-html/HTMLTextPipe.ts"],"sourcesContent":["import { ExtensionType } from '../../extensions/Extensions';\nimport { Texture } from '../../rendering/renderers/shared/texture/Texture';\nimport { updateTextBounds } from '../text/utils/updateTextBounds';\nimport { BatchableHTMLText } from './BatchableHTMLText';\n\nimport type { InstructionSet } from '../../rendering/renderers/shared/instructions/InstructionSet';\nimport type { RenderPipe } from '../../rendering/renderers/shared/instructions/RenderPipe';\nimport type { Renderer } from '../../rendering/renderers/types';\nimport type { HTMLText } from './HTMLText';\n\n/**\n * The HTMLTextPipe class is responsible for rendering HTML text.\n * @internal\n */\nexport class HTMLTextPipe implements RenderPipe<HTMLText>\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'htmlText',\n } as const;\n\n private _renderer: Renderer;\n\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n public validateRenderable(htmlText: HTMLText): boolean\n {\n return htmlText._didTextUpdate;\n }\n\n public addRenderable(htmlText: HTMLText, instructionSet: InstructionSet)\n {\n const batchableHTMLText = this._getGpuText(htmlText);\n\n if (htmlText._didTextUpdate)\n {\n this._updateGpuText(htmlText).catch((e) =>\n {\n console.error(e);\n });\n\n htmlText._didTextUpdate = false;\n\n updateTextBounds(batchableHTMLText, htmlText);\n }\n\n this._renderer.renderPipes.batch.addToBatch(batchableHTMLText, instructionSet);\n }\n\n public updateRenderable(htmlText: HTMLText)\n {\n const batchableHTMLText = this._getGpuText(htmlText);\n\n batchableHTMLText._batcher.updateElement(batchableHTMLText);\n }\n\n private async _updateGpuText(htmlText: HTMLText)\n {\n htmlText._didTextUpdate = false;\n\n const batchableHTMLText = this._getGpuText(htmlText);\n\n if (batchableHTMLText.generatingTexture) return;\n\n if (batchableHTMLText.texturePromise)\n {\n this._renderer.htmlText.returnTexturePromise(batchableHTMLText.texturePromise);\n batchableHTMLText.texturePromise = null;\n }\n\n batchableHTMLText.generatingTexture = true;\n\n htmlText._resolution = htmlText._autoResolution ? this._renderer.resolution : htmlText.resolution;\n\n const texturePromise = this._renderer.htmlText.getTexturePromise(htmlText);\n\n batchableHTMLText.texturePromise = texturePromise;\n\n batchableHTMLText.texture = await texturePromise;\n\n // need a rerender...\n const renderGroup = htmlText.renderGroup || htmlText.parentRenderGroup;\n\n if (renderGroup)\n {\n // need a rebuild of the render group\n renderGroup.structureDidChange = true;\n }\n\n batchableHTMLText.generatingTexture = false;\n\n updateTextBounds(batchableHTMLText, htmlText);\n }\n\n private _getGpuText(htmlText: HTMLText)\n {\n return htmlText._gpuData[this._renderer.uid] || this.initGpuText(htmlText);\n }\n\n public initGpuText(htmlText: HTMLText)\n {\n const batchableHTMLText = new BatchableHTMLText(this._renderer);\n\n batchableHTMLText.renderable = htmlText;\n batchableHTMLText.transform = htmlText.groupTransform;\n batchableHTMLText.texture = Texture.EMPTY;\n batchableHTMLText.bounds = { minX: 0, maxX: 1, minY: 0, maxY: 0 };\n batchableHTMLText.roundPixels = (this._renderer._roundPixels | htmlText._roundPixels) as 0 | 1;\n\n htmlText._resolution = htmlText._autoResolution ? this._renderer.resolution : htmlText.resolution;\n htmlText._gpuData[this._renderer.uid] = batchableHTMLText;\n\n return batchableHTMLText;\n }\n\n public destroy()\n {\n this._renderer = null;\n }\n}\n\n"],"names":[],"mappings":"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"}