@takumi-rs/wasm 0.64.0 → 0.65.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takumi-rs/wasm",
3
- "version": "0.64.0",
3
+ "version": "0.65.0",
4
4
  "keywords": [
5
5
  "image",
6
6
  "rendering",
@@ -59,6 +59,22 @@ 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
+
62
78
 
63
79
 
64
80
  export class AnimationFrameSource {
@@ -76,6 +92,7 @@ export class Renderer {
76
92
  * @deprecated use `loadFont` instead.
77
93
  */
78
94
  loadFontWithInfo(font: Font): void;
95
+ measure(node: AnyNode, options?: RenderOptions | null): MeasuredNode;
79
96
  constructor();
80
97
  putPersistentImage(data: ImageSource): void;
81
98
  render(node: AnyNode, options?: RenderOptions | null): Uint8Array;
@@ -105,6 +122,7 @@ export interface InitOutput {
105
122
  readonly renderer_clearImageStore: (a: number) => void;
106
123
  readonly renderer_loadFont: (a: number, b: number, c: number) => void;
107
124
  readonly renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
125
+ readonly renderer_measure: (a: number, b: number, c: number, d: number) => void;
108
126
  readonly renderer_new: () => number;
109
127
  readonly renderer_putPersistentImage: (a: number, b: number, c: number) => void;
110
128
  readonly renderer_render: (a: number, b: number, c: number, d: number) => void;
@@ -77,6 +77,26 @@ export class Renderer {
77
77
  wasm.__wbindgen_add_to_stack_pointer(16);
78
78
  }
79
79
  }
80
+ /**
81
+ * @param {AnyNode} node
82
+ * @param {RenderOptions | null} [options]
83
+ * @returns {MeasuredNode}
84
+ */
85
+ measure(node, options) {
86
+ try {
87
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
88
+ wasm.renderer_measure(retptr, this.__wbg_ptr, addHeapObject(node), isLikeNone(options) ? 0 : addHeapObject(options));
89
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
90
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
91
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
92
+ if (r2) {
93
+ throw takeObject(r1);
94
+ }
95
+ return takeObject(r0);
96
+ } finally {
97
+ wasm.__wbindgen_add_to_stack_pointer(16);
98
+ }
99
+ }
80
100
  constructor() {
81
101
  const ret = wasm.renderer_new();
82
102
  this.__wbg_ptr = ret >>> 0;
@@ -392,6 +412,14 @@ function __wbg_get_imports() {
392
412
  const ret = getObject(arg0).length;
393
413
  return ret;
394
414
  },
415
+ __wbg_new_361308b2356cecd0: function() {
416
+ const ret = new Object();
417
+ return addHeapObject(ret);
418
+ },
419
+ __wbg_new_3eb36ae241fe6f44: function() {
420
+ const ret = new Array();
421
+ return addHeapObject(ret);
422
+ },
395
423
  __wbg_new_72b49615380db768: function(arg0, arg1) {
396
424
  const ret = new Error(getStringFromWasm0(arg0, arg1));
397
425
  return addHeapObject(ret);
@@ -411,21 +439,32 @@ function __wbg_get_imports() {
411
439
  __wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0, arg1, arg2) {
412
440
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
413
441
  },
442
+ __wbg_set_3f1d0b984ed272ed: function(arg0, arg1, arg2) {
443
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
444
+ },
445
+ __wbg_set_f43e577aea94465b: function(arg0, arg1, arg2) {
446
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
447
+ },
414
448
  __wbg_value_0546255b415e96c1: function(arg0) {
415
449
  const ret = getObject(arg0).value;
416
450
  return addHeapObject(ret);
417
451
  },
418
452
  __wbindgen_cast_0000000000000001: function(arg0) {
453
+ // Cast intrinsic for `F64 -> Externref`.
454
+ const ret = arg0;
455
+ return addHeapObject(ret);
456
+ },
457
+ __wbindgen_cast_0000000000000002: function(arg0) {
419
458
  // Cast intrinsic for `I64 -> Externref`.
420
459
  const ret = arg0;
421
460
  return addHeapObject(ret);
422
461
  },
423
- __wbindgen_cast_0000000000000002: function(arg0, arg1) {
462
+ __wbindgen_cast_0000000000000003: function(arg0, arg1) {
424
463
  // Cast intrinsic for `Ref(String) -> Externref`.
425
464
  const ret = getStringFromWasm0(arg0, arg1);
426
465
  return addHeapObject(ret);
427
466
  },
428
- __wbindgen_cast_0000000000000003: function(arg0) {
467
+ __wbindgen_cast_0000000000000004: function(arg0) {
429
468
  // Cast intrinsic for `U64 -> Externref`.
430
469
  const ret = BigInt.asUintN(64, arg0);
431
470
  return addHeapObject(ret);
Binary file
@@ -8,6 +8,7 @@ export const collectNodeFetchTasks: (a: number, b: number) => void;
8
8
  export const renderer_clearImageStore: (a: number) => void;
9
9
  export const renderer_loadFont: (a: number, b: number, c: number) => void;
10
10
  export const renderer_loadFontWithInfo: (a: number, b: number, c: number) => void;
11
+ export const renderer_measure: (a: number, b: number, c: number, d: number) => void;
11
12
  export const renderer_new: () => number;
12
13
  export const renderer_putPersistentImage: (a: number, b: number, c: number) => void;
13
14
  export const renderer_render: (a: number, b: number, c: number, d: number) => void;