@esotericsoftware/spine-core
Version:
The official Spine Runtimes for the web.
95 lines (94 loc) • 5.08 kB
TypeScript
/******************************************************************************
* 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 { Texture } from "./Texture.js";
import { TextureAtlas } from "./TextureAtlas.js";
import { Disposable, StringMap } from "./Utils.js";
export declare class AssetManagerBase implements Disposable {
private pathPrefix;
private textureLoader;
private downloader;
private cache;
private errors;
private toLoad;
private loaded;
constructor(textureLoader: (image: HTMLImageElement | ImageBitmap) => Texture, pathPrefix?: string, downloader?: Downloader, cache?: AssetCache);
private start;
private success;
private error;
loadAll(): Promise<AssetManagerBase>;
setRawDataURI(path: string, data: string): void;
loadBinary(path: string, success?: (path: string, binary: Uint8Array) => void, error?: (path: string, message: string) => void): void;
loadText(path: string, success?: (path: string, text: string) => void, error?: (path: string, message: string) => void): void;
loadJson(path: string, success?: (path: string, object: object) => void, error?: (path: string, message: string) => void): void;
reuseAssets(path: string, success?: (path: string, data: any) => void, error?: (path: string, message: string) => void): boolean;
loadTexture(path: string, success?: (path: string, texture: Texture) => void, error?: (path: string, message: string) => void): void;
loadTextureAtlas(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, message: string) => void, fileAlias?: {
[keyword: string]: string;
}): void;
loadTextureAtlasButNoTextures(path: string, success?: (path: string, atlas: TextureAtlas) => void, error?: (path: string, message: string) => void, fileAlias?: {
[keyword: string]: string;
}): void;
loadBinaryAsync(path: string): Promise<unknown>;
loadJsonAsync(path: string): Promise<unknown>;
loadTextureAsync(path: string): Promise<Texture>;
loadTextureAtlasAsync(path: string): Promise<unknown>;
loadTextureAtlasButNoTexturesAsync(path: string): Promise<TextureAtlas>;
setCache(cache: AssetCache): void;
get(path: string): any;
require(path: string): any;
remove(path: string): any;
removeAll(): void;
isLoadingComplete(): boolean;
getToLoad(): number;
getLoaded(): number;
dispose(): void;
disposeAsset(path: string): void;
hasErrors(): boolean;
getErrors(): StringMap<string>;
}
export declare class AssetCache {
assets: StringMap<any>;
assetsRefCount: StringMap<number>;
assetsLoaded: StringMap<Promise<any>>;
static AVAILABLE_CACHES: Map<string, AssetCache>;
static getCache(id: string): AssetCache;
addAsset(path: string, asset: any): Promise<void>;
}
export declare class Downloader {
private callbacks;
rawDataUris: StringMap<string>;
dataUriToString(dataUri: string): string;
base64ToUint8Array(base64: string): Uint8Array;
dataUriToUint8Array(dataUri: string): Uint8Array;
downloadText(url: string, success: (data: string) => void, error: (status: number, responseText: string) => void): void;
downloadJson(url: string, success: (data: object) => void, error: (status: number, responseText: string) => void): void;
downloadBinary(url: string, success: (data: Uint8Array) => void, error: (status: number, responseText: string) => void): void;
private start;
private finish;
}