modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
39 lines (38 loc) • 1.54 kB
TypeScript
import type { ObservableEvents } from 'modern-idoc';
import type { Loader } from './loaders';
import { Observable } from 'modern-idoc';
import { FontLoader, GifLoader, JsonLoader, LottieLoader, TextLoader, TextureLoader, VideoLoader } from './loaders';
export type AssetHandler = (blob: Blob, options?: any) => any | Promise<any>;
export interface Assets {
font: FontLoader;
gif: GifLoader;
gifWorkerUrl?: string;
json: JsonLoader;
lottie: LottieLoader;
text: TextLoader;
texture: TextureLoader;
video: VideoLoader;
}
export interface AssetsEvents extends ObservableEvents {
loaded: [id: string, value: any];
}
export declare class Assets extends Observable<AssetsEvents> {
defaultHandler: AssetHandler;
protected _handlers: Map<string, AssetHandler>;
protected _handleing: Map<string, Promise<any>>;
protected _handled: Map<string, any>;
protected _gc: FinalizationRegistry<string> | undefined;
constructor();
use(loader: Loader): this;
register(mimeType: string, handler: AssetHandler): this;
fetch(url: string): Promise<Response>;
protected _fixSVG(dataURI: string): string;
fetchImageBitmap(url: string | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>;
get<T>(id: string): T | undefined;
set(id: string, value: any): void;
loadBy<T = Blob>(id: string, handler?: () => Promise<T>): Promise<T>;
load<T>(url: string, options?: any): Promise<T>;
waitUntilLoad(): Promise<void>;
gc(): void;
}
export declare const assets: Assets;