@oh-just-another/renderer-core 0.58.0 → 0.59.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 +49 -0
- package/README.md +2 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/animation-adapter.d.ts +14 -5
- package/dist/animation-adapter.d.ts.map +1 -1
- package/dist/animation-adapter.js +6 -0
- package/dist/animation-adapter.js.map +1 -1
- package/dist/built-in-renderers.d.ts.map +1 -1
- package/dist/built-in-renderers.js +127 -23
- package/dist/built-in-renderers.js.map +1 -1
- package/dist/dim-target.d.ts +20 -0
- package/dist/dim-target.d.ts.map +1 -0
- package/dist/dim-target.js +37 -0
- package/dist/dim-target.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/render-target.d.ts +12 -1
- package/dist/render-target.d.ts.map +1 -1
- package/dist/scene-renderer.d.ts +8 -0
- package/dist/scene-renderer.d.ts.map +1 -1
- package/dist/scene-renderer.js +27 -10
- package/dist/scene-renderer.js.map +1 -1
- package/dist/shape-renderer.d.ts +9 -0
- package/dist/shape-renderer.d.ts.map +1 -1
- package/dist/shape-renderer.js.map +1 -1
- package/dist/wasm-bytes.d.ts +13 -0
- package/dist/wasm-bytes.d.ts.map +1 -1
- package/dist/wasm-bytes.js +40 -0
- package/dist/wasm-bytes.js.map +1 -1
- package/package.json +2 -2
package/dist/wasm-bytes.d.ts
CHANGED
|
@@ -10,6 +10,19 @@
|
|
|
10
10
|
* `"WasmRasterizer.loadModule"`).
|
|
11
11
|
*/
|
|
12
12
|
export declare const fetchModuleBytes: (source: string | URL | ArrayBuffer | Uint8Array | Response, context: string) => Promise<ArrayBuffer>;
|
|
13
|
+
/**
|
|
14
|
+
* Instantiate a WASM module, preferring `WebAssembly.instantiateStreaming`
|
|
15
|
+
* when the source is a fetchable http(s) URL / Response — compilation
|
|
16
|
+
* overlaps the download and skips the intermediate ArrayBuffer copy.
|
|
17
|
+
* Falls back to the buffered `fetchModuleBytes` + `instantiate` path for
|
|
18
|
+
* raw bytes, `file://` URLs (Node reads them from disk), hosts without
|
|
19
|
+
* `instantiateStreaming`, or servers that mis-serve the wasm MIME type
|
|
20
|
+
* (streaming compilation requires `application/wasm`).
|
|
21
|
+
*
|
|
22
|
+
* Shared by every wasm-backed package (`raster-wasm`, `text-wasm`) so
|
|
23
|
+
* the streaming-with-fallback policy lives in one place.
|
|
24
|
+
*/
|
|
25
|
+
export declare const instantiateWasm: (source: string | URL | ArrayBuffer | Uint8Array | Response, context: string) => Promise<WebAssembly.Instance>;
|
|
13
26
|
/** Minimal WASM bump-allocator surface used for FFI marshalling. */
|
|
14
27
|
export interface WasmArena {
|
|
15
28
|
readonly alloc: (size: number) => number;
|
package/dist/wasm-bytes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-bytes.d.ts","sourceRoot":"","sources":["../src/wasm-bytes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wasm-bytes.d.ts","sourceRoot":"","sources":["../src/wasm-bytes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,EAC1D,SAAS,MAAM,KACd,OAAO,CAAC,WAAW,CAuBrB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,GAAG,GAAG,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,EAC1D,SAAS,MAAM,KACd,OAAO,CAAC,WAAW,CAAC,QAAQ,CAsB9B,CAAC;AAEF,oEAAoE;AACpE,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;KAAE,CAAC;CACvD;AAED,6FAA6F;AAC7F,eAAO,MAAM,UAAU,GACrB,MAAM,SAAS,EACf,OAAO,UAAU,KAChB;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAA;CAWzE,CAAC"}
|
package/dist/wasm-bytes.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
/* ^ TypeScript ships the `WebAssembly` namespace types only inside
|
|
3
|
+
* lib.dom / lib.webworker; the API itself is a pure JS-engine global
|
|
4
|
+
* (present in Node and browsers alike), so this is a types-only opt-in
|
|
5
|
+
* — no DOM value is used by this module or package. */
|
|
1
6
|
/**
|
|
2
7
|
* Normalise a wasm module source into raw bytes.
|
|
3
8
|
*
|
|
@@ -32,6 +37,41 @@ export const fetchModuleBytes = async (source, context) => {
|
|
|
32
37
|
}
|
|
33
38
|
return res.arrayBuffer();
|
|
34
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Instantiate a WASM module, preferring `WebAssembly.instantiateStreaming`
|
|
42
|
+
* when the source is a fetchable http(s) URL / Response — compilation
|
|
43
|
+
* overlaps the download and skips the intermediate ArrayBuffer copy.
|
|
44
|
+
* Falls back to the buffered `fetchModuleBytes` + `instantiate` path for
|
|
45
|
+
* raw bytes, `file://` URLs (Node reads them from disk), hosts without
|
|
46
|
+
* `instantiateStreaming`, or servers that mis-serve the wasm MIME type
|
|
47
|
+
* (streaming compilation requires `application/wasm`).
|
|
48
|
+
*
|
|
49
|
+
* Shared by every wasm-backed package (`raster-wasm`, `text-wasm`) so
|
|
50
|
+
* the streaming-with-fallback policy lives in one place.
|
|
51
|
+
*/
|
|
52
|
+
export const instantiateWasm = async (source, context) => {
|
|
53
|
+
const streamable = typeof WebAssembly.instantiateStreaming === "function" &&
|
|
54
|
+
(source instanceof Response ||
|
|
55
|
+
((typeof source === "string" || source instanceof URL) &&
|
|
56
|
+
!String(source).startsWith("file:")));
|
|
57
|
+
if (streamable) {
|
|
58
|
+
try {
|
|
59
|
+
// Clone a passed-in Response so the buffered fallback can still
|
|
60
|
+
// consume the original body if streaming compilation rejects.
|
|
61
|
+
const res = source instanceof Response ? source.clone() : await fetch(source);
|
|
62
|
+
const { instance } = await WebAssembly.instantiateStreaming(res, {});
|
|
63
|
+
return instance;
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// Fall through to the buffered path — it re-fetches (or reads the
|
|
67
|
+
// original Response) and surfaces the real compile error if the
|
|
68
|
+
// module itself is broken.
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const bytes = await fetchModuleBytes(source, context);
|
|
72
|
+
const { instance } = await WebAssembly.instantiate(bytes, {});
|
|
73
|
+
return instance;
|
|
74
|
+
};
|
|
35
75
|
/** Copy `bytes` into freshly-alloc'd WASM memory; returns the pointer + a `free` cleanup. */
|
|
36
76
|
export const allocBytes = (wasm, bytes) => {
|
|
37
77
|
const len = bytes.byteLength;
|
package/dist/wasm-bytes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasm-bytes.js","sourceRoot":"","sources":["../src/wasm-bytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,MAA0D,EAC1D,OAAe,EACO,EAAE;IACxB,IAAI,MAAM,YAAY,WAAW;QAAE,OAAO,MAAM,CAAC;IACjD,IAAI,MAAM,YAAY,UAAU,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CACxB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CACvB,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,YAAY,QAAQ;QAAE,OAAO,MAAM,CAAC,WAAW,EAAE,CAAC;IAC5D,iEAAiE;IACjE,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;IACjE,IAAI,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mBAAmB,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC;AAC3B,CAAC,CAAC;AASF,6FAA6F;AAC7F,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,IAAe,EACf,KAAiB,EAC0D,EAAE;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO;QACL,GAAG;QACH,GAAG;QACH,IAAI,EAAE,GAAG,EAAE;YACT,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"wasm-bytes.js","sourceRoot":"","sources":["../src/wasm-bytes.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@oh-just-another/renderer-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.59.0",
|
|
4
4
|
"description": "Backend-agnostic rendering abstraction: a RenderTarget surface, an element-renderer registry, and a Scene walker.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Rustam Garifulin <rustam@n69.in>",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@oh-just-another/types": "0.57.0",
|
|
43
43
|
"@oh-just-another/math": "0.58.0",
|
|
44
|
-
"@oh-just-another/scene": "0.
|
|
44
|
+
"@oh-just-another/scene": "0.60.0",
|
|
45
45
|
"@oh-just-another/tokens": "0.57.0"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|