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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LEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBBcHJpbCA1LCAyMDI1LiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjUsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmVcbiAqIG9yIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRlxuICogVEhFIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQgeyBBdHRhY2htZW50Q2FjaGVEYXRhLCBTcGluZSB9IGZyb20gJy4vU3BpbmUuanMnO1xuXG5pbXBvcnQgdHlwZSB7IEJhdGNoLCBCYXRjaGVyLCBCTEVORF9NT0RFUywgRGVmYXVsdEJhdGNoYWJsZU1lc2hFbGVtZW50LCBNYXRyaXgsIFRleHR1cmUsIFRvcG9sb2d5IH0gZnJvbSAncGl4aS5qcyc7XG5cbmV4cG9ydCBjbGFzcyBCYXRjaGFibGVTcGluZVNsb3QgaW1wbGVtZW50cyBEZWZhdWx0QmF0Y2hhYmxlTWVzaEVsZW1lbnQge1xuXHRpbmRleE9mZnNldCA9IDA7XG5cdGF0dHJpYnV0ZU9mZnNldCA9IDA7XG5cblx0aW5kZXhTaXplITogbnVtYmVyO1xuXHRhdHRyaWJ1dGVTaXplITogbnVtYmVyO1xuXG5cdGJhdGNoZXJOYW1lID0gJ2RhcmtUaW50JztcblxuXHR0b3BvbG9neTogVG9wb2xvZ3kgPSAndHJpYW5nbGUtbGlzdCc7XG5cblx0cmVhZG9ubHkgcGFja0FzUXVhZCA9IGZhbHNlO1xuXG5cdHJlbmRlcmFibGUhOiBTcGluZTtcblxuXHRwb3NpdGlvbnMhOiBGbG9hdDMyQXJyYXk7XG5cdGluZGljZXMhOiBudW1iZXJbXSB8IFVpbnQxNkFycmF5O1xuXHR1dnMhOiBGbG9hdDMyQXJyYXk7XG5cblx0cm91bmRQaXhlbHMhOiAwIHwgMTtcblx0ZGF0YSE6IEF0dGFjaG1lbnRDYWNoZURhdGE7XG5cdGJsZW5kTW9kZSE6IEJMRU5EX01PREVTO1xuXG5cdGRhcmtUaW50ITogbnVtYmVyO1xuXG5cdHRleHR1cmUhOiBUZXh0dXJlO1xuXG5cdHRyYW5zZm9ybSE6IE1hdHJpeDtcblxuXHQvLyB1c2VkIGludGVybmFsbHkgYnkgYmF0Y2hlciBzcGVjaWZpYy4gU3RvcmVkIGZvciBlZmZpY2llbnQgdXBkYXRpbmcuXG5cdF90ZXh0dXJlSWQhOiBudW1iZXI7XG5cdF9hdHRyaWJ1dGVTdGFydCE6IG51bWJlcjtcblx0X2luZGV4U3RhcnQhOiBudW1iZXI7XG5cdF9iYXRjaGVyITogQmF0Y2hlcjtcblx0X2JhdGNoITogQmF0Y2g7XG5cblxuXHRnZXQgY29sb3IgKCkge1xuXHRcdGNvbnN0IHNsb3RDb2xvciA9IHRoaXMuZGF0YS5jb2xvcjtcblxuXHRcdGNvbnN0IHBhcmVudENvbG9yOiBudW1iZXIgPSB0aGlzLnJlbmRlcmFibGUuZ3JvdXBDb2xvcjtcblx0XHRjb25zdCBwYXJlbnRBbHBoYTogbnVtYmVyID0gdGhpcy5yZW5kZXJhYmxlLmdyb3VwQWxwaGE7XG5cdFx0bGV0IGFiZ3I6IG51bWJlcjtcblxuXHRcdGNvbnN0IG1peGVkQSA9IChzbG90Q29sb3IuYSAqIHBhcmVudEFscGhhKSAqIDI1NTtcblxuXHRcdGlmIChwYXJlbnRDb2xvciAhPT0gMHhGRkZGRkYpIHtcblx0XHRcdGNvbnN0IHBhcmVudEIgPSAocGFyZW50Q29sb3IgPj4gMTYpICYgMHhGRjtcblx0XHRcdGNvbnN0IHBhcmVudEcgPSAocGFyZW50Q29sb3IgPj4gOCkgJiAweEZGO1xuXHRcdFx0Y29uc3QgcGFyZW50UiA9IHBhcmVudENvbG9yICYgMHhGRjtcblxuXHRcdFx0Y29uc3QgbWl4ZWRSID0gKHNsb3RDb2xvci5yICogcGFyZW50Uik7XG5cdFx0XHRjb25zdCBtaXhlZEcgPSAoc2xvdENvbG9yLmcgKiBwYXJlbnRHKTtcblx0XHRcdGNvbnN0IG1peGVkQiA9IChzbG90Q29sb3IuYiAqIHBhcmVudEIpO1xuXG5cdFx0XHRhYmdyID0gKChtaXhlZEEpIDw8IDI0KSB8IChtaXhlZEIgPDwgMTYpIHwgKG1peGVkRyA8PCA4KSB8IG1peGVkUjtcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHRhYmdyID0gKChtaXhlZEEpIDw8IDI0KSB8ICgoc2xvdENvbG9yLmIgKiAyNTUpIDw8IDE2KSB8ICgoc2xvdENvbG9yLmcgKiAyNTUpIDw8IDgpIHwgKHNsb3RDb2xvci5yICogMjU1KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWJncjtcblx0fVxuXG5cdGdldCBkYXJrQ29sb3IgKCkge1xuXHRcdGNvbnN0IGRhcmtDb2xvciA9IHRoaXMuZGF0YS5kYXJrQ29sb3I7XG5cdFx0cmV0dXJuICgoZGFya0NvbG9yLmIgKiAyNTUpIDw8IDE2KSB8ICgoZGFya0NvbG9yLmcgKiAyNTUpIDw8IDgpIHwgKGRhcmtDb2xvci5yICogMjU1KTtcblx0fVxuXG5cdGdldCBncm91cFRyYW5zZm9ybSAoKSB7IHJldHVybiB0aGlzLnJlbmRlcmFibGUuZ3JvdXBUcmFuc2Zvcm07IH1cblxuXHRzZXREYXRhIChcblx0XHRyZW5kZXJhYmxlOiBTcGluZSxcblx0XHRkYXRhOiBBdHRhY2htZW50Q2FjaGVEYXRhLFxuXHRcdGJsZW5kTW9kZTogQkxFTkRfTU9ERVMsXG5cdFx0cm91bmRQaXhlbHM6IDAgfCAxKSB7XG5cdFx0dGhpcy5yZW5kZXJhYmxlID0gcmVuZGVyYWJsZTtcblx0XHR0aGlzLnRyYW5zZm9ybSA9IHJlbmRlcmFibGUuZ3JvdXBUcmFuc2Zvcm07XG5cdFx0dGhpcy5kYXRhID0gZGF0YTtcblxuXHRcdGlmIChkYXRhLmNsaXBwZWQpIHtcblx0XHRcdGNvbnN0IGNsaXBwZWREYXRhID0gZGF0YS5jbGlwcGVkRGF0YTtcblxuXHRcdFx0dGhpcy5pbmRleFNpemUgPSBjbGlwcGVkRGF0YSEuaW5kaWNlc0NvdW50O1xuXHRcdFx0dGhpcy5hdHRyaWJ1dGVTaXplID0gY2xpcHBlZERhdGEhLnZlcnRleENvdW50O1xuXHRcdFx0dGhpcy5wb3NpdGlvbnMgPSBjbGlwcGVkRGF0YSEudmVydGljZXM7XG5cdFx0XHR0aGlzLmluZGljZXMgPSBjbGlwcGVkRGF0YSEuaW5kaWNlcztcblx0XHRcdHRoaXMudXZzID0gY2xpcHBlZERhdGEhLnV2cztcblx0XHR9XG5cdFx0ZWxzZSB7XG5cdFx0XHR0aGlzLmluZGV4U2l6ZSA9IGRhdGEuaW5kaWNlcy5sZW5ndGg7XG5cdFx0XHR0aGlzLmF0dHJpYnV0ZVNpemUgPSBkYXRhLnZlcnRpY2VzLmxlbmd0aCAvIDI7XG5cdFx0XHR0aGlzLnBvc2l0aW9ucyA9IGRhdGEudmVydGljZXM7XG5cdFx0XHR0aGlzLmluZGljZXMgPSBkYXRhLmluZGljZXM7XG5cdFx0XHR0aGlzLnV2cyA9IGRhdGEudXZzO1xuXHRcdH1cblxuXHRcdHRoaXMudGV4dHVyZSA9IGRhdGEudGV4dHVyZTtcblx0XHR0aGlzLnJvdW5kUGl4ZWxzID0gcm91bmRQaXhlbHM7XG5cblx0XHR0aGlzLmJsZW5kTW9kZSA9IGJsZW5kTW9kZTtcblxuXHRcdHRoaXMuYmF0Y2hlck5hbWUgPSBkYXRhLmRhcmtUaW50ID8gJ2RhcmtUaW50JyA6ICdkZWZhdWx0Jztcblx0fVxufVxuIl19