66 lines
10 KiB
JavaScript
66 lines
10 KiB
JavaScript
/******************************************************************************
|
|
* 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.
|
|
*****************************************************************************/
|
|
import { Mesh } from "@pixi/mesh";
|
|
import { DarkTintGeometry } from "./DarkTintGeom.js";
|
|
import { DarkTintMaterial } from "./DarkTintMaterial.js";
|
|
export class DarkTintMesh extends Mesh {
|
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
_darkTintRGB = 0;
|
|
constructor(texture) {
|
|
super(new DarkTintGeometry(), new DarkTintMaterial(texture), undefined, undefined);
|
|
}
|
|
get darkTint() {
|
|
return "darkTint" in this.shader ? this.shader.darkTint : null;
|
|
}
|
|
set darkTint(value) {
|
|
this.shader.darkTint = value;
|
|
}
|
|
get darkTintValue() {
|
|
return this.shader.darkTintValue;
|
|
}
|
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
_renderToBatch(renderer) {
|
|
const geometry = this.geometry;
|
|
const shader = this.shader;
|
|
if (shader.uvMatrix) {
|
|
shader.uvMatrix.update();
|
|
this.calculateUvs();
|
|
}
|
|
// set properties for batching..
|
|
this.calculateVertices();
|
|
this.indices = geometry.indexBuffer.data;
|
|
this._tintRGB = shader._tintRGB;
|
|
this._darkTintRGB = shader._darkTintRGB;
|
|
this._texture = shader.texture;
|
|
const pluginName = this.material.pluginName;
|
|
renderer.batch.setObjectRenderer(renderer.plugins[pluginName]);
|
|
renderer.plugins[pluginName].render(this);
|
|
}
|
|
}
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGFya1RpbnRNZXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RhcmtUaW50TWVzaC9EYXJrVGludE1lc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBRy9FLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFpQnpELE1BQU0sT0FBTyxZQUFhLFNBQVEsSUFBc0I7SUFDdkQsZ0VBQWdFO0lBQ3pELFlBQVksR0FBVyxDQUFDLENBQUM7SUFFaEMsWUFBWSxPQUFpQjtRQUM1QixLQUFLLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxFQUFFLElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDbEIsT0FBTyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLE1BQXNDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakcsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLEtBQXlCO1FBQzNDLElBQUksQ0FBQyxNQUFzQyxDQUFDLFFBQVEsR0FBRyxLQUFNLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN2QixPQUFRLElBQUksQ0FBQyxNQUFzQyxDQUFDLGFBQWEsQ0FBQztJQUNuRSxDQUFDO0lBRUQsZ0VBQWdFO0lBQzdDLGNBQWMsQ0FBQyxRQUFrQjtRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFM0IsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckIsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBbUIsQ0FBQztRQUN4RCxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUUvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUU1QyxRQUFRLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUMvRCxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBTcGluZSBSdW50aW1lcyBMaWNlbnNlIEFncmVlbWVudFxuICogTGFzdCB1cGRhdGVkIEFwcmlsIDUsIDIwMjUuIFJlcGxhY2VzIGFsbCBwcmlvciB2ZXJzaW9ucy5cbiAqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAyNSwgRXNvdGVyaWMgU29mdHdhcmUgTExDXG4gKlxuICogSW50ZWdyYXRpb24gb2YgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3Igb3RoZXJ3aXNlIGNyZWF0aW5nXG4gKiBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpcyBwZXJtaXR0ZWQgdW5kZXIgdGhlIHRlcm1zIGFuZFxuICogY29uZGl0aW9ucyBvZiBTZWN0aW9uIDIgb2YgdGhlIFNwaW5lIEVkaXRvciBMaWNlbnNlIEFncmVlbWVudDpcbiAqIGh0dHA6Ly9lc290ZXJpY3NvZnR3YXJlLmNvbS9zcGluZS1lZGl0b3ItbGljZW5zZVxuICpcbiAqIE90aGVyd2lzZSwgaXQgaXMgcGVybWl0dGVkIHRvIGludGVncmF0ZSB0aGUgU3BpbmUgUnVudGltZXMgaW50byBzb2Z0d2FyZVxuICogb3Igb3RoZXJ3aXNlIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBTcGluZSBSdW50aW1lcyAoY29sbGVjdGl2ZWx5LFxuICogXCJQcm9kdWN0c1wiKSwgcHJvdmlkZWQgdGhhdCBlYWNoIHVzZXIgb2YgdGhlIFByb2R1Y3RzIG11c3Qgb2J0YWluIHRoZWlyIG93blxuICogU3BpbmUgRWRpdG9yIGxpY2Vuc2UgYW5kIHJlZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9kdWN0cyBpbiBhbnkgZm9ybSBtdXN0XG4gKiBpbmNsdWRlIHRoaXMgbGljZW5zZSBhbmQgY29weXJpZ2h0IG5vdGljZS5cbiAqXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMgQVJFIFBST1ZJREVEIEJZIEVTT1RFUklDIFNPRlRXQVJFIExMQyBcIkFTIElTXCIgQU5EIEFOWVxuICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRFxuICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgRVNPVEVSSUMgU09GVFdBUkUgTExDIEJFIExJQUJMRSBGT1IgQU5ZXG4gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFU1xuICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTLFxuICogQlVTSU5FU1MgSU5URVJSVVBUSU9OLCBPUiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUykgSE9XRVZFUiBDQVVTRUQgQU5EXG4gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVFxuICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GXG4gKiBUSEUgU1BJTkUgUlVOVElNRVMsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmltcG9ydCB0eXBlIHsgVGV4dHVyZSwgQ29sb3JTb3VyY2UsIFJlbmRlcmVyLCBCTEVORF9NT0RFUyB9IGZyb20gXCJAcGl4aS9jb3JlXCI7XG5pbXBvcnQgeyBNZXNoIH0gZnJvbSBcIkBwaXhpL21lc2hcIjtcbmltcG9ydCB7IERhcmtUaW50R2VvbWV0cnkgfSBmcm9tIFwiLi9EYXJrVGludEdlb20uanNcIjtcbmltcG9ydCB7IERhcmtUaW50TWF0ZXJpYWwgfSBmcm9tIFwiLi9EYXJrVGludE1hdGVyaWFsLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhcmtUaW50RWxlbWVudCB7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cblx0X3RleHR1cmU6IFRleHR1cmU7XG5cdHZlcnRleERhdGE6IEZsb2F0MzJBcnJheTtcblx0aW5kaWNlczogVWludDE2QXJyYXkgfCBVaW50MzJBcnJheSB8IEFycmF5PG51bWJlcj47XG5cdHV2czogRmxvYXQzMkFycmF5O1xuXHR3b3JsZEFscGhhOiBudW1iZXI7XG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cblx0X3RpbnRSR0I6IG51bWJlcjtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuXHRfZGFya1RpbnRSR0I6IG51bWJlcjtcblx0YWxwaGE6IG51bWJlcjtcblx0YmxlbmRNb2RlOiBCTEVORF9NT0RFUztcbn1cblxuZXhwb3J0IGNsYXNzIERhcmtUaW50TWVzaCBleHRlbmRzIE1lc2g8RGFya1RpbnRNYXRlcmlhbD4ge1xuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5cdHB1YmxpYyBfZGFya1RpbnRSR0I6IG51bWJlciA9IDA7XG5cblx0Y29uc3RydWN0b3IodGV4dHVyZT86IFRleHR1cmUpIHtcblx0XHRzdXBlcihuZXcgRGFya1RpbnRHZW9tZXRyeSgpLCBuZXcgRGFya1RpbnRNYXRlcmlhbCh0ZXh0dXJlKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuXHR9XG5cblx0cHVibGljIGdldCBkYXJrVGludCgpOiBDb2xvclNvdXJjZSB8IG51bGwge1xuXHRcdHJldHVybiBcImRhcmtUaW50XCIgaW4gdGhpcy5zaGFkZXIgPyAodGhpcy5zaGFkZXIgYXMgdW5rbm93biBhcyBEYXJrVGludE1hdGVyaWFsKS5kYXJrVGludCA6IG51bGw7XG5cdH1cblxuXHRwdWJsaWMgc2V0IGRhcmtUaW50KHZhbHVlOiBDb2xvclNvdXJjZSB8IG51bGwpIHtcblx0XHQodGhpcy5zaGFkZXIgYXMgdW5rbm93biBhcyBEYXJrVGludE1hdGVyaWFsKS5kYXJrVGludCA9IHZhbHVlITtcblx0fVxuXG5cdHB1YmxpYyBnZXQgZGFya1RpbnRWYWx1ZSgpOiBudW1iZXIge1xuXHRcdHJldHVybiAodGhpcy5zaGFkZXIgYXMgdW5rbm93biBhcyBEYXJrVGludE1hdGVyaWFsKS5kYXJrVGludFZhbHVlO1xuXHR9XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgX3JlbmRlclRvQmF0Y2gocmVuZGVyZXI6IFJlbmRlcmVyKTogdm9pZCB7XG5cdFx0Y29uc3QgZ2VvbWV0cnkgPSB0aGlzLmdlb21ldHJ5O1xuXHRcdGNvbnN0IHNoYWRlciA9IHRoaXMuc2hhZGVyO1xuXG5cdFx0aWYgKHNoYWRlci51dk1hdHJpeCkge1xuXHRcdFx0c2hhZGVyLnV2TWF0cml4LnVwZGF0ZSgpO1xuXHRcdFx0dGhpcy5jYWxjdWxhdGVVdnMoKTtcblx0XHR9XG5cblx0XHQvLyBzZXQgcHJvcGVydGllcyBmb3IgYmF0Y2hpbmcuLlxuXHRcdHRoaXMuY2FsY3VsYXRlVmVydGljZXMoKTtcblx0XHR0aGlzLmluZGljZXMgPSBnZW9tZXRyeS5pbmRleEJ1ZmZlci5kYXRhIGFzIFVpbnQxNkFycmF5O1xuXHRcdHRoaXMuX3RpbnRSR0IgPSBzaGFkZXIuX3RpbnRSR0I7XG5cdFx0dGhpcy5fZGFya1RpbnRSR0IgPSBzaGFkZXIuX2RhcmtUaW50UkdCO1xuXHRcdHRoaXMuX3RleHR1cmUgPSBzaGFkZXIudGV4dHVyZTtcblxuXHRcdGNvbnN0IHBsdWdpbk5hbWUgPSB0aGlzLm1hdGVyaWFsLnBsdWdpbk5hbWU7XG5cblx0XHRyZW5kZXJlci5iYXRjaC5zZXRPYmplY3RSZW5kZXJlcihyZW5kZXJlci5wbHVnaW5zW3BsdWdpbk5hbWVdKTtcblx0XHRyZW5kZXJlci5wbHVnaW5zW3BsdWdpbk5hbWVdLnJlbmRlcih0aGlzKTtcblx0fVxufVxuIl19
|