Skip to content

Commit 900ca20

Browse files
committed
update plugin pixel font
1 parent 00a7c4f commit 900ca20

File tree

2 files changed

+37
-18
lines changed

2 files changed

+37
-18
lines changed

public/litecanvas.js

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
var assert = (condition, message = "Assertion failed") => {
2828
if (!condition) throw new Error(message);
2929
};
30-
var version = "0.92.2";
30+
var version = "0.92.3";
3131
function litecanvas(settings = {}) {
3232
const root = window, math = Math, TWO_PI = math.PI * 2, raf = requestAnimationFrame, _browserEventListeners = [], on = (elem, evt, callback) => {
3333
elem.addEventListener(evt, callback, false);
@@ -2208,23 +2208,42 @@
22082208
window.pluginFrameRateMeter = A;
22092209
})();
22102210
(() => {
2211-
var _ = [[24, 60, 60, 24, 24, , 24], [54, 54, , , , , ,], [54, 54, 127, 54, 127, 54, 54], [12, 62, 3, 30, 48, 31, 12], [, 99, 51, 24, 12, 102, 99], [28, 54, 28, 110, 59, 51, 110], [6, 6, 3, , , , ,], [24, 12, 6, 6, 6, 12, 24], [6, 12, 24, 24, 24, 12, 6], [, 102, 60, 255, 60, 102, ,], [, 12, 12, 63, 12, 12, ,], [, , , , , 12, 12, 6], [, , , 63, , , ,], [, , , , , 12, 12], [96, 48, 24, 12, 6, 3, 1], [62, 99, 115, 123, 111, 103, 62], [12, 14, 12, 12, 12, 12, 63], [30, 51, 48, 28, 6, 51, 63], [30, 51, 48, 28, 48, 51, 30], [56, 60, 54, 51, 127, 48, 120], [63, 3, 31, 48, 48, 51, 30], [28, 6, 3, 31, 51, 51, 30], [63, 51, 48, 24, 12, 12, 12], [30, 51, 51, 30, 51, 51, 30], [30, 51, 51, 62, 48, 24, 14], [, 12, 12, , , 12, 12], [, 12, 12, , , 12, 12, 6], [24, 12, 6, 3, 6, 12, 24], [, , 63, , , 63, ,], [6, 12, 24, 48, 24, 12, 6], [30, 51, 48, 24, 12, , 12], [62, 99, 123, 123, 123, 3, 30], [12, 30, 51, 51, 63, 51, 51], [63, 102, 102, 62, 102, 102, 63], [60, 102, 3, 3, 3, 102, 60], [31, 54, 102, 102, 102, 54, 31], [127, 70, 22, 30, 22, 70, 127], [127, 70, 22, 30, 22, 6, 15], [60, 102, 3, 3, 115, 102, 124], [51, 51, 51, 63, 51, 51, 51], [30, 12, 12, 12, 12, 12, 30], [120, 48, 48, 48, 51, 51, 30], [103, 102, 54, 30, 54, 102, 103], [15, 6, 6, 6, 70, 102, 127], [99, 119, 127, 127, 107, 99, 99], [99, 103, 111, 123, 115, 99, 99], [28, 54, 99, 99, 99, 54, 28], [63, 102, 102, 62, 6, 6, 15], [30, 51, 51, 51, 59, 30, 56], [63, 102, 102, 62, 54, 102, 103], [30, 51, 7, 14, 56, 51, 30], [63, 45, 12, 12, 12, 12, 30], [51, 51, 51, 51, 51, 51, 63], [51, 51, 51, 51, 51, 30, 12], [99, 99, 99, 107, 127, 119, 99], [99, 99, 54, 28, 28, 54, 99], [51, 51, 51, 30, 12, 12, 30], [127, 99, 49, 24, 76, 102, 127], [30, 6, 6, 6, 6, 6, 30], [3, 6, 12, 24, 48, 96, 64], [30, 24, 24, 24, 24, 24, 30], [8, 28, 54, 99, , , ,], [, , , , , , , 255], [12, 12, 24, , , , ,], [, , 30, 48, 62, 51, 110], [7, 6, 6, 62, 102, 102, 59], [, , 30, 51, 3, 51, 30], [56, 48, 48, 62, 51, 51, 110], [, , 30, 51, 63, 3, 30], [28, 54, 6, 15, 6, 6, 15], [, , 110, 51, 51, 62, 48, 31], [7, 6, 54, 110, 102, 102, 103], [12, , 14, 12, 12, 12, 30], [48, , 48, 48, 48, 51, 51, 30], [7, 6, 102, 54, 30, 54, 103], [14, 12, 12, 12, 12, 12, 30], [, , 51, 127, 127, 107, 99], [, , 31, 51, 51, 51, 51], [, , 30, 51, 51, 51, 30], [, , 59, 102, 102, 62, 6, 15], [, , 110, 51, 51, 62, 48, 120], [, , 59, 110, 102, 6, 15], [, , 62, 3, 30, 48, 31], [8, 12, 62, 12, 12, 44, 24], [, , 51, 51, 51, 51, 110], [, , 51, 51, 51, 30, 12], [, , 99, 107, 127, 127, 54], [, , 99, 54, 28, 54, 99], [, , 51, 51, 51, 62, 48, 31], [, , 63, 25, 12, 38, 63], [56, 12, 12, 7, 12, 12, 56], [24, 24, 24, , 24, 24, 24], [7, 12, 12, 56, 12, 12, 7], [110, 59, , , , , ,]], u = { chars: _, first: 33, w: 8 };
2212-
var f = plugin = (e) => {
2213-
let p = e.text, b = e.textsize, d = e.textalign, v = e.textfont, h = u, n = 1, t = null, m = (a) => {
2214-
n = Math.round(a / t.w);
2215-
}, w = () => console.warn("textalign() has not yet been implemented for pixel font"), g = (a, l, x, c = 3) => {
2216-
let o = x.charCodeAt(), r = t.chars[o - t.first];
2217-
if (r) for (let s = 0; s < t.w; s++) for (let i = 0; i < t.w; i++) (r[s] | 0) & 1 << i && e.rectfill(a + i * n, l + s * n, n, n, c);
2218-
}, y = (a, l, x, c = 3) => {
2219-
x += "";
2220-
let o = n * t.w;
2221-
for (let r = 0; r < x.length; r++) g(a, l, x[r], c), a += o;
2211+
var S = [[24, 60, 60, 24, 24, , 24], [54, 54, , , , , ,], [54, 54, 127, 54, 127, 54, 54], [12, 62, 3, 30, 48, 31, 12], [, 99, 51, 24, 12, 102, 99], [28, 54, 28, 110, 59, 51, 110], [6, 6, 3, , , , ,], [24, 12, 6, 6, 6, 12, 24], [6, 12, 24, 24, 24, 12, 6], [, 102, 60, 255, 60, 102, ,], [, 12, 12, 63, 12, 12, ,], [, , , , , 12, 12, 6], [, , , 63, , , ,], [, , , , , 12, 12], [96, 48, 24, 12, 6, 3, 1], [62, 99, 115, 123, 111, 103, 62], [12, 14, 12, 12, 12, 12, 63], [30, 51, 48, 28, 6, 51, 63], [30, 51, 48, 28, 48, 51, 30], [56, 60, 54, 51, 127, 48, 120], [63, 3, 31, 48, 48, 51, 30], [28, 6, 3, 31, 51, 51, 30], [63, 51, 48, 24, 12, 12, 12], [30, 51, 51, 30, 51, 51, 30], [30, 51, 51, 62, 48, 24, 14], [, 12, 12, , , 12, 12], [, 12, 12, , , 12, 12, 6], [24, 12, 6, 3, 6, 12, 24], [, , 63, , , 63, ,], [6, 12, 24, 48, 24, 12, 6], [30, 51, 48, 24, 12, , 12], [62, 99, 123, 123, 123, 3, 30], [12, 30, 51, 51, 63, 51, 51], [63, 102, 102, 62, 102, 102, 63], [60, 102, 3, 3, 3, 102, 60], [31, 54, 102, 102, 102, 54, 31], [127, 70, 22, 30, 22, 70, 127], [127, 70, 22, 30, 22, 6, 15], [60, 102, 3, 3, 115, 102, 124], [51, 51, 51, 63, 51, 51, 51], [30, 12, 12, 12, 12, 12, 30], [120, 48, 48, 48, 51, 51, 30], [103, 102, 54, 30, 54, 102, 103], [15, 6, 6, 6, 70, 102, 127], [99, 119, 127, 127, 107, 99, 99], [99, 103, 111, 123, 115, 99, 99], [28, 54, 99, 99, 99, 54, 28], [63, 102, 102, 62, 6, 6, 15], [30, 51, 51, 51, 59, 30, 56], [63, 102, 102, 62, 54, 102, 103], [30, 51, 7, 14, 56, 51, 30], [63, 45, 12, 12, 12, 12, 30], [51, 51, 51, 51, 51, 51, 63], [51, 51, 51, 51, 51, 30, 12], [99, 99, 99, 107, 127, 119, 99], [99, 99, 54, 28, 28, 54, 99], [51, 51, 51, 30, 12, 12, 30], [127, 99, 49, 24, 76, 102, 127], [30, 6, 6, 6, 6, 6, 30], [3, 6, 12, 24, 48, 96, 64], [30, 24, 24, 24, 24, 24, 30], [8, 28, 54, 99, , , ,], [, , , , , , , 255], [12, 12, 24, , , , ,], [, , 30, 48, 62, 51, 110], [7, 6, 6, 62, 102, 102, 59], [, , 30, 51, 3, 51, 30], [56, 48, 48, 62, 51, 51, 110], [, , 30, 51, 63, 3, 30], [28, 54, 6, 15, 6, 6, 15], [, , 110, 51, 51, 62, 48, 31], [7, 6, 54, 110, 102, 102, 103], [12, , 14, 12, 12, 12, 30], [48, , 48, 48, 48, 51, 51, 30], [7, 6, 102, 54, 30, 54, 103], [14, 12, 12, 12, 12, 12, 30], [, , 51, 127, 127, 107, 99], [, , 31, 51, 51, 51, 51], [, , 30, 51, 51, 51, 30], [, , 59, 102, 102, 62, 6, 15], [, , 110, 51, 51, 62, 48, 120], [, , 59, 110, 102, 6, 15], [, , 62, 3, 30, 48, 31], [8, 12, 62, 12, 12, 44, 24], [, , 51, 51, 51, 51, 110], [, , 51, 51, 51, 30, 12], [, , 99, 107, 127, 127, 54], [, , 99, 54, 28, 54, 99], [, , 51, 51, 51, 62, 48, 31], [, , 63, 25, 12, 38, 63], [56, 12, 12, 7, 12, 12, 56], [24, 24, 24, , 24, 24, 24], [7, 12, 12, 56, 12, 12, 7], [110, 59, , , , , ,]], g = { id: "basic", chars: S, first: 33, w: 8 };
2212+
var w = plugin = (e, { cache: o = true } = {}) => {
2213+
let y = e.text, _ = e.textsize, A = e.textalign, E = e.textfont, z = g, c = o ? /* @__PURE__ */ new Map() : null, p = 5 * 60, s = 1, n = null, b = (a) => {
2214+
s = Math.round(a / n.w);
2215+
}, C = () => console.warn("[litecanvas/plugin-pixel-font] textalign() has not yet been implemented for pixel fonts"), d = (a, l, x, i = 3) => {
2216+
for (let t = 0; t < n.w; t++) for (let r = 0; r < n.w; r++) (x[t] | 0) & 1 << r && e.rectfill(a + r * s, l + t * s, s, s, i);
2217+
}, T = (a, l, x, i = 3) => {
2218+
if (x += "", !s || !x.length) return;
2219+
let t = s * n.w;
2220+
for (let r = 0; r < x.length; r++) {
2221+
let u = x[r], v = u.charCodeAt(), m = n.chars[v - n.first];
2222+
if (m) if (o) {
2223+
let f = `${n.id}:${u}:${~~i}:${t}`;
2224+
c.has(f) || c.set(f, e.paint(t, t, () => {
2225+
d(0, 0, m, ~~i);
2226+
}));
2227+
let h = c.get(f);
2228+
h._ = e.T + p, e.image(a, l, h);
2229+
} else d(a, l, m, i);
2230+
a += t;
2231+
}
22222232
};
2223-
return { PIXEL_FONT_BASIC: h, textfont: (a) => {
2224-
typeof a == "object" ? (e.def("text", y), e.def("textsize", m), e.def("textalign", w), t = a, m(t.w)) : (e.def("text", p), e.def("textsize", b), e.def("textalign", d), t = null, v(a));
2233+
if (o) {
2234+
let a = setInterval(() => {
2235+
let l = performance.now();
2236+
for (let [x, i] of c) e.T > i._ && c.delete(x);
2237+
}, 1e3 * (p / 5));
2238+
e.listen("quit", () => {
2239+
clearInterval(a), c.clear();
2240+
});
2241+
}
2242+
return { PIXEL_FONT_BASIC: z, textfont: (a) => {
2243+
typeof a == "object" ? (e.def("text", T), e.def("textsize", b), e.def("textalign", C), n = a, b(n.w)) : (e.def("text", y), e.def("textsize", _), e.def("textalign", A), E(a));
22252244
} };
22262245
};
2227-
window.pluginPixelFont = f;
2246+
window.pluginPixelFont = w;
22282247
})();
22292248
})();
22302249
/*! @litecanvas/utils by Luiz Bills | MIT Licensed */

public/sw.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const cacheName = "luizbills.litecanvas-editor-v1";
2-
const version = "2025.7.15.0";
2+
const version = "2025.7.17.0";
33

44
const precacheResources = [
55
"/",
@@ -29,7 +29,7 @@ const precacheResources = [
2929

3030
self.addEventListener("install", (event) => {
3131
event.waitUntil(
32-
caches.open(cacheName).then((cache) => cache.addAll(precacheResources)),
32+
caches.open(cacheName).then((cache) => cache.addAll(precacheResources))
3333
);
3434
});
3535

@@ -42,7 +42,7 @@ self.addEventListener("fetch", (event) => {
4242
return cachedResponse;
4343
}
4444
return fetch(event.request);
45-
}),
45+
})
4646
);
4747
});
4848

0 commit comments

Comments
 (0)