{"version":3,"file":"NineSlicePlane.mjs","sources":["../src/NineSlicePlane.ts"],"sourcesContent":["import { canvasUtils } from 'pixijs/renderer/canvas';\nimport { NineSlicePlane } from 'pixijs/mesh/extras';\n\nimport type { CanvasRenderer } from 'pixijs/renderer/canvas';\n\n/**\n * Cached tint value so we can tell when the tint is changed.\n * @memberof PIXI.NineSlicePlane#\n * @member {number} _cachedTint\n * @protected\n */\nNineSlicePlane.prototype._cachedTint = 0xFFFFFF;\n\n/**\n * Cached tinted texture.\n * @memberof PIXI.NineSlicePlane#\n * @member {PIXI.ICanvas | HTMLImageElement} _tintedCanvas\n * @protected\n */\nNineSlicePlane.prototype._tintedCanvas = null;\n\n/**\n * Temporary storage for canvas source coords\n * @memberof PIXI.NineSlicePlane#\n * @member {number[]} _canvasUvs\n * @private\n */\nNineSlicePlane.prototype._canvasUvs = null;\n\n/**\n * Renders the object using the Canvas renderer\n * @private\n * @method _renderCanvas\n * @memberof PIXI.NineSlicePlane#\n * @param {PIXI.CanvasRenderer} renderer - The canvas renderer to render with.\n */\nNineSlicePlane.prototype._renderCanvas = function _renderCanvas(renderer: CanvasRenderer): void\n{\n    const context = renderer.canvasContext.activeContext;\n    const transform = this.worldTransform;\n    const isTinted = this.tint !== 0xFFFFFF;\n    const texture = this.texture;\n\n    if (!texture.valid)\n    {\n        return;\n    }\n\n    // Work out tinting\n    if (isTinted)\n    {\n        if (this._cachedTint !== this.tint)\n        {\n            // Tint has changed, need to update the tinted texture and use that instead\n\n            this._cachedTint = this.tint;\n\n            this._tintedCanvas = canvasUtils.getTintedCanvas(this, this.tint);\n        }\n    }\n\n    const textureSource = !isTinted ? texture.baseTexture.getDrawableSource() : this._tintedCanvas;\n\n    if (!this._canvasUvs)\n    {\n        this._canvasUvs = [0, 0, 0, 0, 0, 0, 0, 0];\n    }\n\n    const vertices = this.vertices;\n    const uvs = this._canvasUvs;\n    const u0 = isTinted ? 0 : texture.frame.x;\n    const v0 = isTinted ? 0 : texture.frame.y;\n    const u1 = u0 + texture.frame.width;\n    const v1 = v0 + texture.frame.height;\n\n    uvs[0] = u0;\n    uvs[1] = u0 + this._leftWidth;\n    uvs[2] = u1 - this._rightWidth;\n    uvs[3] = u1;\n    uvs[4] = v0;\n    uvs[5] = v0 + this._topHeight;\n    uvs[6] = v1 - this._bottomHeight;\n    uvs[7] = v1;\n\n    for (let i = 0; i < 8; i++)\n    {\n        uvs[i] *= texture.baseTexture.resolution;\n    }\n\n    context.globalAlpha = this.worldAlpha;\n    renderer.canvasContext.setBlendMode(this.blendMode);\n    renderer.canvasContext.setContextTransform(transform, this.roundPixels);\n\n    for (let row = 0; row < 3; row++)\n    {\n        for (let col = 0; col < 3; col++)\n        {\n            const ind = (col * 2) + (row * 8);\n            const sw = Math.max(1, uvs[col + 1] - uvs[col]);\n            const sh = Math.max(1, uvs[row + 5] - uvs[row + 4]);\n            const dw = Math.max(1, vertices[ind + 10] - vertices[ind]);\n            const dh = Math.max(1, vertices[ind + 11] - vertices[ind + 1]);\n\n            context.drawImage(textureSource, uvs[col], uvs[row + 4], sw, sh,\n                vertices[ind], vertices[ind + 1], dw, dh);\n        }\n    }\n};\n"],"names":[],"mappings":"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"}