@loaders.gl/gltf 4.2.0-alpha.4 → 4.2.0-alpha.6
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/dist/dist.dev.js +1056 -524
- package/dist/dist.min.js +9 -0
- package/dist/glb-loader.d.ts +2 -2
- package/dist/glb-loader.d.ts.map +1 -1
- package/dist/glb-loader.js +22 -21
- package/dist/glb-writer.d.ts +2 -2
- package/dist/glb-writer.d.ts.map +1 -1
- package/dist/glb-writer.js +27 -24
- package/dist/gltf-loader.d.ts +3 -3
- package/dist/gltf-loader.d.ts.map +1 -1
- package/dist/gltf-loader.js +31 -36
- package/dist/gltf-writer.js +24 -26
- package/dist/index.cjs +138 -330
- package/dist/index.cjs.map +7 -0
- package/dist/index.d.ts +17 -17
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/api/gltf-extensions.d.ts +2 -2
- package/dist/lib/api/gltf-extensions.d.ts.map +1 -1
- package/dist/lib/api/gltf-extensions.js +45 -22
- package/dist/lib/api/gltf-scenegraph.d.ts +2 -2
- package/dist/lib/api/gltf-scenegraph.d.ts.map +1 -1
- package/dist/lib/api/gltf-scenegraph.js +565 -438
- package/dist/lib/api/normalize-gltf-v1.js +249 -181
- package/dist/lib/api/post-process-gltf.d.ts +3 -3
- package/dist/lib/api/post-process-gltf.d.ts.map +1 -1
- package/dist/lib/api/post-process-gltf.js +378 -340
- package/dist/lib/encoders/encode-glb.js +62 -48
- package/dist/lib/encoders/encode-gltf.js +24 -10
- package/dist/lib/extensions/EXT_mesh_features.d.ts +2 -2
- package/dist/lib/extensions/EXT_mesh_features.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_mesh_features.js +55 -33
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts +2 -2
- package/dist/lib/extensions/EXT_meshopt_compression.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js +27 -31
- package/dist/lib/extensions/EXT_structural_metadata.d.ts +2 -2
- package/dist/lib/extensions/EXT_structural_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_structural_metadata.js +434 -230
- package/dist/lib/extensions/EXT_texture_webp.d.ts +2 -2
- package/dist/lib/extensions/EXT_texture_webp.d.ts.map +1 -1
- package/dist/lib/extensions/EXT_texture_webp.js +24 -17
- package/dist/lib/extensions/KHR_binary_gltf.d.ts +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_binary_gltf.js +29 -15
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts +2 -2
- package/dist/lib/extensions/KHR_draco_mesh_compression.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_draco_mesh_compression.js +110 -87
- package/dist/lib/extensions/KHR_texture_basisu.d.ts +2 -2
- package/dist/lib/extensions/KHR_texture_basisu.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_basisu.js +19 -12
- package/dist/lib/extensions/KHR_texture_transform.d.ts +2 -2
- package/dist/lib/extensions/KHR_texture_transform.d.ts.map +1 -1
- package/dist/lib/extensions/KHR_texture_transform.js +188 -156
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts +2 -2
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js +263 -143
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js +44 -32
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js +30 -24
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.d.ts.map +1 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js +65 -52
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts +2 -2
- package/dist/lib/extensions/utils/3d-tiles-utils.d.ts.map +1 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.js +298 -181
- package/dist/lib/gltf-utils/get-typed-array.d.ts +1 -1
- package/dist/lib/gltf-utils/get-typed-array.d.ts.map +1 -1
- package/dist/lib/gltf-utils/get-typed-array.js +54 -42
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.d.ts.map +1 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js +58 -52
- package/dist/lib/gltf-utils/gltf-constants.js +27 -27
- package/dist/lib/gltf-utils/gltf-utils.d.ts +1 -1
- package/dist/lib/gltf-utils/gltf-utils.d.ts.map +1 -1
- package/dist/lib/gltf-utils/gltf-utils.js +67 -60
- package/dist/lib/gltf-utils/resolve-url.js +12 -10
- package/dist/lib/parsers/parse-glb.d.ts +1 -1
- package/dist/lib/parsers/parse-glb.d.ts.map +1 -1
- package/dist/lib/parsers/parse-glb.js +132 -89
- package/dist/lib/parsers/parse-gltf.d.ts +3 -3
- package/dist/lib/parsers/parse-gltf.d.ts.map +1 -1
- package/dist/lib/parsers/parse-gltf.js +155 -126
- package/dist/lib/types/glb-types.js +0 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.js +0 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js +0 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts +1 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.d.ts.map +1 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js +0 -1
- package/dist/lib/types/gltf-json-schema.js +2 -1
- package/dist/lib/types/gltf-postprocessed-schema.js +2 -1
- package/dist/lib/types/gltf-types.d.ts +3 -3
- package/dist/lib/types/gltf-types.d.ts.map +1 -1
- package/dist/lib/types/gltf-types.js +1 -1
- package/dist/lib/utils/assert.js +6 -4
- package/dist/lib/utils/version.js +4 -2
- package/dist/meshopt/meshopt-decoder.js +86 -67
- package/dist/webp/webp.js +28 -19
- package/package.json +13 -8
- package/src/lib/extensions/KHR_texture_transform.ts +18 -24
- package/dist/glb-loader.js.map +0 -1
- package/dist/glb-writer.js.map +0 -1
- package/dist/gltf-loader.js.map +0 -1
- package/dist/gltf-writer.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lib/api/gltf-extensions.js.map +0 -1
- package/dist/lib/api/gltf-scenegraph.js.map +0 -1
- package/dist/lib/api/normalize-gltf-v1.js.map +0 -1
- package/dist/lib/api/post-process-gltf.js.map +0 -1
- package/dist/lib/encoders/encode-glb.js.map +0 -1
- package/dist/lib/encoders/encode-gltf.js.map +0 -1
- package/dist/lib/extensions/EXT_mesh_features.js.map +0 -1
- package/dist/lib/extensions/EXT_meshopt_compression.js.map +0 -1
- package/dist/lib/extensions/EXT_structural_metadata.js.map +0 -1
- package/dist/lib/extensions/EXT_texture_webp.js.map +0 -1
- package/dist/lib/extensions/KHR_binary_gltf.js.map +0 -1
- package/dist/lib/extensions/KHR_draco_mesh_compression.js.map +0 -1
- package/dist/lib/extensions/KHR_texture_basisu.js.map +0 -1
- package/dist/lib/extensions/KHR_texture_transform.js.map +0 -1
- package/dist/lib/extensions/deprecated/EXT_feature_metadata.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_lights_punctual.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_materials_unlit.js.map +0 -1
- package/dist/lib/extensions/deprecated/KHR_techniques_webgl.js.map +0 -1
- package/dist/lib/extensions/utils/3d-tiles-utils.js.map +0 -1
- package/dist/lib/gltf-utils/get-typed-array.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-attribute-utils.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-constants.js.map +0 -1
- package/dist/lib/gltf-utils/gltf-utils.js.map +0 -1
- package/dist/lib/gltf-utils/resolve-url.js.map +0 -1
- package/dist/lib/parsers/parse-glb.js.map +0 -1
- package/dist/lib/parsers/parse-gltf.js.map +0 -1
- package/dist/lib/types/glb-types.js.map +0 -1
- package/dist/lib/types/gltf-ext-feature-metadata-schema.js.map +0 -1
- package/dist/lib/types/gltf-ext-mesh-features-schema.js.map +0 -1
- package/dist/lib/types/gltf-ext-structural-metadata-schema.js.map +0 -1
- package/dist/lib/types/gltf-json-schema.js.map +0 -1
- package/dist/lib/types/gltf-postprocessed-schema.js.map +0 -1
- package/dist/lib/types/gltf-types.js.map +0 -1
- package/dist/lib/utils/assert.js.map +0 -1
- package/dist/lib/utils/version.js.map +0 -1
- package/dist/meshopt/meshopt-decoder.js.map +0 -1
- package/dist/meshopt/meshopt-encoder.ts.disabled +0 -409
- package/dist/webp/webp.js.map +0 -1
|
@@ -1,409 +0,0 @@
|
|
|
1
|
-
// This file is part of gltfpack and is distributed under the terms of MIT License.
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Initialize the library with the Wasm module (library.wasm)
|
|
5
|
-
*
|
|
6
|
-
* @param wasm Promise with contents of library.wasm
|
|
7
|
-
*
|
|
8
|
-
* Note: this is called automatically in node.js
|
|
9
|
-
*/
|
|
10
|
-
function init(wasm) {
|
|
11
|
-
if (ready) {
|
|
12
|
-
throw new Error("init must be called once");
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
ready = Promise.resolve(wasm)
|
|
16
|
-
.then(function (buffer) {
|
|
17
|
-
return WebAssembly.instantiate(buffer, { wasi_snapshot_preview1: wasi });
|
|
18
|
-
})
|
|
19
|
-
.then(function (result) {
|
|
20
|
-
instance = result.instance;
|
|
21
|
-
instance.exports.__wasm_call_ctors();
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Pack the requested glTF data using the requested command line and access interface.
|
|
27
|
-
*
|
|
28
|
-
* @param args An array of strings with the input arguments; the paths for input and output files are interpreted by the interface
|
|
29
|
-
* @param iface An interface to the system that will be used to service file requests and other system calls
|
|
30
|
-
* @return Promise that indicates completion of the operation
|
|
31
|
-
*
|
|
32
|
-
* iface should contain the following methods:
|
|
33
|
-
* read(path): Given a path, return a Uint8Array with the contents of that path
|
|
34
|
-
* write(path, data): Write the specified Uint8Array to the provided path
|
|
35
|
-
*
|
|
36
|
-
* When texture compression is requested using external compressor such as toktx, iface must provide two additional methods:
|
|
37
|
-
* execute(command): Run the requested command and return the return code
|
|
38
|
-
* unlink(path): Remove the requested file (will be called with paths to temp files after texture compression finishes)
|
|
39
|
-
*/
|
|
40
|
-
function pack(args, iface) {
|
|
41
|
-
if (!ready) {
|
|
42
|
-
throw new Error("init must be called before pack");
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
var argv = args.slice();
|
|
46
|
-
argv.unshift("gltfpack");
|
|
47
|
-
|
|
48
|
-
return ready.then(function () {
|
|
49
|
-
var buf = uploadArgv(argv);
|
|
50
|
-
|
|
51
|
-
output.position = 0;
|
|
52
|
-
output.size = 0;
|
|
53
|
-
|
|
54
|
-
interface = iface;
|
|
55
|
-
var result = instance.exports.pack(argv.length, buf);
|
|
56
|
-
interface = undefined;
|
|
57
|
-
|
|
58
|
-
instance.exports.free(buf);
|
|
59
|
-
|
|
60
|
-
var log = getString(output.data.buffer, 0, output.size);
|
|
61
|
-
|
|
62
|
-
if (result != 0) {
|
|
63
|
-
throw new Error(log);
|
|
64
|
-
} else {
|
|
65
|
-
return log;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Library implementation (here be dragons)
|
|
71
|
-
var WASI_EBADF = 8;
|
|
72
|
-
var WASI_EINVAL = 28;
|
|
73
|
-
var WASI_EIO = 29;
|
|
74
|
-
var WASI_ENOSYS = 52;
|
|
75
|
-
|
|
76
|
-
var ready;
|
|
77
|
-
var instance;
|
|
78
|
-
var interface;
|
|
79
|
-
|
|
80
|
-
var output = { data: new Uint8Array(), position: 0, size: 0 };
|
|
81
|
-
var fds = { 1: output, 2: output, 3: { mount: "/", path: "/" }, 4: { mount: "/gltfpack-$pwd", path: "" } };
|
|
82
|
-
|
|
83
|
-
var wasi = {
|
|
84
|
-
proc_exit: function(rval) {
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
fd_close: function(fd) {
|
|
88
|
-
if (!fds[fd]) {
|
|
89
|
-
return WASI_EBADF;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
if (fds[fd].close) {
|
|
94
|
-
fds[fd].close();
|
|
95
|
-
}
|
|
96
|
-
fds[fd] = undefined;
|
|
97
|
-
return 0;
|
|
98
|
-
} catch (err) {
|
|
99
|
-
fds[fd] = undefined;
|
|
100
|
-
return WASI_EIO;
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
|
|
104
|
-
fd_fdstat_get: function(fd, stat) {
|
|
105
|
-
if (!fds[fd]) {
|
|
106
|
-
return WASI_EBADF;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
var heap = getHeap();
|
|
110
|
-
heap.setUint8(stat + 0, fds[fd].path !== undefined ? 3 : 4);
|
|
111
|
-
heap.setUint16(stat + 2, 0, true);
|
|
112
|
-
heap.setUint32(stat + 8, 0, true);
|
|
113
|
-
heap.setUint32(stat + 12, 0, true);
|
|
114
|
-
heap.setUint32(stat + 16, 0, true);
|
|
115
|
-
heap.setUint32(stat + 20, 0, true);
|
|
116
|
-
return 0;
|
|
117
|
-
},
|
|
118
|
-
|
|
119
|
-
path_open32: function(parent_fd, dirflags, path, path_len, oflags, fs_rights_base, fs_rights_inheriting, fdflags, opened_fd) {
|
|
120
|
-
if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
|
|
121
|
-
return WASI_EBADF;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
var heap = getHeap();
|
|
125
|
-
|
|
126
|
-
var file = {};
|
|
127
|
-
file.name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
|
|
128
|
-
file.position = 0;
|
|
129
|
-
|
|
130
|
-
if (oflags & 1) {
|
|
131
|
-
file.data = new Uint8Array(4096);
|
|
132
|
-
file.size = 0;
|
|
133
|
-
file.close = function () {
|
|
134
|
-
interface.write(file.name, new Uint8Array(file.data.buffer, 0, file.size));
|
|
135
|
-
};
|
|
136
|
-
} else {
|
|
137
|
-
try {
|
|
138
|
-
file.data = interface.read(file.name);
|
|
139
|
-
|
|
140
|
-
if (!file.data) {
|
|
141
|
-
return WASI_EIO;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
file.size = file.data.length;
|
|
145
|
-
} catch (err) {
|
|
146
|
-
return WASI_EIO;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
var fd = nextFd();
|
|
151
|
-
fds[fd] = file;
|
|
152
|
-
|
|
153
|
-
heap.setUint32(opened_fd, fd, true);
|
|
154
|
-
return 0;
|
|
155
|
-
},
|
|
156
|
-
|
|
157
|
-
path_unlink_file: function(parent_fd, path, path_len) {
|
|
158
|
-
if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
|
|
159
|
-
return WASI_EBADF;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
var heap = getHeap();
|
|
163
|
-
var name = fds[parent_fd].path + getString(heap.buffer, path, path_len);
|
|
164
|
-
|
|
165
|
-
try {
|
|
166
|
-
interface.unlink(name);
|
|
167
|
-
return 0;
|
|
168
|
-
} catch (err) {
|
|
169
|
-
return WASI_EIO;
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
path_filestat_get: function(parent_fd, flags, path, path_len, buf) {
|
|
174
|
-
if (!fds[parent_fd] || fds[parent_fd].path === undefined) {
|
|
175
|
-
return WASI_EBADF;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
var heap = getHeap();
|
|
179
|
-
var name = getString(heap.buffer, path, path_len);
|
|
180
|
-
|
|
181
|
-
var heap = getHeap();
|
|
182
|
-
for (var i = 0; i < 64; ++i)
|
|
183
|
-
heap.setUint8(buf + i, 0);
|
|
184
|
-
|
|
185
|
-
heap.setUint8(buf + 16, name == "." ? 3 : 4);
|
|
186
|
-
return 0;
|
|
187
|
-
},
|
|
188
|
-
|
|
189
|
-
fd_prestat_get: function(fd, buf) {
|
|
190
|
-
if (!fds[fd] || fds[fd].path === undefined) {
|
|
191
|
-
return WASI_EBADF;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
var path_buf = stringBuffer(fds[fd].mount);
|
|
195
|
-
|
|
196
|
-
var heap = getHeap();
|
|
197
|
-
heap.setUint8(buf, 0);
|
|
198
|
-
heap.setUint32(buf + 4, path_buf.length, true);
|
|
199
|
-
return 0;
|
|
200
|
-
},
|
|
201
|
-
|
|
202
|
-
fd_prestat_dir_name: function(fd, path, path_len) {
|
|
203
|
-
if (!fds[fd] || fds[fd].path === undefined) {
|
|
204
|
-
return WASI_EBADF;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
var path_buf = stringBuffer(fds[fd].mount);
|
|
208
|
-
|
|
209
|
-
if (path_len != path_buf.length) {
|
|
210
|
-
return WASI_EINVAL;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
var heap = getHeap();
|
|
214
|
-
new Uint8Array(heap.buffer).set(path_buf, path);
|
|
215
|
-
return 0;
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
path_remove_directory: function(parent_fd, path, path_len) {
|
|
219
|
-
return WASI_EINVAL;
|
|
220
|
-
},
|
|
221
|
-
|
|
222
|
-
fd_fdstat_set_flags: function(fd, flags) {
|
|
223
|
-
return WASI_ENOSYS;
|
|
224
|
-
},
|
|
225
|
-
|
|
226
|
-
fd_seek32: function(fd, offset, whence, newoffset) {
|
|
227
|
-
if (!fds[fd]) {
|
|
228
|
-
return WASI_EBADF;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
var newposition;
|
|
232
|
-
|
|
233
|
-
switch (whence) {
|
|
234
|
-
case 0:
|
|
235
|
-
newposition = offset;
|
|
236
|
-
break;
|
|
237
|
-
|
|
238
|
-
case 1:
|
|
239
|
-
newposition = fds[fd].position + offset;
|
|
240
|
-
break;
|
|
241
|
-
|
|
242
|
-
case 2:
|
|
243
|
-
newposition = fds[fd].size;
|
|
244
|
-
break;
|
|
245
|
-
|
|
246
|
-
default:
|
|
247
|
-
return WASI_EINVAL;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
if (newposition > fds[fd].size) {
|
|
251
|
-
return WASI_EINVAL;
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
fds[fd].position = newposition;
|
|
255
|
-
|
|
256
|
-
var heap = getHeap();
|
|
257
|
-
heap.setUint32(newoffset, newposition, true);
|
|
258
|
-
return 0;
|
|
259
|
-
},
|
|
260
|
-
|
|
261
|
-
fd_read: function(fd, iovs, iovs_len, nread) {
|
|
262
|
-
if (!fds[fd]) {
|
|
263
|
-
return WASI_EBADF;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
var heap = getHeap();
|
|
267
|
-
var read = 0;
|
|
268
|
-
|
|
269
|
-
for (var i = 0; i < iovs_len; ++i) {
|
|
270
|
-
var buf = heap.getUint32(iovs + 8 * i + 0, true);
|
|
271
|
-
var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
|
|
272
|
-
|
|
273
|
-
var readi = Math.min(fds[fd].size - fds[fd].position, buf_len);
|
|
274
|
-
|
|
275
|
-
new Uint8Array(heap.buffer).set(fds[fd].data.subarray(fds[fd].position, fds[fd].position + readi), buf);
|
|
276
|
-
|
|
277
|
-
fds[fd].position += readi;
|
|
278
|
-
read += readi;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
heap.setUint32(nread, read, true);
|
|
282
|
-
return 0;
|
|
283
|
-
},
|
|
284
|
-
|
|
285
|
-
fd_write: function(fd, iovs, iovs_len, nwritten) {
|
|
286
|
-
if (!fds[fd]) {
|
|
287
|
-
return WASI_EBADF;
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
var heap = getHeap();
|
|
291
|
-
var written = 0;
|
|
292
|
-
|
|
293
|
-
for (var i = 0; i < iovs_len; ++i) {
|
|
294
|
-
var buf = heap.getUint32(iovs + 8 * i + 0, true);
|
|
295
|
-
var buf_len = heap.getUint32(iovs + 8 * i + 4, true);
|
|
296
|
-
|
|
297
|
-
if (fds[fd].position + buf_len > fds[fd].data.length) {
|
|
298
|
-
fds[fd].data = growArray(fds[fd].data, fds[fd].position + buf_len);
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
fds[fd].data.set(new Uint8Array(heap.buffer, buf, buf_len), fds[fd].position);
|
|
302
|
-
fds[fd].position += buf_len;
|
|
303
|
-
fds[fd].size = Math.max(fds[fd].position, fds[fd].size);
|
|
304
|
-
|
|
305
|
-
written += buf_len;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
heap.setUint32(nwritten, written, true);
|
|
309
|
-
return 0;
|
|
310
|
-
},
|
|
311
|
-
|
|
312
|
-
path_readlink: function(fd, path, path_len, buf, buf_len, bufused) {
|
|
313
|
-
if (fd !== -1) {
|
|
314
|
-
return WASI_ENOSYS;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
var heap = getHeap();
|
|
318
|
-
var command = getString(heap.buffer, path, path_len);
|
|
319
|
-
|
|
320
|
-
try {
|
|
321
|
-
return interface.execute(command);
|
|
322
|
-
} catch (err) {
|
|
323
|
-
return WASI_ENOSYS;
|
|
324
|
-
}
|
|
325
|
-
},
|
|
326
|
-
};
|
|
327
|
-
|
|
328
|
-
function nextFd() {
|
|
329
|
-
for (var i = 1; ; ++i) {
|
|
330
|
-
if (fds[i] === undefined) {
|
|
331
|
-
return i;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
function getHeap() {
|
|
337
|
-
return new DataView(instance.exports.memory.buffer);
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
function getString(buffer, offset, length) {
|
|
341
|
-
return new TextDecoder().decode(new Uint8Array(buffer, offset, length));
|
|
342
|
-
}
|
|
343
|
-
|
|
344
|
-
function stringBuffer(string) {
|
|
345
|
-
return new TextEncoder().encode(string);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
function growArray(data, len) {
|
|
349
|
-
var new_length = Math.max(1, data.length);
|
|
350
|
-
while (new_length < len) {
|
|
351
|
-
new_length *= 2;
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
var new_data = new Uint8Array(new_length);
|
|
355
|
-
new_data.set(data);
|
|
356
|
-
|
|
357
|
-
return new_data;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
function uploadArgv(argv) {
|
|
361
|
-
var buf_size = argv.length * 4;
|
|
362
|
-
for (var i = 0; i < argv.length; ++i) {
|
|
363
|
-
buf_size += stringBuffer(argv[i]).length + 1;
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
var buf = instance.exports.malloc(buf_size);
|
|
367
|
-
var argp = buf + argv.length * 4;
|
|
368
|
-
|
|
369
|
-
var heap = getHeap();
|
|
370
|
-
|
|
371
|
-
for (var i = 0; i < argv.length; ++i) {
|
|
372
|
-
var item = stringBuffer(argv[i]);
|
|
373
|
-
|
|
374
|
-
heap.setUint32(buf + i * 4, argp, true);
|
|
375
|
-
new Uint8Array(heap.buffer).set(item, argp);
|
|
376
|
-
heap.setUint8(argp + item.length, 0);
|
|
377
|
-
|
|
378
|
-
argp += item.length + 1;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
return buf;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
// Automatic initialization for node.js
|
|
385
|
-
if (typeof window === 'undefined' && typeof process !== 'undefined' && process.release.name === 'node') {
|
|
386
|
-
var fs = require('fs');
|
|
387
|
-
var util = require('util');
|
|
388
|
-
|
|
389
|
-
// Node versions before v12 don't support TextEncoder/TextDecoder natively, but util. provides compatible replacements
|
|
390
|
-
if (typeof TextEncoder === 'undefined' && typeof TextDecoder === 'undefined') {
|
|
391
|
-
TextEncoder = util.TextEncoder;
|
|
392
|
-
TextDecoder = util.TextDecoder;
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
init(fs.readFileSync(__dirname + '/library.wasm'));
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
// UMD
|
|
399
|
-
(function (root, factory) {
|
|
400
|
-
if (typeof define === 'function' && define.amd) {
|
|
401
|
-
define([], factory);
|
|
402
|
-
} else if (typeof module === 'object' && module.exports) {
|
|
403
|
-
module.exports = factory();
|
|
404
|
-
} else {
|
|
405
|
-
root.gltfpack = factory();
|
|
406
|
-
}
|
|
407
|
-
}(typeof self !== 'undefined' ? self : this, function () {
|
|
408
|
-
return { init, pack };
|
|
409
|
-
}));
|
package/dist/webp/webp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webp.js","names":["WEBP_TEST_IMAGES","lossy","lossless","alpha","animation","WEBP_FEATURES","isWebPSupported","features","arguments","length","undefined","promises","map","feature","checkWebPFeature","statuses","Promise","all","every","_","Image","resolve","reject","img","onload","width","height","onerror","src"],"sources":["../../src/webp/webp.ts"],"sourcesContent":["const WEBP_TEST_IMAGES = {\n lossy: 'UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA',\n lossless: 'UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==',\n alpha:\n 'UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==',\n animation:\n 'UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA'\n};\n\nexport type WebPFeature = 'lossy' | 'lossless' | 'alpha' | 'animation';\n\nconst WEBP_FEATURES: WebPFeature[] = ['lossy', 'lossless', 'alpha', 'animation'];\n\n/**\n * Checks if WebP is supported\n * @param features Array, can include 'lossy', 'lossless', 'alpha' or 'animation'\n */\nexport async function isWebPSupported(features: WebPFeature[] = WEBP_FEATURES): Promise<boolean> {\n const promises = features.map((feature) => checkWebPFeature(feature));\n const statuses = await Promise.all(promises);\n return statuses.every((_) => _);\n}\n\n/**\n * Checks if a specific WebP feature is supported\n * @param feature 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.\n *\n * Based on Google's official recommended checks\n * @see https://developers.google.com/speed/webp/faq#how_can_i_detect_browser_support_for_webp\n */\nasync function checkWebPFeature(feature: WebPFeature): Promise<boolean> {\n if (typeof Image === 'undefined') {\n return false;\n }\n return await new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img.width > 0 && img.height > 0);\n img.onerror = () => resolve(false);\n img.src = `data:image/webp;base64,${WEBP_TEST_IMAGES[feature]}`;\n });\n}\n"],"mappings":"AAAA,MAAMA,gBAAgB,GAAG;EACvBC,KAAK,EAAE,0DAA0D;EACjEC,QAAQ,EAAE,kDAAkD;EAC5DC,KAAK,EACH,kHAAkH;EACpHC,SAAS,EACP;AACJ,CAAC;AAID,MAAMC,aAA4B,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,CAAC;AAMhF,OAAO,eAAeC,eAAeA,CAAA,EAA4D;EAAA,IAA3DC,QAAuB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGH,aAAa;EAC3E,MAAMM,QAAQ,GAAGJ,QAAQ,CAACK,GAAG,CAAEC,OAAO,IAAKC,gBAAgB,CAACD,OAAO,CAAC,CAAC;EACrE,MAAME,QAAQ,GAAG,MAAMC,OAAO,CAACC,GAAG,CAACN,QAAQ,CAAC;EAC5C,OAAOI,QAAQ,CAACG,KAAK,CAAEC,CAAC,IAAKA,CAAC,CAAC;AACjC;AASA,eAAeL,gBAAgBA,CAACD,OAAoB,EAAoB;EACtE,IAAI,OAAOO,KAAK,KAAK,WAAW,EAAE;IAChC,OAAO,KAAK;EACd;EACA,OAAO,MAAM,IAAIJ,OAAO,CAAC,CAACK,OAAO,EAAEC,MAAM,KAAK;IAC5C,MAAMC,GAAG,GAAG,IAAIH,KAAK,CAAC,CAAC;IACvBG,GAAG,CAACC,MAAM,GAAG,MAAMH,OAAO,CAACE,GAAG,CAACE,KAAK,GAAG,CAAC,IAAIF,GAAG,CAACG,MAAM,GAAG,CAAC,CAAC;IAC3DH,GAAG,CAACI,OAAO,GAAG,MAAMN,OAAO,CAAC,KAAK,CAAC;IAClCE,GAAG,CAACK,GAAG,GAAI,0BAAyB5B,gBAAgB,CAACa,OAAO,CAAE,EAAC;EACjE,CAAC,CAAC;AACJ"}
|