@tolokoban/tgd
Version:
ToloGameDev library for WebGL2
39 lines • 2.92 kB
JavaScript
import { __awaiter } from "tslib";
/**
* Try to load an image and return `null` in case of failure.
* @param url URL of the image to load.
*/
export function tgdLoadImage(url) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise(resolve => {
const img = new Image();
img.addEventListener("load", () => resolve(img));
img.addEventListener("error", () => {
console.error("Unable to load image:", url);
resolve(null);
});
img.src = url;
});
});
}
export function tgdLoadImages(urls) {
return __awaiter(this, void 0, void 0, function* () {
return Promise.all(urls.map(url => tgdLoadImage(url)));
});
}
export function tgdLoadCanvas(url) {
return __awaiter(this, void 0, void 0, function* () {
const img = yield tgdLoadImage(url);
if (!img)
return null;
const canvas = document.createElement("canvas");
canvas.width = img.naturalWidth;
canvas.height = img.naturalHeight;
const context = canvas.getContext("2d");
if (!context)
throw new Error("Unable to get a 2D context!");
context.drawImage(img, 0, 0);
return canvas;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9hZGVyL2ltYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7QUFDSCxNQUFNLFVBQWdCLFlBQVksQ0FDOUIsR0FBVzs7UUFFWCxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUE7WUFDdkIsR0FBRyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtZQUNoRCxHQUFHLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQTtnQkFDM0MsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ2pCLENBQUMsQ0FBQyxDQUFBO1lBQ0YsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFDakIsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQUE7QUFFRCxNQUFNLFVBQWdCLGFBQWEsQ0FDL0IsSUFBYzs7UUFFZCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNyQyxDQUFBO0lBQ0wsQ0FBQztDQUFBO0FBRUQsTUFBTSxVQUFnQixhQUFhLENBQy9CLEdBQVc7O1FBRVgsTUFBTSxHQUFHLEdBQUcsTUFBTSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLEdBQUc7WUFBRSxPQUFPLElBQUksQ0FBQTtRQUVyQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQTtRQUMvQixNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7UUFDakMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsT0FBTztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQTtRQUU1RCxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDNUIsT0FBTyxNQUFNLENBQUE7SUFDakIsQ0FBQztDQUFBIn0=