@oh-just-another/renderer-canvas 0.60.0 → 0.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +54 -0
- package/README.md +7 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/layered-surface.d.ts.map +1 -1
- package/dist/layered-surface.js +11 -3
- package/dist/layered-surface.js.map +1 -1
- package/dist/recording-target.d.ts +20 -1
- package/dist/recording-target.d.ts.map +1 -1
- package/dist/recording-target.js +70 -5
- package/dist/recording-target.js.map +1 -1
- package/dist/render-worker.js +19 -7
- package/dist/render-worker.js.map +1 -1
- package/dist/replay-codec.d.ts +56 -0
- package/dist/replay-codec.d.ts.map +1 -0
- package/dist/replay-codec.js +543 -0
- package/dist/replay-codec.js.map +1 -0
- package/dist/tile-compositor.d.ts +9 -0
- package/dist/tile-compositor.d.ts.map +1 -1
- package/dist/tile-compositor.js +37 -3
- package/dist/tile-compositor.js.map +1 -1
- package/dist/webgl2-curve.d.ts +1 -2
- package/dist/webgl2-curve.d.ts.map +1 -1
- package/dist/webgl2-curve.js +21 -8
- package/dist/webgl2-curve.js.map +1 -1
- package/dist/webgl2-ellipse.d.ts +1 -2
- package/dist/webgl2-ellipse.d.ts.map +1 -1
- package/dist/webgl2-ellipse.js +18 -10
- package/dist/webgl2-ellipse.js.map +1 -1
- package/dist/webgl2-msdf-text.d.ts +1 -2
- package/dist/webgl2-msdf-text.d.ts.map +1 -1
- package/dist/webgl2-msdf-text.js +21 -8
- package/dist/webgl2-msdf-text.js.map +1 -1
- package/dist/webgl2-stroke.d.ts +8 -5
- package/dist/webgl2-stroke.d.ts.map +1 -1
- package/dist/webgl2-stroke.js +12 -7
- package/dist/webgl2-stroke.js.map +1 -1
- package/dist/webgl2-target.d.ts +32 -6
- package/dist/webgl2-target.d.ts.map +1 -1
- package/dist/webgl2-target.js +116 -38
- package/dist/webgl2-target.js.map +1 -1
- package/package.json +3 -3
package/dist/recording-target.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { LruCache, } from "@oh-just-another/renderer-core";
|
|
2
2
|
import { resolveBundledFamily } from "@oh-just-another/fonts";
|
|
3
3
|
import { OFFSCREEN_IMAGE_CACHE_CAP } from "./constants.js";
|
|
4
|
+
import { intrinsicImageSize, isDrawableImageSource } from "./image-source.js";
|
|
4
5
|
/**
|
|
5
6
|
* Backend-agnostic RenderTarget that captures every method call as a
|
|
6
7
|
* structured command. Powers the "offscreen" pipeline: the main thread
|
|
@@ -67,6 +68,10 @@ export class RecordingTarget {
|
|
|
67
68
|
* bitmap that reappears is simply re-defined under a fresh id.
|
|
68
69
|
*/
|
|
69
70
|
imageIds = new LruCache(OFFSCREEN_IMAGE_CACHE_CAP);
|
|
71
|
+
/** Monotonic generation counter for re-captured dynamic frames. */
|
|
72
|
+
captureGen = 0;
|
|
73
|
+
/** Scratch canvas reused to snapshot non-bitmap sources (video frames). */
|
|
74
|
+
captureCanvas = null;
|
|
70
75
|
nextImageId = 0;
|
|
71
76
|
/**
|
|
72
77
|
* Rolling 64-bit content signature (two 32-bit halves) of the commands
|
|
@@ -300,8 +305,7 @@ export class RecordingTarget {
|
|
|
300
305
|
this.measureCtx = ctx ?? null;
|
|
301
306
|
return this.measureCtx;
|
|
302
307
|
}
|
|
303
|
-
drawImage(image, dx, dy, dw, dh,
|
|
304
|
-
void _dynamic;
|
|
308
|
+
drawImage(image, dx, dy, dw, dh, dynamic) {
|
|
305
309
|
if (typeof ImageBitmap !== "undefined" && image instanceof ImageBitmap) {
|
|
306
310
|
let id = this.imageIds.get(image);
|
|
307
311
|
if (id === undefined) {
|
|
@@ -312,10 +316,64 @@ export class RecordingTarget {
|
|
|
312
316
|
this.emit({ k: "defineImage", id, bitmap: image });
|
|
313
317
|
}
|
|
314
318
|
this.emit({ k: "drawImage", id, dx, dy, dw, dh });
|
|
319
|
+
return;
|
|
315
320
|
}
|
|
316
|
-
|
|
317
|
-
|
|
321
|
+
if (isDrawableImageSource(image)) {
|
|
322
|
+
// Non-bitmap drawable (a <video> frame, <img>, canvas): the worker
|
|
323
|
+
// can't touch DOM elements, so snapshot the CURRENT pixels into an
|
|
324
|
+
// ImageBitmap it can own. Statics intern by source identity (captured
|
|
325
|
+
// once); dynamic sources (video, animated <img>) re-capture on every
|
|
326
|
+
// draw and re-define under the SAME id — the `gen` bump makes the
|
|
327
|
+
// signature differ so the frame reposts, and the worker closes the
|
|
328
|
+
// replaced bitmap.
|
|
329
|
+
let id = this.imageIds.get(image);
|
|
330
|
+
if (id === undefined || dynamic === true) {
|
|
331
|
+
const bitmap = this.captureBitmap(image);
|
|
332
|
+
if (!bitmap) {
|
|
333
|
+
this.skippedImageDraws++;
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (id === undefined) {
|
|
337
|
+
id = this.nextImageId++;
|
|
338
|
+
this.imageIds.set(image, id);
|
|
339
|
+
}
|
|
340
|
+
this.emit({ k: "defineImage", id, bitmap, gen: ++this.captureGen });
|
|
341
|
+
}
|
|
342
|
+
this.emit({ k: "drawImage", id, dx, dy, dw, dh });
|
|
343
|
+
return;
|
|
318
344
|
}
|
|
345
|
+
this.skippedImageDraws++;
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Synchronously snapshot a drawable source's current pixels into an
|
|
349
|
+
* ImageBitmap via a reused scratch OffscreenCanvas
|
|
350
|
+
* (`transferToImageBitmap` detaches the backing store, so the canvas is
|
|
351
|
+
* cheap to keep around). Returns `null` when the source has no pixels yet
|
|
352
|
+
* (a <video> before its first frame) or the environment lacks
|
|
353
|
+
* OffscreenCanvas.
|
|
354
|
+
*/
|
|
355
|
+
captureBitmap(source) {
|
|
356
|
+
if (typeof OffscreenCanvas === "undefined")
|
|
357
|
+
return null;
|
|
358
|
+
const size = intrinsicImageSize(source);
|
|
359
|
+
if (!size || size.width <= 0 || size.height <= 0)
|
|
360
|
+
return null;
|
|
361
|
+
// HAVE_CURRENT_DATA (2) is the earliest state with drawable pixels.
|
|
362
|
+
const video = source;
|
|
363
|
+
if (typeof video.readyState === "number" && video.readyState < 2)
|
|
364
|
+
return null;
|
|
365
|
+
this.captureCanvas ??= new OffscreenCanvas(size.width, size.height);
|
|
366
|
+
const canvas = this.captureCanvas;
|
|
367
|
+
if (canvas.width !== size.width || canvas.height !== size.height) {
|
|
368
|
+
canvas.width = size.width;
|
|
369
|
+
canvas.height = size.height;
|
|
370
|
+
}
|
|
371
|
+
const ctx = canvas.getContext("2d");
|
|
372
|
+
if (!ctx)
|
|
373
|
+
return null;
|
|
374
|
+
ctx.clearRect(0, 0, size.width, size.height);
|
|
375
|
+
ctx.drawImage(source, 0, 0);
|
|
376
|
+
return canvas.transferToImageBitmap();
|
|
319
377
|
}
|
|
320
378
|
clear(bounds) {
|
|
321
379
|
this.emit(bounds !== undefined ? { k: "clear", bounds } : { k: "clear" });
|
|
@@ -442,9 +500,16 @@ export const replayCommands = (target, commands, images = new LruCache(OFFSCREEN
|
|
|
442
500
|
// resizes via its own `resize` message, not via the command
|
|
443
501
|
// stream.
|
|
444
502
|
break;
|
|
445
|
-
case "defineImage":
|
|
503
|
+
case "defineImage": {
|
|
504
|
+
// Re-defining an id (re-captured video frame) replaces the stored
|
|
505
|
+
// bitmap; close the old clone so worker memory doesn't leak
|
|
506
|
+
// (LruCache.set does not fire onEvict for an overwrite).
|
|
507
|
+
const prev = images.get(cmd.id);
|
|
508
|
+
if (prev && prev !== cmd.bitmap)
|
|
509
|
+
prev.close();
|
|
446
510
|
images.set(cmd.id, cmd.bitmap);
|
|
447
511
|
break;
|
|
512
|
+
}
|
|
448
513
|
case "drawImage": {
|
|
449
514
|
// `get` bumps recency so the worker LRU evicts in lockstep with
|
|
450
515
|
// the recorder's. A miss means an out-of-sync stream — skip
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recording-target.js","sourceRoot":"","sources":["../src/recording-target.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recording-target.js","sourceRoot":"","sources":["../src/recording-target.ts"],"names":[],"mappings":"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"}
|
package/dist/render-worker.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { LruCache, installBuiltinRenderers, renderScene } from "@oh-just-another/renderer-core";
|
|
3
3
|
import { registerBundledFonts } from "@oh-just-another/fonts";
|
|
4
4
|
import { Canvas2DTarget } from "./canvas-target.js";
|
|
5
|
-
import {
|
|
5
|
+
import { replayPackedFrame } from "./replay-codec.js";
|
|
6
6
|
import { OFFSCREEN_IMAGE_CACHE_CAP } from "./constants.js";
|
|
7
7
|
const state = {
|
|
8
8
|
canvas: null,
|
|
@@ -77,17 +77,29 @@ const snapshot = (scene) => {
|
|
|
77
77
|
post({ type: "frame-done", bitmap }, [bitmap]);
|
|
78
78
|
};
|
|
79
79
|
/**
|
|
80
|
-
* Replay a
|
|
80
|
+
* Replay a packed RecordingTarget command stream onto the owned
|
|
81
81
|
* OffscreenCanvas. Used by the LayeredSurface "offscreen" backend: the
|
|
82
|
-
* main thread captures every RenderTarget call into a buffer
|
|
83
|
-
* it here per frame
|
|
82
|
+
* main thread captures every RenderTarget call into a buffer, packs it
|
|
83
|
+
* via `packReplayFrame`, and ships it here per frame (numeric stream in
|
|
84
|
+
* the transfer list, bitmaps cloned alongside); the worker replays.
|
|
84
85
|
*/
|
|
85
|
-
const replay = (
|
|
86
|
+
const replay = (msg) => {
|
|
86
87
|
if (!state.target) {
|
|
87
88
|
post({ type: "error", message: "Worker not initialised" });
|
|
88
89
|
return;
|
|
89
90
|
}
|
|
90
|
-
|
|
91
|
+
// Register this frame's bitmaps BEFORE replaying so the stream's
|
|
92
|
+
// drawImage id references resolve. These are worker-owned clones —
|
|
93
|
+
// the LRU's evict hook closes them.
|
|
94
|
+
for (const { id, bitmap } of msg.bitmaps) {
|
|
95
|
+
// A re-defined id (re-captured video frame) replaces the stored clone;
|
|
96
|
+
// close the old one — LruCache.set does not fire onEvict on overwrite.
|
|
97
|
+
const prev = state.images.get(id);
|
|
98
|
+
if (prev && prev !== bitmap)
|
|
99
|
+
prev.close();
|
|
100
|
+
state.images.set(id, bitmap);
|
|
101
|
+
}
|
|
102
|
+
replayPackedFrame(state.target, msg.buffer, msg.strings, state.images);
|
|
91
103
|
};
|
|
92
104
|
self.addEventListener("message", (ev) => {
|
|
93
105
|
const msg = ev.data;
|
|
@@ -105,7 +117,7 @@ self.addEventListener("message", (ev) => {
|
|
|
105
117
|
snapshot(msg.scene);
|
|
106
118
|
break;
|
|
107
119
|
case "replay":
|
|
108
|
-
replay(msg
|
|
120
|
+
replay(msg);
|
|
109
121
|
break;
|
|
110
122
|
case "frame":
|
|
111
123
|
// Patch-stream frames are not implemented; the protocol is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-worker.js","sourceRoot":"","sources":["../src/render-worker.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAGhG,OAAO,EAAE,oBAAoB,EAAkB,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"render-worker.js","sourceRoot":"","sources":["../src/render-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { LruCache, type RenderTarget } from "@oh-just-another/renderer-core";
|
|
2
|
+
import type { RenderCommand } from "./recording-target.js";
|
|
3
|
+
/** One `defineImage` payload carried alongside the numeric stream. */
|
|
4
|
+
export interface PackedFrameBitmap {
|
|
5
|
+
readonly id: number;
|
|
6
|
+
readonly bitmap: ImageBitmap;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Result of {@link packReplayFrame}: `buffer` is the transferable numeric
|
|
10
|
+
* stream, `strings` the per-frame deduplicated string table it indexes
|
|
11
|
+
* into, `bitmaps` the `defineImage` payloads (worker registers them BEFORE
|
|
12
|
+
* replaying the stream).
|
|
13
|
+
*/
|
|
14
|
+
export interface PackedReplayFrame {
|
|
15
|
+
readonly buffer: ArrayBuffer;
|
|
16
|
+
readonly strings: readonly string[];
|
|
17
|
+
readonly bitmaps: readonly PackedFrameBitmap[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* postMessage shape the offscreen surface posts per changed layer and the
|
|
21
|
+
* render worker consumes. `buffer` goes in the transfer list; `strings`
|
|
22
|
+
* are cloned (cheap — deduplicated); `bitmaps` are CLONED, never
|
|
23
|
+
* transferred — see {@link packReplayFrame}.
|
|
24
|
+
*/
|
|
25
|
+
export interface PackedReplayMessage {
|
|
26
|
+
readonly type: "replay";
|
|
27
|
+
readonly buffer: ArrayBuffer;
|
|
28
|
+
readonly strings: readonly string[];
|
|
29
|
+
readonly bitmaps: readonly PackedFrameBitmap[];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Flatten a flushed {@link RenderCommand} buffer into a transferable packed
|
|
33
|
+
* frame: one Float64 word per opcode / argument, strings deduplicated into
|
|
34
|
+
* a side table, enums and presence flags as small ints.
|
|
35
|
+
*
|
|
36
|
+
* `defineImage` commands emit nothing into the numeric stream; their
|
|
37
|
+
* `{ id, bitmap }` payloads are collected into `bitmaps` instead. The
|
|
38
|
+
* caller must post them WITHOUT a transfer-list entry so `postMessage`
|
|
39
|
+
* clones the pixels: the recorder's intern LRU still owns the source
|
|
40
|
+
* bitmap and will keep drawing it on later frames (GIF / video), so
|
|
41
|
+
* transferring (detaching) it would break the main thread's copy.
|
|
42
|
+
*/
|
|
43
|
+
export declare const packReplayFrame: (commands: readonly RenderCommand[]) => PackedReplayFrame;
|
|
44
|
+
/**
|
|
45
|
+
* Decode a packed frame and dispatch each command straight onto `target`
|
|
46
|
+
* in one pass — no intermediate {@link RenderCommand} objects.
|
|
47
|
+
*
|
|
48
|
+
* `images` is the worker's persistent id → bitmap LRU (mirrors the
|
|
49
|
+
* recorder's same-capacity intern LRU): the caller must have registered
|
|
50
|
+
* the frame's side bitmaps into it BEFORE calling. Semantics match
|
|
51
|
+
* {@link replayCommands}: `resize` is a no-op (the worker owns the canvas
|
|
52
|
+
* size via its own `resize` message) and a `drawImage` whose id misses the
|
|
53
|
+
* cache is skipped rather than thrown.
|
|
54
|
+
*/
|
|
55
|
+
export declare const replayPackedFrame: (target: RenderTarget, buffer: ArrayBuffer, strings: readonly string[], images?: LruCache<number, ImageBitmap>) => void;
|
|
56
|
+
//# sourceMappingURL=replay-codec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replay-codec.d.ts","sourceRoot":"","sources":["../src/replay-codec.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EAIR,KAAK,YAAY,EAGlB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA0G3D,sEAAsE;AACtE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAChD;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU,SAAS,aAAa,EAAE,KAAG,iBAgOpE,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,YAAY,EACpB,QAAQ,WAAW,EACnB,SAAS,SAAS,MAAM,EAAE,EAC1B,SAAQ,QAAQ,CAAC,MAAM,EAAE,WAAW,CAA2C,KAC9E,IAuLF,CAAC"}
|