@esotericsoftware/spine-pixi-v8
Version:
The official Spine Runtimes for PixiJS v8.
103 lines • 14.5 kB
JavaScript
/** ****************************************************************************
* Spine Runtimes License Agreement
* Last updated July 28, 2023. Replaces all prior versions.
*
* Copyright (c) 2013-2023, 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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LEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRS9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBRTNCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIFNwaW5lIFJ1bnRpbWVzIExpY2Vuc2UgQWdyZWVtZW50XG4gKiBMYXN0IHVwZGF0ZWQgSnVseSAyOCwgMjAyMy4gUmVwbGFjZXMgYWxsIHByaW9yIHZlcnNpb25zLlxuICpcbiAqIENvcHlyaWdodCAoYykgMjAxMy0yMDIzLCBFc290ZXJpYyBTb2Z0d2FyZSBMTENcbiAqXG4gKiBJbnRlZ3JhdGlvbiBvZiB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZSBvciBvdGhlcndpc2UgY3JlYXRpbmdcbiAqIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGlzIHBlcm1pdHRlZCB1bmRlciB0aGUgdGVybXMgYW5kXG4gKiBjb25kaXRpb25zIG9mIFNlY3Rpb24gMiBvZiB0aGUgU3BpbmUgRWRpdG9yIExpY2Vuc2UgQWdyZWVtZW50OlxuICogaHR0cDovL2Vzb3Rlcmljc29mdHdhcmUuY29tL3NwaW5lLWVkaXRvci1saWNlbnNlXG4gKlxuICogT3RoZXJ3aXNlLCBpdCBpcyBwZXJtaXR0ZWQgdG8gaW50ZWdyYXRlIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yXG4gKiBvdGhlcndpc2UgY3JlYXRlIGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIChjb2xsZWN0aXZlbHksXG4gKiBcIlByb2R1Y3RzXCIpLCBwcm92aWRlZCB0aGF0IGVhY2ggdXNlciBvZiB0aGUgUHJvZHVjdHMgbXVzdCBvYnRhaW4gdGhlaXIgb3duXG4gKiBTcGluZSBFZGl0b3IgbGljZW5zZSBhbmQgcmVkaXN0cmlidXRpb24gb2YgdGhlIFByb2R1Y3RzIGluIGFueSBmb3JtIG11c3RcbiAqIGluY2x1ZGUgdGhpcyBsaWNlbnNlIGFuZCBjb3B5cmlnaHQgbm90aWNlLlxuICpcbiAqIFRIRSBTUElORSBSVU5USU1FUyBBUkUgUFJPVklERUQgQlkgRVNPVEVSSUMgU09GVFdBUkUgTExDIFwiQVMgSVNcIiBBTkQgQU5ZXG4gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEXG4gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFXG4gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBFU09URVJJQyBTT0ZUV0FSRSBMTEMgQkUgTElBQkxFIEZPUiBBTllcbiAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTXG4gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVMsXG4gKiBCVVNJTkVTUyBJTlRFUlJVUFRJT04sIE9SIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTKSBIT1dFVkVSIENBVVNFRCBBTkRcbiAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUXG4gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhFXG4gKiBTUElORSBSVU5USU1FUywgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS5cbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuaW1wb3J0IHsgQXR0YWNobWVudENhY2hlRGF0YSwgU3BpbmUgfSBmcm9tICcuL1NwaW5lLmpzJztcblxuaW1wb3J0IHR5cGUgeyBCYXRjaCwgQmF0Y2hlciwgQkxFTkRfTU9ERVMsIERlZmF1bHRCYXRjaGFibGVNZXNoRWxlbWVudCwgTWF0cml4LCBUZXh0dXJlLCBUb3BvbG9neSB9IGZyb20gJ3BpeGkuanMnO1xuXG5leHBvcnQgY2xhc3MgQmF0Y2hhYmxlU3BpbmVTbG90IGltcGxlbWVudHMgRGVmYXVsdEJhdGNoYWJsZU1lc2hFbGVtZW50IHtcblx0aW5kZXhPZmZzZXQgPSAwO1xuXHRhdHRyaWJ1dGVPZmZzZXQgPSAwO1xuXG5cdGluZGV4U2l6ZSE6IG51bWJlcjtcblx0YXR0cmlidXRlU2l6ZSE6IG51bWJlcjtcblxuXHRiYXRjaGVyTmFtZSA9ICdkYXJrVGludCc7XG5cblx0dG9wb2xvZ3k6IFRvcG9sb2d5ID0gJ3RyaWFuZ2xlLWxpc3QnO1xuXG5cdHJlYWRvbmx5IHBhY2tBc1F1YWQgPSBmYWxzZTtcblxuXHRyZW5kZXJhYmxlITogU3BpbmU7XG5cblx0cG9zaXRpb25zITogRmxvYXQzMkFycmF5O1xuXHRpbmRpY2VzITogbnVtYmVyW10gfCBVaW50MTZBcnJheTtcblx0dXZzITogRmxvYXQzMkFycmF5O1xuXG5cdHJvdW5kUGl4ZWxzITogMCB8IDE7XG5cdGRhdGEhOiBBdHRhY2htZW50Q2FjaGVEYXRhO1xuXHRibGVuZE1vZGUhOiBCTEVORF9NT0RFUztcblxuXHRkYXJrVGludCE6IG51bWJlcjtcblxuXHR0ZXh0dXJlITogVGV4dHVyZTtcblxuXHR0cmFuc2Zvcm0hOiBNYXRyaXg7XG5cblx0Ly8gdXNlZCBpbnRlcm5hbGx5IGJ5IGJhdGNoZXIgc3BlY2lmaWMuIFN0b3JlZCBmb3IgZWZmaWNpZW50IHVwZGF0aW5nLlxuXHRfdGV4dHVyZUlkITogbnVtYmVyO1xuXHRfYXR0cmlidXRlU3RhcnQhOiBudW1iZXI7XG5cdF9pbmRleFN0YXJ0ITogbnVtYmVyO1xuXHRfYmF0Y2hlciE6IEJhdGNoZXI7XG5cdF9iYXRjaCE6IEJhdGNoO1xuXG5cblx0Z2V0IGNvbG9yICgpIHtcblx0XHRjb25zdCBzbG90Q29sb3IgPSB0aGlzLmRhdGEuY29sb3I7XG5cblx0XHRjb25zdCBwYXJlbnRDb2xvcjogbnVtYmVyID0gdGhpcy5yZW5kZXJhYmxlLmdyb3VwQ29sb3I7XG5cdFx0Y29uc3QgcGFyZW50QWxwaGE6IG51bWJlciA9IHRoaXMucmVuZGVyYWJsZS5ncm91cEFscGhhO1xuXHRcdGxldCBhYmdyOiBudW1iZXI7XG5cblx0XHRjb25zdCBtaXhlZEEgPSAoc2xvdENvbG9yLmEgKiBwYXJlbnRBbHBoYSkgKiAyNTU7XG5cblx0XHRpZiAocGFyZW50Q29sb3IgIT09IDB4RkZGRkZGKSB7XG5cdFx0XHRjb25zdCBwYXJlbnRCID0gKHBhcmVudENvbG9yID4+IDE2KSAmIDB4RkY7XG5cdFx0XHRjb25zdCBwYXJlbnRHID0gKHBhcmVudENvbG9yID4+IDgpICYgMHhGRjtcblx0XHRcdGNvbnN0IHBhcmVudFIgPSBwYXJlbnRDb2xvciAmIDB4RkY7XG5cblx0XHRcdGNvbnN0IG1peGVkUiA9IChzbG90Q29sb3IuciAqIHBhcmVudFIpO1xuXHRcdFx0Y29uc3QgbWl4ZWRHID0gKHNsb3RDb2xvci5nICogcGFyZW50Ryk7XG5cdFx0XHRjb25zdCBtaXhlZEIgPSAoc2xvdENvbG9yLmIgKiBwYXJlbnRCKTtcblxuXHRcdFx0YWJnciA9ICgobWl4ZWRBKSA8PCAyNCkgfCAobWl4ZWRCIDw8IDE2KSB8IChtaXhlZEcgPDwgOCkgfCBtaXhlZFI7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0YWJnciA9ICgobWl4ZWRBKSA8PCAyNCkgfCAoKHNsb3RDb2xvci5iICogMjU1KSA8PCAxNikgfCAoKHNsb3RDb2xvci5nICogMjU1KSA8PCA4KSB8IChzbG90Q29sb3IuciAqIDI1NSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFiZ3I7XG5cdH1cblxuXHRnZXQgZGFya0NvbG9yICgpIHtcblx0XHRjb25zdCBkYXJrQ29sb3IgPSB0aGlzLmRhdGEuZGFya0NvbG9yO1xuXHRcdHJldHVybiAoKGRhcmtDb2xvci5iICogMjU1KSA8PCAxNikgfCAoKGRhcmtDb2xvci5nICogMjU1KSA8PCA4KSB8IChkYXJrQ29sb3IuciAqIDI1NSk7XG5cdH1cblxuXHRnZXQgZ3JvdXBUcmFuc2Zvcm0gKCkgeyByZXR1cm4gdGhpcy5yZW5kZXJhYmxlLmdyb3VwVHJhbnNmb3JtOyB9XG5cblx0c2V0RGF0YSAoXG5cdFx0cmVuZGVyYWJsZTogU3BpbmUsXG5cdFx0ZGF0YTogQXR0YWNobWVudENhY2hlRGF0YSxcblx0XHRibGVuZE1vZGU6IEJMRU5EX01PREVTLFxuXHRcdHJvdW5kUGl4ZWxzOiAwIHwgMSkge1xuXHRcdHRoaXMucmVuZGVyYWJsZSA9IHJlbmRlcmFibGU7XG5cdFx0dGhpcy50cmFuc2Zvcm0gPSByZW5kZXJhYmxlLmdyb3VwVHJhbnNmb3JtO1xuXHRcdHRoaXMuZGF0YSA9IGRhdGE7XG5cblx0XHRpZiAoZGF0YS5jbGlwcGVkKSB7XG5cdFx0XHRjb25zdCBjbGlwcGVkRGF0YSA9IGRhdGEuY2xpcHBlZERhdGE7XG5cblx0XHRcdHRoaXMuaW5kZXhTaXplID0gY2xpcHBlZERhdGEhLmluZGljZXNDb3VudDtcblx0XHRcdHRoaXMuYXR0cmlidXRlU2l6ZSA9IGNsaXBwZWREYXRhIS52ZXJ0ZXhDb3VudDtcblx0XHRcdHRoaXMucG9zaXRpb25zID0gY2xpcHBlZERhdGEhLnZlcnRpY2VzO1xuXHRcdFx0dGhpcy5pbmRpY2VzID0gY2xpcHBlZERhdGEhLmluZGljZXM7XG5cdFx0XHR0aGlzLnV2cyA9IGNsaXBwZWREYXRhIS51dnM7XG5cdFx0fVxuXHRcdGVsc2Uge1xuXHRcdFx0dGhpcy5pbmRleFNpemUgPSBkYXRhLmluZGljZXMubGVuZ3RoO1xuXHRcdFx0dGhpcy5hdHRyaWJ1dGVTaXplID0gZGF0YS52ZXJ0aWNlcy5sZW5ndGggLyAyO1xuXHRcdFx0dGhpcy5wb3NpdGlvbnMgPSBkYXRhLnZlcnRpY2VzO1xuXHRcdFx0dGhpcy5pbmRpY2VzID0gZGF0YS5pbmRpY2VzO1xuXHRcdFx0dGhpcy51dnMgPSBkYXRhLnV2cztcblx0XHR9XG5cblx0XHR0aGlzLnRleHR1cmUgPSBkYXRhLnRleHR1cmU7XG5cdFx0dGhpcy5yb3VuZFBpeGVscyA9IHJvdW5kUGl4ZWxzO1xuXG5cdFx0dGhpcy5ibGVuZE1vZGUgPSBibGVuZE1vZGU7XG5cblx0XHR0aGlzLmJhdGNoZXJOYW1lID0gZGF0YS5kYXJrVGludCA/ICdkYXJrVGludCcgOiAnZGVmYXVsdCc7XG5cdH1cbn1cbiJdfQ==