react-babylonjs
Version:
React for Babylon.js
62 lines (61 loc) • 2.08 kB
TypeScript
import { AbstractAssetTask, BinaryFileAssetTask, IAssetsProgressEvent, MeshAssetTask, TextureAssetTask } from '@babylonjs/core/Misc/assetsManager.js';
import { EventState } from '@babylonjs/core/Misc/observable.js';
import { Scene } from '@babylonjs/core/scene.js';
import React from 'react';
export declare enum TaskType {
Binary = "Binary",
Mesh = "Mesh",
Texture = "Texture"
}
export type BinaryTask = {
taskType: TaskType.Binary;
name: string;
url: string;
onSuccess?: BinaryFileAssetTask['onSuccess'];
onError?: BinaryFileAssetTask['onError'];
};
export type MeshTask = {
taskType: TaskType.Mesh;
name: string;
meshesNames?: any;
rootUrl: string;
sceneFilename: string;
onSuccess?: MeshAssetTask['onSuccess'];
onError?: MeshAssetTask['onError'];
};
export type TextureTask = {
taskType: TaskType.Texture;
name: string;
url: string;
noMipmap?: boolean;
invertY?: boolean;
samplingMode?: number;
onSuccess?: TextureAssetTask['onSuccess'];
onError?: TextureAssetTask['onError'];
};
export type Task = BinaryTask | MeshTask | TextureTask;
export type AssetManagerContextType = {
updateProgress: (progress: AssetManagerProgressType) => void;
lastProgress?: AssetManagerProgressType;
} | undefined;
export declare const AssetManagerContext: React.Context<AssetManagerContextType>;
export type AssetManagerProgressType = {
eventData: IAssetsProgressEvent;
eventState: EventState;
} | undefined;
export type AssetManagerContextProviderProps = {
startProgress?: AssetManagerProgressType;
children: React.ReactNode;
};
export declare const AssetManagerContextProvider: React.FC<AssetManagerContextProviderProps>;
export type AssetManagerOptions = {
useDefaultLoadingScreen?: boolean;
reportProgress?: boolean;
scene?: Scene;
};
type AssetManagerResult = {
tasks: AbstractAssetTask[];
taskNameMap: Record<string, AbstractAssetTask>;
};
export declare const useAssetManager: (tasks: Task[], options?: AssetManagerOptions) => AssetManagerResult;
export {};