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 5.73 kB
{"version":3,"file":"NineSliceSpritePipe.mjs","sources":["../../../src/scene/sprite-nine-slice/NineSliceSpritePipe.ts"],"sourcesContent":["import { ExtensionType } from '../../extensions/Extensions';\nimport { BatchableMesh } from '../mesh/shared/BatchableMesh';\nimport { NineSliceGeometry } from './NineSliceGeometry';\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 { NineSliceSprite } from './NineSliceSprite';\n\n/**\n * GPU data for NineSliceSprite.\n * @internal\n */\nexport class NineSliceSpriteGpuData extends BatchableMesh\n{\n constructor()\n {\n super();\n this.geometry = new NineSliceGeometry();\n }\n\n public destroy()\n {\n this.geometry.destroy();\n }\n}\n\n/**\n * The NineSliceSpritePipe is a render pipe for rendering NineSliceSprites.\n * @internal\n */\nexport class NineSliceSpritePipe implements RenderPipe<NineSliceSprite>\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'nineSliceSprite',\n } as const;\n\n private readonly _renderer: Renderer;\n\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n public addRenderable(sprite: NineSliceSprite, instructionSet: InstructionSet)\n {\n const gpuSprite = this._getGpuSprite(sprite);\n\n if (sprite.didViewUpdate) this._updateBatchableSprite(sprite, gpuSprite);\n\n this._renderer.renderPipes.batch.addToBatch(gpuSprite, instructionSet);\n }\n\n public updateRenderable(sprite: NineSliceSprite)\n {\n const gpuSprite = this._getGpuSprite(sprite);\n\n if (sprite.didViewUpdate) this._updateBatchableSprite(sprite, gpuSprite);\n\n gpuSprite._batcher.updateElement(gpuSprite);\n }\n\n public validateRenderable(sprite: NineSliceSprite): boolean\n {\n const gpuSprite = this._getGpuSprite(sprite);\n\n return !gpuSprite._batcher.checkAndUpdateTexture(\n gpuSprite,\n sprite._texture\n );\n }\n\n private _updateBatchableSprite(sprite: NineSliceSprite, batchableSprite: BatchableMesh)\n {\n (batchableSprite.geometry as NineSliceGeometry)\n .update(sprite);\n\n // = sprite.bounds;\n batchableSprite.setTexture(sprite._texture);\n }\n\n private _getGpuSprite(sprite: NineSliceSprite): NineSliceSpriteGpuData\n {\n return sprite._gpuData[this._renderer.uid] || this._initGPUSprite(sprite);\n }\n\n private _initGPUSprite(sprite: NineSliceSprite): NineSliceSpriteGpuData\n {\n const gpuData = sprite._gpuData[this._renderer.uid] = new NineSliceSpriteGpuData();\n\n const batchableMesh = gpuData;\n\n batchableMesh.renderable = sprite;\n batchableMesh.transform = sprite.groupTransform;\n batchableMesh.texture = sprite._texture;\n batchableMesh.roundPixels = (this._renderer._roundPixels | sprite._roundPixels) as 0 | 1;\n\n // if the sprite has not been updated by the view, we need to update the batchable mesh now.\n if (!sprite.didViewUpdate)\n {\n this._updateBatchableSprite(sprite, batchableMesh);\n }\n\n return gpuData;\n }\n\n public destroy()\n {\n (this._renderer as null) = null;\n }\n}\n"],"names":[],"mappings":"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"}