UNPKG

@esotericsoftware/spine-pixi-v8

Version:
103 lines 14.5 kB
/****************************************************************************** * Spine Runtimes License Agreement * Last updated April 5, 2025. Replaces all prior versions. * * Copyright (c) 2013-2025, Esoteric Software LLC * * Integration of the Spine Runtimes into software or otherwise creating * derivative works of the Spine Runtimes is permitted under the terms and * conditions of Section 2 of the Spine Editor License Agreement: * http://esotericsoftware.com/spine-editor-license * * Otherwise, it is permitted to integrate the Spine Runtimes into software * or otherwise create derivative works of the Spine Runtimes (collectively, * "Products"), provided that each user of the Products must obtain their own * Spine Editor license and redistribution of the Products in any form must * include this license and copyright notice. * * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ export class BatchableSpineSlot { indexOffset = 0; attributeOffset = 0; indexSize; attributeSize; batcherName = 'darkTint'; topology = 'triangle-list'; packAsQuad = false; renderable; positions; indices; uvs; roundPixels; data; blendMode; darkTint; texture; transform; // used internally by batcher specific. Stored for efficient updating. _textureId; _attributeStart; _indexStart; _batcher; _batch; get color() { const slotColor = this.data.color; const parentColor = this.renderable.groupColor; const parentAlpha = this.renderable.groupAlpha; let abgr; const mixedA = (slotColor.a * parentAlpha) * 255; if (parentColor !== 0xFFFFFF) { const parentB = (parentColor >> 16) & 0xFF; const parentG = (parentColor >> 8) & 0xFF; const parentR = parentColor & 0xFF; const mixedR = (slotColor.r * parentR); const mixedG = (slotColor.g * parentG); const mixedB = (slotColor.b * parentB); abgr = ((mixedA) << 24) | (mixedB << 16) | (mixedG << 8) | mixedR; } else { abgr = ((mixedA) << 24) | ((slotColor.b * 255) << 16) | ((slotColor.g * 255) << 8) | (slotColor.r * 255); } return abgr; } get darkColor() { const darkColor = this.data.darkColor; return ((darkColor.b * 255) << 16) | ((darkColor.g * 255) << 8) | (darkColor.r * 255); } get groupTransform() { return this.renderable.groupTransform; } setData(renderable, data, blendMode, roundPixels) { this.renderable = renderable; this.transform = renderable.groupTransform; this.data = data; if (data.clipped) { const clippedData = data.clippedData; this.indexSize = clippedData.indicesCount; this.attributeSize = clippedData.vertexCount; this.positions = clippedData.vertices; this.indices = clippedData.indices; this.uvs = clippedData.uvs; } else { this.indexSize = data.indices.length; this.attributeSize = data.vertices.length / 2; this.positions = data.vertices; this.indices = data.indices; this.uvs = data.uvs; } this.texture = data.texture; this.roundPixels = roundPixels; this.blendMode = blendMode; this.batcherName = data.darkTint ? 'darkTint' : 'default'; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmF0Y2hhYmxlU3BpbmVTbG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0JhdGNoYWJsZVNwaW5lU2xvdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0U7QUFNL0UsTUFBTSxPQUFPLGtCQUFrQjtJQUM5QixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFFcEIsU0FBUyxDQUFVO0lBQ25CLGFBQWEsQ0FBVTtJQUV2QixXQUFXLEdBQUcsVUFBVSxDQUFDO0lBRXpCLFFBQVEsR0FBYSxlQUFlLENBQUM7SUFFNUIsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUU1QixVQUFVLENBQVM7SUFFbkIsU0FBUyxDQUFnQjtJQUN6QixPQUFPLENBQTBCO0lBQ2pDLEdBQUcsQ0FBZ0I7SUFFbkIsV0FBVyxDQUFTO0lBQ3BCLElBQUksQ0FBdUI7SUFDM0IsU0FBUyxDQUFlO0lBRXhCLFFBQVEsQ0FBVTtJQUVsQixPQUFPLENBQVc7SUFFbEIsU0FBUyxDQUFVO0lBRW5CLHNFQUFzRTtJQUN0RSxVQUFVLENBQVU7SUFDcEIsZUFBZSxDQUFVO0lBQ3pCLFdBQVcsQ0FBVTtJQUNyQixRQUFRLENBQVc7SUFDbkIsTUFBTSxDQUFTO0lBR2YsSUFBSSxLQUFLO1FBQ1IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFFbEMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDdkQsSUFBSSxJQUFZLENBQUM7UUFFakIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUVqRCxJQUFJLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FB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RyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM1QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUUzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzNELENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgQXByaWwgNSwgMjAyNS4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDI1LCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlXG4gKiBvciBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0ZcbiAqIFRIRSBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG5pbXBvcnQgdHlwZSB7IEJhdGNoLCBCYXRjaGVyLCBCTEVORF9NT0RFUywgRGVmYXVsdEJhdGNoYWJsZU1lc2hFbGVtZW50LCBNYXRyaXgsIFRleHR1cmUsIFRvcG9sb2d5IH0gZnJvbSAncGl4aS5qcyc7XG5pbXBvcnQgdHlwZSB7IEF0dGFjaG1lbnRDYWNoZURhdGEsIENsaXBwZWREYXRhLCBTcGluZSB9IGZyb20gJy4vU3BpbmUuanMnO1xuXG5leHBvcnQgY2xhc3MgQmF0Y2hhYmxlU3BpbmVTbG90IGltcGxlbWVudHMgRGVmYXVsdEJhdGNoYWJsZU1lc2hFbGVtZW50IHtcblx0aW5kZXhPZmZzZXQgPSAwO1xuXHRhdHRyaWJ1dGVPZmZzZXQgPSAwO1xuXG5cdGluZGV4U2l6ZSE6IG51bWJlcjtcblx0YXR0cmlidXRlU2l6ZSE6IG51bWJlcjtcblxuXHRiYXRjaGVyTmFtZSA9ICdkYXJrVGludCc7XG5cblx0dG9wb2xvZ3k6IFRvcG9sb2d5ID0gJ3RyaWFuZ2xlLWxpc3QnO1xuXG5cdHJlYWRvbmx5IHBhY2tBc1F1YWQgPSBmYWxzZTtcblxuXHRyZW5kZXJhYmxlITogU3BpbmU7XG5cblx0cG9zaXRpb25zITogRmxvYXQzMkFycmF5O1xuXHRpbmRpY2VzITogbnVtYmVyW10gfCBVaW50MTZBcnJheTtcblx0dXZzITogRmxvYXQzMkFycmF5O1xuXG5cdHJvdW5kUGl4ZWxzITogMCB8IDE7XG5cdGRhdGEhOiBBdHRhY2htZW50Q2FjaGVEYXRhO1xuXHRibGVuZE1vZGUhOiBCTEVORF9NT0RFUztcblxuXHRkYXJrVGludCE6IG51bWJlcjtcblxuXHR0ZXh0dXJlITogVGV4dHVyZTtcblxuXHR0cmFuc2Zvcm0hOiBNYXRyaXg7XG5cblx0Ly8gdXNlZCBpbnRlcm5hbGx5IGJ5IGJhdGNoZXIgc3BlY2lmaWMuIFN0b3JlZCBmb3IgZWZmaWNpZW50IHVwZGF0aW5nLlxuXHRfdGV4dHVyZUlkITogbnVtYmVyO1xuXHRfYXR0cmlidXRlU3RhcnQhOiBudW1iZXI7XG5cdF9pbmRleFN0YXJ0ITogbnVtYmVyO1xuXHRfYmF0Y2hlciE6IEJhdGNoZXI7XG5cdF9iYXRjaCE6IEJhdGNoO1xuXG5cblx0Z2V0IGNvbG9yICgpIHtcblx0XHRjb25zdCBzbG90Q29sb3IgPSB0aGlzLmRhdGEuY29sb3I7XG5cblx0XHRjb25zdCBwYXJlbnRDb2xvcjogbnVtYmVyID0gdGhpcy5yZW5kZXJhYmxlLmdyb3VwQ29sb3I7XG5cdFx0Y29uc3QgcGFyZW50QWxwaGE6IG51bWJlciA9IHRoaXMucmVuZGVyYWJsZS5ncm91cEFscGhhO1xuXHRcdGxldCBhYmdyOiBudW1iZXI7XG5cblx0XHRjb25zdCBtaXhlZEEgPSAoc2xvdENvbG9yLmEgKiBwYXJlbnRBbHBoYSkgKiAyNTU7XG5cblx0XHRpZiAocGFyZW50Q29sb3IgIT09IDB4RkZGRkZGKSB7XG5cdFx0XHRjb25zdCBwYXJlbnRCID0gKHBhcmVudENvbG9yID4+IDE2KSAmIDB4RkY7XG5cdFx0XHRjb25zdCBwYXJlbnRHID0gKHBhcmVudENvbG9yID4+IDgpICYgMHhGRjtcblx0XHRcdGNvbnN0IHBhcmVudFIgPSBwYXJlbnRDb2xvciAmIDB4RkY7XG5cblx0XHRcdGNvbnN0IG1peGVkUiA9IChzbG90Q29sb3IuciAqIHBhcmVudFIpO1xuXHRcdFx0Y29uc3QgbWl4ZWRHID0gKHNsb3RDb2xvci5nICogcGFyZW50Ryk7XG5cdFx0XHRjb25zdCBtaXhlZEIgPSAoc2xvdENvbG9yLmIgKiBwYXJlbnRCKTtcblxuXHRcdFx0YWJnciA9ICgobWl4ZWRBKSA8PCAyNCkgfCAobWl4ZWRCIDw8IDE2KSB8IChtaXhlZEcgPDwgOCkgfCBtaXhlZFI7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0YWJnciA9ICgobWl4ZWRBKSA8PCAyNCkgfCAoKHNsb3RDb2xvci5iICogMjU1KSA8PCAxNikgfCAoKHNsb3RDb2xvci5nICogMjU1KSA8PCA4KSB8IChzbG90Q29sb3IuciAqIDI1NSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFiZ3I7XG5cdH1cblxuXHRnZXQgZGFya0NvbG9yICgpIHtcblx0XHRjb25zdCBkYXJrQ29sb3IgPSB0aGlzLmRhdGEuZGFya0NvbG9yO1xuXHRcdHJldHVybiAoKGRhcmtDb2xvci5iICogMjU1KSA8PCAxNikgfCAoKGRhcmtDb2xvci5nICogMjU1KSA8PCA4KSB8IChkYXJrQ29sb3IuciAqIDI1NSk7XG5cdH1cblxuXHRnZXQgZ3JvdXBUcmFuc2Zvcm0gKCkgeyByZXR1cm4gdGhpcy5yZW5kZXJhYmxlLmdyb3VwVHJhbnNmb3JtOyB9XG5cblx0c2V0RGF0YSAoXG5cdFx0cmVuZGVyYWJsZTogU3BpbmUsXG5cdFx0ZGF0YTogQXR0YWNobWVudENhY2hlRGF0YSxcblx0XHRibGVuZE1vZGU6IEJMRU5EX01PREVTLFxuXHRcdHJvdW5kUGl4ZWxzOiAwIHwgMSkge1xuXHRcdHRoaXMucmVuZGVyYWJsZSA9IHJlbmRlcmFibGU7XG5cdFx0dGhpcy50cmFuc2Zvcm0gPSByZW5kZXJhYmxlLmdyb3VwVHJhbnNmb3JtO1xuXHRcdHRoaXMuZGF0YSA9IGRhdGE7XG5cblx0XHRpZiAoZGF0YS5jbGlwcGVkKSB7XG5cdFx0XHRjb25zdCBjbGlwcGVkRGF0YSA9IGRhdGEuY2xpcHBlZERhdGEgYXMgQ2xpcHBlZERhdGE7XG5cblx0XHRcdHRoaXMuaW5kZXhTaXplID0gY2xpcHBlZERhdGEuaW5kaWNlc0NvdW50O1xuXHRcdFx0dGhpcy5hdHRyaWJ1dGVTaXplID0gY2xpcHBlZERhdGEudmVydGV4Q291bnQ7XG5cdFx0XHR0aGlzLnBvc2l0aW9ucyA9IGNsaXBwZWREYXRhLnZlcnRpY2VzO1xuXHRcdFx0dGhpcy5pbmRpY2VzID0gY2xpcHBlZERhdGEuaW5kaWNlcztcblx0XHRcdHRoaXMudXZzID0gY2xpcHBlZERhdGEudXZzO1xuXHRcdH1cblx0XHRlbHNlIHtcblx0XHRcdHRoaXMuaW5kZXhTaXplID0gZGF0YS5pbmRpY2VzLmxlbmd0aDtcblx0XHRcdHRoaXMuYXR0cmlidXRlU2l6ZSA9IGRhdGEudmVydGljZXMubGVuZ3RoIC8gMjtcblx0XHRcdHRoaXMucG9zaXRpb25zID0gZGF0YS52ZXJ0aWNlcztcblx0XHRcdHRoaXMuaW5kaWNlcyA9IGRhdGEuaW5kaWNlcztcblx0XHRcdHRoaXMudXZzID0gZGF0YS51dnM7XG5cdFx0fVxuXG5cdFx0dGhpcy50ZXh0dXJlID0gZGF0YS50ZXh0dXJlO1xuXHRcdHRoaXMucm91bmRQaXhlbHMgPSByb3VuZFBpeGVscztcblxuXHRcdHRoaXMuYmxlbmRNb2RlID0gYmxlbmRNb2RlO1xuXG5cdFx0dGhpcy5iYXRjaGVyTmFtZSA9IGRhdGEuZGFya1RpbnQgPyAnZGFya1RpbnQnIDogJ2RlZmF1bHQnO1xuXHR9XG59XG4iXX0=