UNPKG

@tolokoban/tgd

Version:

ToloGameDev library for WebGL2

28 lines 1.79 kB
const cache = new Map(); /** * If you want to use an external font in a canvas, * you will have tio load it first. * * ```ts * await tgdLoadFont("MyFont", "https://example.com/myFont.woff2") * const ctx = canvas.getContext("2d") * ctx.font = "24px MyFont" * ctx.fillText("Hello world!", 100, 100) * ``` */ export function tgdLoadFont(name, url) { const key = `${name}\n${url}`; const fromCache = cache.get(key); if (fromCache) return fromCache; const font = loadFont(name, url); cache.set(key, font); return font; } async function loadFont(name, url) { const face = new FontFace(name, `url(${url})`); const font = await face.load(); globalThis.document.fonts.add(font); return font; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9udC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkZXIvZm9udC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBNkIsQ0FBQTtBQUVsRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFZLEVBQUUsR0FBVztJQUNqRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQTtJQUM3QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLElBQUksU0FBUztRQUFFLE9BQU8sU0FBUyxDQUFBO0lBRS9CLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDaEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDcEIsT0FBTyxJQUFJLENBQUE7QUFDZixDQUFDO0FBRUQsS0FBSyxVQUFVLFFBQVEsQ0FBQyxJQUFZLEVBQUUsR0FBVztJQUM3QyxNQUFNLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFBO0lBQzlDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzlCLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQyxPQUFPLElBQUksQ0FBQTtBQUNmLENBQUMifQ==