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 4.5 kB
{"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,UAAA,CACb;AAAA,EAaI,YAAY,QAAA,EACZ;AACI,IAAA,IAAA,CAAK,SAAA,GAAY,QAAA;AAAA,EACrB;AAAA,EAEO,aAAA,CAAc,QAAgB,cAAA,EACrC;AACI,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAE3C,IAAA,IAAI,MAAA,CAAO,aAAA,EAAe,IAAA,CAAK,sBAAA,CAAuB,QAAQ,SAAS,CAAA;AAGvE,IAAA,IAAA,CAAK,SAAA,CAAU,WAAA,CAAY,KAAA,CAAM,UAAA,CAAW,WAAW,cAAc,CAAA;AAAA,EACzE;AAAA,EAEO,iBAAiB,MAAA,EACxB;AACI,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAE3C,IAAA,IAAI,MAAA,CAAO,aAAA,EAAe,IAAA,CAAK,sBAAA,CAAuB,QAAQ,SAAS,CAAA;AAEvE,IAAA,SAAA,CAAU,QAAA,CAAS,cAAc,SAAS,CAAA;AAAA,EAC9C;AAAA,EAEO,mBAAmB,MAAA,EAC1B;AACI,IAAA,MAAM,SAAA,GAAY,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAE3C,IAAA,OAAO,CAAC,UAAU,QAAA,CAAS,qBAAA;AAAA,MACvB,SAAA;AAAA,MACA,MAAA,CAAO;AAAA,KAAQ;AAAA,EAEvB;AAAA,EAEQ,sBAAA,CAAuB,QAAgB,eAAA,EAC/C;AACI,IAAA,eAAA,CAAgB,SAAS,MAAA,CAAO,YAAA;AAChC,IAAA,eAAA,CAAgB,UAAU,MAAA,CAAO,QAAA;AAAA,EACrC;AAAA,EAEQ,cAAc,MAAA,EACtB;AACI,IAAA,OAAO,MAAA,CAAO,SAAS,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA,IAAK,IAAA,CAAK,eAAe,MAAM,CAAA;AAAA,EAC5E;AAAA,EAEQ,eAAe,MAAA,EACvB;AACI,IAAA,MAAM,eAAA,GAAkB,IAAI,eAAA,EAAgB;AAE5C,IAAA,eAAA,CAAgB,UAAA,GAAa,MAAA;AAE7B,IAAA,eAAA,CAAgB,YAAY,MAAA,CAAO,cAAA;AACnC,IAAA,eAAA,CAAgB,UAAU,MAAA,CAAO,QAAA;AACjC,IAAA,eAAA,CAAgB,SAAS,MAAA,CAAO,YAAA;AAChC,IAAA,eAAA,CAAgB,WAAA,GAAe,IAAA,CAAK,SAAA,CAAU,YAAA,GAAe,MAAA,CAAO,YAAA;AAEpE,IAAA,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA,GAAI,eAAA;AAEtC,IAAA,OAAO,eAAA;AAAA,EACX;AAAA,EAEO,OAAA,GACP;AACI,IAAA,IAAA,CAAK,SAAA,GAAY,IAAA;AAAA,EACrB;AACJ;AAAA;AA/Ea,UAAA,CAGK,SAAA,GAAY;AAAA,EACtB,IAAA,EAAM;AAAA,IACF,aAAA,CAAc,UAAA;AAAA,IACd,aAAA,CAAc,WAAA;AAAA,IACd,aAAA,CAAc;AAAA,GAClB;AAAA,EACA,IAAA,EAAM;AACV,CAAA;;;;"}