19 lines
448 B
TypeScript
19 lines
448 B
TypeScript
import missingTextureSrc from "./missingTexture.svg?url";
|
|
|
|
export function loadImage(src: string): Promise<HTMLImageElement> {
|
|
return new Promise((resolve) => {
|
|
const image = new Image();
|
|
|
|
image.onload = () => resolve(image);
|
|
image.onerror = (error) => {
|
|
console.error(error);
|
|
|
|
const placeholder = new Image();
|
|
placeholder.onload = () => resolve(placeholder);
|
|
placeholder.src = missingTextureSrc;
|
|
};
|
|
|
|
image.src = src;
|
|
});
|
|
}
|