1 line
5.7 KiB
Plaintext
1 line
5.7 KiB
Plaintext
{"version":3,"file":"PrepareQueue.mjs","sources":["../../src/prepare/PrepareQueue.ts"],"sourcesContent":["import { TextureSource } from '../rendering/renderers/shared/texture/sources/TextureSource';\nimport { Texture } from '../rendering/renderers/shared/texture/Texture';\nimport { Container } from '../scene/container/Container';\nimport { Graphics } from '../scene/graphics/shared/Graphics';\nimport { GraphicsContext } from '../scene/graphics/shared/GraphicsContext';\nimport { Mesh } from '../scene/mesh/shared/Mesh';\nimport { Sprite } from '../scene/sprite/Sprite';\nimport { AnimatedSprite } from '../scene/sprite-animated/AnimatedSprite';\nimport { TilingSprite } from '../scene/sprite-tiling/TilingSprite';\nimport { Text } from '../scene/text/Text';\nimport { PrepareBase } from './PrepareBase';\n\nimport type { FillInstruction, TextureInstruction } from '../scene/graphics/shared/GraphicsContext';\nimport type { FrameObject } from '../scene/sprite-animated/AnimatedSprite';\nimport type { PrepareQueueItem, PrepareSourceItem } from './PrepareBase';\n\n/**\n * Part of the prepare system. Responsible for uploading all the items to the GPU.\n * This class extends the base functionality and resolves given resource items ready for the queue.\n * @memberof rendering\n */\nexport abstract class PrepareQueue extends PrepareBase\n{\n /**\n * Resolve the given resource type and return an item for the queue\n * @param source\n * @param queue\n */\n protected resolveQueueItem(source: PrepareSourceItem, queue: PrepareQueueItem[]): void\n {\n if (source instanceof Container)\n {\n this.resolveContainerQueueItem(source, queue);\n }\n else if (source instanceof TextureSource || source instanceof Texture)\n {\n queue.push(source.source);\n }\n else if (source instanceof GraphicsContext)\n {\n queue.push(source);\n }\n\n // could not resolve the resource type\n return null;\n }\n\n /**\n * Resolve the given container and return an item for the queue\n * @param container\n * @param queue\n */\n protected resolveContainerQueueItem(container: Container, queue: PrepareQueueItem[]): void\n {\n // Note: we are just concerned with the given view.\n // Children are handled by the recursive call of the base class\n\n if (container instanceof Sprite || container instanceof TilingSprite || container instanceof Mesh)\n {\n queue.push(container.texture.source);\n }\n else if (container instanceof Text)\n {\n queue.push(container);\n }\n else if (container instanceof Graphics)\n {\n queue.push(container.context);\n }\n else if (container instanceof AnimatedSprite)\n {\n container.textures.forEach((textureOrFrame) =>\n {\n if ((textureOrFrame as Texture).source)\n {\n queue.push((textureOrFrame as Texture).source);\n }\n else\n {\n queue.push((textureOrFrame as FrameObject).texture.source);\n }\n });\n }\n }\n\n /**\n * Resolve the given graphics context and return an item for the queue\n * @param graphicsContext\n */\n protected resolveGraphicsContextQueueItem(graphicsContext: GraphicsContext): PrepareQueueItem | null\n {\n this.renderer.graphicsContext.getContextRenderData(graphicsContext);\n\n const { instructions } = graphicsContext;\n\n for (const instruction of instructions)\n {\n if (instruction.action === 'texture')\n {\n const { image } = (instruction as TextureInstruction).data;\n\n return image.source;\n }\n else if (instruction.action === 'fill')\n {\n const { texture } = (instruction as FillInstruction).data.style;\n\n return texture.source;\n }\n }\n\n return null;\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAqBO,MAAe,qBAAqB,WAC3C,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMc,gBAAA,CAAiB,QAA2B,KACtD,EAAA;AACI,IAAA,IAAI,kBAAkB,SACtB,EAAA;AACI,MAAK,IAAA,CAAA,yBAAA,CAA0B,QAAQ,KAAK,CAAA,CAAA;AAAA,KAEvC,MAAA,IAAA,MAAA,YAAkB,aAAiB,IAAA,MAAA,YAAkB,OAC9D,EAAA;AACI,MAAM,KAAA,CAAA,IAAA,CAAK,OAAO,MAAM,CAAA,CAAA;AAAA,KAC5B,MAAA,IACS,kBAAkB,eAC3B,EAAA;AACI,MAAA,KAAA,CAAM,KAAK,MAAM,CAAA,CAAA;AAAA,KACrB;AAGA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOU,yBAAA,CAA0B,WAAsB,KAC1D,EAAA;AAII,IAAA,IAAI,SAAqB,YAAA,MAAA,IAAU,SAAqB,YAAA,YAAA,IAAgB,qBAAqB,IAC7F,EAAA;AACI,MAAM,KAAA,CAAA,IAAA,CAAK,SAAU,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,KACvC,MAAA,IACS,qBAAqB,IAC9B,EAAA;AACI,MAAA,KAAA,CAAM,KAAK,SAAS,CAAA,CAAA;AAAA,KACxB,MAAA,IACS,qBAAqB,QAC9B,EAAA;AACI,MAAM,KAAA,CAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,KAChC,MAAA,IACS,qBAAqB,cAC9B,EAAA;AACI,MAAU,SAAA,CAAA,QAAA,CAAS,OAAQ,CAAA,CAAC,cAC5B,KAAA;AACI,QAAA,IAAK,eAA2B,MAChC,EAAA;AACI,UAAM,KAAA,CAAA,IAAA,CAAM,eAA2B,MAAM,CAAA,CAAA;AAAA,SAGjD,MAAA;AACI,UAAM,KAAA,CAAA,IAAA,CAAM,cAA+B,CAAA,OAAA,CAAQ,MAAM,CAAA,CAAA;AAAA,SAC7D;AAAA,OACH,CAAA,CAAA;AAAA,KACL;AAAA,GACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMU,gCAAgC,eAC1C,EAAA;AACI,IAAK,IAAA,CAAA,QAAA,CAAS,eAAgB,CAAA,oBAAA,CAAqB,eAAe,CAAA,CAAA;AAElE,IAAM,MAAA,EAAE,cAAiB,GAAA,eAAA,CAAA;AAEzB,IAAA,KAAA,MAAW,eAAe,YAC1B,EAAA;AACI,MAAI,IAAA,WAAA,CAAY,WAAW,SAC3B,EAAA;AACI,QAAM,MAAA,EAAE,KAAM,EAAA,GAAK,WAAmC,CAAA,IAAA,CAAA;AAEtD,QAAA,OAAO,KAAM,CAAA,MAAA,CAAA;AAAA,OACjB,MAAA,IACS,WAAY,CAAA,MAAA,KAAW,MAChC,EAAA;AACI,QAAA,MAAM,EAAE,OAAA,EAAa,GAAA,WAAA,CAAgC,IAAK,CAAA,KAAA,CAAA;AAE1D,QAAA,OAAO,OAAQ,CAAA,MAAA,CAAA;AAAA,OACnB;AAAA,KACJ;AAEA,IAAO,OAAA,IAAA,CAAA;AAAA,GACX;AACJ;;;;"} |