shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$particle_container$shared$ParticleContainerPipe = function(global, require, module, exports) { global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions"); var Matrix = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix"), UniformGroup = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$shader$UniformGroup"), getAdjustedBlendModeBlend = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$state$getAdjustedBlendModeBlend"), State = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$state$State"), GCManagedHash = require("module$node_modules$pixi_DOT_js$lib$utils$data$GCManagedHash"), colorToUniform = require("module$node_modules$pixi_DOT_js$lib$scene$graphics$gpu$colorToUniform"), ParticleBuffer = require("module$node_modules$pixi_DOT_js$lib$scene$particle_container$shared$ParticleBuffer"), ParticleShader = require("module$node_modules$pixi_DOT_js$lib$scene$particle_container$shared$shader$ParticleShader"); "use strict"; class ParticleContainerPipe { constructor(renderer, adaptor) { this.state = State.State.for2d(); this.localUniforms = new UniformGroup.UniformGroup({uTranslationMatrix:{value:new Matrix.Matrix(), type:"mat3x3\x3cf32\x3e"}, uColor:{value:new Float32Array(4), type:"vec4\x3cf32\x3e"}, uRound:{value:1, type:"f32"}, uResolution:{value:[0, 0], type:"vec2\x3cf32\x3e"}}); this.renderer = renderer; this.adaptor = adaptor; this.defaultShader = new ParticleShader.ParticleShader(); this.state = State.State.for2d(); this._managedContainers = new GCManagedHash.GCManagedHash({renderer, type:"renderable", name:"particleContainer"}); } validateRenderable(_renderable) { return !1; } addRenderable(renderable, instructionSet) { this.renderer.renderPipes.batch.break(instructionSet); instructionSet.add(renderable); } getBuffers(renderable) { return renderable._gpuData[this.renderer.uid] || this._initBuffer(renderable); } _initBuffer(renderable) { renderable._gpuData[this.renderer.uid] = new ParticleBuffer.ParticleBuffer({size:renderable.particleChildren.length, properties:renderable._properties}); this._managedContainers.add(renderable); return renderable._gpuData[this.renderer.uid]; } updateRenderable(_renderable) { } execute(container) { var children = container.particleChildren; if (0 !== children.length) { var renderer = this.renderer, buffer = this.getBuffers(container); container.texture || (container.texture = children[0].texture); var state = this.state; buffer.update(children, container._childrenDirty); container._childrenDirty = !1; state.blendMode = getAdjustedBlendModeBlend.getAdjustedBlendModeBlend(container.groupBlendMode, container.texture._source); children = this.localUniforms.uniforms; buffer = children.uTranslationMatrix; container.worldTransform.copyTo(buffer); state = renderer.globalUniforms.globalUniformData; buffer.tx -= state.offset.x; buffer.ty -= state.offset.y; buffer.prepend(state.projectionMatrix); children.uResolution = state.resolution; children.uRound = renderer._roundPixels | container._roundPixels; colorToUniform.color32BitToUniform(container.groupColorAlpha, children.uColor, 0); this.adaptor.execute(this, container); } } destroy() { this._managedContainers.destroy(); this.renderer = null; this.defaultShader && (this.defaultShader.destroy(), this.defaultShader = null); } } ParticleContainerPipe.extension = {type:[global.ExtensionType.CanvasPipes], name:"particle"}; exports.ParticleContainerPipe = ParticleContainerPipe; }; //# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$particle_container$shared$ParticleContainerPipe.js.map