@reearth/ezu 0.2.0 → 0.3.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/README.md +74 -24
- package/bundler/ezu.d.ts +30 -44
- package/bundler/ezu_bg.js +78 -157
- package/bundler/ezu_bg.wasm +0 -0
- package/bundler/ezu_bg.wasm.d.ts +4 -10
- package/nodejs/ezu.d.ts +30 -44
- package/nodejs/ezu.js +78 -157
- package/nodejs/ezu_bg.wasm +0 -0
- package/nodejs/ezu_bg.wasm.d.ts +4 -10
- package/package.json +9 -2
- package/web/ezu.d.ts +34 -54
- package/web/ezu.js +78 -157
- package/web/ezu_bg.wasm +0 -0
- package/web/ezu_bg.wasm.d.ts +4 -10
package/nodejs/ezu.js
CHANGED
|
@@ -112,18 +112,50 @@ class Renderer {
|
|
|
112
112
|
wasm.__wbg_renderer_free(ptr, 0);
|
|
113
113
|
}
|
|
114
114
|
/**
|
|
115
|
-
*
|
|
116
|
-
*
|
|
115
|
+
* Bind raw tile bytes under a `sources.<name>` entry from the style.
|
|
116
|
+
* The renderer dispatches on the source's declared `type`:
|
|
117
|
+
*
|
|
118
|
+
* - `mvt` / `pmtiles` → decode MVT layers eagerly; layers are bound
|
|
119
|
+
* as `tile.<layer>` when [`render_tile`] runs.
|
|
120
|
+
* - `dem` → store the raw raster-DEM bytes per `(dx, dy)` neighbour
|
|
121
|
+
* offset. The centre tile is `coord: [0, 0]` (default). Decoding
|
|
122
|
+
* and 3×3 stitching happen at render time once the tile id is known.
|
|
123
|
+
*
|
|
124
|
+
* `opts` is a JS object: `{ coord?: [dx, dy] }`. Throws
|
|
125
|
+
* `UnknownSource` if `name` doesn't match any entry in the style's
|
|
126
|
+
* `sources` block, `MvtDecode` if MVT bytes don't parse, and
|
|
127
|
+
* `DemDecode` for non-image DEM bytes (the decode itself runs at
|
|
128
|
+
* render time, but obvious cases are caught here).
|
|
129
|
+
* @param {string} name
|
|
130
|
+
* @param {Uint8Array} bytes
|
|
131
|
+
* @param {object | null} [opts]
|
|
117
132
|
*/
|
|
118
|
-
|
|
119
|
-
const
|
|
120
|
-
|
|
133
|
+
bindSource(name, bytes, opts) {
|
|
134
|
+
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);
|
|
135
|
+
const len0 = WASM_VECTOR_LEN;
|
|
136
|
+
const ptr1 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc_command_export);
|
|
137
|
+
const len1 = WASM_VECTOR_LEN;
|
|
138
|
+
const ret = wasm.renderer_bindSource(this.__wbg_ptr, ptr0, len0, ptr1, len1, isLikeNone(opts) ? 0 : addToExternrefTable0(opts));
|
|
139
|
+
if (ret[1]) {
|
|
140
|
+
throw takeFromExternrefTable0(ret[0]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Names of every source with at least one pending binding.
|
|
145
|
+
* Order matches the style's `sources` declaration order.
|
|
146
|
+
* @returns {string[]}
|
|
147
|
+
*/
|
|
148
|
+
boundSources() {
|
|
149
|
+
const ret = wasm.renderer_boundSources(this.__wbg_ptr);
|
|
150
|
+
var v1 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice();
|
|
151
|
+
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 4, 4);
|
|
152
|
+
return v1;
|
|
121
153
|
}
|
|
122
154
|
/**
|
|
123
|
-
* Drop every
|
|
155
|
+
* Drop every pending source binding. Call between tile renders.
|
|
124
156
|
*/
|
|
125
|
-
|
|
126
|
-
wasm.
|
|
157
|
+
clearSources() {
|
|
158
|
+
wasm.renderer_clearSources(this.__wbg_ptr);
|
|
127
159
|
}
|
|
128
160
|
/**
|
|
129
161
|
* Build a renderer from a style JSON document.
|
|
@@ -141,157 +173,31 @@ class Renderer {
|
|
|
141
173
|
return this;
|
|
142
174
|
}
|
|
143
175
|
/**
|
|
144
|
-
*
|
|
145
|
-
* `src: "@name"` (via the style's `assets` map) resolves to it.
|
|
146
|
-
* Re-registering the same name replaces the previous entry.
|
|
147
|
-
* @param {string} name
|
|
148
|
-
* @param {string} myb_json
|
|
149
|
-
*/
|
|
150
|
-
registerBrush(name, myb_json) {
|
|
151
|
-
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);
|
|
152
|
-
const len0 = WASM_VECTOR_LEN;
|
|
153
|
-
const ptr1 = passStringToWasm0(myb_json, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);
|
|
154
|
-
const len1 = WASM_VECTOR_LEN;
|
|
155
|
-
const ret = wasm.renderer_registerBrush(this.__wbg_ptr, ptr0, len0, ptr1, len1);
|
|
156
|
-
if (ret[1]) {
|
|
157
|
-
throw takeFromExternrefTable0(ret[0]);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Render a single tile to PNG bytes using the style's `tile-size` / `pad`.
|
|
162
|
-
* Pass `null` for `mvtBytes` to get a paper-only tile.
|
|
176
|
+
* Render a single tile using whatever sources are currently bound.
|
|
163
177
|
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
* @param {object | null} [options]
|
|
170
|
-
* @returns {Uint8Array}
|
|
171
|
-
*/
|
|
172
|
-
render(mvt_bytes, z, x, y, options) {
|
|
173
|
-
var ptr0 = isLikeNone(mvt_bytes) ? 0 : passArray8ToWasm0(mvt_bytes, wasm.__wbindgen_malloc_command_export);
|
|
174
|
-
var len0 = WASM_VECTOR_LEN;
|
|
175
|
-
const ret = wasm.renderer_render(this.__wbg_ptr, ptr0, len0, z, x, y, isLikeNone(options) ? 0 : addToExternrefTable0(options));
|
|
176
|
-
if (ret[3]) {
|
|
177
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
178
|
-
}
|
|
179
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
180
|
-
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
181
|
-
return v2;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Like `render` but with `tile_size` / `pad` overridden — useful for
|
|
185
|
-
* hi-DPI / preview rendering without mutating the style.
|
|
186
|
-
* @param {Uint8Array | null | undefined} mvt_bytes
|
|
187
|
-
* @param {number} z
|
|
188
|
-
* @param {number} x
|
|
189
|
-
* @param {number} y
|
|
190
|
-
* @param {number} tile_size
|
|
191
|
-
* @param {number} pad
|
|
192
|
-
* @param {object | null} [options]
|
|
193
|
-
* @returns {Uint8Array}
|
|
194
|
-
*/
|
|
195
|
-
renderAt(mvt_bytes, z, x, y, tile_size, pad, options) {
|
|
196
|
-
var ptr0 = isLikeNone(mvt_bytes) ? 0 : passArray8ToWasm0(mvt_bytes, wasm.__wbindgen_malloc_command_export);
|
|
197
|
-
var len0 = WASM_VECTOR_LEN;
|
|
198
|
-
const ret = wasm.renderer_renderAt(this.__wbg_ptr, ptr0, len0, z, x, y, tile_size, pad, isLikeNone(options) ? 0 : addToExternrefTable0(options));
|
|
199
|
-
if (ret[3]) {
|
|
200
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
201
|
-
}
|
|
202
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
203
|
-
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
204
|
-
return v2;
|
|
205
|
-
}
|
|
206
|
-
/**
|
|
207
|
-
* Render a single tile to straight RGBA8 bytes (`tile_w * tile_h * 4`).
|
|
208
|
-
* @param {Uint8Array | null | undefined} mvt_bytes
|
|
209
|
-
* @param {number} z
|
|
210
|
-
* @param {number} x
|
|
211
|
-
* @param {number} y
|
|
212
|
-
* @returns {Uint8Array}
|
|
213
|
-
*/
|
|
214
|
-
renderRgba(mvt_bytes, z, x, y) {
|
|
215
|
-
var ptr0 = isLikeNone(mvt_bytes) ? 0 : passArray8ToWasm0(mvt_bytes, wasm.__wbindgen_malloc_command_export);
|
|
216
|
-
var len0 = WASM_VECTOR_LEN;
|
|
217
|
-
const ret = wasm.renderer_renderRgba(this.__wbg_ptr, ptr0, len0, z, x, y);
|
|
218
|
-
if (ret[3]) {
|
|
219
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
220
|
-
}
|
|
221
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
222
|
-
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
223
|
-
return v2;
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Like `renderRgba` but with `tile_size` / `pad` overridden.
|
|
227
|
-
* @param {Uint8Array | null | undefined} mvt_bytes
|
|
228
|
-
* @param {number} z
|
|
229
|
-
* @param {number} x
|
|
230
|
-
* @param {number} y
|
|
231
|
-
* @param {number} tile_size
|
|
232
|
-
* @param {number} pad
|
|
233
|
-
* @returns {Uint8Array}
|
|
234
|
-
*/
|
|
235
|
-
renderRgbaAt(mvt_bytes, z, x, y, tile_size, pad) {
|
|
236
|
-
var ptr0 = isLikeNone(mvt_bytes) ? 0 : passArray8ToWasm0(mvt_bytes, wasm.__wbindgen_malloc_command_export);
|
|
237
|
-
var len0 = WASM_VECTOR_LEN;
|
|
238
|
-
const ret = wasm.renderer_renderRgbaAt(this.__wbg_ptr, ptr0, len0, z, x, y, tile_size, pad);
|
|
239
|
-
if (ret[3]) {
|
|
240
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
241
|
-
}
|
|
242
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
243
|
-
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
244
|
-
return v2;
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Render a single tile to lossless WebP bytes. Smaller than PNG
|
|
248
|
-
* for the same painterly content and decoded natively by every
|
|
249
|
-
* modern browser. WebP is lossless-only via the pure-Rust
|
|
250
|
-
* `image-webp` codec; for lossy WebP, see the
|
|
251
|
-
* `OffscreenCanvas.convertToBlob` recipe in the crate README.
|
|
252
|
-
* @param {Uint8Array | null | undefined} mvt_bytes
|
|
253
|
-
* @param {number} z
|
|
254
|
-
* @param {number} x
|
|
255
|
-
* @param {number} y
|
|
256
|
-
* @param {object | null} [options]
|
|
257
|
-
* @returns {Uint8Array}
|
|
258
|
-
*/
|
|
259
|
-
renderWebp(mvt_bytes, z, x, y, options) {
|
|
260
|
-
var ptr0 = isLikeNone(mvt_bytes) ? 0 : passArray8ToWasm0(mvt_bytes, wasm.__wbindgen_malloc_command_export);
|
|
261
|
-
var len0 = WASM_VECTOR_LEN;
|
|
262
|
-
const ret = wasm.renderer_renderWebp(this.__wbg_ptr, ptr0, len0, z, x, y, isLikeNone(options) ? 0 : addToExternrefTable0(options));
|
|
263
|
-
if (ret[3]) {
|
|
264
|
-
throw takeFromExternrefTable0(ret[2]);
|
|
265
|
-
}
|
|
266
|
-
var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
267
|
-
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
268
|
-
return v2;
|
|
269
|
-
}
|
|
270
|
-
/**
|
|
271
|
-
* Like `renderWebp` but with `tile_size` / `pad` overridden.
|
|
272
|
-
* @param {Uint8Array | null | undefined} mvt_bytes
|
|
178
|
+
* `opts` (JS object, all fields optional):
|
|
179
|
+
* - `format`: `"png"` (default) / `"webp"` / `"rgba"`
|
|
180
|
+
* - `tileSize`, `pad`: override the style's canvas size for this
|
|
181
|
+
* call (hi-DPI / preview)
|
|
182
|
+
* - `png`: `{ compression?: "fast" | "default" | "best" }`
|
|
273
183
|
* @param {number} z
|
|
274
184
|
* @param {number} x
|
|
275
185
|
* @param {number} y
|
|
276
|
-
* @param {
|
|
277
|
-
* @param {number} pad
|
|
278
|
-
* @param {object | null} [options]
|
|
186
|
+
* @param {object | null} [opts]
|
|
279
187
|
* @returns {Uint8Array}
|
|
280
188
|
*/
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
var len0 = WASM_VECTOR_LEN;
|
|
284
|
-
const ret = wasm.renderer_renderWebpAt(this.__wbg_ptr, ptr0, len0, z, x, y, tile_size, pad, isLikeNone(options) ? 0 : addToExternrefTable0(options));
|
|
189
|
+
renderTile(z, x, y, opts) {
|
|
190
|
+
const ret = wasm.renderer_renderTile(this.__wbg_ptr, z, x, y, isLikeNone(opts) ? 0 : addToExternrefTable0(opts));
|
|
285
191
|
if (ret[3]) {
|
|
286
192
|
throw takeFromExternrefTable0(ret[2]);
|
|
287
193
|
}
|
|
288
|
-
var
|
|
194
|
+
var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
289
195
|
wasm.__wbindgen_free_command_export(ret[0], ret[1] * 1, 1);
|
|
290
|
-
return
|
|
196
|
+
return v1;
|
|
291
197
|
}
|
|
292
198
|
/**
|
|
293
199
|
* Replace the active style. Returns the new node count. Invalidates
|
|
294
|
-
* the intermediate cache.
|
|
200
|
+
* the intermediate cache and drops any pending source bindings.
|
|
295
201
|
* @param {string} style_json
|
|
296
202
|
* @returns {number}
|
|
297
203
|
*/
|
|
@@ -312,17 +218,6 @@ class Renderer {
|
|
|
312
218
|
const ret = wasm.renderer_tileSize(this.__wbg_ptr);
|
|
313
219
|
return ret >>> 0;
|
|
314
220
|
}
|
|
315
|
-
/**
|
|
316
|
-
* Remove a brush by name. Returns `true` if the brush existed.
|
|
317
|
-
* @param {string} name
|
|
318
|
-
* @returns {boolean}
|
|
319
|
-
*/
|
|
320
|
-
unregisterBrush(name) {
|
|
321
|
-
const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc_command_export, wasm.__wbindgen_realloc_command_export);
|
|
322
|
-
const len0 = WASM_VECTOR_LEN;
|
|
323
|
-
const ret = wasm.renderer_unregisterBrush(this.__wbg_ptr, ptr0, len0);
|
|
324
|
-
return ret !== 0;
|
|
325
|
-
}
|
|
326
221
|
}
|
|
327
222
|
if (Symbol.dispose) Renderer.prototype[Symbol.dispose] = Renderer.prototype.free;
|
|
328
223
|
exports.Renderer = Renderer;
|
|
@@ -340,6 +235,20 @@ exports.simdEnabled = simdEnabled;
|
|
|
340
235
|
function __wbg_get_imports() {
|
|
341
236
|
const import0 = {
|
|
342
237
|
__proto__: null,
|
|
238
|
+
__wbg___wbindgen_is_null_2042690d351e14f0: function(arg0) {
|
|
239
|
+
const ret = arg0 === null;
|
|
240
|
+
return ret;
|
|
241
|
+
},
|
|
242
|
+
__wbg___wbindgen_is_undefined_35bb9f4c7fd651d5: function(arg0) {
|
|
243
|
+
const ret = arg0 === undefined;
|
|
244
|
+
return ret;
|
|
245
|
+
},
|
|
246
|
+
__wbg___wbindgen_number_get_f73a1244370fcc2c: function(arg0, arg1) {
|
|
247
|
+
const obj = arg1;
|
|
248
|
+
const ret = typeof(obj) === 'number' ? obj : undefined;
|
|
249
|
+
getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
|
|
250
|
+
getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
|
|
251
|
+
},
|
|
343
252
|
__wbg___wbindgen_string_get_d109740c0d18f4d7: function(arg0, arg1) {
|
|
344
253
|
const obj = arg1;
|
|
345
254
|
const ret = typeof(obj) === 'string' ? obj : undefined;
|
|
@@ -366,6 +275,10 @@ function __wbg_get_imports() {
|
|
|
366
275
|
wasm.__wbindgen_free_command_export(deferred0_0, deferred0_1, 1);
|
|
367
276
|
}
|
|
368
277
|
},
|
|
278
|
+
__wbg_get_98fdf51d029a75eb: function(arg0, arg1) {
|
|
279
|
+
const ret = arg0[arg1 >>> 0];
|
|
280
|
+
return ret;
|
|
281
|
+
},
|
|
369
282
|
__wbg_get_dcf82ab8aad1a593: function() { return handleError(function (arg0, arg1) {
|
|
370
283
|
const ret = Reflect.get(arg0, arg1);
|
|
371
284
|
return ret;
|
|
@@ -380,6 +293,14 @@ function __wbg_get_imports() {
|
|
|
380
293
|
const ret = result;
|
|
381
294
|
return ret;
|
|
382
295
|
},
|
|
296
|
+
__wbg_isArray_94898ed3aad6947b: function(arg0) {
|
|
297
|
+
const ret = Array.isArray(arg0);
|
|
298
|
+
return ret;
|
|
299
|
+
},
|
|
300
|
+
__wbg_length_2591a0f4f659a55c: function(arg0) {
|
|
301
|
+
const ret = arg0.length;
|
|
302
|
+
return ret;
|
|
303
|
+
},
|
|
383
304
|
__wbg_new_02d162bc6cf02f60: function() {
|
|
384
305
|
const ret = new Object();
|
|
385
306
|
return ret;
|
package/nodejs/ezu_bg.wasm
CHANGED
|
Binary file
|
package/nodejs/ezu_bg.wasm.d.ts
CHANGED
|
@@ -11,19 +11,13 @@ export const logsink_len: (a: number) => number;
|
|
|
11
11
|
export const logsink_new: (a: number, b: number) => [number, number, number];
|
|
12
12
|
export const logsink_onEvent: (a: number, b: number) => void;
|
|
13
13
|
export const logsink_setCapacity: (a: number, b: number) => void;
|
|
14
|
-
export const
|
|
15
|
-
export const
|
|
14
|
+
export const renderer_bindSource: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
15
|
+
export const renderer_boundSources: (a: number) => [number, number];
|
|
16
|
+
export const renderer_clearSources: (a: number) => void;
|
|
16
17
|
export const renderer_new: (a: number, b: number) => [number, number, number];
|
|
17
|
-
export const
|
|
18
|
-
export const renderer_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
19
|
-
export const renderer_renderAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
20
|
-
export const renderer_renderRgba: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
21
|
-
export const renderer_renderRgbaAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
22
|
-
export const renderer_renderWebp: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
23
|
-
export const renderer_renderWebpAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
18
|
+
export const renderer_renderTile: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
24
19
|
export const renderer_setStyle: (a: number, b: number, c: number) => [number, number, number];
|
|
25
20
|
export const renderer_tileSize: (a: number) => number;
|
|
26
|
-
export const renderer_unregisterBrush: (a: number, b: number, c: number) => number;
|
|
27
21
|
export const simdEnabled: () => number;
|
|
28
22
|
export const __wbindgen_malloc_command_export: (a: number, b: number) => number;
|
|
29
23
|
export const __wbindgen_realloc_command_export: (a: number, b: number, c: number, d: number) => number;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reearth/ezu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Painterly map renderer — WebAssembly bindings",
|
|
5
5
|
"license": "MIT OR Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -8,7 +8,14 @@
|
|
|
8
8
|
"url": "https://github.com/reearth/ezu"
|
|
9
9
|
},
|
|
10
10
|
"homepage": "https://github.com/reearth/ezu",
|
|
11
|
-
"keywords": [
|
|
11
|
+
"keywords": [
|
|
12
|
+
"map",
|
|
13
|
+
"renderer",
|
|
14
|
+
"wasm",
|
|
15
|
+
"webassembly",
|
|
16
|
+
"mvt",
|
|
17
|
+
"painterly"
|
|
18
|
+
],
|
|
12
19
|
"type": "module",
|
|
13
20
|
"packageManager": "npm@11.15.0",
|
|
14
21
|
"scripts": {
|
package/web/ezu.d.ts
CHANGED
|
@@ -58,64 +58,50 @@ export class Renderer {
|
|
|
58
58
|
free(): void;
|
|
59
59
|
[Symbol.dispose](): void;
|
|
60
60
|
/**
|
|
61
|
-
*
|
|
62
|
-
|
|
63
|
-
brushCount(): number;
|
|
64
|
-
/**
|
|
65
|
-
* Drop every registered brush.
|
|
66
|
-
*/
|
|
67
|
-
clearBrushes(): void;
|
|
68
|
-
/**
|
|
69
|
-
* Build a renderer from a style JSON document.
|
|
70
|
-
*/
|
|
71
|
-
constructor(style_json: string);
|
|
72
|
-
/**
|
|
73
|
-
* Register a `.myb` brush under `name` so a `brush-file` node with
|
|
74
|
-
* `src: "@name"` (via the style's `assets` map) resolves to it.
|
|
75
|
-
* Re-registering the same name replaces the previous entry.
|
|
76
|
-
*/
|
|
77
|
-
registerBrush(name: string, myb_json: string): void;
|
|
78
|
-
/**
|
|
79
|
-
* Render a single tile to PNG bytes using the style's `tile-size` / `pad`.
|
|
80
|
-
* Pass `null` for `mvtBytes` to get a paper-only tile.
|
|
61
|
+
* Bind raw tile bytes under a `sources.<name>` entry from the style.
|
|
62
|
+
* The renderer dispatches on the source's declared `type`:
|
|
81
63
|
*
|
|
82
|
-
*
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
*
|
|
87
|
-
*
|
|
64
|
+
* - `mvt` / `pmtiles` → decode MVT layers eagerly; layers are bound
|
|
65
|
+
* as `tile.<layer>` when [`render_tile`] runs.
|
|
66
|
+
* - `dem` → store the raw raster-DEM bytes per `(dx, dy)` neighbour
|
|
67
|
+
* offset. The centre tile is `coord: [0, 0]` (default). Decoding
|
|
68
|
+
* and 3×3 stitching happen at render time once the tile id is known.
|
|
69
|
+
*
|
|
70
|
+
* `opts` is a JS object: `{ coord?: [dx, dy] }`. Throws
|
|
71
|
+
* `UnknownSource` if `name` doesn't match any entry in the style's
|
|
72
|
+
* `sources` block, `MvtDecode` if MVT bytes don't parse, and
|
|
73
|
+
* `DemDecode` for non-image DEM bytes (the decode itself runs at
|
|
74
|
+
* render time, but obvious cases are caught here).
|
|
88
75
|
*/
|
|
89
|
-
|
|
76
|
+
bindSource(name: string, bytes: Uint8Array, opts?: object | null): void;
|
|
90
77
|
/**
|
|
91
|
-
*
|
|
78
|
+
* Names of every source with at least one pending binding.
|
|
79
|
+
* Order matches the style's `sources` declaration order.
|
|
92
80
|
*/
|
|
93
|
-
|
|
81
|
+
boundSources(): string[];
|
|
94
82
|
/**
|
|
95
|
-
*
|
|
83
|
+
* Drop every pending source binding. Call between tile renders.
|
|
96
84
|
*/
|
|
97
|
-
|
|
85
|
+
clearSources(): void;
|
|
98
86
|
/**
|
|
99
|
-
*
|
|
100
|
-
* for the same painterly content and decoded natively by every
|
|
101
|
-
* modern browser. WebP is lossless-only via the pure-Rust
|
|
102
|
-
* `image-webp` codec; for lossy WebP, see the
|
|
103
|
-
* `OffscreenCanvas.convertToBlob` recipe in the crate README.
|
|
87
|
+
* Build a renderer from a style JSON document.
|
|
104
88
|
*/
|
|
105
|
-
|
|
89
|
+
constructor(style_json: string);
|
|
106
90
|
/**
|
|
107
|
-
*
|
|
91
|
+
* Render a single tile using whatever sources are currently bound.
|
|
92
|
+
*
|
|
93
|
+
* `opts` (JS object, all fields optional):
|
|
94
|
+
* - `format`: `"png"` (default) / `"webp"` / `"rgba"`
|
|
95
|
+
* - `tileSize`, `pad`: override the style's canvas size for this
|
|
96
|
+
* call (hi-DPI / preview)
|
|
97
|
+
* - `png`: `{ compression?: "fast" | "default" | "best" }`
|
|
108
98
|
*/
|
|
109
|
-
|
|
99
|
+
renderTile(z: number, x: number, y: number, opts?: object | null): Uint8Array;
|
|
110
100
|
/**
|
|
111
101
|
* Replace the active style. Returns the new node count. Invalidates
|
|
112
|
-
* the intermediate cache.
|
|
102
|
+
* the intermediate cache and drops any pending source bindings.
|
|
113
103
|
*/
|
|
114
104
|
setStyle(style_json: string): number;
|
|
115
|
-
/**
|
|
116
|
-
* Remove a brush by name. Returns `true` if the brush existed.
|
|
117
|
-
*/
|
|
118
|
-
unregisterBrush(name: string): boolean;
|
|
119
105
|
/**
|
|
120
106
|
* `tile-size` declared by the current style.
|
|
121
107
|
*/
|
|
@@ -142,19 +128,13 @@ export interface InitOutput {
|
|
|
142
128
|
readonly logsink_new: (a: number, b: number) => [number, number, number];
|
|
143
129
|
readonly logsink_onEvent: (a: number, b: number) => void;
|
|
144
130
|
readonly logsink_setCapacity: (a: number, b: number) => void;
|
|
145
|
-
readonly
|
|
146
|
-
readonly
|
|
131
|
+
readonly renderer_bindSource: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
132
|
+
readonly renderer_boundSources: (a: number) => [number, number];
|
|
133
|
+
readonly renderer_clearSources: (a: number) => void;
|
|
147
134
|
readonly renderer_new: (a: number, b: number) => [number, number, number];
|
|
148
|
-
readonly
|
|
149
|
-
readonly renderer_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
150
|
-
readonly renderer_renderAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
151
|
-
readonly renderer_renderRgba: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
|
|
152
|
-
readonly renderer_renderRgbaAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
|
|
153
|
-
readonly renderer_renderWebp: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
|
|
154
|
-
readonly renderer_renderWebpAt: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
|
|
135
|
+
readonly renderer_renderTile: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
|
|
155
136
|
readonly renderer_setStyle: (a: number, b: number, c: number) => [number, number, number];
|
|
156
137
|
readonly renderer_tileSize: (a: number) => number;
|
|
157
|
-
readonly renderer_unregisterBrush: (a: number, b: number, c: number) => number;
|
|
158
138
|
readonly simdEnabled: () => number;
|
|
159
139
|
readonly __wbindgen_malloc_command_export: (a: number, b: number) => number;
|
|
160
140
|
readonly __wbindgen_realloc_command_export: (a: number, b: number, c: number, d: number) => number;
|