@takumi-rs/wasm 0.64.1 → 0.66.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/bundlers/node.cjs +10 -0
- package/bundlers/node.d.ts +1 -0
- package/bundlers/node.mjs +15 -0
- package/package.json +15 -1
- package/pkg/takumi_wasm.d.ts +23 -8
- package/pkg/takumi_wasm.js +48 -39
- package/pkg/takumi_wasm_bg.wasm +0 -0
- package/pkg/takumi_wasm_bg.wasm.d.ts +2 -3
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
const wasm = require("../pkg/takumi_wasm");
|
|
2
|
+
const { readFileSync } = require("node:fs");
|
|
3
|
+
const { join } = require("node:path");
|
|
4
|
+
|
|
5
|
+
const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
|
|
6
|
+
const wasmBytes = readFileSync(wasmPath);
|
|
7
|
+
|
|
8
|
+
wasm.initSync(wasmBytes);
|
|
9
|
+
|
|
10
|
+
module.exports = wasm;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "../pkg/takumi_wasm";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { initSync } from "../pkg/takumi_wasm";
|
|
5
|
+
|
|
6
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
7
|
+
const __dirname = dirname(__filename);
|
|
8
|
+
|
|
9
|
+
const wasmPath = join(__dirname, "../pkg/takumi_wasm_bg.wasm");
|
|
10
|
+
const wasmBytes = readFileSync(wasmPath);
|
|
11
|
+
|
|
12
|
+
initSync(wasmBytes);
|
|
13
|
+
|
|
14
|
+
export * from "../pkg/takumi_wasm";
|
|
15
|
+
export { default } from "../pkg/takumi_wasm";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takumi-rs/wasm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.0",
|
|
4
4
|
"keywords": [
|
|
5
5
|
"image",
|
|
6
6
|
"rendering",
|
|
@@ -30,9 +30,23 @@
|
|
|
30
30
|
},
|
|
31
31
|
"exports": {
|
|
32
32
|
".": {
|
|
33
|
+
"node": {
|
|
34
|
+
"types": "./bundlers/node.d.ts",
|
|
35
|
+
"import": "./bundlers/node.mjs",
|
|
36
|
+
"require": "./bundlers/node.cjs"
|
|
37
|
+
},
|
|
33
38
|
"types": "./pkg/takumi_wasm.d.ts",
|
|
34
39
|
"default": "./pkg/takumi_wasm.js"
|
|
35
40
|
},
|
|
41
|
+
"./no-bundler": {
|
|
42
|
+
"types": "./pkg/takumi_wasm.d.ts",
|
|
43
|
+
"default": "./pkg/takumi_wasm.js"
|
|
44
|
+
},
|
|
45
|
+
"./node": {
|
|
46
|
+
"types": "./node.d.ts",
|
|
47
|
+
"import": "./node.mjs",
|
|
48
|
+
"require": "./node.cjs"
|
|
49
|
+
},
|
|
36
50
|
"./takumi_wasm_bg.wasm": {
|
|
37
51
|
"types": "./pkg/takumi_wasm_bg.wasm.d.ts",
|
|
38
52
|
"default": "./pkg/takumi_wasm_bg.wasm"
|
package/pkg/takumi_wasm.d.ts
CHANGED
|
@@ -59,13 +59,28 @@ export type ImageSource = {
|
|
|
59
59
|
|
|
60
60
|
export type Font = FontDetails | ByteBuf;
|
|
61
61
|
|
|
62
|
+
export type MeasuredTextRun = {
|
|
63
|
+
text: string,
|
|
64
|
+
x: number,
|
|
65
|
+
y: number,
|
|
66
|
+
width: number,
|
|
67
|
+
height: number,
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export type MeasuredNode = {
|
|
71
|
+
width: number,
|
|
72
|
+
height: number,
|
|
73
|
+
transform: [number, number, number, number, number, number],
|
|
74
|
+
children: MeasuredNode[],
|
|
75
|
+
runs: MeasuredTextRun[],
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export type AnimationFrameSource = {
|
|
79
|
+
node: AnyNode,
|
|
80
|
+
durationMs: number,
|
|
81
|
+
};
|
|
62
82
|
|
|
63
83
|
|
|
64
|
-
export class AnimationFrameSource {
|
|
65
|
-
free(): void;
|
|
66
|
-
[Symbol.dispose](): void;
|
|
67
|
-
constructor(node: AnyNode, durationMs: number);
|
|
68
|
-
}
|
|
69
84
|
|
|
70
85
|
export class Renderer {
|
|
71
86
|
free(): void;
|
|
@@ -76,6 +91,7 @@ export class Renderer {
|
|
|
76
91
|
* @deprecated use `loadFont` instead.
|
|
77
92
|
*/
|
|
78
93
|
loadFontWithInfo(font: Font): void;
|
|
94
|
+
measure(node: AnyNode, options?: RenderOptions | null): MeasuredNode;
|
|
79
95
|
constructor();
|
|
80
96
|
putPersistentImage(data: ImageSource): void;
|
|
81
97
|
render(node: AnyNode, options?: RenderOptions | null): Uint8Array;
|
|
@@ -98,13 +114,12 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
98
114
|
|
|
99
115
|
export interface InitOutput {
|
|
100
116
|
readonly memory: WebAssembly.Memory;
|
|
101
|
-
readonly __wbg_animationframesource_free: (a: number, b: number) => void;
|
|
102
117
|
readonly __wbg_renderer_free: (a: number, b: number) => void;
|
|
103
|
-
readonly animationframesource_new: (a: number, b: number) => number;
|
|
104
118
|
readonly collectNodeFetchTasks: (a: number, b: number) => void;
|
|
105
119
|
readonly renderer_clearImageStore: (a: number) => void;
|
|
106
120
|
readonly renderer_loadFont: (a: number, b: number, c: number) => void;
|
|
107
121
|
readonly renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
|
|
122
|
+
readonly renderer_measure: (a: number, b: number, c: number, d: number) => void;
|
|
108
123
|
readonly renderer_new: () => number;
|
|
109
124
|
readonly renderer_putPersistentImage: (a: number, b: number, c: number) => void;
|
|
110
125
|
readonly renderer_render: (a: number, b: number, c: number, d: number) => void;
|
|
@@ -114,8 +129,8 @@ export interface InitOutput {
|
|
|
114
129
|
readonly __wbindgen_export: (a: number, b: number) => number;
|
|
115
130
|
readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
116
131
|
readonly __wbindgen_export3: (a: number) => void;
|
|
117
|
-
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
118
132
|
readonly __wbindgen_export4: (a: number, b: number, c: number) => void;
|
|
133
|
+
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
119
134
|
}
|
|
120
135
|
|
|
121
136
|
export type SyncInitInput = BufferSource | WebAssembly.Module;
|
package/pkg/takumi_wasm.js
CHANGED
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
/* @ts-self-types="./takumi_wasm.d.ts" */
|
|
2
2
|
|
|
3
|
-
export class AnimationFrameSource {
|
|
4
|
-
static __unwrap(jsValue) {
|
|
5
|
-
if (!(jsValue instanceof AnimationFrameSource)) {
|
|
6
|
-
return 0;
|
|
7
|
-
}
|
|
8
|
-
return jsValue.__destroy_into_raw();
|
|
9
|
-
}
|
|
10
|
-
__destroy_into_raw() {
|
|
11
|
-
const ptr = this.__wbg_ptr;
|
|
12
|
-
this.__wbg_ptr = 0;
|
|
13
|
-
AnimationFrameSourceFinalization.unregister(this);
|
|
14
|
-
return ptr;
|
|
15
|
-
}
|
|
16
|
-
free() {
|
|
17
|
-
const ptr = this.__destroy_into_raw();
|
|
18
|
-
wasm.__wbg_animationframesource_free(ptr, 0);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @param {AnyNode} node
|
|
22
|
-
* @param {number} durationMs
|
|
23
|
-
*/
|
|
24
|
-
constructor(node, durationMs) {
|
|
25
|
-
const ret = wasm.animationframesource_new(addHeapObject(node), durationMs);
|
|
26
|
-
this.__wbg_ptr = ret >>> 0;
|
|
27
|
-
AnimationFrameSourceFinalization.register(this, this.__wbg_ptr, this);
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (Symbol.dispose) AnimationFrameSource.prototype[Symbol.dispose] = AnimationFrameSource.prototype.free;
|
|
32
|
-
|
|
33
3
|
export class Renderer {
|
|
34
4
|
__destroy_into_raw() {
|
|
35
5
|
const ptr = this.__wbg_ptr;
|
|
@@ -77,6 +47,26 @@ export class Renderer {
|
|
|
77
47
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
78
48
|
}
|
|
79
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* @param {AnyNode} node
|
|
52
|
+
* @param {RenderOptions | null} [options]
|
|
53
|
+
* @returns {MeasuredNode}
|
|
54
|
+
*/
|
|
55
|
+
measure(node, options) {
|
|
56
|
+
try {
|
|
57
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
58
|
+
wasm.renderer_measure(retptr, this.__wbg_ptr, addHeapObject(node), isLikeNone(options) ? 0 : addHeapObject(options));
|
|
59
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
60
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
61
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
62
|
+
if (r2) {
|
|
63
|
+
throw takeObject(r1);
|
|
64
|
+
}
|
|
65
|
+
return takeObject(r0);
|
|
66
|
+
} finally {
|
|
67
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
80
70
|
constructor() {
|
|
81
71
|
const ret = wasm.renderer_new();
|
|
82
72
|
this.__wbg_ptr = ret >>> 0;
|
|
@@ -314,10 +304,6 @@ function __wbg_get_imports() {
|
|
|
314
304
|
__wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) {
|
|
315
305
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
316
306
|
},
|
|
317
|
-
__wbg_animationframesource_unwrap: function(arg0) {
|
|
318
|
-
const ret = AnimationFrameSource.__unwrap(getObject(arg0));
|
|
319
|
-
return ret;
|
|
320
|
-
},
|
|
321
307
|
__wbg_call_389efe28435a9388: function() { return handleError(function (arg0, arg1) {
|
|
322
308
|
const ret = getObject(arg0).call(getObject(arg1));
|
|
323
309
|
return addHeapObject(ret);
|
|
@@ -392,6 +378,14 @@ function __wbg_get_imports() {
|
|
|
392
378
|
const ret = getObject(arg0).length;
|
|
393
379
|
return ret;
|
|
394
380
|
},
|
|
381
|
+
__wbg_new_361308b2356cecd0: function() {
|
|
382
|
+
const ret = new Object();
|
|
383
|
+
return addHeapObject(ret);
|
|
384
|
+
},
|
|
385
|
+
__wbg_new_3eb36ae241fe6f44: function() {
|
|
386
|
+
const ret = new Array();
|
|
387
|
+
return addHeapObject(ret);
|
|
388
|
+
},
|
|
395
389
|
__wbg_new_72b49615380db768: function(arg0, arg1) {
|
|
396
390
|
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
|
397
391
|
return addHeapObject(ret);
|
|
@@ -411,25 +405,43 @@ function __wbg_get_imports() {
|
|
|
411
405
|
__wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) {
|
|
412
406
|
Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
|
|
413
407
|
},
|
|
408
|
+
__wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
|
|
409
|
+
getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
|
|
410
|
+
},
|
|
411
|
+
__wbg_set_f43e577aea94465b: function(arg0, arg1, arg2) {
|
|
412
|
+
getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
|
|
413
|
+
},
|
|
414
414
|
__wbg_value_0546255b415e96c1: function(arg0) {
|
|
415
415
|
const ret = getObject(arg0).value;
|
|
416
416
|
return addHeapObject(ret);
|
|
417
417
|
},
|
|
418
418
|
__wbindgen_cast_0000000000000001: function(arg0) {
|
|
419
|
+
// Cast intrinsic for `F64 -> Externref`.
|
|
420
|
+
const ret = arg0;
|
|
421
|
+
return addHeapObject(ret);
|
|
422
|
+
},
|
|
423
|
+
__wbindgen_cast_0000000000000002: function(arg0) {
|
|
419
424
|
// Cast intrinsic for `I64 -> Externref`.
|
|
420
425
|
const ret = arg0;
|
|
421
426
|
return addHeapObject(ret);
|
|
422
427
|
},
|
|
423
|
-
|
|
428
|
+
__wbindgen_cast_0000000000000003: function(arg0, arg1) {
|
|
424
429
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
425
430
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
426
431
|
return addHeapObject(ret);
|
|
427
432
|
},
|
|
428
|
-
|
|
433
|
+
__wbindgen_cast_0000000000000004: function(arg0) {
|
|
429
434
|
// Cast intrinsic for `U64 -> Externref`.
|
|
430
435
|
const ret = BigInt.asUintN(64, arg0);
|
|
431
436
|
return addHeapObject(ret);
|
|
432
437
|
},
|
|
438
|
+
__wbindgen_cast_0000000000000005: function(arg0, arg1) {
|
|
439
|
+
var v0 = getArrayJsValueFromWasm0(arg0, arg1).slice();
|
|
440
|
+
wasm.__wbindgen_export4(arg0, arg1 * 4, 4);
|
|
441
|
+
// Cast intrinsic for `Vector(NamedExternref("AnimationFrameSource")) -> Externref`.
|
|
442
|
+
const ret = v0;
|
|
443
|
+
return addHeapObject(ret);
|
|
444
|
+
},
|
|
433
445
|
__wbindgen_object_clone_ref: function(arg0) {
|
|
434
446
|
const ret = getObject(arg0);
|
|
435
447
|
return addHeapObject(ret);
|
|
@@ -444,9 +456,6 @@ function __wbg_get_imports() {
|
|
|
444
456
|
};
|
|
445
457
|
}
|
|
446
458
|
|
|
447
|
-
const AnimationFrameSourceFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
448
|
-
? { register: () => {}, unregister: () => {} }
|
|
449
|
-
: new FinalizationRegistry(ptr => wasm.__wbg_animationframesource_free(ptr >>> 0, 1));
|
|
450
459
|
const RendererFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
451
460
|
? { register: () => {}, unregister: () => {} }
|
|
452
461
|
: new FinalizationRegistry(ptr => wasm.__wbg_renderer_free(ptr >>> 0, 1));
|
package/pkg/takumi_wasm_bg.wasm
CHANGED
|
Binary file
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/* tslint:disable */
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
|
-
export const __wbg_animationframesource_free: (a: number, b: number) => void;
|
|
5
4
|
export const __wbg_renderer_free: (a: number, b: number) => void;
|
|
6
|
-
export const animationframesource_new: (a: number, b: number) => number;
|
|
7
5
|
export const collectNodeFetchTasks: (a: number, b: number) => void;
|
|
8
6
|
export const renderer_clearImageStore: (a: number) => void;
|
|
9
7
|
export const renderer_loadFont: (a: number, b: number, c: number) => void;
|
|
10
8
|
export const renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
|
|
9
|
+
export const renderer_measure: (a: number, b: number, c: number, d: number) => void;
|
|
11
10
|
export const renderer_new: () => number;
|
|
12
11
|
export const renderer_putPersistentImage: (a: number, b: number, c: number) => void;
|
|
13
12
|
export const renderer_render: (a: number, b: number, c: number, d: number) => void;
|
|
@@ -17,5 +16,5 @@ export const extractResourceUrls: (a: number, b: number) => void;
|
|
|
17
16
|
export const __wbindgen_export: (a: number, b: number) => number;
|
|
18
17
|
export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
|
|
19
18
|
export const __wbindgen_export3: (a: number) => void;
|
|
20
|
-
export const __wbindgen_add_to_stack_pointer: (a: number) => number;
|
|
21
19
|
export const __wbindgen_export4: (a: number, b: number, c: number) => void;
|
|
20
|
+
export const __wbindgen_add_to_stack_pointer: (a: number) => number;
|