Files
engine/packages/xr/src/loader/XRReferenceImageLoader.ts
SwayYan 9b39b66986 Refactor request in ResourceManager and Loader (#2429)
* feat: refactor request in `ResourceManager` and `Loader`
2024-11-11 17:32:30 +08:00

20 lines
779 B
TypeScript

import { AssetPromise, decode, Loader, LoadItem, resourceLoader, ResourceManager } from "@galacean/engine";
import { XRReferenceImage } from "../feature/trackable/image/XRReferenceImage";
@resourceLoader("XRReferenceImage", [])
export class XRReferenceImageLoader extends Loader<XRReferenceImage> {
load(item: LoadItem, resourceManager: ResourceManager): AssetPromise<XRReferenceImage> {
return new AssetPromise((resolve, reject) => {
resourceManager
// @ts-ignore
._request<ArrayBuffer>(item.url, { ...item, type: "arraybuffer" })
.then((data) => {
decode<XRReferenceImage>(data, resourceManager.engine).then((referenceImage) => {
resolve(referenceImage);
});
})
.catch(reject);
});
}
}