@drawmotive/textgraph 0.1.0-alpha.1 → 0.2.1
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 +55 -7
- package/docs/api-v1.md +11 -4
- package/docs/react.md +55 -0
- package/docs/releases.md +23 -15
- package/generated/wasm/DrawMotive.TextGraph.Bridge.runtimeconfig.json +1 -1
- package/generated/wasm/DrawMotive.TextGraph.Bridge.wasm +0 -0
- package/generated/wasm/Graphics.Core.wasm +0 -0
- package/generated/wasm/Grpc.Core.Api.wasm +0 -0
- package/generated/wasm/HarfBuzzSharp.wasm +0 -0
- package/generated/wasm/Math.Core.wasm +0 -0
- package/generated/wasm/Microsoft.AspNetCore.Components.Web.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.DependencyInjection.Abstractions.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.DependencyInjection.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.Logging.Abstractions.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.Logging.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.Options.wasm +0 -0
- package/generated/wasm/Microsoft.Extensions.Primitives.wasm +0 -0
- package/generated/wasm/Polly.Core.wasm +0 -0
- package/generated/wasm/RBush.wasm +0 -0
- package/generated/wasm/SkiaSharp.HarfBuzz.wasm +0 -0
- package/generated/wasm/SkiaSharp.wasm +0 -0
- package/generated/wasm/System.Collections.Concurrent.wasm +0 -0
- package/generated/wasm/System.Collections.Immutable.wasm +0 -0
- package/generated/wasm/System.Collections.NonGeneric.wasm +0 -0
- package/generated/wasm/System.Collections.Specialized.wasm +0 -0
- package/generated/wasm/System.Collections.wasm +0 -0
- package/generated/wasm/System.ComponentModel.Annotations.wasm +0 -0
- package/generated/wasm/System.ComponentModel.Primitives.wasm +0 -0
- package/generated/wasm/System.ComponentModel.TypeConverter.wasm +0 -0
- package/generated/wasm/System.ComponentModel.wasm +0 -0
- package/generated/wasm/System.Console.wasm +0 -0
- package/generated/wasm/System.Diagnostics.StackTrace.wasm +0 -0
- package/generated/wasm/System.Diagnostics.Tracing.wasm +0 -0
- package/generated/wasm/System.IO.Compression.Brotli.wasm +0 -0
- package/generated/wasm/System.IO.Compression.wasm +0 -0
- package/generated/wasm/System.IO.Pipelines.wasm +0 -0
- package/generated/wasm/System.Linq.Expressions.wasm +0 -0
- package/generated/wasm/System.Linq.wasm +0 -0
- package/generated/wasm/System.Memory.wasm +0 -0
- package/generated/wasm/System.Net.Http.wasm +0 -0
- package/generated/wasm/System.Net.Primitives.wasm +0 -0
- package/generated/wasm/System.Numerics.Vectors.wasm +0 -0
- package/generated/wasm/System.ObjectModel.wasm +0 -0
- package/generated/wasm/System.Private.CoreLib.wasm +0 -0
- package/generated/wasm/System.Private.Uri.wasm +0 -0
- package/generated/wasm/System.Reflection.Emit.ILGeneration.wasm +0 -0
- package/generated/wasm/System.Reflection.Emit.wasm +0 -0
- package/generated/wasm/System.Reflection.Primitives.wasm +0 -0
- package/generated/wasm/System.Runtime.InteropServices.JavaScript.wasm +0 -0
- package/generated/wasm/System.Runtime.InteropServices.wasm +0 -0
- package/generated/wasm/System.Runtime.Intrinsics.wasm +0 -0
- package/generated/wasm/System.Runtime.Loader.wasm +0 -0
- package/generated/wasm/System.Runtime.Numerics.wasm +0 -0
- package/generated/wasm/System.Runtime.Serialization.Primitives.wasm +0 -0
- package/generated/wasm/System.Runtime.wasm +0 -0
- package/generated/wasm/System.Security.Cryptography.wasm +0 -0
- package/generated/wasm/System.Text.Encoding.Extensions.wasm +0 -0
- package/generated/wasm/System.Text.Encodings.Web.wasm +0 -0
- package/generated/wasm/System.Text.Json.wasm +0 -0
- package/generated/wasm/System.Text.RegularExpressions.wasm +0 -0
- package/generated/wasm/System.Threading.Channels.wasm +0 -0
- package/generated/wasm/System.Threading.Thread.wasm +0 -0
- package/generated/wasm/System.Threading.ThreadPool.wasm +0 -0
- package/generated/wasm/System.Threading.wasm +0 -0
- package/generated/wasm/System.wasm +0 -0
- package/generated/wasm/dotnet.boot.js +63 -63
- package/generated/wasm/dotnet.js +1 -1
- package/generated/wasm/dotnet.native.js +745 -22
- package/generated/wasm/dotnet.native.wasm +0 -0
- package/generated/wasm/dotnet.runtime.js +1 -1
- package/generated/wasm/netstandard.wasm +0 -0
- package/generated/wasm-manifest.js +78 -78
- package/generated/wasm-manifest.json +78 -78
- package/package.json +39 -7
- package/schemas/render.schema.json +33 -1
- package/scripts/copy-assets.mjs +49 -0
- package/src/index.d.ts +4 -2
- package/src/platform/node.d.ts +2 -0
- package/src/platform/node.js +4 -1
- package/src/react/index.d.ts +20 -0
- package/src/react/index.js +59 -0
- package/src/react/runtime.js +37 -0
- package/src/runtime/dotnet.js +3 -1
- package/src/runtime/node.js +22 -1
- package/src/runtime/rendering.js +11 -3
|
@@ -30,11 +30,11 @@ Module['ready'] = new Promise((resolve, reject) => {
|
|
|
30
30
|
|
|
31
31
|
// --pre-jses are emitted after the Module integration code, so that they can
|
|
32
32
|
// refer to Module (if they choose; they can also define Module)
|
|
33
|
-
// include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.
|
|
33
|
+
// include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.12/runtimes/browser-wasm/native/src/es6/dotnet.es6.pre.js
|
|
34
34
|
if (_nativeModuleLoaded) throw new Error("Native module already loaded");
|
|
35
35
|
_nativeModuleLoaded = true;
|
|
36
36
|
createDotnetRuntime = Module = moduleArg(Module);
|
|
37
|
-
// end include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.
|
|
37
|
+
// end include: /home/admin/.dotnet/packs/Microsoft.NETCore.App.Runtime.Mono.browser-wasm/10.0.12/runtimes/browser-wasm/native/src/es6/dotnet.es6.pre.js
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
// Sometimes an existing Module object exists with properties
|
|
@@ -4037,6 +4037,8 @@ function createWasm() {
|
|
|
4037
4037
|
return 1000; // microseconds (1/1000 of a millisecond)
|
|
4038
4038
|
};
|
|
4039
4039
|
|
|
4040
|
+
var _emscripten_has_asyncify = () => 0;
|
|
4041
|
+
|
|
4040
4042
|
|
|
4041
4043
|
var growMemory = (size) => {
|
|
4042
4044
|
var b = wasmMemory.buffer;
|
|
@@ -4103,6 +4105,703 @@ function createWasm() {
|
|
|
4103
4105
|
return false;
|
|
4104
4106
|
};
|
|
4105
4107
|
|
|
4108
|
+
|
|
4109
|
+
|
|
4110
|
+
|
|
4111
|
+
|
|
4112
|
+
|
|
4113
|
+
|
|
4114
|
+
|
|
4115
|
+
|
|
4116
|
+
|
|
4117
|
+
|
|
4118
|
+
|
|
4119
|
+
|
|
4120
|
+
|
|
4121
|
+
|
|
4122
|
+
|
|
4123
|
+
|
|
4124
|
+
|
|
4125
|
+
|
|
4126
|
+
|
|
4127
|
+
|
|
4128
|
+
|
|
4129
|
+
|
|
4130
|
+
|
|
4131
|
+
|
|
4132
|
+
|
|
4133
|
+
|
|
4134
|
+
var stringToUTF8OnStack = (str) => {
|
|
4135
|
+
var size = lengthBytesUTF8(str) + 1;
|
|
4136
|
+
var ret = stackAlloc(size);
|
|
4137
|
+
stringToUTF8(str, ret, size);
|
|
4138
|
+
return ret;
|
|
4139
|
+
};
|
|
4140
|
+
|
|
4141
|
+
|
|
4142
|
+
|
|
4143
|
+
var writeI53ToI64 = (ptr, num) => {
|
|
4144
|
+
HEAPU32[((ptr)>>2)] = num;
|
|
4145
|
+
var lower = HEAPU32[((ptr)>>2)];
|
|
4146
|
+
HEAPU32[(((ptr)+(4))>>2)] = (num - lower)/4294967296;
|
|
4147
|
+
};
|
|
4148
|
+
|
|
4149
|
+
|
|
4150
|
+
|
|
4151
|
+
var stringToNewUTF8 = (str) => {
|
|
4152
|
+
var size = lengthBytesUTF8(str) + 1;
|
|
4153
|
+
var ret = _malloc(size);
|
|
4154
|
+
if (ret) stringToUTF8(str, ret, size);
|
|
4155
|
+
return ret;
|
|
4156
|
+
};
|
|
4157
|
+
|
|
4158
|
+
|
|
4159
|
+
|
|
4160
|
+
var readI53FromI64 = (ptr) => {
|
|
4161
|
+
return HEAPU32[((ptr)>>2)] + HEAP32[(((ptr)+(4))>>2)] * 4294967296;
|
|
4162
|
+
};
|
|
4163
|
+
|
|
4164
|
+
var wasmTableMirror = [];
|
|
4165
|
+
|
|
4166
|
+
var wasmTable;
|
|
4167
|
+
var getWasmTableEntry = (funcPtr) => {
|
|
4168
|
+
var func = wasmTableMirror[funcPtr];
|
|
4169
|
+
if (!func) {
|
|
4170
|
+
if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
|
|
4171
|
+
wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
|
|
4172
|
+
}
|
|
4173
|
+
return func;
|
|
4174
|
+
};
|
|
4175
|
+
|
|
4176
|
+
var WebGPU = {
|
|
4177
|
+
Internals:{
|
|
4178
|
+
jsObjects:[],
|
|
4179
|
+
jsObjectInsert:(ptr, jsObject) => {
|
|
4180
|
+
ptr >>>= 0
|
|
4181
|
+
WebGPU.Internals.jsObjects[ptr] = jsObject;
|
|
4182
|
+
},
|
|
4183
|
+
bufferOnUnmaps:[],
|
|
4184
|
+
futures:[],
|
|
4185
|
+
futureInsert:(futureId, promise) => {
|
|
4186
|
+
},
|
|
4187
|
+
},
|
|
4188
|
+
getJsObject:(ptr) => {
|
|
4189
|
+
if (!ptr) return undefined;
|
|
4190
|
+
ptr >>>= 0
|
|
4191
|
+
return WebGPU.Internals.jsObjects[ptr];
|
|
4192
|
+
},
|
|
4193
|
+
importJsAdapter:(obj, parentPtr = 0) => {
|
|
4194
|
+
var ptr = _emwgpuCreateAdapter(parentPtr);
|
|
4195
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4196
|
+
return ptr;
|
|
4197
|
+
},
|
|
4198
|
+
importJsBindGroup:(obj, parentPtr = 0) => {
|
|
4199
|
+
var ptr = _emwgpuCreateBindGroup(parentPtr);
|
|
4200
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4201
|
+
return ptr;
|
|
4202
|
+
},
|
|
4203
|
+
importJsBindGroupLayout:(obj, parentPtr = 0) => {
|
|
4204
|
+
var ptr = _emwgpuCreateBindGroupLayout(parentPtr);
|
|
4205
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4206
|
+
return ptr;
|
|
4207
|
+
},
|
|
4208
|
+
importJsBuffer:(buffer, parentPtr = 0) => {
|
|
4209
|
+
// At the moment, we do not allow importing pending buffers.
|
|
4210
|
+
assert(buffer.mapState === "unmapped");
|
|
4211
|
+
var bufferPtr = _emwgpuImportBuffer(parentPtr);
|
|
4212
|
+
WebGPU.Internals.jsObjectInsert(bufferPtr, buffer);
|
|
4213
|
+
return bufferPtr;
|
|
4214
|
+
},
|
|
4215
|
+
importJsCommandBuffer:(obj, parentPtr = 0) => {
|
|
4216
|
+
var ptr = _emwgpuCreateCommandBuffer(parentPtr);
|
|
4217
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4218
|
+
return ptr;
|
|
4219
|
+
},
|
|
4220
|
+
importJsCommandEncoder:(obj, parentPtr = 0) => {
|
|
4221
|
+
var ptr = _emwgpuCreateCommandEncoder(parentPtr);
|
|
4222
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4223
|
+
return ptr;
|
|
4224
|
+
},
|
|
4225
|
+
importJsComputePassEncoder:(obj, parentPtr = 0) => {
|
|
4226
|
+
var ptr = _emwgpuCreateComputePassEncoder(parentPtr);
|
|
4227
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4228
|
+
return ptr;
|
|
4229
|
+
},
|
|
4230
|
+
importJsComputePipeline:(obj, parentPtr = 0) => {
|
|
4231
|
+
var ptr = _emwgpuCreateComputePipeline(parentPtr);
|
|
4232
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4233
|
+
return ptr;
|
|
4234
|
+
},
|
|
4235
|
+
importJsDevice:(device, parentPtr = 0) => {
|
|
4236
|
+
var queuePtr = _emwgpuCreateQueue(parentPtr);
|
|
4237
|
+
var devicePtr = _emwgpuCreateDevice(parentPtr, queuePtr);
|
|
4238
|
+
WebGPU.Internals.jsObjectInsert(queuePtr, device.queue);
|
|
4239
|
+
WebGPU.Internals.jsObjectInsert(devicePtr, device);
|
|
4240
|
+
return devicePtr;
|
|
4241
|
+
},
|
|
4242
|
+
importJsExternalTexture:(obj, parentPtr = 0) => {
|
|
4243
|
+
var ptr = _emwgpuCreateExternalTexture(parentPtr);
|
|
4244
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4245
|
+
return ptr;
|
|
4246
|
+
},
|
|
4247
|
+
importJsPipelineLayout:(obj, parentPtr = 0) => {
|
|
4248
|
+
var ptr = _emwgpuCreatePipelineLayout(parentPtr);
|
|
4249
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4250
|
+
return ptr;
|
|
4251
|
+
},
|
|
4252
|
+
importJsQuerySet:(obj, parentPtr = 0) => {
|
|
4253
|
+
var ptr = _emwgpuCreateQuerySet(parentPtr);
|
|
4254
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4255
|
+
return ptr;
|
|
4256
|
+
},
|
|
4257
|
+
importJsQueue:(obj, parentPtr = 0) => {
|
|
4258
|
+
var ptr = _emwgpuCreateQueue(parentPtr);
|
|
4259
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4260
|
+
return ptr;
|
|
4261
|
+
},
|
|
4262
|
+
importJsRenderBundle:(obj, parentPtr = 0) => {
|
|
4263
|
+
var ptr = _emwgpuCreateRenderBundle(parentPtr);
|
|
4264
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4265
|
+
return ptr;
|
|
4266
|
+
},
|
|
4267
|
+
importJsRenderBundleEncoder:(obj, parentPtr = 0) => {
|
|
4268
|
+
var ptr = _emwgpuCreateRenderBundleEncoder(parentPtr);
|
|
4269
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4270
|
+
return ptr;
|
|
4271
|
+
},
|
|
4272
|
+
importJsRenderPassEncoder:(obj, parentPtr = 0) => {
|
|
4273
|
+
var ptr = _emwgpuCreateRenderPassEncoder(parentPtr);
|
|
4274
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4275
|
+
return ptr;
|
|
4276
|
+
},
|
|
4277
|
+
importJsRenderPipeline:(obj, parentPtr = 0) => {
|
|
4278
|
+
var ptr = _emwgpuCreateRenderPipeline(parentPtr);
|
|
4279
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4280
|
+
return ptr;
|
|
4281
|
+
},
|
|
4282
|
+
importJsSampler:(obj, parentPtr = 0) => {
|
|
4283
|
+
var ptr = _emwgpuCreateSampler(parentPtr);
|
|
4284
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4285
|
+
return ptr;
|
|
4286
|
+
},
|
|
4287
|
+
importJsShaderModule:(obj, parentPtr = 0) => {
|
|
4288
|
+
var ptr = _emwgpuCreateShaderModule(parentPtr);
|
|
4289
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4290
|
+
return ptr;
|
|
4291
|
+
},
|
|
4292
|
+
importJsSurface:(obj, parentPtr = 0) => {
|
|
4293
|
+
var ptr = _emwgpuCreateSurface(parentPtr);
|
|
4294
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4295
|
+
return ptr;
|
|
4296
|
+
},
|
|
4297
|
+
importJsTexture:(obj, parentPtr = 0) => {
|
|
4298
|
+
var ptr = _emwgpuCreateTexture(parentPtr);
|
|
4299
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4300
|
+
return ptr;
|
|
4301
|
+
},
|
|
4302
|
+
importJsTextureView:(obj, parentPtr = 0) => {
|
|
4303
|
+
var ptr = _emwgpuCreateTextureView(parentPtr);
|
|
4304
|
+
WebGPU.Internals.jsObjects[ptr] = obj;
|
|
4305
|
+
return ptr;
|
|
4306
|
+
},
|
|
4307
|
+
errorCallback:(callback, type, message, userdata) => {
|
|
4308
|
+
var sp = stackSave();
|
|
4309
|
+
var messagePtr = stringToUTF8OnStack(message);
|
|
4310
|
+
getWasmTableEntry(callback)(type, messagePtr, userdata);
|
|
4311
|
+
stackRestore(sp);
|
|
4312
|
+
},
|
|
4313
|
+
iterateExtensions:(root, handlers) => {
|
|
4314
|
+
|
|
4315
|
+
for (var ptr = HEAPU32[((root)>>2)]; ptr;
|
|
4316
|
+
ptr = HEAPU32[((ptr)>>2)]) {
|
|
4317
|
+
var sType = HEAP32[(((ptr)+(4))>>2)];
|
|
4318
|
+
// This will crash if there's no handler indicating either a bogus
|
|
4319
|
+
// sType, or one we haven't implemented yet.
|
|
4320
|
+
var handler = handlers[sType](ptr);
|
|
4321
|
+
}
|
|
4322
|
+
},
|
|
4323
|
+
setStringView:(ptr, data, length) => {
|
|
4324
|
+
HEAPU32[((ptr)>>2)] = data;
|
|
4325
|
+
HEAPU32[(((ptr)+(4))>>2)] = length;
|
|
4326
|
+
},
|
|
4327
|
+
makeStringFromStringView:(stringViewPtr) => {
|
|
4328
|
+
var ptr = HEAPU32[((stringViewPtr)>>2)];
|
|
4329
|
+
var length = HEAPU32[(((stringViewPtr)+(4))>>2)];
|
|
4330
|
+
// UTF8ToString stops at the first null terminator character in the
|
|
4331
|
+
// string regardless of the length.
|
|
4332
|
+
return UTF8ToString(ptr, length);
|
|
4333
|
+
},
|
|
4334
|
+
makeStringFromOptionalStringView:(stringViewPtr) => {
|
|
4335
|
+
var ptr = HEAPU32[((stringViewPtr)>>2)];
|
|
4336
|
+
var length = HEAPU32[(((stringViewPtr)+(4))>>2)];
|
|
4337
|
+
// If we don't have a valid string pointer, just return undefined when
|
|
4338
|
+
// optional.
|
|
4339
|
+
if (!ptr) {
|
|
4340
|
+
if (length === 0) {
|
|
4341
|
+
return "";
|
|
4342
|
+
}
|
|
4343
|
+
return undefined;
|
|
4344
|
+
}
|
|
4345
|
+
// UTF8ToString stops at the first null terminator character in the
|
|
4346
|
+
// string regardless of the length.
|
|
4347
|
+
return UTF8ToString(ptr, length);
|
|
4348
|
+
},
|
|
4349
|
+
makeColor:(ptr) => {
|
|
4350
|
+
return {
|
|
4351
|
+
"r": HEAPF64[((ptr)>>3)],
|
|
4352
|
+
"g": HEAPF64[(((ptr)+(8))>>3)],
|
|
4353
|
+
"b": HEAPF64[(((ptr)+(16))>>3)],
|
|
4354
|
+
"a": HEAPF64[(((ptr)+(24))>>3)],
|
|
4355
|
+
};
|
|
4356
|
+
},
|
|
4357
|
+
makeExtent3D:(ptr) => {
|
|
4358
|
+
return {
|
|
4359
|
+
"width": HEAPU32[((ptr)>>2)],
|
|
4360
|
+
"height": HEAPU32[(((ptr)+(4))>>2)],
|
|
4361
|
+
"depthOrArrayLayers": HEAPU32[(((ptr)+(8))>>2)],
|
|
4362
|
+
};
|
|
4363
|
+
},
|
|
4364
|
+
makeOrigin3D:(ptr) => {
|
|
4365
|
+
return {
|
|
4366
|
+
"x": HEAPU32[((ptr)>>2)],
|
|
4367
|
+
"y": HEAPU32[(((ptr)+(4))>>2)],
|
|
4368
|
+
"z": HEAPU32[(((ptr)+(8))>>2)],
|
|
4369
|
+
};
|
|
4370
|
+
},
|
|
4371
|
+
makeTexelCopyTextureInfo:(ptr) => {
|
|
4372
|
+
|
|
4373
|
+
return {
|
|
4374
|
+
"texture": WebGPU.getJsObject(
|
|
4375
|
+
HEAPU32[((ptr)>>2)]),
|
|
4376
|
+
"mipLevel": HEAPU32[(((ptr)+(4))>>2)],
|
|
4377
|
+
"origin": WebGPU.makeOrigin3D(ptr + 8),
|
|
4378
|
+
"aspect": WebGPU.TextureAspect[HEAP32[(((ptr)+(20))>>2)]],
|
|
4379
|
+
};
|
|
4380
|
+
},
|
|
4381
|
+
makeTexelCopyBufferLayout:(ptr) => {
|
|
4382
|
+
var bytesPerRow = HEAPU32[(((ptr)+(8))>>2)];
|
|
4383
|
+
var rowsPerImage = HEAPU32[(((ptr)+(12))>>2)];
|
|
4384
|
+
return {
|
|
4385
|
+
"offset": readI53FromI64(ptr),
|
|
4386
|
+
"bytesPerRow": bytesPerRow === 4294967295 ? undefined : bytesPerRow,
|
|
4387
|
+
"rowsPerImage": rowsPerImage === 4294967295 ? undefined : rowsPerImage,
|
|
4388
|
+
};
|
|
4389
|
+
},
|
|
4390
|
+
makeTexelCopyBufferInfo:(ptr) => {
|
|
4391
|
+
|
|
4392
|
+
var layoutPtr = ptr + 0;
|
|
4393
|
+
var bufferCopyView = WebGPU.makeTexelCopyBufferLayout(layoutPtr);
|
|
4394
|
+
bufferCopyView["buffer"] = WebGPU.getJsObject(
|
|
4395
|
+
HEAPU32[(((ptr)+(16))>>2)]);
|
|
4396
|
+
return bufferCopyView;
|
|
4397
|
+
},
|
|
4398
|
+
makePassTimestampWrites:(ptr) => {
|
|
4399
|
+
if (ptr === 0) return undefined;
|
|
4400
|
+
return {
|
|
4401
|
+
"querySet": WebGPU.getJsObject(
|
|
4402
|
+
HEAPU32[(((ptr)+(4))>>2)]),
|
|
4403
|
+
"beginningOfPassWriteIndex": HEAPU32[(((ptr)+(8))>>2)],
|
|
4404
|
+
"endOfPassWriteIndex": HEAPU32[(((ptr)+(12))>>2)],
|
|
4405
|
+
};
|
|
4406
|
+
},
|
|
4407
|
+
makePipelineConstants:(constantCount, constantsPtr) => {
|
|
4408
|
+
if (!constantCount) return;
|
|
4409
|
+
var constants = {};
|
|
4410
|
+
for (var i = 0; i < constantCount; ++i) {
|
|
4411
|
+
var entryPtr = constantsPtr + 24 * i;
|
|
4412
|
+
var key = WebGPU.makeStringFromStringView(entryPtr + 4);
|
|
4413
|
+
constants[key] = HEAPF64[(((entryPtr)+(16))>>3)];
|
|
4414
|
+
}
|
|
4415
|
+
return constants;
|
|
4416
|
+
},
|
|
4417
|
+
makePipelineLayout:(layoutPtr) => {
|
|
4418
|
+
if (!layoutPtr) return 'auto';
|
|
4419
|
+
return WebGPU.getJsObject(layoutPtr);
|
|
4420
|
+
},
|
|
4421
|
+
makeComputeState:(ptr) => {
|
|
4422
|
+
if (!ptr) return undefined;
|
|
4423
|
+
|
|
4424
|
+
var desc = {
|
|
4425
|
+
"module": WebGPU.getJsObject(
|
|
4426
|
+
HEAPU32[(((ptr)+(4))>>2)]),
|
|
4427
|
+
"constants": WebGPU.makePipelineConstants(
|
|
4428
|
+
HEAPU32[(((ptr)+(16))>>2)],
|
|
4429
|
+
HEAPU32[(((ptr)+(20))>>2)]),
|
|
4430
|
+
"entryPoint": WebGPU.makeStringFromOptionalStringView(
|
|
4431
|
+
ptr + 8),
|
|
4432
|
+
};
|
|
4433
|
+
return desc;
|
|
4434
|
+
},
|
|
4435
|
+
makeComputePipelineDesc:(descriptor) => {
|
|
4436
|
+
|
|
4437
|
+
|
|
4438
|
+
var desc = {
|
|
4439
|
+
"label": WebGPU.makeStringFromOptionalStringView(
|
|
4440
|
+
descriptor + 4),
|
|
4441
|
+
"layout": WebGPU.makePipelineLayout(
|
|
4442
|
+
HEAPU32[(((descriptor)+(12))>>2)]),
|
|
4443
|
+
"compute": WebGPU.makeComputeState(
|
|
4444
|
+
descriptor + 16),
|
|
4445
|
+
};
|
|
4446
|
+
return desc;
|
|
4447
|
+
},
|
|
4448
|
+
makeRenderPipelineDesc:(descriptor) => {
|
|
4449
|
+
|
|
4450
|
+
|
|
4451
|
+
function makePrimitiveState(psPtr) {
|
|
4452
|
+
if (!psPtr) return undefined;
|
|
4453
|
+
|
|
4454
|
+
return {
|
|
4455
|
+
"topology": WebGPU.PrimitiveTopology[HEAP32[(((psPtr)+(4))>>2)]],
|
|
4456
|
+
"stripIndexFormat": WebGPU.IndexFormat[HEAP32[(((psPtr)+(8))>>2)]],
|
|
4457
|
+
"frontFace": WebGPU.FrontFace[HEAP32[(((psPtr)+(12))>>2)]],
|
|
4458
|
+
"cullMode": WebGPU.CullMode[HEAP32[(((psPtr)+(16))>>2)]],
|
|
4459
|
+
"unclippedDepth": !!(HEAPU32[(((psPtr)+(20))>>2)]),
|
|
4460
|
+
};
|
|
4461
|
+
}
|
|
4462
|
+
|
|
4463
|
+
function makeBlendComponent(bdPtr) {
|
|
4464
|
+
if (!bdPtr) return undefined;
|
|
4465
|
+
return {
|
|
4466
|
+
"operation": WebGPU.BlendOperation[HEAP32[((bdPtr)>>2)]],
|
|
4467
|
+
"srcFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr)+(4))>>2)]],
|
|
4468
|
+
"dstFactor": WebGPU.BlendFactor[HEAP32[(((bdPtr)+(8))>>2)]],
|
|
4469
|
+
};
|
|
4470
|
+
}
|
|
4471
|
+
|
|
4472
|
+
function makeBlendState(bsPtr) {
|
|
4473
|
+
if (!bsPtr) return undefined;
|
|
4474
|
+
return {
|
|
4475
|
+
"alpha": makeBlendComponent(bsPtr + 12),
|
|
4476
|
+
"color": makeBlendComponent(bsPtr + 0),
|
|
4477
|
+
};
|
|
4478
|
+
}
|
|
4479
|
+
|
|
4480
|
+
function makeColorState(csPtr) {
|
|
4481
|
+
|
|
4482
|
+
var format = WebGPU.TextureFormat[HEAP32[(((csPtr)+(4))>>2)]];
|
|
4483
|
+
return format ? {
|
|
4484
|
+
"format": format,
|
|
4485
|
+
"blend": makeBlendState(HEAPU32[(((csPtr)+(8))>>2)]),
|
|
4486
|
+
"writeMask": HEAPU32[(((csPtr)+(16))>>2)],
|
|
4487
|
+
} : undefined;
|
|
4488
|
+
}
|
|
4489
|
+
|
|
4490
|
+
function makeColorStates(count, csArrayPtr) {
|
|
4491
|
+
var states = [];
|
|
4492
|
+
for (var i = 0; i < count; ++i) {
|
|
4493
|
+
states.push(makeColorState(csArrayPtr + 24 * i));
|
|
4494
|
+
}
|
|
4495
|
+
return states;
|
|
4496
|
+
}
|
|
4497
|
+
|
|
4498
|
+
function makeStencilStateFace(ssfPtr) {
|
|
4499
|
+
|
|
4500
|
+
return {
|
|
4501
|
+
"compare": WebGPU.CompareFunction[HEAP32[((ssfPtr)>>2)]],
|
|
4502
|
+
"failOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr)+(4))>>2)]],
|
|
4503
|
+
"depthFailOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr)+(8))>>2)]],
|
|
4504
|
+
"passOp": WebGPU.StencilOperation[HEAP32[(((ssfPtr)+(12))>>2)]],
|
|
4505
|
+
};
|
|
4506
|
+
}
|
|
4507
|
+
|
|
4508
|
+
function makeDepthStencilState(dssPtr) {
|
|
4509
|
+
if (!dssPtr) return undefined;
|
|
4510
|
+
|
|
4511
|
+
|
|
4512
|
+
return {
|
|
4513
|
+
"format": WebGPU.TextureFormat[HEAP32[(((dssPtr)+(4))>>2)]],
|
|
4514
|
+
"depthWriteEnabled": !!(HEAPU32[(((dssPtr)+(8))>>2)]),
|
|
4515
|
+
"depthCompare": WebGPU.CompareFunction[HEAP32[(((dssPtr)+(12))>>2)]],
|
|
4516
|
+
"stencilFront": makeStencilStateFace(dssPtr + 16),
|
|
4517
|
+
"stencilBack": makeStencilStateFace(dssPtr + 32),
|
|
4518
|
+
"stencilReadMask": HEAPU32[(((dssPtr)+(48))>>2)],
|
|
4519
|
+
"stencilWriteMask": HEAPU32[(((dssPtr)+(52))>>2)],
|
|
4520
|
+
"depthBias": HEAP32[(((dssPtr)+(56))>>2)],
|
|
4521
|
+
"depthBiasSlopeScale": HEAPF32[(((dssPtr)+(60))>>2)],
|
|
4522
|
+
"depthBiasClamp": HEAPF32[(((dssPtr)+(64))>>2)],
|
|
4523
|
+
};
|
|
4524
|
+
}
|
|
4525
|
+
|
|
4526
|
+
function makeVertexAttribute(vaPtr) {
|
|
4527
|
+
|
|
4528
|
+
return {
|
|
4529
|
+
"format": WebGPU.VertexFormat[HEAP32[(((vaPtr)+(4))>>2)]],
|
|
4530
|
+
"offset": readI53FromI64((vaPtr)+(8)),
|
|
4531
|
+
"shaderLocation": HEAPU32[(((vaPtr)+(16))>>2)],
|
|
4532
|
+
};
|
|
4533
|
+
}
|
|
4534
|
+
|
|
4535
|
+
function makeVertexAttributes(count, vaArrayPtr) {
|
|
4536
|
+
var vas = [];
|
|
4537
|
+
for (var i = 0; i < count; ++i) {
|
|
4538
|
+
vas.push(makeVertexAttribute(vaArrayPtr + i * 24));
|
|
4539
|
+
}
|
|
4540
|
+
return vas;
|
|
4541
|
+
}
|
|
4542
|
+
|
|
4543
|
+
function makeVertexBuffer(vbPtr) {
|
|
4544
|
+
if (!vbPtr) return undefined;
|
|
4545
|
+
var stepMode = WebGPU.VertexStepMode[HEAP32[(((vbPtr)+(4))>>2)]];
|
|
4546
|
+
var attributeCount = HEAPU32[(((vbPtr)+(16))>>2)];
|
|
4547
|
+
if (!stepMode && !attributeCount) {
|
|
4548
|
+
return null;
|
|
4549
|
+
}
|
|
4550
|
+
return {
|
|
4551
|
+
"arrayStride": readI53FromI64((vbPtr)+(8)),
|
|
4552
|
+
"stepMode": stepMode,
|
|
4553
|
+
"attributes": makeVertexAttributes(
|
|
4554
|
+
attributeCount,
|
|
4555
|
+
HEAPU32[(((vbPtr)+(20))>>2)]),
|
|
4556
|
+
};
|
|
4557
|
+
}
|
|
4558
|
+
|
|
4559
|
+
function makeVertexBuffers(count, vbArrayPtr) {
|
|
4560
|
+
if (!count) return undefined;
|
|
4561
|
+
|
|
4562
|
+
var vbs = [];
|
|
4563
|
+
for (var i = 0; i < count; ++i) {
|
|
4564
|
+
vbs.push(makeVertexBuffer(vbArrayPtr + i * 24));
|
|
4565
|
+
}
|
|
4566
|
+
return vbs;
|
|
4567
|
+
}
|
|
4568
|
+
|
|
4569
|
+
function makeVertexState(viPtr) {
|
|
4570
|
+
if (!viPtr) return undefined;
|
|
4571
|
+
|
|
4572
|
+
var desc = {
|
|
4573
|
+
"module": WebGPU.getJsObject(
|
|
4574
|
+
HEAPU32[(((viPtr)+(4))>>2)]),
|
|
4575
|
+
"constants": WebGPU.makePipelineConstants(
|
|
4576
|
+
HEAPU32[(((viPtr)+(16))>>2)],
|
|
4577
|
+
HEAPU32[(((viPtr)+(20))>>2)]),
|
|
4578
|
+
"buffers": makeVertexBuffers(
|
|
4579
|
+
HEAPU32[(((viPtr)+(24))>>2)],
|
|
4580
|
+
HEAPU32[(((viPtr)+(28))>>2)]),
|
|
4581
|
+
"entryPoint": WebGPU.makeStringFromOptionalStringView(
|
|
4582
|
+
viPtr + 8),
|
|
4583
|
+
};
|
|
4584
|
+
return desc;
|
|
4585
|
+
}
|
|
4586
|
+
|
|
4587
|
+
function makeMultisampleState(msPtr) {
|
|
4588
|
+
if (!msPtr) return undefined;
|
|
4589
|
+
|
|
4590
|
+
return {
|
|
4591
|
+
"count": HEAPU32[(((msPtr)+(4))>>2)],
|
|
4592
|
+
"mask": HEAPU32[(((msPtr)+(8))>>2)],
|
|
4593
|
+
"alphaToCoverageEnabled": !!(HEAPU32[(((msPtr)+(12))>>2)]),
|
|
4594
|
+
};
|
|
4595
|
+
}
|
|
4596
|
+
|
|
4597
|
+
function makeFragmentState(fsPtr) {
|
|
4598
|
+
if (!fsPtr) return undefined;
|
|
4599
|
+
|
|
4600
|
+
var desc = {
|
|
4601
|
+
"module": WebGPU.getJsObject(
|
|
4602
|
+
HEAPU32[(((fsPtr)+(4))>>2)]),
|
|
4603
|
+
"constants": WebGPU.makePipelineConstants(
|
|
4604
|
+
HEAPU32[(((fsPtr)+(16))>>2)],
|
|
4605
|
+
HEAPU32[(((fsPtr)+(20))>>2)]),
|
|
4606
|
+
"targets": makeColorStates(
|
|
4607
|
+
HEAPU32[(((fsPtr)+(24))>>2)],
|
|
4608
|
+
HEAPU32[(((fsPtr)+(28))>>2)]),
|
|
4609
|
+
"entryPoint": WebGPU.makeStringFromOptionalStringView(
|
|
4610
|
+
fsPtr + 8),
|
|
4611
|
+
};
|
|
4612
|
+
return desc;
|
|
4613
|
+
}
|
|
4614
|
+
|
|
4615
|
+
var desc = {
|
|
4616
|
+
"label": WebGPU.makeStringFromOptionalStringView(
|
|
4617
|
+
descriptor + 4),
|
|
4618
|
+
"layout": WebGPU.makePipelineLayout(
|
|
4619
|
+
HEAPU32[(((descriptor)+(12))>>2)]),
|
|
4620
|
+
"vertex": makeVertexState(
|
|
4621
|
+
descriptor + 16),
|
|
4622
|
+
"primitive": makePrimitiveState(
|
|
4623
|
+
descriptor + 48),
|
|
4624
|
+
"depthStencil": makeDepthStencilState(
|
|
4625
|
+
HEAPU32[(((descriptor)+(72))>>2)]),
|
|
4626
|
+
"multisample": makeMultisampleState(
|
|
4627
|
+
descriptor + 76),
|
|
4628
|
+
"fragment": makeFragmentState(
|
|
4629
|
+
HEAPU32[(((descriptor)+(92))>>2)]),
|
|
4630
|
+
};
|
|
4631
|
+
return desc;
|
|
4632
|
+
},
|
|
4633
|
+
fillLimitStruct:(limits, limitsOutPtr) => {
|
|
4634
|
+
|
|
4635
|
+
var nextInChainPtr = HEAPU32[((limitsOutPtr)>>2)];
|
|
4636
|
+
|
|
4637
|
+
function setLimitValueU32(name, basePtr, limitOffset, fallbackValue = 0) {
|
|
4638
|
+
var limitValue = limits[name] ?? fallbackValue;
|
|
4639
|
+
HEAPU32[(((basePtr)+(limitOffset))>>2)] = limitValue;
|
|
4640
|
+
}
|
|
4641
|
+
function setLimitValueU64(name, basePtr, limitOffset, fallbackValue = 0) {
|
|
4642
|
+
var limitValue = limits[name] ?? fallbackValue;
|
|
4643
|
+
// Limits are integer-valued JS `Number`s, so they fit in 'i53'.
|
|
4644
|
+
writeI53ToI64((basePtr)+(limitOffset), limitValue);
|
|
4645
|
+
}
|
|
4646
|
+
|
|
4647
|
+
setLimitValueU32('maxTextureDimension1D', limitsOutPtr, 4);
|
|
4648
|
+
setLimitValueU32('maxTextureDimension2D', limitsOutPtr, 8);
|
|
4649
|
+
setLimitValueU32('maxTextureDimension3D', limitsOutPtr, 12);
|
|
4650
|
+
setLimitValueU32('maxTextureArrayLayers', limitsOutPtr, 16);
|
|
4651
|
+
setLimitValueU32('maxBindGroups', limitsOutPtr, 20);
|
|
4652
|
+
setLimitValueU32('maxBindGroupsPlusVertexBuffers', limitsOutPtr, 24);
|
|
4653
|
+
setLimitValueU32('maxBindingsPerBindGroup', limitsOutPtr, 28);
|
|
4654
|
+
setLimitValueU32('maxDynamicUniformBuffersPerPipelineLayout', limitsOutPtr, 32);
|
|
4655
|
+
setLimitValueU32('maxDynamicStorageBuffersPerPipelineLayout', limitsOutPtr, 36);
|
|
4656
|
+
setLimitValueU32('maxSampledTexturesPerShaderStage', limitsOutPtr, 40);
|
|
4657
|
+
setLimitValueU32('maxSamplersPerShaderStage', limitsOutPtr, 44);
|
|
4658
|
+
setLimitValueU32('maxStorageBuffersPerShaderStage', limitsOutPtr, 48);
|
|
4659
|
+
setLimitValueU32('maxStorageTexturesPerShaderStage', limitsOutPtr, 52);
|
|
4660
|
+
setLimitValueU32('maxUniformBuffersPerShaderStage', limitsOutPtr, 56);
|
|
4661
|
+
setLimitValueU32('minUniformBufferOffsetAlignment', limitsOutPtr, 80);
|
|
4662
|
+
setLimitValueU32('minStorageBufferOffsetAlignment', limitsOutPtr, 84);
|
|
4663
|
+
setLimitValueU64('maxUniformBufferBindingSize', limitsOutPtr, 64);
|
|
4664
|
+
setLimitValueU64('maxStorageBufferBindingSize', limitsOutPtr, 72);
|
|
4665
|
+
setLimitValueU32('maxVertexBuffers', limitsOutPtr, 88);
|
|
4666
|
+
setLimitValueU64('maxBufferSize', limitsOutPtr, 96);
|
|
4667
|
+
setLimitValueU32('maxVertexAttributes', limitsOutPtr, 104);
|
|
4668
|
+
setLimitValueU32('maxVertexBufferArrayStride', limitsOutPtr, 108);
|
|
4669
|
+
setLimitValueU32('maxInterStageShaderVariables', limitsOutPtr, 112);
|
|
4670
|
+
setLimitValueU32('maxColorAttachments', limitsOutPtr, 116);
|
|
4671
|
+
setLimitValueU32('maxColorAttachmentBytesPerSample', limitsOutPtr, 120);
|
|
4672
|
+
setLimitValueU32('maxComputeWorkgroupStorageSize', limitsOutPtr, 124);
|
|
4673
|
+
setLimitValueU32('maxComputeInvocationsPerWorkgroup', limitsOutPtr, 128);
|
|
4674
|
+
setLimitValueU32('maxComputeWorkgroupSizeX', limitsOutPtr, 132);
|
|
4675
|
+
setLimitValueU32('maxComputeWorkgroupSizeY', limitsOutPtr, 136);
|
|
4676
|
+
setLimitValueU32('maxComputeWorkgroupSizeZ', limitsOutPtr, 140);
|
|
4677
|
+
setLimitValueU32('maxComputeWorkgroupsPerDimension', limitsOutPtr, 144);
|
|
4678
|
+
// Note this limit is new and won't be present in all browsers for a while. Fall back to 0.
|
|
4679
|
+
setLimitValueU32('maxImmediateSize', limitsOutPtr, 148);
|
|
4680
|
+
|
|
4681
|
+
if (nextInChainPtr !== 0) {
|
|
4682
|
+
var sType = HEAP32[(((nextInChainPtr)+(4))>>2)];
|
|
4683
|
+
var compatibilityModeLimitsPtr = nextInChainPtr;
|
|
4684
|
+
|
|
4685
|
+
|
|
4686
|
+
// Note these limits are new and won't be present in all browsers for a while. Fall back to exposing the PerShaderStage limit.
|
|
4687
|
+
setLimitValueU32('maxStorageBuffersInVertexStage', compatibilityModeLimitsPtr, 8, limits.maxStorageBuffersPerShaderStage);
|
|
4688
|
+
setLimitValueU32('maxStorageBuffersInFragmentStage', compatibilityModeLimitsPtr, 16, limits.maxStorageBuffersPerShaderStage);
|
|
4689
|
+
setLimitValueU32('maxStorageTexturesInVertexStage', compatibilityModeLimitsPtr, 12, limits.maxStorageTexturesPerShaderStage);
|
|
4690
|
+
setLimitValueU32('maxStorageTexturesInFragmentStage', compatibilityModeLimitsPtr, 20, limits.maxStorageTexturesPerShaderStage);
|
|
4691
|
+
}
|
|
4692
|
+
},
|
|
4693
|
+
fillAdapterInfoStruct:(info, infoStruct) => {
|
|
4694
|
+
|
|
4695
|
+
|
|
4696
|
+
// Populate subgroup limits.
|
|
4697
|
+
HEAPU32[(((infoStruct)+(52))>>2)] = info.subgroupMinSize;
|
|
4698
|
+
HEAPU32[(((infoStruct)+(56))>>2)] = info.subgroupMaxSize;
|
|
4699
|
+
|
|
4700
|
+
// Append all the strings together to condense into a single malloc.
|
|
4701
|
+
var strs = info.vendor + info.architecture + info.device + info.description;
|
|
4702
|
+
var strPtr = stringToNewUTF8(strs);
|
|
4703
|
+
|
|
4704
|
+
var vendorLen = lengthBytesUTF8(info.vendor);
|
|
4705
|
+
WebGPU.setStringView(infoStruct + 4, strPtr, vendorLen);
|
|
4706
|
+
strPtr += vendorLen;
|
|
4707
|
+
|
|
4708
|
+
var architectureLen = lengthBytesUTF8(info.architecture);
|
|
4709
|
+
WebGPU.setStringView(infoStruct + 12, strPtr, architectureLen);
|
|
4710
|
+
strPtr += architectureLen;
|
|
4711
|
+
|
|
4712
|
+
var deviceLen = lengthBytesUTF8(info.device);
|
|
4713
|
+
WebGPU.setStringView(infoStruct + 20, strPtr, deviceLen);
|
|
4714
|
+
strPtr += deviceLen;
|
|
4715
|
+
|
|
4716
|
+
var descriptionLen = lengthBytesUTF8(info.description);
|
|
4717
|
+
WebGPU.setStringView(infoStruct + 28, strPtr, descriptionLen);
|
|
4718
|
+
strPtr += descriptionLen;
|
|
4719
|
+
|
|
4720
|
+
HEAP32[(((infoStruct)+(36))>>2)] = 2;
|
|
4721
|
+
var adapterType = info.isFallbackAdapter ? 3 : 4;
|
|
4722
|
+
HEAP32[(((infoStruct)+(40))>>2)] = adapterType;
|
|
4723
|
+
HEAPU32[(((infoStruct)+(44))>>2)] = 0;
|
|
4724
|
+
HEAPU32[(((infoStruct)+(48))>>2)] = 0;
|
|
4725
|
+
},
|
|
4726
|
+
AddressMode:[,"clamp-to-edge","repeat","mirror-repeat"],
|
|
4727
|
+
BlendFactor:[,"zero","one","src","one-minus-src","src-alpha","one-minus-src-alpha","dst","one-minus-dst","dst-alpha","one-minus-dst-alpha","src-alpha-saturated","constant","one-minus-constant","src1","one-minus-src1","src1-alpha","one-minus-src1-alpha"],
|
|
4728
|
+
BlendOperation:[,"add","subtract","reverse-subtract","min","max"],
|
|
4729
|
+
BufferBindingType:[,,"uniform","storage","read-only-storage"],
|
|
4730
|
+
BufferMapState:[,"unmapped","pending","mapped"],
|
|
4731
|
+
CompareFunction:[,"never","less","equal","less-equal","greater","not-equal","greater-equal","always"],
|
|
4732
|
+
CompilationInfoRequestStatus:[,"success","callback-cancelled"],
|
|
4733
|
+
ComponentSwizzle:[,"0","1","r","g","b","a"],
|
|
4734
|
+
CompositeAlphaMode:[,"opaque","premultiplied","unpremultiplied","inherit"],
|
|
4735
|
+
CullMode:[,"none","front","back"],
|
|
4736
|
+
ErrorFilter:[,"validation","out-of-memory","internal"],
|
|
4737
|
+
FeatureLevel:[,"compatibility","core"],
|
|
4738
|
+
FeatureName:{
|
|
4739
|
+
1:"core-features-and-limits",
|
|
4740
|
+
2:"depth-clip-control",
|
|
4741
|
+
3:"depth32float-stencil8",
|
|
4742
|
+
4:"texture-compression-bc",
|
|
4743
|
+
5:"texture-compression-bc-sliced-3d",
|
|
4744
|
+
6:"texture-compression-etc2",
|
|
4745
|
+
7:"texture-compression-astc",
|
|
4746
|
+
8:"texture-compression-astc-sliced-3d",
|
|
4747
|
+
9:"timestamp-query",
|
|
4748
|
+
10:"indirect-first-instance",
|
|
4749
|
+
11:"shader-f16",
|
|
4750
|
+
12:"rg11b10ufloat-renderable",
|
|
4751
|
+
13:"bgra8unorm-storage",
|
|
4752
|
+
14:"float32-filterable",
|
|
4753
|
+
15:"float32-blendable",
|
|
4754
|
+
16:"clip-distances",
|
|
4755
|
+
17:"dual-source-blending",
|
|
4756
|
+
18:"subgroups",
|
|
4757
|
+
19:"texture-formats-tier1",
|
|
4758
|
+
20:"texture-formats-tier2",
|
|
4759
|
+
21:"primitive-index",
|
|
4760
|
+
22:"texture-component-swizzle",
|
|
4761
|
+
23:"subgroup-size-control",
|
|
4762
|
+
327692:"chromium-experimental-unorm16-texture-formats",
|
|
4763
|
+
327729:"chromium-experimental-multi-draw-indirect",
|
|
4764
|
+
},
|
|
4765
|
+
FilterMode:[,"nearest","linear"],
|
|
4766
|
+
FrontFace:[,"ccw","cw"],
|
|
4767
|
+
IndexFormat:[,"uint16","uint32"],
|
|
4768
|
+
InstanceFeatureName:[,"timed-wait-any","shader-source-spirv","multiple-devices-per-adapter"],
|
|
4769
|
+
LoadOp:[,"load","clear"],
|
|
4770
|
+
MipmapFilterMode:[,"nearest","linear"],
|
|
4771
|
+
OptionalBool:["false","true",],
|
|
4772
|
+
PowerPreference:[,"low-power","high-performance"],
|
|
4773
|
+
PredefinedColorSpace:[,"srgb","display-p3"],
|
|
4774
|
+
PrimitiveTopology:[,"point-list","line-list","line-strip","triangle-list","triangle-strip"],
|
|
4775
|
+
QueryType:[,"occlusion","timestamp"],
|
|
4776
|
+
SamplerBindingType:[,,"filtering","non-filtering","comparison"],
|
|
4777
|
+
Status:[,"success","error"],
|
|
4778
|
+
StencilOperation:[,"keep","zero","replace","invert","increment-clamp","decrement-clamp","increment-wrap","decrement-wrap"],
|
|
4779
|
+
StorageTextureAccess:[,,"write-only","read-only","read-write"],
|
|
4780
|
+
StoreOp:[,"store","discard"],
|
|
4781
|
+
SurfaceGetCurrentTextureStatus:[,"success-optimal","success-suboptimal","timeout","outdated","lost","error"],
|
|
4782
|
+
TextureAspect:[,"all","stencil-only","depth-only"],
|
|
4783
|
+
TextureDimension:[,"1d","2d","3d"],
|
|
4784
|
+
TextureFormat:[,"r8unorm","r8snorm","r8uint","r8sint","r16unorm","r16snorm","r16uint","r16sint","r16float","rg8unorm","rg8snorm","rg8uint","rg8sint","r32float","r32uint","r32sint","rg16unorm","rg16snorm","rg16uint","rg16sint","rg16float","rgba8unorm","rgba8unorm-srgb","rgba8snorm","rgba8uint","rgba8sint","bgra8unorm","bgra8unorm-srgb","rgb10a2uint","rgb10a2unorm","rg11b10ufloat","rgb9e5ufloat","rg32float","rg32uint","rg32sint","rgba16unorm","rgba16snorm","rgba16uint","rgba16sint","rgba16float","rgba32float","rgba32uint","rgba32sint","stencil8","depth16unorm","depth24plus","depth24plus-stencil8","depth32float","depth32float-stencil8","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb","bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm","bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb","etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm","astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"],
|
|
4785
|
+
TextureSampleType:[,,"float","unfilterable-float","depth","sint","uint"],
|
|
4786
|
+
TextureViewDimension:[,"1d","2d","2d-array","cube","cube-array","3d"],
|
|
4787
|
+
ToneMappingMode:[,"standard","extended"],
|
|
4788
|
+
VertexFormat:[,"uint8","uint8x2","uint8x4","sint8","sint8x2","sint8x4","unorm8","unorm8x2","unorm8x4","snorm8","snorm8x2","snorm8x4","uint16","uint16x2","uint16x4","sint16","sint16x2","sint16x4","unorm16","unorm16x2","unorm16x4","snorm16","snorm16x2","snorm16x4","float16","float16x2","float16x4","float32","float32x2","float32x3","float32x4","uint32","uint32x2","uint32x3","uint32x4","sint32","sint32x2","sint32x3","sint32x4","unorm10-10-10-2","unorm8x4-bgra"],
|
|
4789
|
+
VertexStepMode:[,"vertex","instance"],
|
|
4790
|
+
WGSLLanguageFeatureName:[,"readonly_and_readwrite_storage_textures","packed_4x8_integer_dot_product","unrestricted_pointer_parameters","pointer_composite_access","uniform_buffer_standard_layout","subgroup_id","texture_and_sampler_let","subgroup_uniformity","texture_formats_tier1","linear_indexing","immediate_address_space"],
|
|
4791
|
+
};
|
|
4792
|
+
|
|
4793
|
+
var _emwgpuDelete = (ptr) => {
|
|
4794
|
+
delete WebGPU.Internals.jsObjects[ptr];
|
|
4795
|
+
};
|
|
4796
|
+
|
|
4797
|
+
|
|
4798
|
+
var _emwgpuDeviceDestroy = (devicePtr) => {
|
|
4799
|
+
const device = WebGPU.getJsObject(devicePtr);
|
|
4800
|
+
// Remove the onuncapturederror handler which holds a pointer to the WGPUDevice.
|
|
4801
|
+
device.onuncapturederror = null;
|
|
4802
|
+
device.destroy()
|
|
4803
|
+
};
|
|
4804
|
+
|
|
4106
4805
|
var ENV = {
|
|
4107
4806
|
};
|
|
4108
4807
|
|
|
@@ -4740,6 +5439,7 @@ function createWasm() {
|
|
|
4740
5439
|
|
|
4741
5440
|
|
|
4742
5441
|
|
|
5442
|
+
|
|
4743
5443
|
var getCFunc = (ident) => {
|
|
4744
5444
|
var func = Module['_' + ident]; // closure exported function
|
|
4745
5445
|
return func;
|
|
@@ -4747,13 +5447,6 @@ function createWasm() {
|
|
|
4747
5447
|
|
|
4748
5448
|
|
|
4749
5449
|
|
|
4750
|
-
var stringToUTF8OnStack = (str) => {
|
|
4751
|
-
var size = lengthBytesUTF8(str) + 1;
|
|
4752
|
-
var ret = stackAlloc(size);
|
|
4753
|
-
stringToUTF8(str, ret, size);
|
|
4754
|
-
return ret;
|
|
4755
|
-
};
|
|
4756
|
-
|
|
4757
5450
|
|
|
4758
5451
|
|
|
4759
5452
|
|
|
@@ -4939,17 +5632,6 @@ function createWasm() {
|
|
|
4939
5632
|
return wrappedFunc;
|
|
4940
5633
|
};
|
|
4941
5634
|
|
|
4942
|
-
var wasmTableMirror = [];
|
|
4943
|
-
|
|
4944
|
-
var wasmTable;
|
|
4945
|
-
var getWasmTableEntry = (funcPtr) => {
|
|
4946
|
-
var func = wasmTableMirror[funcPtr];
|
|
4947
|
-
if (!func) {
|
|
4948
|
-
if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
|
|
4949
|
-
wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
|
|
4950
|
-
}
|
|
4951
|
-
return func;
|
|
4952
|
-
};
|
|
4953
5635
|
|
|
4954
5636
|
var updateTableMap = (offset, count) => {
|
|
4955
5637
|
if (functionsInTableMap) {
|
|
@@ -5097,7 +5779,7 @@ function createWasm() {
|
|
|
5097
5779
|
|
|
5098
5780
|
FS.createPreloadedFile = FS_createPreloadedFile;
|
|
5099
5781
|
FS.staticInit();Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPath"] = FS.createPath;Module["FS_createDataFile"] = FS.createDataFile;Module["FS_createPreloadedFile"] = FS.createPreloadedFile;Module["FS_unlink"] = FS.unlink;Module["FS_createLazyFile"] = FS.createLazyFile;Module["FS_createDevice"] = FS.createDevice;;
|
|
5100
|
-
DOTNET.setup({ wasmEnableSIMD: true,wasmEnableEH: true,enableAotProfiler: false, enableDevToolsProfiler: false, enableLogProfiler: false, enableEventPipe: false, runAOTCompilation: false, wasmEnableThreads: false, gitHash: "
|
|
5782
|
+
DOTNET.setup({ wasmEnableSIMD: true,wasmEnableEH: true,enableAotProfiler: false, enableDevToolsProfiler: false, enableLogProfiler: false, enableEventPipe: false, runAOTCompilation: false, wasmEnableThreads: false, gitHash: "95017c711e6afc1085133d440e42b4bd78155701", });;
|
|
5101
5783
|
var wasmImports = {
|
|
5102
5784
|
/** @export */
|
|
5103
5785
|
__assert_fail: ___assert_fail,
|
|
@@ -5154,8 +5836,14 @@ var wasmImports = {
|
|
|
5154
5836
|
/** @export */
|
|
5155
5837
|
emscripten_get_now_res: _emscripten_get_now_res,
|
|
5156
5838
|
/** @export */
|
|
5839
|
+
emscripten_has_asyncify: _emscripten_has_asyncify,
|
|
5840
|
+
/** @export */
|
|
5157
5841
|
emscripten_resize_heap: _emscripten_resize_heap,
|
|
5158
5842
|
/** @export */
|
|
5843
|
+
emwgpuDelete: _emwgpuDelete,
|
|
5844
|
+
/** @export */
|
|
5845
|
+
emwgpuDeviceDestroy: _emwgpuDeviceDestroy,
|
|
5846
|
+
/** @export */
|
|
5159
5847
|
environ_get: _environ_get,
|
|
5160
5848
|
/** @export */
|
|
5161
5849
|
environ_sizes_get: _environ_sizes_get,
|
|
@@ -5222,9 +5910,43 @@ var wasmImports = {
|
|
|
5222
5910
|
};
|
|
5223
5911
|
var wasmExports = createWasm();
|
|
5224
5912
|
var ___wasm_call_ctors = () => (___wasm_call_ctors = wasmExports['__wasm_call_ctors'])();
|
|
5913
|
+
var _emwgpuCreateBindGroup = (a0) => (_emwgpuCreateBindGroup = wasmExports['emwgpuCreateBindGroup'])(a0);
|
|
5914
|
+
var _emwgpuCreateBindGroupLayout = (a0) => (_emwgpuCreateBindGroupLayout = wasmExports['emwgpuCreateBindGroupLayout'])(a0);
|
|
5915
|
+
var _emwgpuCreateCommandBuffer = (a0) => (_emwgpuCreateCommandBuffer = wasmExports['emwgpuCreateCommandBuffer'])(a0);
|
|
5916
|
+
var _emwgpuCreateCommandEncoder = (a0) => (_emwgpuCreateCommandEncoder = wasmExports['emwgpuCreateCommandEncoder'])(a0);
|
|
5917
|
+
var _emwgpuCreateComputePassEncoder = (a0) => (_emwgpuCreateComputePassEncoder = wasmExports['emwgpuCreateComputePassEncoder'])(a0);
|
|
5918
|
+
var _emwgpuCreateComputePipeline = (a0) => (_emwgpuCreateComputePipeline = wasmExports['emwgpuCreateComputePipeline'])(a0);
|
|
5919
|
+
var _emwgpuCreateExternalTexture = (a0) => (_emwgpuCreateExternalTexture = wasmExports['emwgpuCreateExternalTexture'])(a0);
|
|
5920
|
+
var _emwgpuCreatePipelineLayout = (a0) => (_emwgpuCreatePipelineLayout = wasmExports['emwgpuCreatePipelineLayout'])(a0);
|
|
5921
|
+
var _emwgpuCreateQuerySet = (a0) => (_emwgpuCreateQuerySet = wasmExports['emwgpuCreateQuerySet'])(a0);
|
|
5922
|
+
var _emwgpuCreateRenderBundle = (a0) => (_emwgpuCreateRenderBundle = wasmExports['emwgpuCreateRenderBundle'])(a0);
|
|
5923
|
+
var _emwgpuCreateRenderBundleEncoder = (a0) => (_emwgpuCreateRenderBundleEncoder = wasmExports['emwgpuCreateRenderBundleEncoder'])(a0);
|
|
5924
|
+
var _emwgpuCreateRenderPassEncoder = (a0) => (_emwgpuCreateRenderPassEncoder = wasmExports['emwgpuCreateRenderPassEncoder'])(a0);
|
|
5925
|
+
var _emwgpuCreateRenderPipeline = (a0) => (_emwgpuCreateRenderPipeline = wasmExports['emwgpuCreateRenderPipeline'])(a0);
|
|
5926
|
+
var _emwgpuCreateSampler = (a0) => (_emwgpuCreateSampler = wasmExports['emwgpuCreateSampler'])(a0);
|
|
5927
|
+
var _emwgpuCreateSurface = (a0) => (_emwgpuCreateSurface = wasmExports['emwgpuCreateSurface'])(a0);
|
|
5928
|
+
var _emwgpuCreateTexture = (a0) => (_emwgpuCreateTexture = wasmExports['emwgpuCreateTexture'])(a0);
|
|
5929
|
+
var _emwgpuCreateTextureView = (a0) => (_emwgpuCreateTextureView = wasmExports['emwgpuCreateTextureView'])(a0);
|
|
5930
|
+
var _emwgpuCreateAdapter = (a0) => (_emwgpuCreateAdapter = wasmExports['emwgpuCreateAdapter'])(a0);
|
|
5931
|
+
var _emwgpuImportBuffer = (a0) => (_emwgpuImportBuffer = wasmExports['emwgpuImportBuffer'])(a0);
|
|
5932
|
+
var _emwgpuCreateDevice = (a0, a1) => (_emwgpuCreateDevice = wasmExports['emwgpuCreateDevice'])(a0, a1);
|
|
5933
|
+
var _emwgpuCreateQueue = (a0) => (_emwgpuCreateQueue = wasmExports['emwgpuCreateQueue'])(a0);
|
|
5934
|
+
var _emwgpuCreateShaderModule = (a0) => (_emwgpuCreateShaderModule = wasmExports['emwgpuCreateShaderModule'])(a0);
|
|
5935
|
+
var _emwgpuOnCompilationInfoCompleted = (a0, a1, a2) => (_emwgpuOnCompilationInfoCompleted = wasmExports['emwgpuOnCompilationInfoCompleted'])(a0, a1, a2);
|
|
5936
|
+
var _free = Module['_free'] = (a0) => (_free = Module['_free'] = wasmExports['free'])(a0);
|
|
5937
|
+
var _emwgpuOnCreateComputePipelineCompleted = (a0, a1, a2, a3) => (_emwgpuOnCreateComputePipelineCompleted = wasmExports['emwgpuOnCreateComputePipelineCompleted'])(a0, a1, a2, a3);
|
|
5938
|
+
var _emwgpuOnCreateRenderPipelineCompleted = (a0, a1, a2, a3) => (_emwgpuOnCreateRenderPipelineCompleted = wasmExports['emwgpuOnCreateRenderPipelineCompleted'])(a0, a1, a2, a3);
|
|
5939
|
+
var _emwgpuOnDeviceLostCompleted = (a0, a1, a2) => (_emwgpuOnDeviceLostCompleted = wasmExports['emwgpuOnDeviceLostCompleted'])(a0, a1, a2);
|
|
5940
|
+
var _emwgpuOnMapAsyncCompleted = (a0, a1, a2) => (_emwgpuOnMapAsyncCompleted = wasmExports['emwgpuOnMapAsyncCompleted'])(a0, a1, a2);
|
|
5941
|
+
var _emwgpuOnPopErrorScopeCompleted = (a0, a1, a2, a3) => (_emwgpuOnPopErrorScopeCompleted = wasmExports['emwgpuOnPopErrorScopeCompleted'])(a0, a1, a2, a3);
|
|
5942
|
+
var _emwgpuOnRequestAdapterCompleted = (a0, a1, a2, a3) => (_emwgpuOnRequestAdapterCompleted = wasmExports['emwgpuOnRequestAdapterCompleted'])(a0, a1, a2, a3);
|
|
5943
|
+
var _emwgpuOnRequestDeviceCompleted = (a0, a1, a2, a3) => (_emwgpuOnRequestDeviceCompleted = wasmExports['emwgpuOnRequestDeviceCompleted'])(a0, a1, a2, a3);
|
|
5944
|
+
var _emwgpuOnWorkDoneCompleted = (a0, a1) => (_emwgpuOnWorkDoneCompleted = wasmExports['emwgpuOnWorkDoneCompleted'])(a0, a1);
|
|
5945
|
+
var _emwgpuOnUncapturedError = (a0, a1, a2) => (_emwgpuOnUncapturedError = wasmExports['emwgpuOnUncapturedError'])(a0, a1, a2);
|
|
5946
|
+
var _wgpuTextureRelease = Module['_wgpuTextureRelease'] = (a0) => (_wgpuTextureRelease = Module['_wgpuTextureRelease'] = wasmExports['wgpuTextureRelease'])(a0);
|
|
5947
|
+
var _wgpuCreateInstance = Module['_wgpuCreateInstance'] = (a0) => (_wgpuCreateInstance = Module['_wgpuCreateInstance'] = wasmExports['wgpuCreateInstance'])(a0);
|
|
5225
5948
|
var _memset = Module['_memset'] = (a0, a1, a2) => (_memset = Module['_memset'] = wasmExports['memset'])(a0, a1, a2);
|
|
5226
5949
|
var _malloc = Module['_malloc'] = (a0) => (_malloc = Module['_malloc'] = wasmExports['malloc'])(a0);
|
|
5227
|
-
var _free = Module['_free'] = (a0) => (_free = Module['_free'] = wasmExports['free'])(a0);
|
|
5228
5950
|
var _sinf = Module['_sinf'] = (a0) => (_sinf = Module['_sinf'] = wasmExports['sinf'])(a0);
|
|
5229
5951
|
var _cosf = Module['_cosf'] = (a0) => (_cosf = Module['_cosf'] = wasmExports['cosf'])(a0);
|
|
5230
5952
|
var _tanf = Module['_tanf'] = (a0) => (_tanf = Module['_tanf'] = wasmExports['tanf'])(a0);
|
|
@@ -5438,6 +6160,7 @@ Module['FS_createPreloadedFile'] = FS.createPreloadedFile;
|
|
|
5438
6160
|
Module['FS'] = FS;
|
|
5439
6161
|
Module['FS_createDataFile'] = FS.createDataFile;
|
|
5440
6162
|
Module['FS_unlink'] = FS.unlink;
|
|
6163
|
+
Module['WebGPU'] = WebGPU;
|
|
5441
6164
|
|
|
5442
6165
|
|
|
5443
6166
|
var calledRun;
|