@esotericsoftware/spine-pixi-v8
Version:
The official Spine Runtimes for PixiJS v8.
60 lines • 8.95 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.
*****************************************************************************/
import { checkExtension, DOMAdapter, extensions, ExtensionType, LoaderParserPriority } from 'pixi.js';
function isJson(resource) {
return Object.prototype.hasOwnProperty.call(resource, 'bones');
}
function isBuffer(resource) {
return resource instanceof Uint8Array;
}
const spineLoaderExtension = {
extension: ExtensionType.Asset,
loader: {
extension: {
type: ExtensionType.LoadParser,
priority: LoaderParserPriority.Normal,
name: 'spineSkeletonLoader',
},
test(url) {
return checkExtension(url, '.skel');
},
async load(url) {
const response = await DOMAdapter.get().fetch(url);
const buffer = new Uint8Array(await response.arrayBuffer());
return buffer;
},
testParse(asset, options) {
const isJsonSpineModel = checkExtension(options.src, '.json') && isJson(asset);
const isBinarySpineModel = checkExtension(options.src, '.skel') && isBuffer(asset);
return Promise.resolve(isJsonSpineModel || isBinarySpineModel);
},
},
};
extensions.add(spineLoaderExtension);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b25Mb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXNzZXRzL3NrZWxldG9uTG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7K0VBMkIrRTtBQUUvRSxPQUFPLEVBRU4sY0FBYyxFQUNkLFVBQVUsRUFDVixVQUFVLEVBQ1YsYUFBYSxFQUNiLG9CQUFvQixFQUVwQixNQUFNLFNBQVMsQ0FBQztBQUtqQixTQUFTLE1BQU0sQ0FBRSxRQUFhO0lBQzdCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUUsUUFBYTtJQUMvQixPQUFPLFFBQVEsWUFBWSxVQUFVLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sb0JBQW9CLEdBQTREO0lBQ3JGLFNBQVMsRUFBRSxhQUFhLENBQUMsS0FBSztJQUU5QixNQUFNLEVBQUU7UUFDUCxTQUFTLEVBQUU7WUFDVixJQUFJLEVBQUUsYUFBYSxDQUFDLFVBQVU7WUFDOUIsUUFBUSxFQUFFLG9CQUFvQixDQUFDLE1BQU07WUFDckMsSUFBSSxFQUFFLHFCQUFxQjtTQUMzQjtRQUVELElBQUksQ0FBRSxHQUFHO1lBQ1IsT0FBTyxjQUFjLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxLQUFLLENBQUMsSUFBSSxDQUFFLEdBQVc7WUFDdEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5ELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFFNUQsT0FBTyxNQUFNLENBQUM7UUFDZixDQUFDO1FBQ0QsU0FBUyxDQUFFLEtBQWMsRUFBRSxPQUFzQjtZQUNoRCxNQUFNLGdCQUFnQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNoRixNQUFNLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsR0FBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVwRixPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLElBQUksa0JBQWtCLENBQUMsQ0FBQztRQUNoRSxDQUFDO0tBQ0Q7Q0FDMEQsQ0FBQztBQUU3RCxVQUFVLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICogU3BpbmUgUnVudGltZXMgTGljZW5zZSBBZ3JlZW1lbnRcbiAqIExhc3QgdXBkYXRlZCBKdWx5IDI4LCAyMDIzLiBSZXBsYWNlcyBhbGwgcHJpb3IgdmVyc2lvbnMuXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMjMsIEVzb3RlcmljIFNvZnR3YXJlIExMQ1xuICpcbiAqIEludGVncmF0aW9uIG9mIHRoZSBTcGluZSBSdW50aW1lcyBpbnRvIHNvZnR3YXJlIG9yIG90aGVyd2lzZSBjcmVhdGluZ1xuICogZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgaXMgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBhbmRcbiAqIGNvbmRpdGlvbnMgb2YgU2VjdGlvbiAyIG9mIHRoZSBTcGluZSBFZGl0b3IgTGljZW5zZSBBZ3JlZW1lbnQ6XG4gKiBodHRwOi8vZXNvdGVyaWNzb2Z0d2FyZS5jb20vc3BpbmUtZWRpdG9yLWxpY2Vuc2VcbiAqXG4gKiBPdGhlcndpc2UsIGl0IGlzIHBlcm1pdHRlZCB0byBpbnRlZ3JhdGUgdGhlIFNwaW5lIFJ1bnRpbWVzIGludG8gc29mdHdhcmUgb3JcbiAqIG90aGVyd2lzZSBjcmVhdGUgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgU3BpbmUgUnVudGltZXMgKGNvbGxlY3RpdmVseSxcbiAqIFwiUHJvZHVjdHNcIiksIHByb3ZpZGVkIHRoYXQgZWFjaCB1c2VyIG9mIHRoZSBQcm9kdWN0cyBtdXN0IG9idGFpbiB0aGVpciBvd25cbiAqIFNwaW5lIEVkaXRvciBsaWNlbnNlIGFuZCByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZHVjdHMgaW4gYW55IGZvcm0gbXVzdFxuICogaW5jbHVkZSB0aGlzIGxpY2Vuc2UgYW5kIGNvcHlyaWdodCBub3RpY2UuXG4gKlxuICogVEhFIFNQSU5FIFJVTlRJTUVTIEFSRSBQUk9WSURFRCBCWSBFU09URVJJQyBTT0ZUV0FSRSBMTEMgXCJBUyBJU1wiIEFORCBBTllcbiAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRURcbiAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkVcbiAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEVTT1RFUklDIFNPRlRXQVJFIExMQyBCRSBMSUFCTEUgRk9SIEFOWVxuICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVNcbiAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUyxcbiAqIEJVU0lORVNTIElOVEVSUlVQVElPTiwgT1IgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFMpIEhPV0VWRVIgQ0FVU0VEIEFORFxuICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlRcbiAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSEVcbiAqIFNQSU5FIFJVTlRJTUVTLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5pbXBvcnQge1xuXHR0eXBlIEFzc2V0RXh0ZW5zaW9uLFxuXHRjaGVja0V4dGVuc2lvbixcblx0RE9NQWRhcHRlcixcblx0ZXh0ZW5zaW9ucyxcblx0RXh0ZW5zaW9uVHlwZSxcblx0TG9hZGVyUGFyc2VyUHJpb3JpdHksXG5cdFJlc29sdmVkQXNzZXRcbn0gZnJvbSAncGl4aS5qcyc7XG5cbnR5cGUgU2tlbGV0b25Kc29uQXNzZXQgPSBhbnk7XG50eXBlIFNrZWxldG9uQmluYXJ5QXNzZXQgPSBVaW50OEFycmF5O1xuXG5mdW5jdGlvbiBpc0pzb24gKHJlc291cmNlOiBhbnkpOiByZXNvdXJjZSBpcyBTa2VsZXRvbkpzb25Bc3NldCB7XG5cdHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocmVzb3VyY2UsICdib25lcycpO1xufVxuXG5mdW5jdGlvbiBpc0J1ZmZlciAocmVzb3VyY2U6IGFueSk6IHJlc291cmNlIGlzIFNrZWxldG9uQmluYXJ5QXNzZXQge1xuXHRyZXR1cm4gcmVzb3VyY2UgaW5zdGFuY2VvZiBVaW50OEFycmF5O1xufVxuXG5jb25zdCBzcGluZUxvYWRlckV4dGVuc2lvbjogQXNzZXRFeHRlbnNpb248U2tlbGV0b25Kc29uQXNzZXQgfCBTa2VsZXRvbkJpbmFyeUFzc2V0PiA9IHtcblx0ZXh0ZW5zaW9uOiBFeHRlbnNpb25UeXBlLkFzc2V0LFxuXG5cdGxvYWRlcjoge1xuXHRcdGV4dGVuc2lvbjoge1xuXHRcdFx0dHlwZTogRXh0ZW5zaW9uVHlwZS5Mb2FkUGFyc2VyLFxuXHRcdFx0cHJpb3JpdHk6IExvYWRlclBhcnNlclByaW9yaXR5Lk5vcm1hbCxcblx0XHRcdG5hbWU6ICdzcGluZVNrZWxldG9uTG9hZGVyJyxcblx0XHR9LFxuXG5cdFx0dGVzdCAodXJsKSB7XG5cdFx0XHRyZXR1cm4gY2hlY2tFeHRlbnNpb24odXJsLCAnLnNrZWwnKTtcblx0XHR9LFxuXG5cdFx0YXN5bmMgbG9hZCAodXJsOiBzdHJpbmcpOiBQcm9taXNlPFNrZWxldG9uQmluYXJ5QXNzZXQ+IHtcblx0XHRcdGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgRE9NQWRhcHRlci5nZXQoKS5mZXRjaCh1cmwpO1xuXG5cdFx0XHRjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZlcigpKTtcblxuXHRcdFx0cmV0dXJuIGJ1ZmZlcjtcblx0XHR9LFxuXHRcdHRlc3RQYXJzZSAoYXNzZXQ6IHVua25vd24sIG9wdGlvbnM6IFJlc29sdmVkQXNzZXQpOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHRcdGNvbnN0IGlzSnNvblNwaW5lTW9kZWwgPSBjaGVja0V4dGVuc2lvbihvcHRpb25zLnNyYyEsICcuanNvbicpICYmIGlzSnNvbihhc3NldCk7XG5cdFx0XHRjb25zdCBpc0JpbmFyeVNwaW5lTW9kZWwgPSBjaGVja0V4dGVuc2lvbihvcHRpb25zLnNyYyEsICcuc2tlbCcpICYmIGlzQnVmZmVyKGFzc2V0KTtcblxuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShpc0pzb25TcGluZU1vZGVsIHx8IGlzQmluYXJ5U3BpbmVNb2RlbCk7XG5cdFx0fSxcblx0fSxcbn0gYXMgQXNzZXRFeHRlbnNpb248U2tlbGV0b25Kc29uQXNzZXQgfCBTa2VsZXRvbkJpbmFyeUFzc2V0PjtcblxuZXh0ZW5zaW9ucy5hZGQoc3BpbmVMb2FkZXJFeHRlbnNpb24pO1xuIl19