{"version":3,"file":"ParticleContainer.mjs","sources":["../src/ParticleContainer.ts"],"sourcesContent":["import { ParticleContainer } from 'pixijs/particle-container';\n\nimport type { CanvasRenderer } from 'pixijs/renderer/canvas';\n\n/**\n * Renders the object using the Canvas renderer\n * @method renderCanvas\n * @memberof PIXI.ParticleContainer#\n * @private\n * @param {PIXI.CanvasRenderer} renderer - a reference to the canvas renderer\n */\nParticleContainer.prototype.renderCanvas = function renderCanvas(renderer: CanvasRenderer): void\n{\n    if (!this.visible || this.worldAlpha <= 0 || !this.children.length || !this.renderable)\n    {\n        return;\n    }\n\n    const context = renderer.canvasContext.activeContext;\n    const transform = this.worldTransform;\n    let isRotated = true;\n\n    let positionX = 0;\n    let positionY = 0;\n\n    let finalWidth = 0;\n    let finalHeight = 0;\n\n    renderer.canvasContext.setBlendMode(this.blendMode);\n\n    context.globalAlpha = this.worldAlpha;\n\n    this.displayObjectUpdateTransform();\n\n    for (let i = 0; i < this.children.length; ++i)\n    {\n        const child = this.children[i];\n\n        if (!child.visible)\n        {\n            continue;\n        }\n\n        if (!child._texture.valid)\n        {\n            continue;\n        }\n\n        const frame = child._texture.frame;\n\n        context.globalAlpha = this.worldAlpha * child.alpha;\n\n        if (child.rotation % (Math.PI * 2) === 0)\n        {\n            // this is the fastest  way to optimise! - if rotation is 0 then we can avoid any kind of setTransform call\n            if (isRotated)\n            {\n                renderer.canvasContext.setContextTransform(transform, false, 1);\n                isRotated = false;\n            }\n\n            positionX = ((child.anchor.x) * (-frame.width * child.scale.x)) + child.position.x + 0.5;\n            positionY = ((child.anchor.y) * (-frame.height * child.scale.y)) + child.position.y + 0.5;\n\n            finalWidth = frame.width * child.scale.x;\n            finalHeight = frame.height * child.scale.y;\n        }\n        else\n        {\n            if (!isRotated)\n            {\n                isRotated = true;\n            }\n\n            child.displayObjectUpdateTransform();\n\n            const childTransform = child.worldTransform;\n\n            renderer.canvasContext.setContextTransform(childTransform, this.roundPixels, 1);\n\n            positionX = ((child.anchor.x) * (-frame.width)) + 0.5;\n            positionY = ((child.anchor.y) * (-frame.height)) + 0.5;\n\n            finalWidth = frame.width;\n            finalHeight = frame.height;\n        }\n\n        const resolution = child._texture.baseTexture.resolution;\n        const contextResolution = renderer.canvasContext.activeResolution;\n\n        context.drawImage(\n            child._texture.baseTexture.getDrawableSource(),\n            frame.x * resolution,\n            frame.y * resolution,\n            frame.width * resolution,\n            frame.height * resolution,\n            positionX * contextResolution,\n            positionY * contextResolution,\n            finalWidth * contextResolution,\n            finalHeight * contextResolution\n        );\n    }\n};\n"],"names":[],"mappings":"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"}