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.63 kB
Source Map (JSON)
{"version":3,"file":"SpritePipe.mjs","sources":["../../../src/scene/sprite/SpritePipe.ts"],"sourcesContent":["import { ExtensionType } from '../../extensions/Extensions';\nimport { BatchableSprite } from './BatchableSprite';\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 { Sprite } from './Sprite';\n\n/** @internal */\nexport class SpritePipe implements RenderPipe<Sprite>\n{\n /** @ignore */\n public static extension = {\n type: [\n ExtensionType.WebGLPipes,\n ExtensionType.WebGPUPipes,\n ExtensionType.CanvasPipes,\n ],\n name: 'sprite',\n } as const;\n\n private _renderer: Renderer;\n\n constructor(renderer: Renderer)\n {\n this._renderer = renderer;\n }\n\n public addRenderable(sprite: Sprite, instructionSet: InstructionSet)\n {\n const gpuSprite = this._getGpuSprite(sprite);\n\n if (sprite.didViewUpdate) this._updateBatchableSprite(sprite, gpuSprite);\n\n // TODO visibility\n this._renderer.renderPipes.batch.addToBatch(gpuSprite, instructionSet);\n }\n\n public updateRenderable(sprite: Sprite)\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: Sprite): 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: Sprite, batchableSprite: BatchableSprite)\n {\n batchableSprite.bounds = sprite.visualBounds;\n batchableSprite.texture = sprite._texture;\n }\n\n private _getGpuSprite(sprite: Sprite): BatchableSprite\n {\n return sprite._gpuData[this._renderer.uid] || this._initGPUSprite(sprite);\n }\n\n private _initGPUSprite(sprite: Sprite): BatchableSprite\n {\n const batchableSprite = new BatchableSprite();\n\n batchableSprite.renderable = sprite;\n\n batchableSprite.transform = sprite.groupTransform;\n batchableSprite.texture = sprite._texture;\n batchableSprite.bounds = sprite.visualBounds;\n batchableSprite.roundPixels = (this._renderer._roundPixels | sprite._roundPixels) as 0 | 1;\n\n sprite._gpuData[this._renderer.uid] = batchableSprite;\n\n return batchableSprite;\n }\n\n public destroy()\n {\n this._renderer = null;\n }\n}\n"],"names":[],"mappings":";;;;AASO,MAAM,UACb,CAAA;AAAA,EAaI,YAAY,QACZ,EAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,QAAA,CAAA;AAAA,GACrB;AAAA,EAEO,aAAA,CAAc,QAAgB,cACrC,EAAA;AACI,IAAM,MAAA,SAAA,GAAY,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA,CAAA;AAE3C,IAAA,IAAI,MAAO,CAAA,aAAA;AAAe,MAAK,IAAA,CAAA,sBAAA,CAAuB,QAAQ,SAAS,CAAA,CAAA;AAGvE,IAAA,IAAA,CAAK,SAAU,CAAA,WAAA,CAAY,KAAM,CAAA,UAAA,CAAW,WAAW,cAAc,CAAA,CAAA;AAAA,GACzE;AAAA,EAEO,iBAAiB,MACxB,EAAA;AACI,IAAM,MAAA,SAAA,GAAY,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA,CAAA;AAE3C,IAAA,IAAI,MAAO,CAAA,aAAA;AAAe,MAAK,IAAA,CAAA,sBAAA,CAAuB,QAAQ,SAAS,CAAA,CAAA;AAEvE,IAAU,SAAA,CAAA,QAAA,CAAS,cAAc,SAAS,CAAA,CAAA;AAAA,GAC9C;AAAA,EAEO,mBAAmB,MAC1B,EAAA;AACI,IAAM,MAAA,SAAA,GAAY,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA,CAAA;AAE3C,IAAO,OAAA,CAAC,UAAU,QAAS,CAAA,qBAAA;AAAA,MACvB,SAAA;AAAA,MACA,MAAO,CAAA,QAAA;AAAA,KAAQ,CAAA;AAAA,GAEvB;AAAA,EAEQ,sBAAA,CAAuB,QAAgB,eAC/C,EAAA;AACI,IAAA,eAAA,CAAgB,SAAS,MAAO,CAAA,YAAA,CAAA;AAChC,IAAA,eAAA,CAAgB,UAAU,MAAO,CAAA,QAAA,CAAA;AAAA,GACrC;AAAA,EAEQ,cAAc,MACtB,EAAA;AACI,IAAO,OAAA,MAAA,CAAO,SAAS,IAAK,CAAA,SAAA,CAAU,GAAG,CAAK,IAAA,IAAA,CAAK,eAAe,MAAM,CAAA,CAAA;AAAA,GAC5E;AAAA,EAEQ,eAAe,MACvB,EAAA;AACI,IAAM,MAAA,eAAA,GAAkB,IAAI,eAAgB,EAAA,CAAA;AAE5C,IAAA,eAAA,CAAgB,UAAa,GAAA,MAAA,CAAA;AAE7B,IAAA,eAAA,CAAgB,YAAY,MAAO,CAAA,cAAA,CAAA;AACnC,IAAA,eAAA,CAAgB,UAAU,MAAO,CAAA,QAAA,CAAA;AACjC,IAAA,eAAA,CAAgB,SAAS,MAAO,CAAA,YAAA,CAAA;AAChC,IAAA,eAAA,CAAgB,WAAe,GAAA,IAAA,CAAK,SAAU,CAAA,YAAA,GAAe,MAAO,CAAA,YAAA,CAAA;AAEpE,IAAA,MAAA,CAAO,QAAS,CAAA,IAAA,CAAK,SAAU,CAAA,GAAG,CAAI,GAAA,eAAA,CAAA;AAEtC,IAAO,OAAA,eAAA,CAAA;AAAA,GACX;AAAA,EAEO,OACP,GAAA;AACI,IAAA,IAAA,CAAK,SAAY,GAAA,IAAA,CAAA;AAAA,GACrB;AACJ,CAAA;AAAA;AA/Ea,UAAA,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,QAAA;AACV,CAAA;;;;"}