Skip to content

Commit bdf79fb

Browse files
committed
update engine and plugins
1 parent 0421f44 commit bdf79fb

File tree

3 files changed

+24
-14
lines changed

3 files changed

+24
-14
lines changed

public/about.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -462,9 +462,9 @@ <h2><a id="drawing">Functions for Drawing</a></h2>
462462
// or data can be a function with drawing operations
463463
// see: https://github.com/litecanvas/game-engine/blob/main/samples/paint/paint.js
464464
// the options are:
465-
// * scale?: default = 1.
466-
// * canvas?: by default creates a new offscreen canvas.
467-
paint(width, height, data: string[]|function, options?): OffscreenCanvas
465+
// * scale?: default is 1.
466+
// * canvas?: a OffscreenCanvas (by default a new one).
467+
paint(width, height, data: string[]|function, options?): ImageBitmap
468468

469469
/**
470470
* ADVANCED DRAWING-RELATED FUNCTIONS

public/litecanvas.js

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@
2828
if (!condition) throw new Error(message);
2929
};
3030
function litecanvas(settings = {}) {
31-
const root = globalThis, math = Math, TWO_PI = math.PI * 2, raf = requestAnimationFrame, _browserEventListeners = [], on = (elem, evt, callback) => {
31+
const root = window, math = Math, TWO_PI = math.PI * 2, raf = requestAnimationFrame, _browserEventListeners = [], on = (elem, evt, callback) => {
3232
elem.addEventListener(evt, callback, false);
3333
_browserEventListeners.push(() => elem.removeEventListener(evt, callback, false));
34-
}, zzfx = setupZzFX(root), isNumber = Number.isFinite, defaults = {
34+
}, isNumber = Number.isFinite, zzfx = setupZzFX(root), defaults = {
3535
width: null,
3636
height: null,
3737
autoscale: true,
@@ -551,8 +551,11 @@
551551
* @see https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas
552552
*/
553553
paint(width, height, drawing, options = {}) {
554-
DEV: assert(isNumber(width), "paint: 1st param must be a number");
555-
DEV: assert(isNumber(height), "paint: 2nd param must be a number");
554+
DEV: assert(isNumber(width) && width >= 1, "paint: 1st param must be a positive number");
555+
DEV: assert(
556+
isNumber(height) && height >= 1,
557+
"paint: 2nd param must be a positive number"
558+
);
556559
DEV: assert(
557560
"function" === typeof drawing || Array.isArray(drawing),
558561
"paint: 3rd param must be a function or array"
@@ -561,12 +564,16 @@
561564
options && !options.scale || isNumber(options.scale),
562565
"paint: 4th param (options.scale) must be a number"
563566
);
567+
DEV: assert(
568+
options && !options.canvas || options.canvas instanceof OffscreenCanvas,
569+
"paint: 4th param (options.canvas) must be an OffscreenCanvas"
570+
);
564571
const canvas = options.canvas || new OffscreenCanvas(1, 1), scale = options.scale || 1, contextOriginal = _ctx;
565572
canvas.width = width * scale;
566573
canvas.height = height * scale;
567574
_ctx = canvas.getContext("2d");
568575
_ctx.scale(scale, scale);
569-
if (drawing.push) {
576+
if (Array.isArray(drawing)) {
570577
let x = 0, y = 0;
571578
_ctx.imageSmoothingEnabled = false;
572579
for (const str of drawing) {
@@ -743,7 +750,10 @@
743750
);
744751
DEV: assert(isNumber(pitchSlide), "sfx: 2nd param must be a number");
745752
DEV: assert(isNumber(volumeFactor), "sfx: 3rd param must be a number");
746-
if (root.zzfxV <= 0 || navigator.userActivation && !navigator.userActivation.hasBeenActive) {
753+
if (
754+
// @ts-ignore
755+
root.zzfxV <= 0 || navigator.userActivation && !navigator.userActivation.hasBeenActive
756+
) {
747757
return false;
748758
}
749759
zzfxParams = zzfxParams || _defaultSound;
@@ -771,9 +781,7 @@
771781
*
772782
* @returns {HTMLCanvasElement}
773783
*/
774-
canvas() {
775-
return _canvas;
776-
},
784+
canvas: () => _canvas,
777785
/**
778786
* Prepares a plugin to be loaded
779787
*
@@ -882,7 +890,7 @@
882890
* @returns {any}
883891
*/
884892
stat(n) {
885-
DEV: assert(isNumber(n) && n >= 0, "stat: 1st param must be a positive number");
893+
DEV: assert(isNumber(n) && n >= 0, "stat: 1st param must be a number");
886894
const list = [
887895
// 0
888896
settings,
@@ -901,6 +909,7 @@
901909
// 7
902910
_timeScale,
903911
// 8
912+
// @ts-ignore
904913
root.zzfxV || 1,
905914
// 9
906915
_rngSeed,
@@ -930,6 +939,7 @@
930939
}
931940
delete root.ENGINE;
932941
}
942+
_initialized = false;
933943
}
934944
};
935945
for (const k of "PI,sin,cos,atan2,hypot,tan,abs,ceil,floor,trunc,min,max,pow,sqrt,sign,exp".split(",")) {

public/sw.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const cacheName = "luizbills.litecanvas-editor-v1";
2-
const version = "2025.06.22.1";
2+
const version = "2025.06.23.0";
33

44
const precacheResources = [
55
"/",

0 commit comments

Comments
 (0)