@oh-just-another/renderer-canvas 0.59.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 +108 -0
- package/README.md +10 -7
- package/dist/.tsbuildinfo +1 -1
- package/dist/canvas-target.d.ts +6 -1
- package/dist/canvas-target.d.ts.map +1 -1
- package/dist/canvas-target.js +12 -2
- package/dist/canvas-target.js.map +1 -1
- package/dist/constants.d.ts +49 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +49 -0
- package/dist/constants.js.map +1 -1
- package/dist/hi-dpi.d.ts +10 -0
- package/dist/hi-dpi.d.ts.map +1 -1
- package/dist/hi-dpi.js +12 -1
- package/dist/hi-dpi.js.map +1 -1
- package/dist/image-source.d.ts +11 -0
- package/dist/image-source.d.ts.map +1 -1
- package/dist/image-source.js +20 -0
- package/dist/image-source.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/layered-canvas.d.ts +7 -1
- package/dist/layered-canvas.d.ts.map +1 -1
- package/dist/layered-canvas.js +6 -3
- package/dist/layered-canvas.js.map +1 -1
- package/dist/layered-surface.d.ts +16 -0
- package/dist/layered-surface.d.ts.map +1 -1
- package/dist/layered-surface.js +59 -14
- package/dist/layered-surface.js.map +1 -1
- package/dist/recording-target.d.ts +56 -13
- package/dist/recording-target.d.ts.map +1 -1
- package/dist/recording-target.js +229 -38
- 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 +52 -1
- package/dist/tile-compositor.d.ts.map +1 -1
- package/dist/tile-compositor.js +82 -5
- package/dist/tile-compositor.js.map +1 -1
- package/dist/webgl2-curve.d.ts +12 -2
- package/dist/webgl2-curve.d.ts.map +1 -1
- package/dist/webgl2-curve.js +168 -40
- package/dist/webgl2-curve.js.map +1 -1
- package/dist/webgl2-ellipse.d.ts +1 -29
- package/dist/webgl2-ellipse.d.ts.map +1 -1
- package/dist/webgl2-ellipse.js +35 -22
- package/dist/webgl2-ellipse.js.map +1 -1
- package/dist/webgl2-msdf-text.d.ts +15 -2
- package/dist/webgl2-msdf-text.d.ts.map +1 -1
- package/dist/webgl2-msdf-text.js +101 -9
- package/dist/webgl2-msdf-text.js.map +1 -1
- package/dist/webgl2-rect-batch.d.ts +81 -0
- package/dist/webgl2-rect-batch.d.ts.map +1 -0
- package/dist/webgl2-rect-batch.js +201 -0
- package/dist/webgl2-rect-batch.js.map +1 -0
- package/dist/webgl2-stroke.d.ts +14 -35
- package/dist/webgl2-stroke.d.ts.map +1 -1
- package/dist/webgl2-stroke.js +27 -30
- package/dist/webgl2-stroke.js.map +1 -1
- package/dist/webgl2-target.d.ts +95 -13
- package/dist/webgl2-target.d.ts.map +1 -1
- package/dist/webgl2-target.js +423 -230
- package/dist/webgl2-target.js.map +1 -1
- package/package.json +4 -3
package/dist/webgl2-target.d.ts
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import { type Bounds, type Color, type Transform, type Vec2 } from "@oh-just-another/types";
|
|
2
2
|
import type { FillRule, LineCap, LineJoin, RenderTarget, TextAlign, TextBaseline } from "@oh-just-another/renderer-core";
|
|
3
|
+
/** Construction options for {@link WebGL2Target}. */
|
|
4
|
+
export interface WebGL2TargetOptions {
|
|
5
|
+
/**
|
|
6
|
+
* Keep the drawing buffer contents across composites. Defaults to
|
|
7
|
+
* `true`, which the interactive editor requires — it clears + redraws
|
|
8
|
+
* only the dirty rect each frame and expects the rest of the previous
|
|
9
|
+
* frame to persist. Set `false` only when the host redraws the full
|
|
10
|
+
* frame every time (a Safari/iOS composite win). Does not affect PNG
|
|
11
|
+
* export / screenshots — those use a separate offscreen Canvas2D target.
|
|
12
|
+
*/
|
|
13
|
+
readonly preserveDrawingBuffer?: boolean;
|
|
14
|
+
}
|
|
3
15
|
/**
|
|
4
16
|
* WebGL2 RenderTarget. Implements clear, transform/state stack, path
|
|
5
17
|
* primitives (rect / polyline / ellipse / Bezier), fill, stroke, text
|
|
@@ -21,6 +33,15 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
21
33
|
* from `vbo` so the static unit quad never gets stomped.
|
|
22
34
|
*/
|
|
23
35
|
private readonly dynamicVbo;
|
|
36
|
+
/**
|
|
37
|
+
* VAO recording the solid program's `aPos` layout (2 × FLOAT, tight)
|
|
38
|
+
* on `dynamicVbo`. Recorded once in the constructor; the polygon /
|
|
39
|
+
* triangle-fan / stroke draws just bind it instead of re-issuing
|
|
40
|
+
* `enableVertexAttribArray` + `vertexAttribPointer` per draw. The
|
|
41
|
+
* earcut path's ELEMENT_ARRAY_BUFFER binding is captured by this VAO
|
|
42
|
+
* too (a single shared index buffer, bound lazily on first use).
|
|
43
|
+
*/
|
|
44
|
+
private readonly dynamicVao;
|
|
24
45
|
private readonly uTransformLoc;
|
|
25
46
|
private readonly uColorLoc;
|
|
26
47
|
private readonly uOpacityLoc;
|
|
@@ -52,10 +73,18 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
52
73
|
private textAlign;
|
|
53
74
|
private textBaseline;
|
|
54
75
|
/**
|
|
55
|
-
* Polyline path being assembled by moveTo / lineTo
|
|
56
|
-
* `
|
|
76
|
+
* Polyline path being assembled by moveTo / lineTo, as a flat
|
|
77
|
+
* growable `[x0, y0, x1, y1, ...]` buffer with a point-count cursor —
|
|
78
|
+
* no per-vertex `{x, y}` object churn on the hot path-building path.
|
|
79
|
+
* Cleared on `beginPath()`; consumed by `fill()` / `stroke()`.
|
|
80
|
+
* Per-instance (not module-level) so interleaved path building on two
|
|
81
|
+
* targets can't stomp each other. Capacity ratchets up, never shrinks.
|
|
57
82
|
*/
|
|
58
|
-
private
|
|
83
|
+
private pathXY;
|
|
84
|
+
/** Number of (x, y) points currently in `pathXY`. */
|
|
85
|
+
private pathPts;
|
|
86
|
+
/** Append one point to the flat path buffer, growing it if needed. */
|
|
87
|
+
private pushPathPoint;
|
|
59
88
|
/**
|
|
60
89
|
* Curve segments collected since the last `beginPath()`. Quadratic
|
|
61
90
|
* and cubic Bezier `*CurveTo` calls push here in addition to pushing
|
|
@@ -83,7 +112,18 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
83
112
|
* snapshot the path either.
|
|
84
113
|
*/
|
|
85
114
|
private readonly stack;
|
|
86
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Sharp-rect fill batcher — coalesces consecutive axis-aligned
|
|
117
|
+
* `rect()` + `fill()` calls into one `drawArraysInstanced` (B19). Any
|
|
118
|
+
* non-batchable draw (`stroke`, ellipse / polygon / curve fill, image,
|
|
119
|
+
* text) and every surface op (`clear`, `resize`, frame `present`)
|
|
120
|
+
* drain it first via {@link flushRectBatch}, so submission order —
|
|
121
|
+
* hence z-order — is preserved. The GL pipeline is created lazily on
|
|
122
|
+
* the first flush; a scene with no sharp rects never allocates it.
|
|
123
|
+
*/
|
|
124
|
+
private readonly rectBatch;
|
|
125
|
+
private rectPipeline;
|
|
126
|
+
constructor(canvas: HTMLCanvasElement | OffscreenCanvas, width: number, height: number, options?: WebGL2TargetOptions);
|
|
87
127
|
get size(): {
|
|
88
128
|
readonly width: number;
|
|
89
129
|
readonly height: number;
|
|
@@ -146,6 +186,8 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
146
186
|
quadraticCurveTo(cx: number, cy: number, x: number, y: number): void;
|
|
147
187
|
/** Cubic Bezier — same dual-track approach as quadratic. */
|
|
148
188
|
bezierCurveTo(c1x: number, c1y: number, c2x: number, c2y: number, x: number, y: number): void;
|
|
189
|
+
/** Last point of the flat path buffer as a fresh `{x, y}`, or `undefined`. */
|
|
190
|
+
private lastPathPoint;
|
|
149
191
|
/**
|
|
150
192
|
* World-unit tolerance that maps to ~`SCREEN_TOLERANCE_PX` on screen
|
|
151
193
|
* at the current transform. Used by every curve-flatten call so the
|
|
@@ -158,10 +200,22 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
158
200
|
* as a textured quad via a dedicated program created lazily on the
|
|
159
201
|
* first image call.
|
|
160
202
|
*/
|
|
161
|
-
drawImage(image: unknown, dx: number, dy: number, dw: number, dh: number, dynamic?: boolean
|
|
162
|
-
|
|
203
|
+
drawImage(image: unknown, dx: number, dy: number, dw: number, dh: number, dynamic?: boolean, crop?: {
|
|
204
|
+
readonly x: number;
|
|
205
|
+
readonly y: number;
|
|
206
|
+
readonly width: number;
|
|
207
|
+
readonly height: number;
|
|
208
|
+
}): void;
|
|
209
|
+
/**
|
|
210
|
+
* Image program + its static unit quad+UV VBO + recorded VAO. Built by
|
|
211
|
+
* `ensureImageProgram` — called from the constructor so a shader compile
|
|
212
|
+
* failure surfaces there (and triggers the backend fallback) rather than
|
|
213
|
+
* mid-frame on the first drawn image.
|
|
214
|
+
*/
|
|
163
215
|
private imageProgram;
|
|
216
|
+
private ensureImageProgram;
|
|
164
217
|
private imageQuadVbo;
|
|
218
|
+
private imageQuadVao;
|
|
165
219
|
/**
|
|
166
220
|
* `TexImageSource` → uploaded `WebGLTexture` cache. A plain `Map`
|
|
167
221
|
* with LRU eviction + explicit `gl.deleteTexture` (see
|
|
@@ -184,6 +238,15 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
184
238
|
* double-`gl.deleteTexture`'ing the same handle.
|
|
185
239
|
*/
|
|
186
240
|
private evictImageTexturesIfOverCap;
|
|
241
|
+
/**
|
|
242
|
+
* Synchronously release the GPU texture cached for `source` (B6). Hosts
|
|
243
|
+
* call this when an image is discarded or its bitmap replaced, so the VRAM
|
|
244
|
+
* is freed immediately instead of waiting for LRU pressure to reach the
|
|
245
|
+
* entry. No-op (returns `false`) for sources that were never uploaded.
|
|
246
|
+
* Text-bitmap-backed handles are owned by the text cache (its own evictor
|
|
247
|
+
* deletes them) and are left alone.
|
|
248
|
+
*/
|
|
249
|
+
invalidateImage(source: TexImageSource): boolean;
|
|
187
250
|
fill(_rule?: FillRule): void;
|
|
188
251
|
private curvePipeline;
|
|
189
252
|
private ellipsePipeline;
|
|
@@ -207,9 +270,9 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
207
270
|
* `bounds` wipes only the rectangle the editor's dirty-rect pass
|
|
208
271
|
* identified. Honouring `bounds` is mandatory — when the scene
|
|
209
272
|
* reference doesn't change, the editor sends a zero-area dirty rect
|
|
210
|
-
* and expects the previous frame to survive untouched.
|
|
273
|
+
* and expects the previous frame to survive untouched. The default
|
|
211
274
|
* `preserveDrawingBuffer: true` carries the persistent frame across
|
|
212
|
-
* composites.
|
|
275
|
+
* composites (see the constructor for the opt-out).
|
|
213
276
|
*
|
|
214
277
|
* For bounded clears the implementation flips on a scissor box so the
|
|
215
278
|
* clear is confined to the dirty rect, mirroring Canvas2D's
|
|
@@ -221,6 +284,8 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
221
284
|
setStroke(color: Color | null): void;
|
|
222
285
|
setStrokeWidth(width: number): void;
|
|
223
286
|
stroke(): void;
|
|
287
|
+
/** Route one flat polyline through the shared stroke pipeline. */
|
|
288
|
+
private strokePolylineFlat;
|
|
224
289
|
setLineCap(cap: LineCap): void;
|
|
225
290
|
setLineJoin(join: LineJoin): void;
|
|
226
291
|
setDashArray(dash: readonly number[] | null): void;
|
|
@@ -265,13 +330,30 @@ export declare class WebGL2Target implements RenderTarget {
|
|
|
265
330
|
*/
|
|
266
331
|
private fillTextMSDF;
|
|
267
332
|
/**
|
|
268
|
-
* Rebind the solid program
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
333
|
+
* Rebind the solid program after a draw that switched programs
|
|
334
|
+
* (image, MSDF text, curves, ellipse, polygon fill, triangle fan,
|
|
335
|
+
* rect batch). One GL call — the default VAO's `aPos` layout on the
|
|
336
|
+
* static unit-quad VBO was recorded once in the constructor and every
|
|
337
|
+
* pipeline restores the default VAO (`bindVertexArray(null)`) after
|
|
338
|
+
* its draw, so attribute state never needs re-declaring here.
|
|
273
339
|
*/
|
|
274
340
|
private restoreSolidProgram;
|
|
341
|
+
/**
|
|
342
|
+
* Draw any queued sharp-rect fill instances as one instanced call,
|
|
343
|
+
* then restore the solid-program plumbing. Called before every
|
|
344
|
+
* non-batchable draw and surface op to keep z-order intact, and from
|
|
345
|
+
* {@link flushBatch} at frame end. No-op when the queue is empty.
|
|
346
|
+
*/
|
|
347
|
+
private flushRectBatch;
|
|
348
|
+
/**
|
|
349
|
+
* Flush the deferred sharp-rect batch to the GPU. The host's
|
|
350
|
+
* `LayeredSurface.present()` calls this once per frame after the
|
|
351
|
+
* Editor finishes drawing, so trailing rect fills reach the
|
|
352
|
+
* framebuffer within the frame that queued them. Backends without a
|
|
353
|
+
* batcher (Canvas2D) have no equivalent — this is WebGL2-specific and
|
|
354
|
+
* not part of the `RenderTarget` interface.
|
|
355
|
+
*/
|
|
356
|
+
flushBatch(): void;
|
|
275
357
|
measureText(text: string): {
|
|
276
358
|
width: number;
|
|
277
359
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl2-target.d.ts","sourceRoot":"","sources":["../src/webgl2-target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,MAAM,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAE,KAAK,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EACV,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,EACb,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"webgl2-target.d.ts","sourceRoot":"","sources":["../src/webgl2-target.ts"],"names":[],"mappings":"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"}
|