{"version":3,"file":"GlParticleContainerAdaptor.mjs","sources":["../../../../src/scene/particle-container/gl/GlParticleContainerAdaptor.ts"],"sourcesContent":["import type { WebGLRenderer } from '../../../rendering/renderers/gl/WebGLRenderer';\nimport type { ParticleContainer } from '../shared/ParticleContainer';\nimport type { ParticleContainerAdaptor, ParticleContainerPipe } from '../shared/ParticleContainerPipe';\n\n/** @internal */\nexport class GlParticleContainerAdaptor implements ParticleContainerAdaptor\n{\n    public execute(particleContainerPipe: ParticleContainerPipe, container: ParticleContainer)\n    {\n        const state = particleContainerPipe.state;\n        const renderer = particleContainerPipe.renderer as WebGLRenderer;\n        const shader = container.shader || particleContainerPipe.defaultShader;\n\n        shader.resources.uTexture = container.texture._source;\n        shader.resources.uniforms = particleContainerPipe.localUniforms;\n\n        const gl = renderer.gl;\n\n        const buffer = particleContainerPipe.getBuffers(container);\n\n        // now lets upload and render the buffers..\n        renderer.shader.bind(shader);\n        renderer.state.set(state);\n        renderer.geometry.bind(buffer.geometry, shader.glProgram);\n\n        const byteSize = buffer.geometry.indexBuffer.data.BYTES_PER_ELEMENT;\n        const glType = byteSize === 2 ? gl.UNSIGNED_SHORT : gl.UNSIGNED_INT;\n\n        gl.drawElements(gl.TRIANGLES, container.particleChildren.length * 6, glType, 0);\n    }\n}\n"],"names":[],"mappings":";AAKO,MAAM,0BAAA,CACb;AAAA,EACW,OAAA,CAAQ,uBAA8C,SAAA,EAC7D;AACI,IAAA,MAAM,QAAQ,qBAAA,CAAsB,KAAA;AACpC,IAAA,MAAM,WAAW,qBAAA,CAAsB,QAAA;AACvC,IAAA,MAAM,MAAA,GAAS,SAAA,CAAU,MAAA,IAAU,qBAAA,CAAsB,aAAA;AAEzD,IAAA,MAAA,CAAO,SAAA,CAAU,QAAA,GAAW,SAAA,CAAU,OAAA,CAAQ,OAAA;AAC9C,IAAA,MAAA,CAAO,SAAA,CAAU,WAAW,qBAAA,CAAsB,aAAA;AAElD,IAAA,MAAM,KAAK,QAAA,CAAS,EAAA;AAEpB,IAAA,MAAM,MAAA,GAAS,qBAAA,CAAsB,UAAA,CAAW,SAAS,CAAA;AAGzD,IAAA,QAAA,CAAS,MAAA,CAAO,KAAK,MAAM,CAAA;AAC3B,IAAA,QAAA,CAAS,KAAA,CAAM,IAAI,KAAK,CAAA;AACxB,IAAA,QAAA,CAAS,QAAA,CAAS,IAAA,CAAK,MAAA,CAAO,QAAA,EAAU,OAAO,SAAS,CAAA;AAExD,IAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,CAAS,WAAA,CAAY,IAAA,CAAK,iBAAA;AAClD,IAAA,MAAM,MAAA,GAAS,QAAA,KAAa,CAAA,GAAI,EAAA,CAAG,iBAAiB,EAAA,CAAG,YAAA;AAEvD,IAAA,EAAA,CAAG,YAAA,CAAa,GAAG,SAAA,EAAW,SAAA,CAAU,iBAAiB,MAAA,GAAS,CAAA,EAAG,QAAQ,CAAC,CAAA;AAAA,EAClF;AACJ;;;;"}