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 • 4.88 kB
Source Map (JSON)
{"version":3,"file":"CanvasTextPipe.mjs","sources":["../../../../src/scene/text/canvas/CanvasTextPipe.ts"],"sourcesContent":["import { ExtensionType } from '../../../extensions/Extensions';\nimport { updateTextBounds } from '../utils/updateTextBounds';\nimport { BatchableText } from './BatchableText';\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 { Text } from '../Text';\n\n/** @internal */\nexport class CanvasTextPipe implements RenderPipe<Text>\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'text',\n } as const;\n\n private _renderer: Renderer;\n\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n public validateRenderable(text: Text): boolean\n {\n return text._didTextUpdate;\n }\n\n public addRenderable(text: Text, instructionSet: InstructionSet)\n {\n const batchableText = this._getGpuText(text);\n\n if (text._didTextUpdate)\n {\n this._updateGpuText(text);\n text._didTextUpdate = false;\n }\n\n this._renderer.renderPipes.batch.addToBatch(batchableText, instructionSet);\n }\n\n public updateRenderable(text: Text)\n {\n const batchableText = this._getGpuText(text);\n\n batchableText._batcher.updateElement(batchableText);\n }\n\n private _updateGpuText(text: Text)\n {\n const batchableText = this._getGpuText(text);\n\n if (batchableText.texture)\n {\n this._renderer.canvasText.returnTexture(batchableText.texture);\n }\n\n text._resolution = text._autoResolution ? this._renderer.resolution : text.resolution;\n\n batchableText.texture = batchableText.texture = this._renderer.canvasText.getTexture(text);\n\n updateTextBounds(batchableText, text);\n }\n\n private _getGpuText(text: Text)\n {\n return text._gpuData[this._renderer.uid] || this.initGpuText(text);\n }\n\n public initGpuText(text: Text)\n {\n const batchableText = new BatchableText(this._renderer);\n\n batchableText.renderable = text;\n batchableText.transform = text.groupTransform;\n batchableText.bounds = { minX: 0, maxX: 1, minY: 0, maxY: 0 };\n batchableText.roundPixels = (this._renderer._roundPixels | text._roundPixels) as 0 | 1;\n\n text._gpuData[this._renderer.uid] = batchableText;\n\n return batchableText;\n }\n\n public destroy()\n {\n this._renderer = null;\n }\n}\n"],"names":[],"mappings":";;;;;AAUO,MAAM,cACb,CAAA;AAAA,EAaI,YAAY,QACZ,EAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,QAAA,CAAA;AAAA,GACrB;AAAA,EAEO,mBAAmB,IAC1B,EAAA;AACI,IAAA,OAAO,IAAK,CAAA,cAAA,CAAA;AAAA,GAChB;AAAA,EAEO,aAAA,CAAc,MAAY,cACjC,EAAA;AACI,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAE3C,IAAA,IAAI,KAAK,cACT,EAAA;AACI,MAAA,IAAA,CAAK,eAAe,IAAI,CAAA,CAAA;AACxB,MAAA,IAAA,CAAK,cAAiB,GAAA,KAAA,CAAA;AAAA,KAC1B;AAEA,IAAA,IAAA,CAAK,SAAU,CAAA,WAAA,CAAY,KAAM,CAAA,UAAA,CAAW,eAAe,cAAc,CAAA,CAAA;AAAA,GAC7E;AAAA,EAEO,iBAAiB,IACxB,EAAA;AACI,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAE3C,IAAc,aAAA,CAAA,QAAA,CAAS,cAAc,aAAa,CAAA,CAAA;AAAA,GACtD;AAAA,EAEQ,eAAe,IACvB,EAAA;AACI,IAAM,MAAA,aAAA,GAAgB,IAAK,CAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAE3C,IAAA,IAAI,cAAc,OAClB,EAAA;AACI,MAAA,IAAA,CAAK,SAAU,CAAA,UAAA,CAAW,aAAc,CAAA,aAAA,CAAc,OAAO,CAAA,CAAA;AAAA,KACjE;AAEA,IAAA,IAAA,CAAK,cAAc,IAAK,CAAA,eAAA,GAAkB,IAAK,CAAA,SAAA,CAAU,aAAa,IAAK,CAAA,UAAA,CAAA;AAE3E,IAAA,aAAA,CAAc,UAAU,aAAc,CAAA,OAAA,GAAU,KAAK,SAAU,CAAA,UAAA,CAAW,WAAW,IAAI,CAAA,CAAA;AAEzF,IAAA,gBAAA,CAAiB,eAAe,IAAI,CAAA,CAAA;AAAA,GACxC;AAAA,EAEQ,YAAY,IACpB,EAAA;AACI,IAAO,OAAA,IAAA,CAAK,SAAS,IAAK,CAAA,SAAA,CAAU,GAAG,CAAK,IAAA,IAAA,CAAK,YAAY,IAAI,CAAA,CAAA;AAAA,GACrE;AAAA,EAEO,YAAY,IACnB,EAAA;AACI,IAAA,MAAM,aAAgB,GAAA,IAAI,aAAc,CAAA,IAAA,CAAK,SAAS,CAAA,CAAA;AAEtD,IAAA,aAAA,CAAc,UAAa,GAAA,IAAA,CAAA;AAC3B,IAAA,aAAA,CAAc,YAAY,IAAK,CAAA,cAAA,CAAA;AAC/B,IAAc,aAAA,CAAA,MAAA,GAAS,EAAE,IAAM,EAAA,CAAA,EAAG,MAAM,CAAG,EAAA,IAAA,EAAM,CAAG,EAAA,IAAA,EAAM,CAAE,EAAA,CAAA;AAC5D,IAAA,aAAA,CAAc,WAAe,GAAA,IAAA,CAAK,SAAU,CAAA,YAAA,GAAe,IAAK,CAAA,YAAA,CAAA;AAEhE,IAAA,IAAA,CAAK,QAAS,CAAA,IAAA,CAAK,SAAU,CAAA,GAAG,CAAI,GAAA,aAAA,CAAA;AAEpC,IAAO,OAAA,aAAA,CAAA;AAAA,GACX;AAAA,EAEO,OACP,GAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAAA,GACrB;AACJ,CAAA;AAAA;AAnFa,cAAA,CAGK,SAAY,GAAA;AAAA,EACtB,IAAM,EAAA;AAAA,IACF,aAAc,CAAA,UAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,IACd,aAAc,CAAA,WAAA;AAAA,GAClB;AAAA,EACA,IAAM,EAAA,MAAA;AACV,CAAA;;;;"}