{"version":3,"file":"NineSlicePlane.mjs","sources":["../src/NineSlicePlane.ts"],"sourcesContent":["import { canvasUtils } from '@pixi/canvas-renderer';\nimport { NineSlicePlane } from '@pixi/mesh-extras';\n\nimport type { CanvasRenderer } from '@pixi/canvas-renderer';\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.tintValue !== 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.tintValue)\n        {\n            // Tint has changed, need to update the tinted texture and use that instead\n\n            this._cachedTint = this.tintValue;\n\n            this._tintedCanvas = canvasUtils.getTintedCanvas(this, this.tintValue);\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":";;AAWA,eAAe,UAAU,cAAc;AAQvC,eAAe,UAAU,gBAAgB;AAQzC,eAAe,UAAU,aAAa;AAStC,eAAe,UAAU,gBAAgB,SAAuB,UAChE;AACI,QAAM,UAAU,SAAS,cAAc,eACjC,YAAY,KAAK,gBACjB,WAAW,KAAK,cAAc,UAC9B,UAAU,KAAK;AAErB,MAAI,CAAC,QAAQ;AAET;AAIA,cAEI,KAAK,gBAAgB,KAAK,cAI1B,KAAK,cAAc,KAAK,WAExB,KAAK,gBAAgB,YAAY,gBAAgB,MAAM,KAAK,SAAS;AAI7E,QAAM,gBAAiB,WAAqD,KAAK,gBAA/C,QAAQ,YAAY;AAEjD,OAAK,eAEN,KAAK,aAAa,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAGvC,QAAA,WAAW,KAAK,UAChB,MAAM,KAAK,YACX,KAAK,WAAW,IAAI,QAAQ,MAAM,GAClC,KAAK,WAAW,IAAI,QAAQ,MAAM,GAClC,KAAK,KAAK,QAAQ,MAAM,OACxB,KAAK,KAAK,QAAQ,MAAM;AAE9B,MAAI,CAAC,IAAI,IACT,IAAI,CAAC,IAAI,KAAK,KAAK,YACnB,IAAI,CAAC,IAAI,KAAK,KAAK,aACnB,IAAI,CAAC,IAAI,IACT,IAAI,CAAC,IAAI,IACT,IAAI,CAAC,IAAI,KAAK,KAAK,YACnB,IAAI,CAAC,IAAI,KAAK,KAAK,eACnB,IAAI,CAAC,IAAI;AAEA,WAAA,IAAI,GAAG,IAAI,GAAG;AAEf,QAAA,CAAC,KAAK,QAAQ,YAAY;AAGlC,UAAQ,cAAc,KAAK,YAC3B,SAAS,cAAc,aAAa,KAAK,SAAS,GAClD,SAAS,cAAc,oBAAoB,WAAW,KAAK,WAAW;AAE7D,WAAA,MAAM,GAAG,MAAM,GAAG;AAEvB,aAAS,MAAM,GAAG,MAAM,GAAG,OAC3B;AACU,YAAA,MAAO,MAAM,IAAM,MAAM,GACzB,KAAK,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,GACxC,KAAK,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,GAC5C,KAAK,KAAK,IAAI,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,GAAG,CAAC,GACnD,KAAK,KAAK,IAAI,GAAG,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,CAAC,CAAC;AAErD,cAAA;AAAA,QAAU;AAAA,QAAe,IAAI,GAAG;AAAA,QAAG,IAAI,MAAM,CAAC;AAAA,QAAG;AAAA,QAAI;AAAA,QACzD,SAAS,GAAG;AAAA,QAAG,SAAS,MAAM,CAAC;AAAA,QAAG;AAAA,QAAI;AAAA,MAAA;AAAA,IAC9C;AAER;"}