@sketch-hq/sketch-web-renderer 12.0.0 → 12.0.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.
@@ -0,0 +1,4320 @@
1
+ import { _ as _inherits, a as _createClass, b as _typeof, c as _wrapNativeSuper, d as _classCallCheck, e as _callSuper, f as _createForOfIteratorHelper, g as _slicedToArray } from './index-eb861739.js';
2
+ import 'react';
3
+
4
+ var WebRendererWasmFactory = function () {
5
+ var _scriptName = import.meta.url;
6
+ return function () {
7
+ var moduleArg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8
+ var moduleRtn;
9
+ var Module = Object.assign({}, moduleArg);
10
+ var readyPromiseResolve, readyPromiseReject;
11
+ var readyPromise = new Promise(function (resolve, reject) {
12
+ readyPromiseResolve = resolve;
13
+ readyPromiseReject = reject;
14
+ });
15
+ var moduleOverrides = Object.assign({}, Module);
16
+ var thisProgram = "./this.program";
17
+ var quit_ = function quit_(status, toThrow) {
18
+ throw toThrow;
19
+ };
20
+ var scriptDirectory = "";
21
+ function locateFile(path) {
22
+ if (Module["locateFile"]) {
23
+ return Module["locateFile"](path, scriptDirectory);
24
+ }
25
+ return scriptDirectory + path;
26
+ }
27
+ {
28
+ if (typeof document != "undefined" && document.currentScript) {
29
+ scriptDirectory = document.currentScript.src;
30
+ }
31
+ if (_scriptName) {
32
+ scriptDirectory = _scriptName;
33
+ }
34
+ if (scriptDirectory.startsWith("blob:")) {
35
+ scriptDirectory = "";
36
+ } else {
37
+ scriptDirectory = scriptDirectory.substr(0, scriptDirectory.replace(/[?#].*/, "").lastIndexOf("/") + 1);
38
+ }
39
+ }
40
+ var out = Module["print"] || console.log.bind(console);
41
+ var err = Module["printErr"] || console.error.bind(console);
42
+ Object.assign(Module, moduleOverrides);
43
+ moduleOverrides = null;
44
+ var wasmBinary;
45
+ var wasmMemory;
46
+ var ABORT = false;
47
+ var HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAP64, HEAPU64, HEAPF64;
48
+ function updateMemoryViews() {
49
+ var b = wasmMemory.buffer;
50
+ HEAP8 = new Int8Array(b);
51
+ HEAP16 = new Int16Array(b);
52
+ HEAPU8 = new Uint8Array(b);
53
+ HEAPU16 = new Uint16Array(b);
54
+ HEAP32 = new Int32Array(b);
55
+ HEAPU32 = new Uint32Array(b);
56
+ HEAPF32 = new Float32Array(b);
57
+ HEAPF64 = new Float64Array(b);
58
+ HEAP64 = new BigInt64Array(b);
59
+ HEAPU64 = new BigUint64Array(b);
60
+ }
61
+ var __ATPRERUN__ = [];
62
+ var __ATINIT__ = [];
63
+ var __ATPOSTRUN__ = [];
64
+ function preRun() {
65
+ callRuntimeCallbacks(__ATPRERUN__);
66
+ }
67
+ function initRuntime() {
68
+ callRuntimeCallbacks(__ATINIT__);
69
+ }
70
+ function postRun() {
71
+ callRuntimeCallbacks(__ATPOSTRUN__);
72
+ }
73
+ function addOnInit(cb) {
74
+ __ATINIT__.unshift(cb);
75
+ }
76
+ var runDependencies = 0;
77
+ var dependenciesFulfilled = null;
78
+ function addRunDependency(id) {
79
+ runDependencies++;
80
+ }
81
+ function removeRunDependency(id) {
82
+ runDependencies--;
83
+ if (runDependencies == 0) {
84
+ if (dependenciesFulfilled) {
85
+ var callback = dependenciesFulfilled;
86
+ dependenciesFulfilled = null;
87
+ callback();
88
+ }
89
+ }
90
+ }
91
+ function abort(what) {
92
+ var _Module$onAbort;
93
+ (_Module$onAbort = Module["onAbort"]) === null || _Module$onAbort === void 0 || _Module$onAbort.call(Module, what);
94
+ what = "Aborted(" + what + ")";
95
+ err(what);
96
+ ABORT = true;
97
+ what += ". Build with -sASSERTIONS for more info.";
98
+ var e = new WebAssembly.RuntimeError(what);
99
+ readyPromiseReject(e);
100
+ throw e;
101
+ }
102
+ var dataURIPrefix = "data:application/octet-stream;base64,";
103
+ var isDataURI = function isDataURI(filename) {
104
+ return filename.startsWith(dataURIPrefix);
105
+ };
106
+ function findWasmBinary() {
107
+ if (Module["locateFile"]) {
108
+ var f = "web-renderer-release.wasm";
109
+ if (!isDataURI(f)) {
110
+ return locateFile(f);
111
+ }
112
+ return f;
113
+ }
114
+ return new URL("web-renderer-release.wasm", import.meta.url).href;
115
+ }
116
+ var wasmBinaryFile;
117
+ function getBinarySync(file) {
118
+ if (file == wasmBinaryFile && wasmBinary) {
119
+ return new Uint8Array(wasmBinary);
120
+ }
121
+ throw "both async and sync fetching of the wasm failed";
122
+ }
123
+ function getBinaryPromise(binaryFile) {
124
+ {
125
+ if (typeof fetch == "function") {
126
+ return fetch(binaryFile, {
127
+ credentials: "same-origin"
128
+ }).then(function (response) {
129
+ if (!response["ok"]) {
130
+ throw "failed to load wasm binary file at '".concat(binaryFile, "'");
131
+ }
132
+ return response["arrayBuffer"]();
133
+ })["catch"](function () {
134
+ return getBinarySync(binaryFile);
135
+ });
136
+ }
137
+ }
138
+ return Promise.resolve().then(function () {
139
+ return getBinarySync(binaryFile);
140
+ });
141
+ }
142
+ function instantiateArrayBuffer(binaryFile, imports, receiver) {
143
+ return getBinaryPromise(binaryFile).then(function (binary) {
144
+ return WebAssembly.instantiate(binary, imports);
145
+ }).then(receiver, function (reason) {
146
+ err("failed to asynchronously prepare wasm: ".concat(reason));
147
+ abort(reason);
148
+ });
149
+ }
150
+ function instantiateAsync(binary, binaryFile, imports, callback) {
151
+ if (!binary && typeof WebAssembly.instantiateStreaming == "function" && !isDataURI(binaryFile) && typeof fetch == "function") {
152
+ return fetch(binaryFile, {
153
+ credentials: "same-origin"
154
+ }).then(function (response) {
155
+ var result = WebAssembly.instantiateStreaming(response, imports);
156
+ return result.then(callback, function (reason) {
157
+ err("wasm streaming compile failed: ".concat(reason));
158
+ err("falling back to ArrayBuffer instantiation");
159
+ return instantiateArrayBuffer(binaryFile, imports, callback);
160
+ });
161
+ });
162
+ }
163
+ return instantiateArrayBuffer(binaryFile, imports, callback);
164
+ }
165
+ function getWasmImports() {
166
+ return {
167
+ "a": wasmImports
168
+ };
169
+ }
170
+ function createWasm() {
171
+ var info = getWasmImports();
172
+ function receiveInstance(instance, module) {
173
+ wasmExports = instance.exports;
174
+ wasmMemory = wasmExports["Tc"];
175
+ updateMemoryViews();
176
+ wasmTable = wasmExports["Xc"];
177
+ addOnInit(wasmExports["Uc"]);
178
+ removeRunDependency();
179
+ return wasmExports;
180
+ }
181
+ addRunDependency();
182
+ function receiveInstantiationResult(result) {
183
+ receiveInstance(result["instance"]);
184
+ }
185
+ if (Module["instantiateWasm"]) {
186
+ try {
187
+ return Module["instantiateWasm"](info, receiveInstance);
188
+ } catch (e) {
189
+ err("Module.instantiateWasm callback failed with error: ".concat(e));
190
+ readyPromiseReject(e);
191
+ }
192
+ }
193
+ if (!wasmBinaryFile) wasmBinaryFile = findWasmBinary();
194
+ instantiateAsync(wasmBinary, wasmBinaryFile, info, receiveInstantiationResult)["catch"](readyPromiseReject);
195
+ return {};
196
+ }
197
+ function ExitStatus(status) {
198
+ this.name = "ExitStatus";
199
+ this.message = "Program terminated with exit(".concat(status, ")");
200
+ this.status = status;
201
+ }
202
+ var callRuntimeCallbacks = function callRuntimeCallbacks(callbacks) {
203
+ while (callbacks.length > 0) {
204
+ callbacks.shift()(Module);
205
+ }
206
+ };
207
+ var noExitRuntime = Module["noExitRuntime"] || true;
208
+ var stackRestore = function stackRestore(val) {
209
+ return _emscripten_stack_restore(val);
210
+ };
211
+ var stackSave = function stackSave() {
212
+ return _emscripten_stack_get_current2();
213
+ };
214
+ var __abort_js = function __abort_js() {
215
+ abort("");
216
+ };
217
+ var structRegistrations = {};
218
+ var runDestructors = function runDestructors(destructors) {
219
+ while (destructors.length) {
220
+ var ptr = destructors.pop();
221
+ var del = destructors.pop();
222
+ del(ptr);
223
+ }
224
+ };
225
+ function readPointer(pointer) {
226
+ return this["fromWireType"](HEAPU32[pointer >> 2]);
227
+ }
228
+ var awaitingDependencies = {};
229
+ var registeredTypes = {};
230
+ var typeDependencies = {};
231
+ var InternalError;
232
+ var throwInternalError = function throwInternalError(message) {
233
+ throw new InternalError(message);
234
+ };
235
+ var whenDependentTypesAreResolved = function whenDependentTypesAreResolved(myTypes, dependentTypes, getTypeConverters) {
236
+ myTypes.forEach(function (type) {
237
+ typeDependencies[type] = dependentTypes;
238
+ });
239
+ function onComplete(typeConverters) {
240
+ var myTypeConverters = getTypeConverters(typeConverters);
241
+ if (myTypeConverters.length !== myTypes.length) {
242
+ throwInternalError("Mismatched type converter count");
243
+ }
244
+ for (var i = 0; i < myTypes.length; ++i) {
245
+ registerType(myTypes[i], myTypeConverters[i]);
246
+ }
247
+ }
248
+ var typeConverters = new Array(dependentTypes.length);
249
+ var unregisteredTypes = [];
250
+ var registered = 0;
251
+ dependentTypes.forEach(function (dt, i) {
252
+ if (registeredTypes.hasOwnProperty(dt)) {
253
+ typeConverters[i] = registeredTypes[dt];
254
+ } else {
255
+ unregisteredTypes.push(dt);
256
+ if (!awaitingDependencies.hasOwnProperty(dt)) {
257
+ awaitingDependencies[dt] = [];
258
+ }
259
+ awaitingDependencies[dt].push(function () {
260
+ typeConverters[i] = registeredTypes[dt];
261
+ ++registered;
262
+ if (registered === unregisteredTypes.length) {
263
+ onComplete(typeConverters);
264
+ }
265
+ });
266
+ }
267
+ });
268
+ if (0 === unregisteredTypes.length) {
269
+ onComplete(typeConverters);
270
+ }
271
+ };
272
+ var __embind_finalize_value_object = function __embind_finalize_value_object(structType) {
273
+ var reg = structRegistrations[structType];
274
+ delete structRegistrations[structType];
275
+ var rawConstructor = reg.rawConstructor;
276
+ var rawDestructor = reg.rawDestructor;
277
+ var fieldRecords = reg.fields;
278
+ var fieldTypes = fieldRecords.map(function (field) {
279
+ return field.getterReturnType;
280
+ }).concat(fieldRecords.map(function (field) {
281
+ return field.setterArgumentType;
282
+ }));
283
+ whenDependentTypesAreResolved([structType], fieldTypes, function (fieldTypes) {
284
+ var fields = {};
285
+ fieldRecords.forEach(function (field, i) {
286
+ var fieldName = field.fieldName;
287
+ var getterReturnType = fieldTypes[i];
288
+ var getter = field.getter;
289
+ var getterContext = field.getterContext;
290
+ var setterArgumentType = fieldTypes[i + fieldRecords.length];
291
+ var setter = field.setter;
292
+ var setterContext = field.setterContext;
293
+ fields[fieldName] = {
294
+ read: function read(ptr) {
295
+ return getterReturnType["fromWireType"](getter(getterContext, ptr));
296
+ },
297
+ write: function write(ptr, o) {
298
+ var destructors = [];
299
+ setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, o));
300
+ runDestructors(destructors);
301
+ }
302
+ };
303
+ });
304
+ return [{
305
+ name: reg.name,
306
+ "fromWireType": function fromWireType(ptr) {
307
+ var rv = {};
308
+ for (var i in fields) {
309
+ rv[i] = fields[i].read(ptr);
310
+ }
311
+ rawDestructor(ptr);
312
+ return rv;
313
+ },
314
+ "toWireType": function toWireType(destructors, o) {
315
+ for (var fieldName in fields) {
316
+ if (!(fieldName in o)) {
317
+ throw new TypeError("Missing field: \"".concat(fieldName, "\""));
318
+ }
319
+ }
320
+ var ptr = rawConstructor();
321
+ for (fieldName in fields) {
322
+ fields[fieldName].write(ptr, o[fieldName]);
323
+ }
324
+ if (destructors !== null) {
325
+ destructors.push(rawDestructor, ptr);
326
+ }
327
+ return ptr;
328
+ },
329
+ "argPackAdvance": GenericWireTypeSize,
330
+ "readValueFromPointer": readPointer,
331
+ destructorFunction: rawDestructor
332
+ }];
333
+ });
334
+ };
335
+ var embindRepr = function embindRepr(v) {
336
+ if (v === null) {
337
+ return "null";
338
+ }
339
+ var t = _typeof(v);
340
+ if (t === "object" || t === "array" || t === "function") {
341
+ return v.toString();
342
+ } else {
343
+ return "" + v;
344
+ }
345
+ };
346
+ var embind_init_charCodes = function embind_init_charCodes() {
347
+ var codes = new Array(256);
348
+ for (var i = 0; i < 256; ++i) {
349
+ codes[i] = String.fromCharCode(i);
350
+ }
351
+ embind_charCodes = codes;
352
+ };
353
+ var embind_charCodes;
354
+ var readLatin1String = function readLatin1String(ptr) {
355
+ var ret = "";
356
+ var c = ptr;
357
+ while (HEAPU8[c]) {
358
+ ret += embind_charCodes[HEAPU8[c++]];
359
+ }
360
+ return ret;
361
+ };
362
+ var BindingError;
363
+ var throwBindingError = function throwBindingError(message) {
364
+ throw new BindingError(message);
365
+ };
366
+ function sharedRegisterType(rawType, registeredInstance) {
367
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
368
+ var name = registeredInstance.name;
369
+ if (!rawType) {
370
+ throwBindingError("type \"".concat(name, "\" must have a positive integer typeid pointer"));
371
+ }
372
+ if (registeredTypes.hasOwnProperty(rawType)) {
373
+ if (options.ignoreDuplicateRegistrations) {
374
+ return;
375
+ } else {
376
+ throwBindingError("Cannot register type '".concat(name, "' twice"));
377
+ }
378
+ }
379
+ registeredTypes[rawType] = registeredInstance;
380
+ delete typeDependencies[rawType];
381
+ if (awaitingDependencies.hasOwnProperty(rawType)) {
382
+ var callbacks = awaitingDependencies[rawType];
383
+ delete awaitingDependencies[rawType];
384
+ callbacks.forEach(function (cb) {
385
+ return cb();
386
+ });
387
+ }
388
+ }
389
+ function registerType(rawType, registeredInstance) {
390
+ var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
391
+ if (!("argPackAdvance" in registeredInstance)) {
392
+ throw new TypeError("registerType registeredInstance requires argPackAdvance");
393
+ }
394
+ return sharedRegisterType(rawType, registeredInstance, options);
395
+ }
396
+ var integerReadValueFromPointer = function integerReadValueFromPointer(name, width, signed) {
397
+ switch (width) {
398
+ case 1:
399
+ return signed ? function (pointer) {
400
+ return HEAP8[pointer];
401
+ } : function (pointer) {
402
+ return HEAPU8[pointer];
403
+ };
404
+ case 2:
405
+ return signed ? function (pointer) {
406
+ return HEAP16[pointer >> 1];
407
+ } : function (pointer) {
408
+ return HEAPU16[pointer >> 1];
409
+ };
410
+ case 4:
411
+ return signed ? function (pointer) {
412
+ return HEAP32[pointer >> 2];
413
+ } : function (pointer) {
414
+ return HEAPU32[pointer >> 2];
415
+ };
416
+ case 8:
417
+ return signed ? function (pointer) {
418
+ return HEAP64[pointer >> 3];
419
+ } : function (pointer) {
420
+ return HEAPU64[pointer >> 3];
421
+ };
422
+ default:
423
+ throw new TypeError("invalid integer width (".concat(width, "): ").concat(name));
424
+ }
425
+ };
426
+ var __embind_register_bigint = function __embind_register_bigint(primitiveType, name, size, minRange, maxRange) {
427
+ name = readLatin1String(name);
428
+ var isUnsignedType = name.indexOf("u") != -1;
429
+ registerType(primitiveType, {
430
+ name: name,
431
+ "fromWireType": function fromWireType(value) {
432
+ return value;
433
+ },
434
+ "toWireType": function toWireType(destructors, value) {
435
+ if (typeof value != "bigint" && typeof value != "number") {
436
+ throw new TypeError("Cannot convert \"".concat(embindRepr(value), "\" to ").concat(this.name));
437
+ }
438
+ if (typeof value == "number") {
439
+ value = BigInt(value);
440
+ }
441
+ return value;
442
+ },
443
+ "argPackAdvance": GenericWireTypeSize,
444
+ "readValueFromPointer": integerReadValueFromPointer(name, size, !isUnsignedType),
445
+ destructorFunction: null
446
+ });
447
+ };
448
+ var GenericWireTypeSize = 8;
449
+ var __embind_register_bool = function __embind_register_bool(rawType, name, trueValue, falseValue) {
450
+ name = readLatin1String(name);
451
+ registerType(rawType, {
452
+ name: name,
453
+ "fromWireType": function fromWireType(wt) {
454
+ return !!wt;
455
+ },
456
+ "toWireType": function toWireType(destructors, o) {
457
+ return o ? trueValue : falseValue;
458
+ },
459
+ "argPackAdvance": GenericWireTypeSize,
460
+ "readValueFromPointer": function readValueFromPointer(pointer) {
461
+ return this["fromWireType"](HEAPU8[pointer]);
462
+ },
463
+ destructorFunction: null
464
+ });
465
+ };
466
+ var shallowCopyInternalPointer = function shallowCopyInternalPointer(o) {
467
+ return {
468
+ count: o.count,
469
+ deleteScheduled: o.deleteScheduled,
470
+ preservePointerOnDelete: o.preservePointerOnDelete,
471
+ ptr: o.ptr,
472
+ ptrType: o.ptrType,
473
+ smartPtr: o.smartPtr,
474
+ smartPtrType: o.smartPtrType
475
+ };
476
+ };
477
+ var throwInstanceAlreadyDeleted = function throwInstanceAlreadyDeleted(obj) {
478
+ function getInstanceTypeName(handle) {
479
+ return handle.$$.ptrType.registeredClass.name;
480
+ }
481
+ throwBindingError(getInstanceTypeName(obj) + " instance already deleted");
482
+ };
483
+ var finalizationRegistry = false;
484
+ var detachFinalizer = function detachFinalizer(handle) {};
485
+ var runDestructor = function runDestructor($$) {
486
+ if ($$.smartPtr) {
487
+ $$.smartPtrType.rawDestructor($$.smartPtr);
488
+ } else {
489
+ $$.ptrType.registeredClass.rawDestructor($$.ptr);
490
+ }
491
+ };
492
+ var releaseClassHandle = function releaseClassHandle($$) {
493
+ $$.count.value -= 1;
494
+ var toDelete = 0 === $$.count.value;
495
+ if (toDelete) {
496
+ runDestructor($$);
497
+ }
498
+ };
499
+ var _downcastPointer = function downcastPointer(ptr, ptrClass, desiredClass) {
500
+ if (ptrClass === desiredClass) {
501
+ return ptr;
502
+ }
503
+ if (undefined === desiredClass.baseClass) {
504
+ return null;
505
+ }
506
+ var rv = _downcastPointer(ptr, ptrClass, desiredClass.baseClass);
507
+ if (rv === null) {
508
+ return null;
509
+ }
510
+ return desiredClass.downcast(rv);
511
+ };
512
+ var registeredPointers = {};
513
+ var getInheritedInstanceCount = function getInheritedInstanceCount() {
514
+ return Object.keys(registeredInstances).length;
515
+ };
516
+ var getLiveInheritedInstances = function getLiveInheritedInstances() {
517
+ var rv = [];
518
+ for (var k in registeredInstances) {
519
+ if (registeredInstances.hasOwnProperty(k)) {
520
+ rv.push(registeredInstances[k]);
521
+ }
522
+ }
523
+ return rv;
524
+ };
525
+ var deletionQueue = [];
526
+ var flushPendingDeletes = function flushPendingDeletes() {
527
+ while (deletionQueue.length) {
528
+ var obj = deletionQueue.pop();
529
+ obj.$$.deleteScheduled = false;
530
+ obj["delete"]();
531
+ }
532
+ };
533
+ var delayFunction;
534
+ var setDelayFunction = function setDelayFunction(fn) {
535
+ delayFunction = fn;
536
+ if (deletionQueue.length && delayFunction) {
537
+ delayFunction(flushPendingDeletes);
538
+ }
539
+ };
540
+ var init_embind = function init_embind() {
541
+ Module["getInheritedInstanceCount"] = getInheritedInstanceCount;
542
+ Module["getLiveInheritedInstances"] = getLiveInheritedInstances;
543
+ Module["flushPendingDeletes"] = flushPendingDeletes;
544
+ Module["setDelayFunction"] = setDelayFunction;
545
+ };
546
+ var registeredInstances = {};
547
+ var getBasestPointer = function getBasestPointer(class_, ptr) {
548
+ if (ptr === undefined) {
549
+ throwBindingError("ptr should not be undefined");
550
+ }
551
+ while (class_.baseClass) {
552
+ ptr = class_.upcast(ptr);
553
+ class_ = class_.baseClass;
554
+ }
555
+ return ptr;
556
+ };
557
+ var getInheritedInstance = function getInheritedInstance(class_, ptr) {
558
+ ptr = getBasestPointer(class_, ptr);
559
+ return registeredInstances[ptr];
560
+ };
561
+ var makeClassHandle = function makeClassHandle(prototype, record) {
562
+ if (!record.ptrType || !record.ptr) {
563
+ throwInternalError("makeClassHandle requires ptr and ptrType");
564
+ }
565
+ var hasSmartPtrType = !!record.smartPtrType;
566
+ var hasSmartPtr = !!record.smartPtr;
567
+ if (hasSmartPtrType !== hasSmartPtr) {
568
+ throwInternalError("Both smartPtrType and smartPtr must be specified");
569
+ }
570
+ record.count = {
571
+ value: 1
572
+ };
573
+ return _attachFinalizer(Object.create(prototype, {
574
+ $$: {
575
+ value: record,
576
+ writable: true
577
+ }
578
+ }));
579
+ };
580
+ function RegisteredPointer_fromWireType(ptr) {
581
+ var rawPointer = this.getPointee(ptr);
582
+ if (!rawPointer) {
583
+ this.destructor(ptr);
584
+ return null;
585
+ }
586
+ var registeredInstance = getInheritedInstance(this.registeredClass, rawPointer);
587
+ if (undefined !== registeredInstance) {
588
+ if (0 === registeredInstance.$$.count.value) {
589
+ registeredInstance.$$.ptr = rawPointer;
590
+ registeredInstance.$$.smartPtr = ptr;
591
+ return registeredInstance["clone"]();
592
+ } else {
593
+ var rv = registeredInstance["clone"]();
594
+ this.destructor(ptr);
595
+ return rv;
596
+ }
597
+ }
598
+ function makeDefaultHandle() {
599
+ if (this.isSmartPointer) {
600
+ return makeClassHandle(this.registeredClass.instancePrototype, {
601
+ ptrType: this.pointeeType,
602
+ ptr: rawPointer,
603
+ smartPtrType: this,
604
+ smartPtr: ptr
605
+ });
606
+ } else {
607
+ return makeClassHandle(this.registeredClass.instancePrototype, {
608
+ ptrType: this,
609
+ ptr: ptr
610
+ });
611
+ }
612
+ }
613
+ var actualType = this.registeredClass.getActualType(rawPointer);
614
+ var registeredPointerRecord = registeredPointers[actualType];
615
+ if (!registeredPointerRecord) {
616
+ return makeDefaultHandle.call(this);
617
+ }
618
+ var toType;
619
+ if (this.isConst) {
620
+ toType = registeredPointerRecord.constPointerType;
621
+ } else {
622
+ toType = registeredPointerRecord.pointerType;
623
+ }
624
+ var dp = _downcastPointer(rawPointer, this.registeredClass, toType.registeredClass);
625
+ if (dp === null) {
626
+ return makeDefaultHandle.call(this);
627
+ }
628
+ if (this.isSmartPointer) {
629
+ return makeClassHandle(toType.registeredClass.instancePrototype, {
630
+ ptrType: toType,
631
+ ptr: dp,
632
+ smartPtrType: this,
633
+ smartPtr: ptr
634
+ });
635
+ } else {
636
+ return makeClassHandle(toType.registeredClass.instancePrototype, {
637
+ ptrType: toType,
638
+ ptr: dp
639
+ });
640
+ }
641
+ }
642
+ var _attachFinalizer = function attachFinalizer(handle) {
643
+ if ("undefined" === typeof FinalizationRegistry) {
644
+ _attachFinalizer = function attachFinalizer(handle) {
645
+ return handle;
646
+ };
647
+ return handle;
648
+ }
649
+ finalizationRegistry = new FinalizationRegistry(function (info) {
650
+ releaseClassHandle(info.$$);
651
+ });
652
+ _attachFinalizer = function attachFinalizer(handle) {
653
+ var $$ = handle.$$;
654
+ var hasSmartPtr = !!$$.smartPtr;
655
+ if (hasSmartPtr) {
656
+ var info = {
657
+ $$: $$
658
+ };
659
+ finalizationRegistry.register(handle, info, handle);
660
+ }
661
+ return handle;
662
+ };
663
+ detachFinalizer = function detachFinalizer(handle) {
664
+ return finalizationRegistry.unregister(handle);
665
+ };
666
+ return _attachFinalizer(handle);
667
+ };
668
+ var init_ClassHandle = function init_ClassHandle() {
669
+ Object.assign(ClassHandle.prototype, {
670
+ "isAliasOf": function isAliasOf(other) {
671
+ if (!(this instanceof ClassHandle)) {
672
+ return false;
673
+ }
674
+ if (!(other instanceof ClassHandle)) {
675
+ return false;
676
+ }
677
+ var leftClass = this.$$.ptrType.registeredClass;
678
+ var left = this.$$.ptr;
679
+ other.$$ = other.$$;
680
+ var rightClass = other.$$.ptrType.registeredClass;
681
+ var right = other.$$.ptr;
682
+ while (leftClass.baseClass) {
683
+ left = leftClass.upcast(left);
684
+ leftClass = leftClass.baseClass;
685
+ }
686
+ while (rightClass.baseClass) {
687
+ right = rightClass.upcast(right);
688
+ rightClass = rightClass.baseClass;
689
+ }
690
+ return leftClass === rightClass && left === right;
691
+ },
692
+ "clone": function clone() {
693
+ if (!this.$$.ptr) {
694
+ throwInstanceAlreadyDeleted(this);
695
+ }
696
+ if (this.$$.preservePointerOnDelete) {
697
+ this.$$.count.value += 1;
698
+ return this;
699
+ } else {
700
+ var clone = _attachFinalizer(Object.create(Object.getPrototypeOf(this), {
701
+ $$: {
702
+ value: shallowCopyInternalPointer(this.$$)
703
+ }
704
+ }));
705
+ clone.$$.count.value += 1;
706
+ clone.$$.deleteScheduled = false;
707
+ return clone;
708
+ }
709
+ },
710
+ "delete": function _delete() {
711
+ if (!this.$$.ptr) {
712
+ throwInstanceAlreadyDeleted(this);
713
+ }
714
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
715
+ throwBindingError("Object already scheduled for deletion");
716
+ }
717
+ detachFinalizer(this);
718
+ releaseClassHandle(this.$$);
719
+ if (!this.$$.preservePointerOnDelete) {
720
+ this.$$.smartPtr = undefined;
721
+ this.$$.ptr = undefined;
722
+ }
723
+ },
724
+ "isDeleted": function isDeleted() {
725
+ return !this.$$.ptr;
726
+ },
727
+ "deleteLater": function deleteLater() {
728
+ if (!this.$$.ptr) {
729
+ throwInstanceAlreadyDeleted(this);
730
+ }
731
+ if (this.$$.deleteScheduled && !this.$$.preservePointerOnDelete) {
732
+ throwBindingError("Object already scheduled for deletion");
733
+ }
734
+ deletionQueue.push(this);
735
+ if (deletionQueue.length === 1 && delayFunction) {
736
+ delayFunction(flushPendingDeletes);
737
+ }
738
+ this.$$.deleteScheduled = true;
739
+ return this;
740
+ }
741
+ });
742
+ };
743
+ function ClassHandle() {}
744
+ var createNamedFunction = function createNamedFunction(name, body) {
745
+ return Object.defineProperty(body, "name", {
746
+ value: name
747
+ });
748
+ };
749
+ var ensureOverloadTable = function ensureOverloadTable(proto, methodName, humanName) {
750
+ if (undefined === proto[methodName].overloadTable) {
751
+ var prevFunc = proto[methodName];
752
+ proto[methodName] = function () {
753
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
754
+ args[_key] = arguments[_key];
755
+ }
756
+ if (!proto[methodName].overloadTable.hasOwnProperty(args.length)) {
757
+ throwBindingError("Function '".concat(humanName, "' called with an invalid number of arguments (").concat(args.length, ") - expects one of (").concat(proto[methodName].overloadTable, ")!"));
758
+ }
759
+ return proto[methodName].overloadTable[args.length].apply(this, args);
760
+ };
761
+ proto[methodName].overloadTable = [];
762
+ proto[methodName].overloadTable[prevFunc.argCount] = prevFunc;
763
+ }
764
+ };
765
+ var exposePublicSymbol = function exposePublicSymbol(name, value, numArguments) {
766
+ if (Module.hasOwnProperty(name)) {
767
+ if (undefined === numArguments || undefined !== Module[name].overloadTable && undefined !== Module[name].overloadTable[numArguments]) {
768
+ throwBindingError("Cannot register public name '".concat(name, "' twice"));
769
+ }
770
+ ensureOverloadTable(Module, name, name);
771
+ if (Module.hasOwnProperty(numArguments)) {
772
+ throwBindingError("Cannot register multiple overloads of a function with the same number of arguments (".concat(numArguments, ")!"));
773
+ }
774
+ Module[name].overloadTable[numArguments] = value;
775
+ } else {
776
+ Module[name] = value;
777
+ if (undefined !== numArguments) {
778
+ Module[name].numArguments = numArguments;
779
+ }
780
+ }
781
+ };
782
+ var char_0 = 48;
783
+ var char_9 = 57;
784
+ var makeLegalFunctionName = function makeLegalFunctionName(name) {
785
+ if (undefined === name) {
786
+ return "_unknown";
787
+ }
788
+ name = name.replace(/[^a-zA-Z0-9_]/g, "$");
789
+ var f = name.charCodeAt(0);
790
+ if (f >= char_0 && f <= char_9) {
791
+ return "_".concat(name);
792
+ }
793
+ return name;
794
+ };
795
+ function RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast) {
796
+ this.name = name;
797
+ this.constructor = constructor;
798
+ this.instancePrototype = instancePrototype;
799
+ this.rawDestructor = rawDestructor;
800
+ this.baseClass = baseClass;
801
+ this.getActualType = getActualType;
802
+ this.upcast = upcast;
803
+ this.downcast = downcast;
804
+ this.pureVirtualFunctions = [];
805
+ }
806
+ var upcastPointer = function upcastPointer(ptr, ptrClass, desiredClass) {
807
+ while (ptrClass !== desiredClass) {
808
+ if (!ptrClass.upcast) {
809
+ throwBindingError("Expected null or instance of ".concat(desiredClass.name, ", got an instance of ").concat(ptrClass.name));
810
+ }
811
+ ptr = ptrClass.upcast(ptr);
812
+ ptrClass = ptrClass.baseClass;
813
+ }
814
+ return ptr;
815
+ };
816
+ function constNoSmartPtrRawPointerToWireType(destructors, handle) {
817
+ if (handle === null) {
818
+ if (this.isReference) {
819
+ throwBindingError("null is not a valid ".concat(this.name));
820
+ }
821
+ return 0;
822
+ }
823
+ if (!handle.$$) {
824
+ throwBindingError("Cannot pass \"".concat(embindRepr(handle), "\" as a ").concat(this.name));
825
+ }
826
+ if (!handle.$$.ptr) {
827
+ throwBindingError("Cannot pass deleted object as a pointer of type ".concat(this.name));
828
+ }
829
+ var handleClass = handle.$$.ptrType.registeredClass;
830
+ var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
831
+ return ptr;
832
+ }
833
+ function genericPointerToWireType(destructors, handle) {
834
+ var ptr;
835
+ if (handle === null) {
836
+ if (this.isReference) {
837
+ throwBindingError("null is not a valid ".concat(this.name));
838
+ }
839
+ if (this.isSmartPointer) {
840
+ ptr = this.rawConstructor();
841
+ if (destructors !== null) {
842
+ destructors.push(this.rawDestructor, ptr);
843
+ }
844
+ return ptr;
845
+ } else {
846
+ return 0;
847
+ }
848
+ }
849
+ if (!handle || !handle.$$) {
850
+ throwBindingError("Cannot pass \"".concat(embindRepr(handle), "\" as a ").concat(this.name));
851
+ }
852
+ if (!handle.$$.ptr) {
853
+ throwBindingError("Cannot pass deleted object as a pointer of type ".concat(this.name));
854
+ }
855
+ if (!this.isConst && handle.$$.ptrType.isConst) {
856
+ throwBindingError("Cannot convert argument of type ".concat(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name, " to parameter type ").concat(this.name));
857
+ }
858
+ var handleClass = handle.$$.ptrType.registeredClass;
859
+ ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
860
+ if (this.isSmartPointer) {
861
+ if (undefined === handle.$$.smartPtr) {
862
+ throwBindingError("Passing raw pointer to smart pointer is illegal");
863
+ }
864
+ switch (this.sharingPolicy) {
865
+ case 0:
866
+ if (handle.$$.smartPtrType === this) {
867
+ ptr = handle.$$.smartPtr;
868
+ } else {
869
+ throwBindingError("Cannot convert argument of type ".concat(handle.$$.smartPtrType ? handle.$$.smartPtrType.name : handle.$$.ptrType.name, " to parameter type ").concat(this.name));
870
+ }
871
+ break;
872
+ case 1:
873
+ ptr = handle.$$.smartPtr;
874
+ break;
875
+ case 2:
876
+ if (handle.$$.smartPtrType === this) {
877
+ ptr = handle.$$.smartPtr;
878
+ } else {
879
+ var clonedHandle = handle["clone"]();
880
+ ptr = this.rawShare(ptr, Emval.toHandle(function () {
881
+ return clonedHandle["delete"]();
882
+ }));
883
+ if (destructors !== null) {
884
+ destructors.push(this.rawDestructor, ptr);
885
+ }
886
+ }
887
+ break;
888
+ default:
889
+ throwBindingError("Unsupporting sharing policy");
890
+ }
891
+ }
892
+ return ptr;
893
+ }
894
+ function nonConstNoSmartPtrRawPointerToWireType(destructors, handle) {
895
+ if (handle === null) {
896
+ if (this.isReference) {
897
+ throwBindingError("null is not a valid ".concat(this.name));
898
+ }
899
+ return 0;
900
+ }
901
+ if (!handle.$$) {
902
+ throwBindingError("Cannot pass \"".concat(embindRepr(handle), "\" as a ").concat(this.name));
903
+ }
904
+ if (!handle.$$.ptr) {
905
+ throwBindingError("Cannot pass deleted object as a pointer of type ".concat(this.name));
906
+ }
907
+ if (handle.$$.ptrType.isConst) {
908
+ throwBindingError("Cannot convert argument of type ".concat(handle.$$.ptrType.name, " to parameter type ").concat(this.name));
909
+ }
910
+ var handleClass = handle.$$.ptrType.registeredClass;
911
+ var ptr = upcastPointer(handle.$$.ptr, handleClass, this.registeredClass);
912
+ return ptr;
913
+ }
914
+ var init_RegisteredPointer = function init_RegisteredPointer() {
915
+ Object.assign(RegisteredPointer.prototype, {
916
+ getPointee: function getPointee(ptr) {
917
+ if (this.rawGetPointee) {
918
+ ptr = this.rawGetPointee(ptr);
919
+ }
920
+ return ptr;
921
+ },
922
+ destructor: function destructor(ptr) {
923
+ var _this$rawDestructor;
924
+ (_this$rawDestructor = this.rawDestructor) === null || _this$rawDestructor === void 0 || _this$rawDestructor.call(this, ptr);
925
+ },
926
+ "argPackAdvance": GenericWireTypeSize,
927
+ "readValueFromPointer": readPointer,
928
+ "fromWireType": RegisteredPointer_fromWireType
929
+ });
930
+ };
931
+ function RegisteredPointer(name, registeredClass, isReference, isConst, isSmartPointer, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor) {
932
+ this.name = name;
933
+ this.registeredClass = registeredClass;
934
+ this.isReference = isReference;
935
+ this.isConst = isConst;
936
+ this.isSmartPointer = isSmartPointer;
937
+ this.pointeeType = pointeeType;
938
+ this.sharingPolicy = sharingPolicy;
939
+ this.rawGetPointee = rawGetPointee;
940
+ this.rawConstructor = rawConstructor;
941
+ this.rawShare = rawShare;
942
+ this.rawDestructor = rawDestructor;
943
+ if (!isSmartPointer && registeredClass.baseClass === undefined) {
944
+ if (isConst) {
945
+ this["toWireType"] = constNoSmartPtrRawPointerToWireType;
946
+ this.destructorFunction = null;
947
+ } else {
948
+ this["toWireType"] = nonConstNoSmartPtrRawPointerToWireType;
949
+ this.destructorFunction = null;
950
+ }
951
+ } else {
952
+ this["toWireType"] = genericPointerToWireType;
953
+ }
954
+ }
955
+ var replacePublicSymbol = function replacePublicSymbol(name, value, numArguments) {
956
+ if (!Module.hasOwnProperty(name)) {
957
+ throwInternalError("Replacing nonexistent public symbol");
958
+ }
959
+ if (undefined !== Module[name].overloadTable && undefined !== numArguments) {
960
+ Module[name].overloadTable[numArguments] = value;
961
+ } else {
962
+ Module[name] = value;
963
+ Module[name].argCount = numArguments;
964
+ }
965
+ };
966
+ var wasmTableMirror = [];
967
+ var wasmTable;
968
+ var getWasmTableEntry = function getWasmTableEntry(funcPtr) {
969
+ var func = wasmTableMirror[funcPtr];
970
+ if (!func) {
971
+ if (funcPtr >= wasmTableMirror.length) wasmTableMirror.length = funcPtr + 1;
972
+ wasmTableMirror[funcPtr] = func = wasmTable.get(funcPtr);
973
+ }
974
+ return func;
975
+ };
976
+ var embind__requireFunction = function embind__requireFunction(signature, rawFunction) {
977
+ signature = readLatin1String(signature);
978
+ function makeDynCaller() {
979
+ return getWasmTableEntry(rawFunction);
980
+ }
981
+ var fp = makeDynCaller();
982
+ if (typeof fp != "function") {
983
+ throwBindingError("unknown function pointer with signature ".concat(signature, ": ").concat(rawFunction));
984
+ }
985
+ return fp;
986
+ };
987
+ var extendError = function extendError(baseErrorType, errorName) {
988
+ var errorClass = createNamedFunction(errorName, function (message) {
989
+ this.name = errorName;
990
+ this.message = message;
991
+ var stack = new Error(message).stack;
992
+ if (stack !== undefined) {
993
+ this.stack = this.toString() + "\n" + stack.replace(/^Error(:[^\n]*)?\n/, "");
994
+ }
995
+ });
996
+ errorClass.prototype = Object.create(baseErrorType.prototype);
997
+ errorClass.prototype.constructor = errorClass;
998
+ errorClass.prototype.toString = function () {
999
+ if (this.message === undefined) {
1000
+ return this.name;
1001
+ } else {
1002
+ return "".concat(this.name, ": ").concat(this.message);
1003
+ }
1004
+ };
1005
+ return errorClass;
1006
+ };
1007
+ var UnboundTypeError;
1008
+ var getTypeName = function getTypeName(type) {
1009
+ var ptr = _getTypeName(type);
1010
+ var rv = readLatin1String(ptr);
1011
+ _free(ptr);
1012
+ return rv;
1013
+ };
1014
+ var throwUnboundTypeError = function throwUnboundTypeError(message, types) {
1015
+ var unboundTypes = [];
1016
+ var seen = {};
1017
+ function visit(type) {
1018
+ if (seen[type]) {
1019
+ return;
1020
+ }
1021
+ if (registeredTypes[type]) {
1022
+ return;
1023
+ }
1024
+ if (typeDependencies[type]) {
1025
+ typeDependencies[type].forEach(visit);
1026
+ return;
1027
+ }
1028
+ unboundTypes.push(type);
1029
+ seen[type] = true;
1030
+ }
1031
+ types.forEach(visit);
1032
+ throw new UnboundTypeError("".concat(message, ": ") + unboundTypes.map(getTypeName).join([", "]));
1033
+ };
1034
+ var __embind_register_class = function __embind_register_class(rawType, rawPointerType, rawConstPointerType, baseClassRawType, getActualTypeSignature, getActualType, upcastSignature, upcast, downcastSignature, downcast, name, destructorSignature, rawDestructor) {
1035
+ name = readLatin1String(name);
1036
+ getActualType = embind__requireFunction(getActualTypeSignature, getActualType);
1037
+ upcast && (upcast = embind__requireFunction(upcastSignature, upcast));
1038
+ downcast && (downcast = embind__requireFunction(downcastSignature, downcast));
1039
+ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
1040
+ var legalFunctionName = makeLegalFunctionName(name);
1041
+ exposePublicSymbol(legalFunctionName, function () {
1042
+ throwUnboundTypeError("Cannot construct ".concat(name, " due to unbound types"), [baseClassRawType]);
1043
+ });
1044
+ whenDependentTypesAreResolved([rawType, rawPointerType, rawConstPointerType], baseClassRawType ? [baseClassRawType] : [], function (base) {
1045
+ base = base[0];
1046
+ var baseClass;
1047
+ var basePrototype;
1048
+ if (baseClassRawType) {
1049
+ baseClass = base.registeredClass;
1050
+ basePrototype = baseClass.instancePrototype;
1051
+ } else {
1052
+ basePrototype = ClassHandle.prototype;
1053
+ }
1054
+ var constructor = createNamedFunction(name, function () {
1055
+ if (Object.getPrototypeOf(this) !== instancePrototype) {
1056
+ throw new BindingError("Use 'new' to construct " + name);
1057
+ }
1058
+ if (undefined === registeredClass.constructor_body) {
1059
+ throw new BindingError(name + " has no accessible constructor");
1060
+ }
1061
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1062
+ args[_key2] = arguments[_key2];
1063
+ }
1064
+ var body = registeredClass.constructor_body[args.length];
1065
+ if (undefined === body) {
1066
+ throw new BindingError("Tried to invoke ctor of ".concat(name, " with invalid number of parameters (").concat(args.length, ") - expected (").concat(Object.keys(registeredClass.constructor_body).toString(), ") parameters instead!"));
1067
+ }
1068
+ return body.apply(this, args);
1069
+ });
1070
+ var instancePrototype = Object.create(basePrototype, {
1071
+ constructor: {
1072
+ value: constructor
1073
+ }
1074
+ });
1075
+ constructor.prototype = instancePrototype;
1076
+ var registeredClass = new RegisteredClass(name, constructor, instancePrototype, rawDestructor, baseClass, getActualType, upcast, downcast);
1077
+ if (registeredClass.baseClass) {
1078
+ var _registeredClass$base, _registeredClass$base2;
1079
+ (_registeredClass$base2 = (_registeredClass$base = registeredClass.baseClass).__derivedClasses) !== null && _registeredClass$base2 !== void 0 ? _registeredClass$base2 : _registeredClass$base.__derivedClasses = [];
1080
+ registeredClass.baseClass.__derivedClasses.push(registeredClass);
1081
+ }
1082
+ var referenceConverter = new RegisteredPointer(name, registeredClass, true, false, false);
1083
+ var pointerConverter = new RegisteredPointer(name + "*", registeredClass, false, false, false);
1084
+ var constPointerConverter = new RegisteredPointer(name + " const*", registeredClass, false, true, false);
1085
+ registeredPointers[rawType] = {
1086
+ pointerType: pointerConverter,
1087
+ constPointerType: constPointerConverter
1088
+ };
1089
+ replacePublicSymbol(legalFunctionName, constructor);
1090
+ return [referenceConverter, pointerConverter, constPointerConverter];
1091
+ });
1092
+ };
1093
+ function usesDestructorStack(argTypes) {
1094
+ for (var i = 1; i < argTypes.length; ++i) {
1095
+ if (argTypes[i] !== null && argTypes[i].destructorFunction === undefined) {
1096
+ return true;
1097
+ }
1098
+ }
1099
+ return false;
1100
+ }
1101
+ function newFunc(constructor, argumentList) {
1102
+ if (!(constructor instanceof Function)) {
1103
+ throw new TypeError("new_ called with constructor type ".concat(_typeof(constructor), " which is not a function"));
1104
+ }
1105
+ var dummy = createNamedFunction(constructor.name || "unknownFunctionName", function () {});
1106
+ dummy.prototype = constructor.prototype;
1107
+ var obj = new dummy();
1108
+ var r = constructor.apply(obj, argumentList);
1109
+ return r instanceof Object ? r : obj;
1110
+ }
1111
+ function createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync) {
1112
+ var needsDestructorStack = usesDestructorStack(argTypes);
1113
+ var argCount = argTypes.length;
1114
+ var argsList = "";
1115
+ var argsListWired = "";
1116
+ for (var i = 0; i < argCount - 2; ++i) {
1117
+ argsList += (i !== 0 ? ", " : "") + "arg" + i;
1118
+ argsListWired += (i !== 0 ? ", " : "") + "arg" + i + "Wired";
1119
+ }
1120
+ var invokerFnBody = "\n return function (".concat(argsList, ") {\n if (arguments.length !== ").concat(argCount - 2, ") {\n throwBindingError('function ' + humanName + ' called with ' + arguments.length + ' arguments, expected ").concat(argCount - 2, "');\n }");
1121
+ if (needsDestructorStack) {
1122
+ invokerFnBody += "var destructors = [];\n";
1123
+ }
1124
+ var dtorStack = needsDestructorStack ? "destructors" : "null";
1125
+ var args1 = ["humanName", "throwBindingError", "invoker", "fn", "runDestructors", "retType", "classParam"];
1126
+ if (isClassMethodFunc) {
1127
+ invokerFnBody += "var thisWired = classParam['toWireType'](" + dtorStack + ", this);\n";
1128
+ }
1129
+ for (var i = 0; i < argCount - 2; ++i) {
1130
+ invokerFnBody += "var arg" + i + "Wired = argType" + i + "['toWireType'](" + dtorStack + ", arg" + i + ");\n";
1131
+ args1.push("argType" + i);
1132
+ }
1133
+ if (isClassMethodFunc) {
1134
+ argsListWired = "thisWired" + (argsListWired.length > 0 ? ", " : "") + argsListWired;
1135
+ }
1136
+ invokerFnBody += (returns || isAsync ? "var rv = " : "") + "invoker(fn" + (argsListWired.length > 0 ? ", " : "") + argsListWired + ");\n";
1137
+ if (needsDestructorStack) {
1138
+ invokerFnBody += "runDestructors(destructors);\n";
1139
+ } else {
1140
+ for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
1141
+ var paramName = i === 1 ? "thisWired" : "arg" + (i - 2) + "Wired";
1142
+ if (argTypes[i].destructorFunction !== null) {
1143
+ invokerFnBody += "".concat(paramName, "_dtor(").concat(paramName, ");\n");
1144
+ args1.push("".concat(paramName, "_dtor"));
1145
+ }
1146
+ }
1147
+ }
1148
+ if (returns) {
1149
+ invokerFnBody += "var ret = retType['fromWireType'](rv);\n" + "return ret;\n";
1150
+ }
1151
+ invokerFnBody += "}\n";
1152
+ return [args1, invokerFnBody];
1153
+ }
1154
+ function craftInvokerFunction(humanName, argTypes, classType, cppInvokerFunc, cppTargetFunc, isAsync) {
1155
+ var argCount = argTypes.length;
1156
+ if (argCount < 2) {
1157
+ throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!");
1158
+ }
1159
+ var isClassMethodFunc = argTypes[1] !== null && classType !== null;
1160
+ var needsDestructorStack = usesDestructorStack(argTypes);
1161
+ var returns = argTypes[0].name !== "void";
1162
+ var closureArgs = [humanName, throwBindingError, cppInvokerFunc, cppTargetFunc, runDestructors, argTypes[0], argTypes[1]];
1163
+ for (var i = 0; i < argCount - 2; ++i) {
1164
+ closureArgs.push(argTypes[i + 2]);
1165
+ }
1166
+ if (!needsDestructorStack) {
1167
+ for (var i = isClassMethodFunc ? 1 : 2; i < argTypes.length; ++i) {
1168
+ if (argTypes[i].destructorFunction !== null) {
1169
+ closureArgs.push(argTypes[i].destructorFunction);
1170
+ }
1171
+ }
1172
+ }
1173
+ var _createJsInvoker = createJsInvoker(argTypes, isClassMethodFunc, returns, isAsync),
1174
+ _createJsInvoker2 = _slicedToArray(_createJsInvoker, 2),
1175
+ args = _createJsInvoker2[0],
1176
+ invokerFnBody = _createJsInvoker2[1];
1177
+ args.push(invokerFnBody);
1178
+ var invokerFn = newFunc(Function, args).apply(void 0, closureArgs);
1179
+ return createNamedFunction(humanName, invokerFn);
1180
+ }
1181
+ var heap32VectorToArray = function heap32VectorToArray(count, firstElement) {
1182
+ var array = [];
1183
+ for (var i = 0; i < count; i++) {
1184
+ array.push(HEAPU32[firstElement + i * 4 >> 2]);
1185
+ }
1186
+ return array;
1187
+ };
1188
+ var getFunctionName = function getFunctionName(signature) {
1189
+ signature = signature.trim();
1190
+ var argsIndex = signature.indexOf("(");
1191
+ if (argsIndex !== -1) {
1192
+ return signature.substr(0, argsIndex);
1193
+ } else {
1194
+ return signature;
1195
+ }
1196
+ };
1197
+ var __embind_register_class_class_function = function __embind_register_class_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, fn, isAsync) {
1198
+ var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
1199
+ methodName = readLatin1String(methodName);
1200
+ methodName = getFunctionName(methodName);
1201
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
1202
+ whenDependentTypesAreResolved([], [rawClassType], function (classType) {
1203
+ classType = classType[0];
1204
+ var humanName = "".concat(classType.name, ".").concat(methodName);
1205
+ function unboundTypesHandler() {
1206
+ throwUnboundTypeError("Cannot call ".concat(humanName, " due to unbound types"), rawArgTypes);
1207
+ }
1208
+ if (methodName.startsWith("@@")) {
1209
+ methodName = Symbol[methodName.substring(2)];
1210
+ }
1211
+ var proto = classType.registeredClass.constructor;
1212
+ if (undefined === proto[methodName]) {
1213
+ unboundTypesHandler.argCount = argCount - 1;
1214
+ proto[methodName] = unboundTypesHandler;
1215
+ } else {
1216
+ ensureOverloadTable(proto, methodName, humanName);
1217
+ proto[methodName].overloadTable[argCount - 1] = unboundTypesHandler;
1218
+ }
1219
+ whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
1220
+ var invokerArgsArray = [argTypes[0], null].concat(argTypes.slice(1));
1221
+ var func = craftInvokerFunction(humanName, invokerArgsArray, null, rawInvoker, fn, isAsync);
1222
+ if (undefined === proto[methodName].overloadTable) {
1223
+ func.argCount = argCount - 1;
1224
+ proto[methodName] = func;
1225
+ } else {
1226
+ proto[methodName].overloadTable[argCount - 1] = func;
1227
+ }
1228
+ if (classType.registeredClass.__derivedClasses) {
1229
+ var _iterator = _createForOfIteratorHelper(classType.registeredClass.__derivedClasses),
1230
+ _step;
1231
+ try {
1232
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1233
+ var derivedClass = _step.value;
1234
+ if (!derivedClass.constructor.hasOwnProperty(methodName)) {
1235
+ derivedClass.constructor[methodName] = func;
1236
+ }
1237
+ }
1238
+ } catch (err) {
1239
+ _iterator.e(err);
1240
+ } finally {
1241
+ _iterator.f();
1242
+ }
1243
+ }
1244
+ return [];
1245
+ });
1246
+ return [];
1247
+ });
1248
+ };
1249
+ var __embind_register_class_constructor = function __embind_register_class_constructor(rawClassType, argCount, rawArgTypesAddr, invokerSignature, invoker, rawConstructor) {
1250
+ var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
1251
+ invoker = embind__requireFunction(invokerSignature, invoker);
1252
+ whenDependentTypesAreResolved([], [rawClassType], function (classType) {
1253
+ classType = classType[0];
1254
+ var humanName = "constructor ".concat(classType.name);
1255
+ if (undefined === classType.registeredClass.constructor_body) {
1256
+ classType.registeredClass.constructor_body = [];
1257
+ }
1258
+ if (undefined !== classType.registeredClass.constructor_body[argCount - 1]) {
1259
+ throw new BindingError("Cannot register multiple constructors with identical number of parameters (".concat(argCount - 1, ") for class '").concat(classType.name, "'! Overload resolution is currently only performed using the parameter count, not actual type info!"));
1260
+ }
1261
+ classType.registeredClass.constructor_body[argCount - 1] = function () {
1262
+ throwUnboundTypeError("Cannot construct ".concat(classType.name, " due to unbound types"), rawArgTypes);
1263
+ };
1264
+ whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
1265
+ argTypes.splice(1, 0, null);
1266
+ classType.registeredClass.constructor_body[argCount - 1] = craftInvokerFunction(humanName, argTypes, null, invoker, rawConstructor);
1267
+ return [];
1268
+ });
1269
+ return [];
1270
+ });
1271
+ };
1272
+ var __embind_register_class_function = function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual, isAsync) {
1273
+ var rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
1274
+ methodName = readLatin1String(methodName);
1275
+ methodName = getFunctionName(methodName);
1276
+ rawInvoker = embind__requireFunction(invokerSignature, rawInvoker);
1277
+ whenDependentTypesAreResolved([], [rawClassType], function (classType) {
1278
+ classType = classType[0];
1279
+ var humanName = "".concat(classType.name, ".").concat(methodName);
1280
+ if (methodName.startsWith("@@")) {
1281
+ methodName = Symbol[methodName.substring(2)];
1282
+ }
1283
+ if (isPureVirtual) {
1284
+ classType.registeredClass.pureVirtualFunctions.push(methodName);
1285
+ }
1286
+ function unboundTypesHandler() {
1287
+ throwUnboundTypeError("Cannot call ".concat(humanName, " due to unbound types"), rawArgTypes);
1288
+ }
1289
+ var proto = classType.registeredClass.instancePrototype;
1290
+ var method = proto[methodName];
1291
+ if (undefined === method || undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) {
1292
+ unboundTypesHandler.argCount = argCount - 2;
1293
+ unboundTypesHandler.className = classType.name;
1294
+ proto[methodName] = unboundTypesHandler;
1295
+ } else {
1296
+ ensureOverloadTable(proto, methodName, humanName);
1297
+ proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler;
1298
+ }
1299
+ whenDependentTypesAreResolved([], rawArgTypes, function (argTypes) {
1300
+ var memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context, isAsync);
1301
+ if (undefined === proto[methodName].overloadTable) {
1302
+ memberFunction.argCount = argCount - 2;
1303
+ proto[methodName] = memberFunction;
1304
+ } else {
1305
+ proto[methodName].overloadTable[argCount - 2] = memberFunction;
1306
+ }
1307
+ return [];
1308
+ });
1309
+ return [];
1310
+ });
1311
+ };
1312
+ var validateThis = function validateThis(this_, classType, humanName) {
1313
+ if (!(this_ instanceof Object)) {
1314
+ throwBindingError("".concat(humanName, " with invalid \"this\": ").concat(this_));
1315
+ }
1316
+ if (!(this_ instanceof classType.registeredClass.constructor)) {
1317
+ throwBindingError("".concat(humanName, " incompatible with \"this\" of type ").concat(this_.constructor.name));
1318
+ }
1319
+ if (!this_.$$.ptr) {
1320
+ throwBindingError("cannot call emscripten binding method ".concat(humanName, " on deleted object"));
1321
+ }
1322
+ return upcastPointer(this_.$$.ptr, this_.$$.ptrType.registeredClass, classType.registeredClass);
1323
+ };
1324
+ var __embind_register_class_property = function __embind_register_class_property(classType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
1325
+ fieldName = readLatin1String(fieldName);
1326
+ getter = embind__requireFunction(getterSignature, getter);
1327
+ whenDependentTypesAreResolved([], [classType], function (classType) {
1328
+ classType = classType[0];
1329
+ var humanName = "".concat(classType.name, ".").concat(fieldName);
1330
+ var desc = {
1331
+ get: function get() {
1332
+ throwUnboundTypeError("Cannot access ".concat(humanName, " due to unbound types"), [getterReturnType, setterArgumentType]);
1333
+ },
1334
+ enumerable: true,
1335
+ configurable: true
1336
+ };
1337
+ if (setter) {
1338
+ desc.set = function () {
1339
+ return throwUnboundTypeError("Cannot access ".concat(humanName, " due to unbound types"), [getterReturnType, setterArgumentType]);
1340
+ };
1341
+ } else {
1342
+ desc.set = function (v) {
1343
+ return throwBindingError(humanName + " is a read-only property");
1344
+ };
1345
+ }
1346
+ Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc);
1347
+ whenDependentTypesAreResolved([], setter ? [getterReturnType, setterArgumentType] : [getterReturnType], function (types) {
1348
+ var getterReturnType = types[0];
1349
+ var desc = {
1350
+ get: function get() {
1351
+ var ptr = validateThis(this, classType, humanName + " getter");
1352
+ return getterReturnType["fromWireType"](getter(getterContext, ptr));
1353
+ },
1354
+ enumerable: true
1355
+ };
1356
+ if (setter) {
1357
+ setter = embind__requireFunction(setterSignature, setter);
1358
+ var setterArgumentType = types[1];
1359
+ desc.set = function (v) {
1360
+ var ptr = validateThis(this, classType, humanName + " setter");
1361
+ var destructors = [];
1362
+ setter(setterContext, ptr, setterArgumentType["toWireType"](destructors, v));
1363
+ runDestructors(destructors);
1364
+ };
1365
+ }
1366
+ Object.defineProperty(classType.registeredClass.instancePrototype, fieldName, desc);
1367
+ return [];
1368
+ });
1369
+ return [];
1370
+ });
1371
+ };
1372
+ var emval_freelist = [];
1373
+ var emval_handles = [];
1374
+ var __emval_decref = function __emval_decref(handle) {
1375
+ if (handle > 9 && 0 === --emval_handles[handle + 1]) {
1376
+ emval_handles[handle] = undefined;
1377
+ emval_freelist.push(handle);
1378
+ }
1379
+ };
1380
+ var count_emval_handles = function count_emval_handles() {
1381
+ return emval_handles.length / 2 - 5 - emval_freelist.length;
1382
+ };
1383
+ var init_emval = function init_emval() {
1384
+ emval_handles.push(0, 1, undefined, 1, null, 1, true, 1, false, 1);
1385
+ Module["count_emval_handles"] = count_emval_handles;
1386
+ };
1387
+ var Emval = {
1388
+ toValue: function toValue(handle) {
1389
+ if (!handle) {
1390
+ throwBindingError("Cannot use deleted val. handle = " + handle);
1391
+ }
1392
+ return emval_handles[handle];
1393
+ },
1394
+ toHandle: function toHandle(value) {
1395
+ switch (value) {
1396
+ case undefined:
1397
+ return 2;
1398
+ case null:
1399
+ return 4;
1400
+ case true:
1401
+ return 6;
1402
+ case false:
1403
+ return 8;
1404
+ default:
1405
+ {
1406
+ var handle = emval_freelist.pop() || emval_handles.length;
1407
+ emval_handles[handle] = value;
1408
+ emval_handles[handle + 1] = 1;
1409
+ return handle;
1410
+ }
1411
+ }
1412
+ }
1413
+ };
1414
+ var EmValType = {
1415
+ name: "emscripten::val",
1416
+ "fromWireType": function fromWireType(handle) {
1417
+ var rv = Emval.toValue(handle);
1418
+ __emval_decref(handle);
1419
+ return rv;
1420
+ },
1421
+ "toWireType": function toWireType(destructors, value) {
1422
+ return Emval.toHandle(value);
1423
+ },
1424
+ "argPackAdvance": GenericWireTypeSize,
1425
+ "readValueFromPointer": readPointer,
1426
+ destructorFunction: null
1427
+ };
1428
+ var __embind_register_emval = function __embind_register_emval(rawType) {
1429
+ return registerType(rawType, EmValType);
1430
+ };
1431
+ var enumReadValueFromPointer = function enumReadValueFromPointer(name, width, signed) {
1432
+ switch (width) {
1433
+ case 1:
1434
+ return signed ? function (pointer) {
1435
+ return this["fromWireType"](HEAP8[pointer]);
1436
+ } : function (pointer) {
1437
+ return this["fromWireType"](HEAPU8[pointer]);
1438
+ };
1439
+ case 2:
1440
+ return signed ? function (pointer) {
1441
+ return this["fromWireType"](HEAP16[pointer >> 1]);
1442
+ } : function (pointer) {
1443
+ return this["fromWireType"](HEAPU16[pointer >> 1]);
1444
+ };
1445
+ case 4:
1446
+ return signed ? function (pointer) {
1447
+ return this["fromWireType"](HEAP32[pointer >> 2]);
1448
+ } : function (pointer) {
1449
+ return this["fromWireType"](HEAPU32[pointer >> 2]);
1450
+ };
1451
+ default:
1452
+ throw new TypeError("invalid integer width (".concat(width, "): ").concat(name));
1453
+ }
1454
+ };
1455
+ var __embind_register_enum = function __embind_register_enum(rawType, name, size, isSigned) {
1456
+ name = readLatin1String(name);
1457
+ function ctor() {}
1458
+ ctor.values = {};
1459
+ registerType(rawType, {
1460
+ name: name,
1461
+ constructor: ctor,
1462
+ "fromWireType": function fromWireType(c) {
1463
+ return this.constructor.values[c];
1464
+ },
1465
+ "toWireType": function toWireType(destructors, c) {
1466
+ return c.value;
1467
+ },
1468
+ "argPackAdvance": GenericWireTypeSize,
1469
+ "readValueFromPointer": enumReadValueFromPointer(name, size, isSigned),
1470
+ destructorFunction: null
1471
+ });
1472
+ exposePublicSymbol(name, ctor);
1473
+ };
1474
+ var requireRegisteredType = function requireRegisteredType(rawType, humanName) {
1475
+ var impl = registeredTypes[rawType];
1476
+ if (undefined === impl) {
1477
+ throwBindingError("".concat(humanName, " has unknown type ").concat(getTypeName(rawType)));
1478
+ }
1479
+ return impl;
1480
+ };
1481
+ var __embind_register_enum_value = function __embind_register_enum_value(rawEnumType, name, enumValue) {
1482
+ var enumType = requireRegisteredType(rawEnumType, "enum");
1483
+ name = readLatin1String(name);
1484
+ var Enum = enumType.constructor;
1485
+ var Value = Object.create(enumType.constructor.prototype, {
1486
+ value: {
1487
+ value: enumValue
1488
+ },
1489
+ constructor: {
1490
+ value: createNamedFunction("".concat(enumType.name, "_").concat(name), function () {})
1491
+ }
1492
+ });
1493
+ Enum.values[enumValue] = Value;
1494
+ Enum[name] = Value;
1495
+ };
1496
+ var floatReadValueFromPointer = function floatReadValueFromPointer(name, width) {
1497
+ switch (width) {
1498
+ case 4:
1499
+ return function (pointer) {
1500
+ return this["fromWireType"](HEAPF32[pointer >> 2]);
1501
+ };
1502
+ case 8:
1503
+ return function (pointer) {
1504
+ return this["fromWireType"](HEAPF64[pointer >> 3]);
1505
+ };
1506
+ default:
1507
+ throw new TypeError("invalid float width (".concat(width, "): ").concat(name));
1508
+ }
1509
+ };
1510
+ var __embind_register_float = function __embind_register_float(rawType, name, size) {
1511
+ name = readLatin1String(name);
1512
+ registerType(rawType, {
1513
+ name: name,
1514
+ "fromWireType": function fromWireType(value) {
1515
+ return value;
1516
+ },
1517
+ "toWireType": function toWireType(destructors, value) {
1518
+ return value;
1519
+ },
1520
+ "argPackAdvance": GenericWireTypeSize,
1521
+ "readValueFromPointer": floatReadValueFromPointer(name, size),
1522
+ destructorFunction: null
1523
+ });
1524
+ };
1525
+ var __embind_register_integer = function __embind_register_integer(primitiveType, name, size, minRange, maxRange) {
1526
+ name = readLatin1String(name);
1527
+ var fromWireType = function fromWireType(value) {
1528
+ return value;
1529
+ };
1530
+ if (minRange === 0) {
1531
+ var bitshift = 32 - 8 * size;
1532
+ fromWireType = function fromWireType(value) {
1533
+ return value << bitshift >>> bitshift;
1534
+ };
1535
+ }
1536
+ var isUnsignedType = name.includes("unsigned");
1537
+ var checkAssertions = function checkAssertions(value, toTypeName) {};
1538
+ var toWireType;
1539
+ if (isUnsignedType) {
1540
+ toWireType = function toWireType(destructors, value) {
1541
+ checkAssertions(value, this.name);
1542
+ return value >>> 0;
1543
+ };
1544
+ } else {
1545
+ toWireType = function toWireType(destructors, value) {
1546
+ checkAssertions(value, this.name);
1547
+ return value;
1548
+ };
1549
+ }
1550
+ registerType(primitiveType, {
1551
+ name: name,
1552
+ "fromWireType": fromWireType,
1553
+ "toWireType": toWireType,
1554
+ "argPackAdvance": GenericWireTypeSize,
1555
+ "readValueFromPointer": integerReadValueFromPointer(name, size, minRange !== 0),
1556
+ destructorFunction: null
1557
+ });
1558
+ };
1559
+ var __embind_register_memory_view = function __embind_register_memory_view(rawType, dataTypeIndex, name) {
1560
+ var typeMapping = [Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, BigInt64Array, BigUint64Array];
1561
+ var TA = typeMapping[dataTypeIndex];
1562
+ function decodeMemoryView(handle) {
1563
+ var size = HEAPU32[handle >> 2];
1564
+ var data = HEAPU32[handle + 4 >> 2];
1565
+ return new TA(HEAP8.buffer, data, size);
1566
+ }
1567
+ name = readLatin1String(name);
1568
+ registerType(rawType, {
1569
+ name: name,
1570
+ "fromWireType": decodeMemoryView,
1571
+ "argPackAdvance": GenericWireTypeSize,
1572
+ "readValueFromPointer": decodeMemoryView
1573
+ }, {
1574
+ ignoreDuplicateRegistrations: true
1575
+ });
1576
+ };
1577
+ var __embind_register_optional = function __embind_register_optional(rawOptionalType, rawType) {
1578
+ __embind_register_emval(rawOptionalType);
1579
+ };
1580
+ var __embind_register_smart_ptr = function __embind_register_smart_ptr(rawType, rawPointeeType, name, sharingPolicy, getPointeeSignature, rawGetPointee, constructorSignature, rawConstructor, shareSignature, rawShare, destructorSignature, rawDestructor) {
1581
+ name = readLatin1String(name);
1582
+ rawGetPointee = embind__requireFunction(getPointeeSignature, rawGetPointee);
1583
+ rawConstructor = embind__requireFunction(constructorSignature, rawConstructor);
1584
+ rawShare = embind__requireFunction(shareSignature, rawShare);
1585
+ rawDestructor = embind__requireFunction(destructorSignature, rawDestructor);
1586
+ whenDependentTypesAreResolved([rawType], [rawPointeeType], function (pointeeType) {
1587
+ pointeeType = pointeeType[0];
1588
+ var registeredPointer = new RegisteredPointer(name, pointeeType.registeredClass, false, false, true, pointeeType, sharingPolicy, rawGetPointee, rawConstructor, rawShare, rawDestructor);
1589
+ return [registeredPointer];
1590
+ });
1591
+ };
1592
+ var stringToUTF8Array = function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) {
1593
+ if (!(maxBytesToWrite > 0)) return 0;
1594
+ var startIdx = outIdx;
1595
+ var endIdx = outIdx + maxBytesToWrite - 1;
1596
+ for (var i = 0; i < str.length; ++i) {
1597
+ var u = str.charCodeAt(i);
1598
+ if (u >= 55296 && u <= 57343) {
1599
+ var u1 = str.charCodeAt(++i);
1600
+ u = 65536 + ((u & 1023) << 10) | u1 & 1023;
1601
+ }
1602
+ if (u <= 127) {
1603
+ if (outIdx >= endIdx) break;
1604
+ heap[outIdx++] = u;
1605
+ } else if (u <= 2047) {
1606
+ if (outIdx + 1 >= endIdx) break;
1607
+ heap[outIdx++] = 192 | u >> 6;
1608
+ heap[outIdx++] = 128 | u & 63;
1609
+ } else if (u <= 65535) {
1610
+ if (outIdx + 2 >= endIdx) break;
1611
+ heap[outIdx++] = 224 | u >> 12;
1612
+ heap[outIdx++] = 128 | u >> 6 & 63;
1613
+ heap[outIdx++] = 128 | u & 63;
1614
+ } else {
1615
+ if (outIdx + 3 >= endIdx) break;
1616
+ heap[outIdx++] = 240 | u >> 18;
1617
+ heap[outIdx++] = 128 | u >> 12 & 63;
1618
+ heap[outIdx++] = 128 | u >> 6 & 63;
1619
+ heap[outIdx++] = 128 | u & 63;
1620
+ }
1621
+ }
1622
+ heap[outIdx] = 0;
1623
+ return outIdx - startIdx;
1624
+ };
1625
+ var stringToUTF8 = function stringToUTF8(str, outPtr, maxBytesToWrite) {
1626
+ return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);
1627
+ };
1628
+ var lengthBytesUTF8 = function lengthBytesUTF8(str) {
1629
+ var len = 0;
1630
+ for (var i = 0; i < str.length; ++i) {
1631
+ var c = str.charCodeAt(i);
1632
+ if (c <= 127) {
1633
+ len++;
1634
+ } else if (c <= 2047) {
1635
+ len += 2;
1636
+ } else if (c >= 55296 && c <= 57343) {
1637
+ len += 4;
1638
+ ++i;
1639
+ } else {
1640
+ len += 3;
1641
+ }
1642
+ }
1643
+ return len;
1644
+ };
1645
+ var UTF8Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf8") : undefined;
1646
+ var UTF8ArrayToString = function UTF8ArrayToString(heapOrArray, idx, maxBytesToRead) {
1647
+ var endIdx = idx + maxBytesToRead;
1648
+ var endPtr = idx;
1649
+ while (heapOrArray[endPtr] && !(endPtr >= endIdx)) ++endPtr;
1650
+ if (endPtr - idx > 16 && heapOrArray.buffer && UTF8Decoder) {
1651
+ return UTF8Decoder.decode(heapOrArray.subarray(idx, endPtr));
1652
+ }
1653
+ var str = "";
1654
+ while (idx < endPtr) {
1655
+ var u0 = heapOrArray[idx++];
1656
+ if (!(u0 & 128)) {
1657
+ str += String.fromCharCode(u0);
1658
+ continue;
1659
+ }
1660
+ var u1 = heapOrArray[idx++] & 63;
1661
+ if ((u0 & 224) == 192) {
1662
+ str += String.fromCharCode((u0 & 31) << 6 | u1);
1663
+ continue;
1664
+ }
1665
+ var u2 = heapOrArray[idx++] & 63;
1666
+ if ((u0 & 240) == 224) {
1667
+ u0 = (u0 & 15) << 12 | u1 << 6 | u2;
1668
+ } else {
1669
+ u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | heapOrArray[idx++] & 63;
1670
+ }
1671
+ if (u0 < 65536) {
1672
+ str += String.fromCharCode(u0);
1673
+ } else {
1674
+ var ch = u0 - 65536;
1675
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
1676
+ }
1677
+ }
1678
+ return str;
1679
+ };
1680
+ var UTF8ToString = function UTF8ToString(ptr, maxBytesToRead) {
1681
+ return ptr ? UTF8ArrayToString(HEAPU8, ptr, maxBytesToRead) : "";
1682
+ };
1683
+ var __embind_register_std_string = function __embind_register_std_string(rawType, name) {
1684
+ name = readLatin1String(name);
1685
+ var stdStringIsUTF8 = name === "std::string";
1686
+ registerType(rawType, {
1687
+ name: name,
1688
+ "fromWireType": function fromWireType(value) {
1689
+ var length = HEAPU32[value >> 2];
1690
+ var payload = value + 4;
1691
+ var str;
1692
+ if (stdStringIsUTF8) {
1693
+ var decodeStartPtr = payload;
1694
+ for (var i = 0; i <= length; ++i) {
1695
+ var currentBytePtr = payload + i;
1696
+ if (i == length || HEAPU8[currentBytePtr] == 0) {
1697
+ var maxRead = currentBytePtr - decodeStartPtr;
1698
+ var stringSegment = UTF8ToString(decodeStartPtr, maxRead);
1699
+ if (str === undefined) {
1700
+ str = stringSegment;
1701
+ } else {
1702
+ str += String.fromCharCode(0);
1703
+ str += stringSegment;
1704
+ }
1705
+ decodeStartPtr = currentBytePtr + 1;
1706
+ }
1707
+ }
1708
+ } else {
1709
+ var a = new Array(length);
1710
+ for (var i = 0; i < length; ++i) {
1711
+ a[i] = String.fromCharCode(HEAPU8[payload + i]);
1712
+ }
1713
+ str = a.join("");
1714
+ }
1715
+ _free(value);
1716
+ return str;
1717
+ },
1718
+ "toWireType": function toWireType(destructors, value) {
1719
+ if (value instanceof ArrayBuffer) {
1720
+ value = new Uint8Array(value);
1721
+ }
1722
+ var length;
1723
+ var valueIsOfTypeString = typeof value == "string";
1724
+ if (!(valueIsOfTypeString || value instanceof Uint8Array || value instanceof Uint8ClampedArray || value instanceof Int8Array)) {
1725
+ throwBindingError("Cannot pass non-string to std::string");
1726
+ }
1727
+ if (stdStringIsUTF8 && valueIsOfTypeString) {
1728
+ length = lengthBytesUTF8(value);
1729
+ } else {
1730
+ length = value.length;
1731
+ }
1732
+ var base = _malloc(4 + length + 1);
1733
+ var ptr = base + 4;
1734
+ HEAPU32[base >> 2] = length;
1735
+ if (stdStringIsUTF8 && valueIsOfTypeString) {
1736
+ stringToUTF8(value, ptr, length + 1);
1737
+ } else {
1738
+ if (valueIsOfTypeString) {
1739
+ for (var i = 0; i < length; ++i) {
1740
+ var charCode = value.charCodeAt(i);
1741
+ if (charCode > 255) {
1742
+ _free(ptr);
1743
+ throwBindingError("String has UTF-16 code units that do not fit in 8 bits");
1744
+ }
1745
+ HEAPU8[ptr + i] = charCode;
1746
+ }
1747
+ } else {
1748
+ for (var i = 0; i < length; ++i) {
1749
+ HEAPU8[ptr + i] = value[i];
1750
+ }
1751
+ }
1752
+ }
1753
+ if (destructors !== null) {
1754
+ destructors.push(_free, base);
1755
+ }
1756
+ return base;
1757
+ },
1758
+ "argPackAdvance": GenericWireTypeSize,
1759
+ "readValueFromPointer": readPointer,
1760
+ destructorFunction: function destructorFunction(ptr) {
1761
+ _free(ptr);
1762
+ }
1763
+ });
1764
+ };
1765
+ var UTF16Decoder = typeof TextDecoder != "undefined" ? new TextDecoder("utf-16le") : undefined;
1766
+ var UTF16ToString = function UTF16ToString(ptr, maxBytesToRead) {
1767
+ var endPtr = ptr;
1768
+ var idx = endPtr >> 1;
1769
+ var maxIdx = idx + maxBytesToRead / 2;
1770
+ while (!(idx >= maxIdx) && HEAPU16[idx]) ++idx;
1771
+ endPtr = idx << 1;
1772
+ if (endPtr - ptr > 32 && UTF16Decoder) return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));
1773
+ var str = "";
1774
+ for (var i = 0; !(i >= maxBytesToRead / 2); ++i) {
1775
+ var codeUnit = HEAP16[ptr + i * 2 >> 1];
1776
+ if (codeUnit == 0) break;
1777
+ str += String.fromCharCode(codeUnit);
1778
+ }
1779
+ return str;
1780
+ };
1781
+ var stringToUTF16 = function stringToUTF16(str, outPtr, maxBytesToWrite) {
1782
+ var _maxBytesToWrite;
1783
+ (_maxBytesToWrite = maxBytesToWrite) !== null && _maxBytesToWrite !== void 0 ? _maxBytesToWrite : maxBytesToWrite = 2147483647;
1784
+ if (maxBytesToWrite < 2) return 0;
1785
+ maxBytesToWrite -= 2;
1786
+ var startPtr = outPtr;
1787
+ var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;
1788
+ for (var i = 0; i < numCharsToWrite; ++i) {
1789
+ var codeUnit = str.charCodeAt(i);
1790
+ HEAP16[outPtr >> 1] = codeUnit;
1791
+ outPtr += 2;
1792
+ }
1793
+ HEAP16[outPtr >> 1] = 0;
1794
+ return outPtr - startPtr;
1795
+ };
1796
+ var lengthBytesUTF16 = function lengthBytesUTF16(str) {
1797
+ return str.length * 2;
1798
+ };
1799
+ var UTF32ToString = function UTF32ToString(ptr, maxBytesToRead) {
1800
+ var i = 0;
1801
+ var str = "";
1802
+ while (!(i >= maxBytesToRead / 4)) {
1803
+ var utf32 = HEAP32[ptr + i * 4 >> 2];
1804
+ if (utf32 == 0) break;
1805
+ ++i;
1806
+ if (utf32 >= 65536) {
1807
+ var ch = utf32 - 65536;
1808
+ str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023);
1809
+ } else {
1810
+ str += String.fromCharCode(utf32);
1811
+ }
1812
+ }
1813
+ return str;
1814
+ };
1815
+ var stringToUTF32 = function stringToUTF32(str, outPtr, maxBytesToWrite) {
1816
+ var _maxBytesToWrite2;
1817
+ (_maxBytesToWrite2 = maxBytesToWrite) !== null && _maxBytesToWrite2 !== void 0 ? _maxBytesToWrite2 : maxBytesToWrite = 2147483647;
1818
+ if (maxBytesToWrite < 4) return 0;
1819
+ var startPtr = outPtr;
1820
+ var endPtr = startPtr + maxBytesToWrite - 4;
1821
+ for (var i = 0; i < str.length; ++i) {
1822
+ var codeUnit = str.charCodeAt(i);
1823
+ if (codeUnit >= 55296 && codeUnit <= 57343) {
1824
+ var trailSurrogate = str.charCodeAt(++i);
1825
+ codeUnit = 65536 + ((codeUnit & 1023) << 10) | trailSurrogate & 1023;
1826
+ }
1827
+ HEAP32[outPtr >> 2] = codeUnit;
1828
+ outPtr += 4;
1829
+ if (outPtr + 4 > endPtr) break;
1830
+ }
1831
+ HEAP32[outPtr >> 2] = 0;
1832
+ return outPtr - startPtr;
1833
+ };
1834
+ var lengthBytesUTF32 = function lengthBytesUTF32(str) {
1835
+ var len = 0;
1836
+ for (var i = 0; i < str.length; ++i) {
1837
+ var codeUnit = str.charCodeAt(i);
1838
+ if (codeUnit >= 55296 && codeUnit <= 57343) ++i;
1839
+ len += 4;
1840
+ }
1841
+ return len;
1842
+ };
1843
+ var __embind_register_std_wstring = function __embind_register_std_wstring(rawType, charSize, name) {
1844
+ name = readLatin1String(name);
1845
+ var decodeString, encodeString, readCharAt, lengthBytesUTF;
1846
+ if (charSize === 2) {
1847
+ decodeString = UTF16ToString;
1848
+ encodeString = stringToUTF16;
1849
+ lengthBytesUTF = lengthBytesUTF16;
1850
+ readCharAt = function readCharAt(pointer) {
1851
+ return HEAPU16[pointer >> 1];
1852
+ };
1853
+ } else if (charSize === 4) {
1854
+ decodeString = UTF32ToString;
1855
+ encodeString = stringToUTF32;
1856
+ lengthBytesUTF = lengthBytesUTF32;
1857
+ readCharAt = function readCharAt(pointer) {
1858
+ return HEAPU32[pointer >> 2];
1859
+ };
1860
+ }
1861
+ registerType(rawType, {
1862
+ name: name,
1863
+ "fromWireType": function fromWireType(value) {
1864
+ var length = HEAPU32[value >> 2];
1865
+ var str;
1866
+ var decodeStartPtr = value + 4;
1867
+ for (var i = 0; i <= length; ++i) {
1868
+ var currentBytePtr = value + 4 + i * charSize;
1869
+ if (i == length || readCharAt(currentBytePtr) == 0) {
1870
+ var maxReadBytes = currentBytePtr - decodeStartPtr;
1871
+ var stringSegment = decodeString(decodeStartPtr, maxReadBytes);
1872
+ if (str === undefined) {
1873
+ str = stringSegment;
1874
+ } else {
1875
+ str += String.fromCharCode(0);
1876
+ str += stringSegment;
1877
+ }
1878
+ decodeStartPtr = currentBytePtr + charSize;
1879
+ }
1880
+ }
1881
+ _free(value);
1882
+ return str;
1883
+ },
1884
+ "toWireType": function toWireType(destructors, value) {
1885
+ if (!(typeof value == "string")) {
1886
+ throwBindingError("Cannot pass non-string to C++ string type ".concat(name));
1887
+ }
1888
+ var length = lengthBytesUTF(value);
1889
+ var ptr = _malloc(4 + length + charSize);
1890
+ HEAPU32[ptr >> 2] = length / charSize;
1891
+ encodeString(value, ptr + 4, length + charSize);
1892
+ if (destructors !== null) {
1893
+ destructors.push(_free, ptr);
1894
+ }
1895
+ return ptr;
1896
+ },
1897
+ "argPackAdvance": GenericWireTypeSize,
1898
+ "readValueFromPointer": readPointer,
1899
+ destructorFunction: function destructorFunction(ptr) {
1900
+ _free(ptr);
1901
+ }
1902
+ });
1903
+ };
1904
+ var __embind_register_value_object = function __embind_register_value_object(rawType, name, constructorSignature, rawConstructor, destructorSignature, rawDestructor) {
1905
+ structRegistrations[rawType] = {
1906
+ name: readLatin1String(name),
1907
+ rawConstructor: embind__requireFunction(constructorSignature, rawConstructor),
1908
+ rawDestructor: embind__requireFunction(destructorSignature, rawDestructor),
1909
+ fields: []
1910
+ };
1911
+ };
1912
+ var __embind_register_value_object_field = function __embind_register_value_object_field(structType, fieldName, getterReturnType, getterSignature, getter, getterContext, setterArgumentType, setterSignature, setter, setterContext) {
1913
+ structRegistrations[structType].fields.push({
1914
+ fieldName: readLatin1String(fieldName),
1915
+ getterReturnType: getterReturnType,
1916
+ getter: embind__requireFunction(getterSignature, getter),
1917
+ getterContext: getterContext,
1918
+ setterArgumentType: setterArgumentType,
1919
+ setter: embind__requireFunction(setterSignature, setter),
1920
+ setterContext: setterContext
1921
+ });
1922
+ };
1923
+ var __embind_register_void = function __embind_register_void(rawType, name) {
1924
+ name = readLatin1String(name);
1925
+ registerType(rawType, {
1926
+ isVoid: true,
1927
+ name: name,
1928
+ "argPackAdvance": 0,
1929
+ "fromWireType": function fromWireType() {
1930
+ return undefined;
1931
+ },
1932
+ "toWireType": function toWireType(destructors, o) {
1933
+ return undefined;
1934
+ }
1935
+ });
1936
+ };
1937
+ var nowIsMonotonic = 1;
1938
+ var __emscripten_get_now_is_monotonic = function __emscripten_get_now_is_monotonic() {
1939
+ return nowIsMonotonic;
1940
+ };
1941
+ var __emscripten_throw_longjmp = function __emscripten_throw_longjmp() {
1942
+ throw Infinity;
1943
+ };
1944
+ var emval_returnValue = function emval_returnValue(returnType, destructorsRef, handle) {
1945
+ var destructors = [];
1946
+ var result = returnType["toWireType"](destructors, handle);
1947
+ if (destructors.length) {
1948
+ HEAPU32[destructorsRef >> 2] = Emval.toHandle(destructors);
1949
+ }
1950
+ return result;
1951
+ };
1952
+ var __emval_as = function __emval_as(handle, returnType, destructorsRef) {
1953
+ handle = Emval.toValue(handle);
1954
+ returnType = requireRegisteredType(returnType, "emval::as");
1955
+ return emval_returnValue(returnType, destructorsRef, handle);
1956
+ };
1957
+ var emval_methodCallers = [];
1958
+ var __emval_call = function __emval_call(caller, handle, destructorsRef, args) {
1959
+ caller = emval_methodCallers[caller];
1960
+ handle = Emval.toValue(handle);
1961
+ return caller(null, handle, destructorsRef, args);
1962
+ };
1963
+ var emval_symbols = {};
1964
+ var getStringOrSymbol = function getStringOrSymbol(address) {
1965
+ var symbol = emval_symbols[address];
1966
+ if (symbol === undefined) {
1967
+ return readLatin1String(address);
1968
+ }
1969
+ return symbol;
1970
+ };
1971
+ var __emval_call_method = function __emval_call_method(caller, objHandle, methodName, destructorsRef, args) {
1972
+ caller = emval_methodCallers[caller];
1973
+ objHandle = Emval.toValue(objHandle);
1974
+ methodName = getStringOrSymbol(methodName);
1975
+ return caller(objHandle, objHandle[methodName], destructorsRef, args);
1976
+ };
1977
+ var emval_get_global = function emval_get_global() {
1978
+ if ((typeof globalThis === "undefined" ? "undefined" : _typeof(globalThis)) == "object") {
1979
+ return globalThis;
1980
+ }
1981
+ return function () {
1982
+ return Function;
1983
+ }()("return this")();
1984
+ };
1985
+ var __emval_get_global = function __emval_get_global(name) {
1986
+ if (name === 0) {
1987
+ return Emval.toHandle(emval_get_global());
1988
+ } else {
1989
+ name = getStringOrSymbol(name);
1990
+ return Emval.toHandle(emval_get_global()[name]);
1991
+ }
1992
+ };
1993
+ var emval_addMethodCaller = function emval_addMethodCaller(caller) {
1994
+ var id = emval_methodCallers.length;
1995
+ emval_methodCallers.push(caller);
1996
+ return id;
1997
+ };
1998
+ var emval_lookupTypes = function emval_lookupTypes(argCount, argTypes) {
1999
+ var a = new Array(argCount);
2000
+ for (var i = 0; i < argCount; ++i) {
2001
+ a[i] = requireRegisteredType(HEAPU32[argTypes + i * 4 >> 2], "parameter " + i);
2002
+ }
2003
+ return a;
2004
+ };
2005
+ var __emval_get_method_caller = function __emval_get_method_caller(argCount, argTypes, kind) {
2006
+ var types = emval_lookupTypes(argCount, argTypes);
2007
+ var retType = types.shift();
2008
+ argCount--;
2009
+ var functionBody = "return function (obj, func, destructorsRef, args) {\n";
2010
+ var offset = 0;
2011
+ var argsList = [];
2012
+ if (kind === 0) {
2013
+ argsList.push("obj");
2014
+ }
2015
+ var params = ["retType"];
2016
+ var args = [retType];
2017
+ for (var i = 0; i < argCount; ++i) {
2018
+ argsList.push("arg" + i);
2019
+ params.push("argType" + i);
2020
+ args.push(types[i]);
2021
+ functionBody += " var arg".concat(i, " = argType").concat(i, ".readValueFromPointer(args").concat(offset ? "+" + offset : "", ");\n");
2022
+ offset += types[i]["argPackAdvance"];
2023
+ }
2024
+ var invoker = kind === 1 ? "new func" : "func.call";
2025
+ functionBody += " var rv = ".concat(invoker, "(").concat(argsList.join(", "), ");\n");
2026
+ if (!retType.isVoid) {
2027
+ params.push("emval_returnValue");
2028
+ args.push(emval_returnValue);
2029
+ functionBody += " return emval_returnValue(retType, destructorsRef, rv);\n";
2030
+ }
2031
+ functionBody += "};\n";
2032
+ params.push(functionBody);
2033
+ var invokerFunction = newFunc(Function, params).apply(void 0, args);
2034
+ var functionName = "methodCaller<(".concat(types.map(function (t) {
2035
+ return t.name;
2036
+ }).join(", "), ") => ").concat(retType.name, ">");
2037
+ return emval_addMethodCaller(createNamedFunction(functionName, invokerFunction));
2038
+ };
2039
+ var __emval_get_module_property = function __emval_get_module_property(name) {
2040
+ name = getStringOrSymbol(name);
2041
+ return Emval.toHandle(Module[name]);
2042
+ };
2043
+ var __emval_get_property = function __emval_get_property(handle, key) {
2044
+ handle = Emval.toValue(handle);
2045
+ key = Emval.toValue(key);
2046
+ return Emval.toHandle(handle[key]);
2047
+ };
2048
+ var __emval_incref = function __emval_incref(handle) {
2049
+ if (handle > 9) {
2050
+ emval_handles[handle + 1] += 1;
2051
+ }
2052
+ };
2053
+ var __emval_new_array = function __emval_new_array() {
2054
+ return Emval.toHandle([]);
2055
+ };
2056
+ var __emval_new_cstring = function __emval_new_cstring(v) {
2057
+ return Emval.toHandle(getStringOrSymbol(v));
2058
+ };
2059
+ var __emval_run_destructors = function __emval_run_destructors(handle) {
2060
+ var destructors = Emval.toValue(handle);
2061
+ runDestructors(destructors);
2062
+ __emval_decref(handle);
2063
+ };
2064
+ var __emval_take_value = function __emval_take_value(type, arg) {
2065
+ type = requireRegisteredType(type, "_emval_take_value");
2066
+ var v = type["readValueFromPointer"](arg);
2067
+ return Emval.toHandle(v);
2068
+ };
2069
+ var MAX_INT53 = 9007199254740992;
2070
+ var MIN_INT53 = -9007199254740992;
2071
+ var bigintToI53Checked = function bigintToI53Checked(num) {
2072
+ return num < MIN_INT53 || num > MAX_INT53 ? NaN : Number(num);
2073
+ };
2074
+ function __gmtime_js(time, tmPtr) {
2075
+ time = bigintToI53Checked(time);
2076
+ var date = new Date(time * 1e3);
2077
+ HEAP32[tmPtr >> 2] = date.getUTCSeconds();
2078
+ HEAP32[tmPtr + 4 >> 2] = date.getUTCMinutes();
2079
+ HEAP32[tmPtr + 8 >> 2] = date.getUTCHours();
2080
+ HEAP32[tmPtr + 12 >> 2] = date.getUTCDate();
2081
+ HEAP32[tmPtr + 16 >> 2] = date.getUTCMonth();
2082
+ HEAP32[tmPtr + 20 >> 2] = date.getUTCFullYear() - 1900;
2083
+ HEAP32[tmPtr + 24 >> 2] = date.getUTCDay();
2084
+ var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0);
2085
+ var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0;
2086
+ HEAP32[tmPtr + 28 >> 2] = yday;
2087
+ }
2088
+ var __tzset_js = function __tzset_js(timezone, daylight, std_name, dst_name) {
2089
+ var currentYear = new Date().getFullYear();
2090
+ var winter = new Date(currentYear, 0, 1);
2091
+ var summer = new Date(currentYear, 6, 1);
2092
+ var winterOffset = winter.getTimezoneOffset();
2093
+ var summerOffset = summer.getTimezoneOffset();
2094
+ var stdTimezoneOffset = Math.max(winterOffset, summerOffset);
2095
+ HEAPU32[timezone >> 2] = stdTimezoneOffset * 60;
2096
+ HEAP32[daylight >> 2] = Number(winterOffset != summerOffset);
2097
+ var extractZone = function extractZone(date) {
2098
+ return date.toLocaleTimeString(undefined, {
2099
+ hour12: false,
2100
+ timeZoneName: "short"
2101
+ }).split(" ")[1];
2102
+ };
2103
+ var winterName = extractZone(winter);
2104
+ var summerName = extractZone(summer);
2105
+ if (summerOffset < winterOffset) {
2106
+ stringToUTF8(winterName, std_name, 17);
2107
+ stringToUTF8(summerName, dst_name, 17);
2108
+ } else {
2109
+ stringToUTF8(winterName, dst_name, 17);
2110
+ stringToUTF8(summerName, std_name, 17);
2111
+ }
2112
+ };
2113
+ var _emscripten_cancel_animation_frame = function _emscripten_cancel_animation_frame(id) {
2114
+ return cancelAnimationFrame(id);
2115
+ };
2116
+ var _emscripten_date_now = function _emscripten_date_now() {
2117
+ return Date.now();
2118
+ };
2119
+ var _emscripten_get_now;
2120
+ _emscripten_get_now = function _emscripten_get_now() {
2121
+ return performance.now();
2122
+ };
2123
+ var _emscripten_request_animation_frame = function _emscripten_request_animation_frame(cb, userData) {
2124
+ return requestAnimationFrame(function (timeStamp) {
2125
+ return getWasmTableEntry(cb)(timeStamp, userData);
2126
+ });
2127
+ };
2128
+ var getHeapMax = function getHeapMax() {
2129
+ return 2147483648;
2130
+ };
2131
+ var growMemory = function growMemory(size) {
2132
+ var b = wasmMemory.buffer;
2133
+ var pages = (size - b.byteLength + 65535) / 65536;
2134
+ try {
2135
+ wasmMemory.grow(pages);
2136
+ updateMemoryViews();
2137
+ return 1;
2138
+ } catch (e) {}
2139
+ };
2140
+ var _emscripten_resize_heap = function _emscripten_resize_heap(requestedSize) {
2141
+ var oldSize = HEAPU8.length;
2142
+ requestedSize >>>= 0;
2143
+ var maxHeapSize = getHeapMax();
2144
+ if (requestedSize > maxHeapSize) {
2145
+ return false;
2146
+ }
2147
+ var alignUp = function alignUp(x, multiple) {
2148
+ return x + (multiple - x % multiple) % multiple;
2149
+ };
2150
+ for (var cutDown = 1; cutDown <= 4; cutDown *= 2) {
2151
+ var overGrownHeapSize = oldSize * (1 + .2 / cutDown);
2152
+ overGrownHeapSize = Math.min(overGrownHeapSize, requestedSize + 100663296);
2153
+ var newSize = Math.min(maxHeapSize, alignUp(Math.max(requestedSize, overGrownHeapSize), 65536));
2154
+ var replacement = growMemory(newSize);
2155
+ if (replacement) {
2156
+ return true;
2157
+ }
2158
+ }
2159
+ return false;
2160
+ };
2161
+ var webgl_enable_ANGLE_instanced_arrays = function webgl_enable_ANGLE_instanced_arrays(ctx) {
2162
+ var ext = ctx.getExtension("ANGLE_instanced_arrays");
2163
+ if (ext) {
2164
+ ctx["vertexAttribDivisor"] = function (index, divisor) {
2165
+ return ext["vertexAttribDivisorANGLE"](index, divisor);
2166
+ };
2167
+ ctx["drawArraysInstanced"] = function (mode, first, count, primcount) {
2168
+ return ext["drawArraysInstancedANGLE"](mode, first, count, primcount);
2169
+ };
2170
+ ctx["drawElementsInstanced"] = function (mode, count, type, indices, primcount) {
2171
+ return ext["drawElementsInstancedANGLE"](mode, count, type, indices, primcount);
2172
+ };
2173
+ return 1;
2174
+ }
2175
+ };
2176
+ var webgl_enable_OES_vertex_array_object = function webgl_enable_OES_vertex_array_object(ctx) {
2177
+ var ext = ctx.getExtension("OES_vertex_array_object");
2178
+ if (ext) {
2179
+ ctx["createVertexArray"] = function () {
2180
+ return ext["createVertexArrayOES"]();
2181
+ };
2182
+ ctx["deleteVertexArray"] = function (vao) {
2183
+ return ext["deleteVertexArrayOES"](vao);
2184
+ };
2185
+ ctx["bindVertexArray"] = function (vao) {
2186
+ return ext["bindVertexArrayOES"](vao);
2187
+ };
2188
+ ctx["isVertexArray"] = function (vao) {
2189
+ return ext["isVertexArrayOES"](vao);
2190
+ };
2191
+ return 1;
2192
+ }
2193
+ };
2194
+ var webgl_enable_WEBGL_draw_buffers = function webgl_enable_WEBGL_draw_buffers(ctx) {
2195
+ var ext = ctx.getExtension("WEBGL_draw_buffers");
2196
+ if (ext) {
2197
+ ctx["drawBuffers"] = function (n, bufs) {
2198
+ return ext["drawBuffersWEBGL"](n, bufs);
2199
+ };
2200
+ return 1;
2201
+ }
2202
+ };
2203
+ var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance = function webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx) {
2204
+ return !!(ctx.dibvbi = ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"));
2205
+ };
2206
+ var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance = function webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx) {
2207
+ return !!(ctx.mdibvbi = ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"));
2208
+ };
2209
+ var webgl_enable_WEBGL_multi_draw = function webgl_enable_WEBGL_multi_draw(ctx) {
2210
+ return !!(ctx.multiDrawWebgl = ctx.getExtension("WEBGL_multi_draw"));
2211
+ };
2212
+ var getEmscriptenSupportedExtensions = function getEmscriptenSupportedExtensions(ctx) {
2213
+ var supportedExtensions = ["ANGLE_instanced_arrays", "EXT_blend_minmax", "EXT_disjoint_timer_query", "EXT_frag_depth", "EXT_shader_texture_lod", "EXT_sRGB", "OES_element_index_uint", "OES_fbo_render_mipmap", "OES_standard_derivatives", "OES_texture_float", "OES_texture_half_float", "OES_texture_half_float_linear", "OES_vertex_array_object", "WEBGL_color_buffer_float", "WEBGL_depth_texture", "WEBGL_draw_buffers", "EXT_color_buffer_float", "EXT_conservative_depth", "EXT_disjoint_timer_query_webgl2", "EXT_texture_norm16", "NV_shader_noperspective_interpolation", "WEBGL_clip_cull_distance", "EXT_color_buffer_half_float", "EXT_depth_clamp", "EXT_float_blend", "EXT_texture_compression_bptc", "EXT_texture_compression_rgtc", "EXT_texture_filter_anisotropic", "KHR_parallel_shader_compile", "OES_texture_float_linear", "WEBGL_blend_func_extended", "WEBGL_compressed_texture_astc", "WEBGL_compressed_texture_etc", "WEBGL_compressed_texture_etc1", "WEBGL_compressed_texture_s3tc", "WEBGL_compressed_texture_s3tc_srgb", "WEBGL_debug_renderer_info", "WEBGL_debug_shaders", "WEBGL_lose_context", "WEBGL_multi_draw"];
2214
+ return (ctx.getSupportedExtensions() || []).filter(function (ext) {
2215
+ return supportedExtensions.includes(ext);
2216
+ });
2217
+ };
2218
+ var GL = {
2219
+ counter: 1,
2220
+ buffers: [],
2221
+ programs: [],
2222
+ framebuffers: [],
2223
+ renderbuffers: [],
2224
+ textures: [],
2225
+ shaders: [],
2226
+ vaos: [],
2227
+ contexts: [],
2228
+ offscreenCanvases: {},
2229
+ queries: [],
2230
+ samplers: [],
2231
+ transformFeedbacks: [],
2232
+ syncs: [],
2233
+ stringCache: {},
2234
+ stringiCache: {},
2235
+ unpackAlignment: 4,
2236
+ recordError: function recordError(errorCode) {
2237
+ if (!GL.lastError) {
2238
+ GL.lastError = errorCode;
2239
+ }
2240
+ },
2241
+ getNewId: function getNewId(table) {
2242
+ var ret = GL.counter++;
2243
+ for (var i = table.length; i < ret; i++) {
2244
+ table[i] = null;
2245
+ }
2246
+ return ret;
2247
+ },
2248
+ genObject: function genObject(n, buffers, createFunction, objectTable) {
2249
+ for (var i = 0; i < n; i++) {
2250
+ var buffer = GLctx[createFunction]();
2251
+ var id = buffer && GL.getNewId(objectTable);
2252
+ if (buffer) {
2253
+ buffer.name = id;
2254
+ objectTable[id] = buffer;
2255
+ } else {
2256
+ GL.recordError(1282);
2257
+ }
2258
+ HEAP32[buffers + i * 4 >> 2] = id;
2259
+ }
2260
+ },
2261
+ getSource: function getSource(shader, count, string, length) {
2262
+ var source = "";
2263
+ for (var i = 0; i < count; ++i) {
2264
+ var len = length ? HEAPU32[length + i * 4 >> 2] : undefined;
2265
+ source += UTF8ToString(HEAPU32[string + i * 4 >> 2], len);
2266
+ }
2267
+ return source;
2268
+ },
2269
+ createContext: function createContext(canvas, webGLContextAttributes) {
2270
+ if (!canvas.getContextSafariWebGL2Fixed) {
2271
+ var fixedGetContext = function fixedGetContext(ver, attrs) {
2272
+ var gl = canvas.getContextSafariWebGL2Fixed(ver, attrs);
2273
+ return ver == "webgl" == gl instanceof WebGLRenderingContext ? gl : null;
2274
+ };
2275
+ canvas.getContextSafariWebGL2Fixed = canvas.getContext;
2276
+ canvas.getContext = fixedGetContext;
2277
+ }
2278
+ var ctx = webGLContextAttributes.majorVersion > 1 ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes);
2279
+ if (!ctx) return 0;
2280
+ var handle = GL.registerContext(ctx, webGLContextAttributes);
2281
+ return handle;
2282
+ },
2283
+ registerContext: function registerContext(ctx, webGLContextAttributes) {
2284
+ var handle = GL.getNewId(GL.contexts);
2285
+ var context = {
2286
+ handle: handle,
2287
+ attributes: webGLContextAttributes,
2288
+ version: webGLContextAttributes.majorVersion,
2289
+ GLctx: ctx
2290
+ };
2291
+ if (ctx.canvas) ctx.canvas.GLctxObject = context;
2292
+ GL.contexts[handle] = context;
2293
+ if (typeof webGLContextAttributes.enableExtensionsByDefault == "undefined" || webGLContextAttributes.enableExtensionsByDefault) {
2294
+ GL.initExtensions(context);
2295
+ }
2296
+ return handle;
2297
+ },
2298
+ makeContextCurrent: function makeContextCurrent(contextHandle) {
2299
+ var _GL$currentContext;
2300
+ GL.currentContext = GL.contexts[contextHandle];
2301
+ Module.ctx = GLctx = (_GL$currentContext = GL.currentContext) === null || _GL$currentContext === void 0 ? void 0 : _GL$currentContext.GLctx;
2302
+ return !(contextHandle && !GLctx);
2303
+ },
2304
+ getContext: function getContext(contextHandle) {
2305
+ return GL.contexts[contextHandle];
2306
+ },
2307
+ deleteContext: function deleteContext(contextHandle) {
2308
+ if (GL.currentContext === GL.contexts[contextHandle]) {
2309
+ GL.currentContext = null;
2310
+ }
2311
+ if ((typeof JSEvents === "undefined" ? "undefined" : _typeof(JSEvents)) == "object") {
2312
+ JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);
2313
+ }
2314
+ if (GL.contexts[contextHandle] && GL.contexts[contextHandle].GLctx.canvas) {
2315
+ GL.contexts[contextHandle].GLctx.canvas.GLctxObject = undefined;
2316
+ }
2317
+ GL.contexts[contextHandle] = null;
2318
+ },
2319
+ initExtensions: function initExtensions(context) {
2320
+ context || (context = GL.currentContext);
2321
+ if (context.initExtensionsDone) return;
2322
+ context.initExtensionsDone = true;
2323
+ var GLctx = context.GLctx;
2324
+ webgl_enable_ANGLE_instanced_arrays(GLctx);
2325
+ webgl_enable_OES_vertex_array_object(GLctx);
2326
+ webgl_enable_WEBGL_draw_buffers(GLctx);
2327
+ webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);
2328
+ webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);
2329
+ if (context.version >= 2) {
2330
+ GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2");
2331
+ }
2332
+ if (context.version < 2 || !GLctx.disjointTimerQueryExt) {
2333
+ GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query");
2334
+ }
2335
+ webgl_enable_WEBGL_multi_draw(GLctx);
2336
+ getEmscriptenSupportedExtensions(GLctx).forEach(function (ext) {
2337
+ if (!ext.includes("lose_context") && !ext.includes("debug")) {
2338
+ GLctx.getExtension(ext);
2339
+ }
2340
+ });
2341
+ }
2342
+ };
2343
+ var _emscripten_webgl_make_context_current = function _emscripten_webgl_make_context_current(contextHandle) {
2344
+ var success = GL.makeContextCurrent(contextHandle);
2345
+ return success ? 0 : -5;
2346
+ };
2347
+ var ENV = {};
2348
+ var getExecutableName = function getExecutableName() {
2349
+ return thisProgram ;
2350
+ };
2351
+ var _getEnvStrings = function getEnvStrings() {
2352
+ if (!_getEnvStrings.strings) {
2353
+ var lang = ((typeof navigator === "undefined" ? "undefined" : _typeof(navigator)) == "object" && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8";
2354
+ var env = {
2355
+ "USER": "web_user",
2356
+ "LOGNAME": "web_user",
2357
+ "PATH": "/",
2358
+ "PWD": "/",
2359
+ "HOME": "/home/web_user",
2360
+ "LANG": lang,
2361
+ "_": getExecutableName()
2362
+ };
2363
+ for (var x in ENV) {
2364
+ if (ENV[x] === undefined) delete env[x];else env[x] = ENV[x];
2365
+ }
2366
+ var strings = [];
2367
+ for (var x in env) {
2368
+ strings.push("".concat(x, "=").concat(env[x]));
2369
+ }
2370
+ _getEnvStrings.strings = strings;
2371
+ }
2372
+ return _getEnvStrings.strings;
2373
+ };
2374
+ var stringToAscii = function stringToAscii(str, buffer) {
2375
+ for (var i = 0; i < str.length; ++i) {
2376
+ HEAP8[buffer++] = str.charCodeAt(i);
2377
+ }
2378
+ HEAP8[buffer] = 0;
2379
+ };
2380
+ var _environ_get = function _environ_get(__environ, environ_buf) {
2381
+ var bufSize = 0;
2382
+ _getEnvStrings().forEach(function (string, i) {
2383
+ var ptr = environ_buf + bufSize;
2384
+ HEAPU32[__environ + i * 4 >> 2] = ptr;
2385
+ stringToAscii(string, ptr);
2386
+ bufSize += string.length + 1;
2387
+ });
2388
+ return 0;
2389
+ };
2390
+ var _environ_sizes_get = function _environ_sizes_get(penviron_count, penviron_buf_size) {
2391
+ var strings = _getEnvStrings();
2392
+ HEAPU32[penviron_count >> 2] = strings.length;
2393
+ var bufSize = 0;
2394
+ strings.forEach(function (string) {
2395
+ return bufSize += string.length + 1;
2396
+ });
2397
+ HEAPU32[penviron_buf_size >> 2] = bufSize;
2398
+ return 0;
2399
+ };
2400
+ var runtimeKeepaliveCounter = 0;
2401
+ var keepRuntimeAlive = function keepRuntimeAlive() {
2402
+ return noExitRuntime || runtimeKeepaliveCounter > 0;
2403
+ };
2404
+ var _proc_exit = function _proc_exit(code) {
2405
+ if (!keepRuntimeAlive()) {
2406
+ ABORT = true;
2407
+ }
2408
+ quit_(code, new ExitStatus(code));
2409
+ };
2410
+ var exitJS = function exitJS(status, implicit) {
2411
+ _proc_exit(status);
2412
+ };
2413
+ var _exit = exitJS;
2414
+ var _fd_close = function _fd_close(fd) {
2415
+ return 52;
2416
+ };
2417
+ function _fd_seek(fd, offset, whence, newOffset) {
2418
+ return 70;
2419
+ }
2420
+ var printCharBuffers = [null, [], []];
2421
+ var printChar = function printChar(stream, curr) {
2422
+ var buffer = printCharBuffers[stream];
2423
+ if (curr === 0 || curr === 10) {
2424
+ (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));
2425
+ buffer.length = 0;
2426
+ } else {
2427
+ buffer.push(curr);
2428
+ }
2429
+ };
2430
+ var _fd_write = function _fd_write(fd, iov, iovcnt, pnum) {
2431
+ var num = 0;
2432
+ for (var i = 0; i < iovcnt; i++) {
2433
+ var ptr = HEAPU32[iov >> 2];
2434
+ var len = HEAPU32[iov + 4 >> 2];
2435
+ iov += 8;
2436
+ for (var j = 0; j < len; j++) {
2437
+ printChar(fd, HEAPU8[ptr + j]);
2438
+ }
2439
+ num += len;
2440
+ }
2441
+ HEAPU32[pnum >> 2] = num;
2442
+ return 0;
2443
+ };
2444
+ var _glActiveTexture = function _glActiveTexture(x0) {
2445
+ return GLctx.activeTexture(x0);
2446
+ };
2447
+ var _glAttachShader = function _glAttachShader(program, shader) {
2448
+ GLctx.attachShader(GL.programs[program], GL.shaders[shader]);
2449
+ };
2450
+ var _glBindAttribLocation = function _glBindAttribLocation(program, index, name) {
2451
+ GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name));
2452
+ };
2453
+ var _glBindBuffer = function _glBindBuffer(target, buffer) {
2454
+ if (target == 35051) {
2455
+ GLctx.currentPixelPackBufferBinding = buffer;
2456
+ } else if (target == 35052) {
2457
+ GLctx.currentPixelUnpackBufferBinding = buffer;
2458
+ }
2459
+ GLctx.bindBuffer(target, GL.buffers[buffer]);
2460
+ };
2461
+ var _glBindFramebuffer = function _glBindFramebuffer(target, framebuffer) {
2462
+ GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]);
2463
+ };
2464
+ var _glBindRenderbuffer = function _glBindRenderbuffer(target, renderbuffer) {
2465
+ GLctx.bindRenderbuffer(target, GL.renderbuffers[renderbuffer]);
2466
+ };
2467
+ var _glBindSampler = function _glBindSampler(unit, sampler) {
2468
+ GLctx.bindSampler(unit, GL.samplers[sampler]);
2469
+ };
2470
+ var _glBindTexture = function _glBindTexture(target, texture) {
2471
+ GLctx.bindTexture(target, GL.textures[texture]);
2472
+ };
2473
+ var _glBindVertexArray = function _glBindVertexArray(vao) {
2474
+ GLctx.bindVertexArray(GL.vaos[vao]);
2475
+ };
2476
+ var _glBindVertexArrayOES = _glBindVertexArray;
2477
+ var _glBlendColor = function _glBlendColor(x0, x1, x2, x3) {
2478
+ return GLctx.blendColor(x0, x1, x2, x3);
2479
+ };
2480
+ var _glBlendEquation = function _glBlendEquation(x0) {
2481
+ return GLctx.blendEquation(x0);
2482
+ };
2483
+ var _glBlendFunc = function _glBlendFunc(x0, x1) {
2484
+ return GLctx.blendFunc(x0, x1);
2485
+ };
2486
+ var _glBlitFramebuffer = function _glBlitFramebuffer(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9) {
2487
+ return GLctx.blitFramebuffer(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9);
2488
+ };
2489
+ var _glBufferData = function _glBufferData(target, size, data, usage) {
2490
+ if (GL.currentContext.version >= 2) {
2491
+ if (data && size) {
2492
+ GLctx.bufferData(target, HEAPU8, usage, data, size);
2493
+ } else {
2494
+ GLctx.bufferData(target, size, usage);
2495
+ }
2496
+ return;
2497
+ }
2498
+ GLctx.bufferData(target, data ? HEAPU8.subarray(data, data + size) : size, usage);
2499
+ };
2500
+ var _glBufferSubData = function _glBufferSubData(target, offset, size, data) {
2501
+ if (GL.currentContext.version >= 2) {
2502
+ size && GLctx.bufferSubData(target, offset, HEAPU8, data, size);
2503
+ return;
2504
+ }
2505
+ GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data + size));
2506
+ };
2507
+ var _glCheckFramebufferStatus = function _glCheckFramebufferStatus(x0) {
2508
+ return GLctx.checkFramebufferStatus(x0);
2509
+ };
2510
+ var _glClear = function _glClear(x0) {
2511
+ return GLctx.clear(x0);
2512
+ };
2513
+ var _glClearColor = function _glClearColor(x0, x1, x2, x3) {
2514
+ return GLctx.clearColor(x0, x1, x2, x3);
2515
+ };
2516
+ var _glClearStencil = function _glClearStencil(x0) {
2517
+ return GLctx.clearStencil(x0);
2518
+ };
2519
+ var _glClientWaitSync = function _glClientWaitSync(sync, flags, timeout) {
2520
+ timeout = Number(timeout);
2521
+ return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout);
2522
+ };
2523
+ var _glColorMask = function _glColorMask(red, green, blue, alpha) {
2524
+ GLctx.colorMask(!!red, !!green, !!blue, !!alpha);
2525
+ };
2526
+ var _glCompileShader = function _glCompileShader(shader) {
2527
+ GLctx.compileShader(GL.shaders[shader]);
2528
+ };
2529
+ var _glCompressedTexImage2D = function _glCompressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data) {
2530
+ if (GL.currentContext.version >= 2) {
2531
+ if (GLctx.currentPixelUnpackBufferBinding || !imageSize) {
2532
+ GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data);
2533
+ return;
2534
+ }
2535
+ GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, HEAPU8, data, imageSize);
2536
+ return;
2537
+ }
2538
+ GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, data ? HEAPU8.subarray(data, data + imageSize) : null);
2539
+ };
2540
+ var _glCompressedTexSubImage2D = function _glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) {
2541
+ if (GL.currentContext.version >= 2) {
2542
+ if (GLctx.currentPixelUnpackBufferBinding || !imageSize) {
2543
+ GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
2544
+ return;
2545
+ }
2546
+ GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, HEAPU8, data, imageSize);
2547
+ return;
2548
+ }
2549
+ GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, data ? HEAPU8.subarray(data, data + imageSize) : null);
2550
+ };
2551
+ var _glCopyBufferSubData = function _glCopyBufferSubData(x0, x1, x2, x3, x4) {
2552
+ return GLctx.copyBufferSubData(x0, x1, x2, x3, x4);
2553
+ };
2554
+ var _glCopyTexSubImage2D = function _glCopyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7) {
2555
+ return GLctx.copyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7);
2556
+ };
2557
+ var _glCreateProgram = function _glCreateProgram() {
2558
+ var id = GL.getNewId(GL.programs);
2559
+ var program = GLctx.createProgram();
2560
+ program.name = id;
2561
+ program.maxUniformLength = program.maxAttributeLength = program.maxUniformBlockNameLength = 0;
2562
+ program.uniformIdCounter = 1;
2563
+ GL.programs[id] = program;
2564
+ return id;
2565
+ };
2566
+ var _glCreateShader = function _glCreateShader(shaderType) {
2567
+ var id = GL.getNewId(GL.shaders);
2568
+ GL.shaders[id] = GLctx.createShader(shaderType);
2569
+ return id;
2570
+ };
2571
+ var _glCullFace = function _glCullFace(x0) {
2572
+ return GLctx.cullFace(x0);
2573
+ };
2574
+ var _glDeleteBuffers = function _glDeleteBuffers(n, buffers) {
2575
+ for (var i = 0; i < n; i++) {
2576
+ var id = HEAP32[buffers + i * 4 >> 2];
2577
+ var buffer = GL.buffers[id];
2578
+ if (!buffer) continue;
2579
+ GLctx.deleteBuffer(buffer);
2580
+ buffer.name = 0;
2581
+ GL.buffers[id] = null;
2582
+ if (id == GLctx.currentPixelPackBufferBinding) GLctx.currentPixelPackBufferBinding = 0;
2583
+ if (id == GLctx.currentPixelUnpackBufferBinding) GLctx.currentPixelUnpackBufferBinding = 0;
2584
+ }
2585
+ };
2586
+ var _glDeleteFramebuffers = function _glDeleteFramebuffers(n, framebuffers) {
2587
+ for (var i = 0; i < n; ++i) {
2588
+ var id = HEAP32[framebuffers + i * 4 >> 2];
2589
+ var framebuffer = GL.framebuffers[id];
2590
+ if (!framebuffer) continue;
2591
+ GLctx.deleteFramebuffer(framebuffer);
2592
+ framebuffer.name = 0;
2593
+ GL.framebuffers[id] = null;
2594
+ }
2595
+ };
2596
+ var _glDeleteProgram = function _glDeleteProgram(id) {
2597
+ if (!id) return;
2598
+ var program = GL.programs[id];
2599
+ if (!program) {
2600
+ GL.recordError(1281);
2601
+ return;
2602
+ }
2603
+ GLctx.deleteProgram(program);
2604
+ program.name = 0;
2605
+ GL.programs[id] = null;
2606
+ };
2607
+ var _glDeleteRenderbuffers = function _glDeleteRenderbuffers(n, renderbuffers) {
2608
+ for (var i = 0; i < n; i++) {
2609
+ var id = HEAP32[renderbuffers + i * 4 >> 2];
2610
+ var renderbuffer = GL.renderbuffers[id];
2611
+ if (!renderbuffer) continue;
2612
+ GLctx.deleteRenderbuffer(renderbuffer);
2613
+ renderbuffer.name = 0;
2614
+ GL.renderbuffers[id] = null;
2615
+ }
2616
+ };
2617
+ var _glDeleteSamplers = function _glDeleteSamplers(n, samplers) {
2618
+ for (var i = 0; i < n; i++) {
2619
+ var id = HEAP32[samplers + i * 4 >> 2];
2620
+ var sampler = GL.samplers[id];
2621
+ if (!sampler) continue;
2622
+ GLctx.deleteSampler(sampler);
2623
+ sampler.name = 0;
2624
+ GL.samplers[id] = null;
2625
+ }
2626
+ };
2627
+ var _glDeleteShader = function _glDeleteShader(id) {
2628
+ if (!id) return;
2629
+ var shader = GL.shaders[id];
2630
+ if (!shader) {
2631
+ GL.recordError(1281);
2632
+ return;
2633
+ }
2634
+ GLctx.deleteShader(shader);
2635
+ GL.shaders[id] = null;
2636
+ };
2637
+ var _glDeleteSync = function _glDeleteSync(id) {
2638
+ if (!id) return;
2639
+ var sync = GL.syncs[id];
2640
+ if (!sync) {
2641
+ GL.recordError(1281);
2642
+ return;
2643
+ }
2644
+ GLctx.deleteSync(sync);
2645
+ sync.name = 0;
2646
+ GL.syncs[id] = null;
2647
+ };
2648
+ var _glDeleteTextures = function _glDeleteTextures(n, textures) {
2649
+ for (var i = 0; i < n; i++) {
2650
+ var id = HEAP32[textures + i * 4 >> 2];
2651
+ var texture = GL.textures[id];
2652
+ if (!texture) continue;
2653
+ GLctx.deleteTexture(texture);
2654
+ texture.name = 0;
2655
+ GL.textures[id] = null;
2656
+ }
2657
+ };
2658
+ var _glDeleteVertexArrays = function _glDeleteVertexArrays(n, vaos) {
2659
+ for (var i = 0; i < n; i++) {
2660
+ var id = HEAP32[vaos + i * 4 >> 2];
2661
+ GLctx.deleteVertexArray(GL.vaos[id]);
2662
+ GL.vaos[id] = null;
2663
+ }
2664
+ };
2665
+ var _glDeleteVertexArraysOES = _glDeleteVertexArrays;
2666
+ var _glDepthMask = function _glDepthMask(flag) {
2667
+ GLctx.depthMask(!!flag);
2668
+ };
2669
+ var _glDisable = function _glDisable(x0) {
2670
+ return GLctx.disable(x0);
2671
+ };
2672
+ var _glDisableVertexAttribArray = function _glDisableVertexAttribArray(index) {
2673
+ GLctx.disableVertexAttribArray(index);
2674
+ };
2675
+ var _glDrawArrays = function _glDrawArrays(mode, first, count) {
2676
+ GLctx.drawArrays(mode, first, count);
2677
+ };
2678
+ var _glDrawArraysInstanced = function _glDrawArraysInstanced(mode, first, count, primcount) {
2679
+ GLctx.drawArraysInstanced(mode, first, count, primcount);
2680
+ };
2681
+ var _glDrawArraysInstancedBaseInstanceWEBGL = function _glDrawArraysInstancedBaseInstanceWEBGL(mode, first, count, instanceCount, baseInstance) {
2682
+ GLctx.dibvbi["drawArraysInstancedBaseInstanceWEBGL"](mode, first, count, instanceCount, baseInstance);
2683
+ };
2684
+ var tempFixedLengthArray = [];
2685
+ var _glDrawBuffers = function _glDrawBuffers(n, bufs) {
2686
+ var bufArray = tempFixedLengthArray[n];
2687
+ for (var i = 0; i < n; i++) {
2688
+ bufArray[i] = HEAP32[bufs + i * 4 >> 2];
2689
+ }
2690
+ GLctx.drawBuffers(bufArray);
2691
+ };
2692
+ var _glDrawElements = function _glDrawElements(mode, count, type, indices) {
2693
+ GLctx.drawElements(mode, count, type, indices);
2694
+ };
2695
+ var _glDrawElementsInstanced = function _glDrawElementsInstanced(mode, count, type, indices, primcount) {
2696
+ GLctx.drawElementsInstanced(mode, count, type, indices, primcount);
2697
+ };
2698
+ var _glDrawElementsInstancedBaseVertexBaseInstanceWEBGL = function _glDrawElementsInstancedBaseVertexBaseInstanceWEBGL(mode, count, type, offset, instanceCount, baseVertex, baseinstance) {
2699
+ GLctx.dibvbi["drawElementsInstancedBaseVertexBaseInstanceWEBGL"](mode, count, type, offset, instanceCount, baseVertex, baseinstance);
2700
+ };
2701
+ var _glDrawRangeElements = function _glDrawRangeElements(mode, start, end, count, type, indices) {
2702
+ _glDrawElements(mode, count, type, indices);
2703
+ };
2704
+ var _glEnable = function _glEnable(x0) {
2705
+ return GLctx.enable(x0);
2706
+ };
2707
+ var _glEnableVertexAttribArray = function _glEnableVertexAttribArray(index) {
2708
+ GLctx.enableVertexAttribArray(index);
2709
+ };
2710
+ var _glFenceSync = function _glFenceSync(condition, flags) {
2711
+ var sync = GLctx.fenceSync(condition, flags);
2712
+ if (sync) {
2713
+ var id = GL.getNewId(GL.syncs);
2714
+ sync.name = id;
2715
+ GL.syncs[id] = sync;
2716
+ return id;
2717
+ }
2718
+ return 0;
2719
+ };
2720
+ var _glFinish = function _glFinish() {
2721
+ return GLctx.finish();
2722
+ };
2723
+ var _glFlush = function _glFlush() {
2724
+ return GLctx.flush();
2725
+ };
2726
+ var _glFramebufferRenderbuffer = function _glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) {
2727
+ GLctx.framebufferRenderbuffer(target, attachment, renderbuffertarget, GL.renderbuffers[renderbuffer]);
2728
+ };
2729
+ var _glFramebufferTexture2D = function _glFramebufferTexture2D(target, attachment, textarget, texture, level) {
2730
+ GLctx.framebufferTexture2D(target, attachment, textarget, GL.textures[texture], level);
2731
+ };
2732
+ var _glFrontFace = function _glFrontFace(x0) {
2733
+ return GLctx.frontFace(x0);
2734
+ };
2735
+ var _glGenBuffers = function _glGenBuffers(n, buffers) {
2736
+ GL.genObject(n, buffers, "createBuffer", GL.buffers);
2737
+ };
2738
+ var _glGenFramebuffers = function _glGenFramebuffers(n, ids) {
2739
+ GL.genObject(n, ids, "createFramebuffer", GL.framebuffers);
2740
+ };
2741
+ var _glGenRenderbuffers = function _glGenRenderbuffers(n, renderbuffers) {
2742
+ GL.genObject(n, renderbuffers, "createRenderbuffer", GL.renderbuffers);
2743
+ };
2744
+ var _glGenSamplers = function _glGenSamplers(n, samplers) {
2745
+ GL.genObject(n, samplers, "createSampler", GL.samplers);
2746
+ };
2747
+ var _glGenTextures = function _glGenTextures(n, textures) {
2748
+ GL.genObject(n, textures, "createTexture", GL.textures);
2749
+ };
2750
+ var _glGenVertexArrays = function _glGenVertexArrays(n, arrays) {
2751
+ GL.genObject(n, arrays, "createVertexArray", GL.vaos);
2752
+ };
2753
+ var _glGenVertexArraysOES = _glGenVertexArrays;
2754
+ var _glGenerateMipmap = function _glGenerateMipmap(x0) {
2755
+ return GLctx.generateMipmap(x0);
2756
+ };
2757
+ var _glGetBufferParameteriv = function _glGetBufferParameteriv(target, value, data) {
2758
+ if (!data) {
2759
+ GL.recordError(1281);
2760
+ return;
2761
+ }
2762
+ HEAP32[data >> 2] = GLctx.getBufferParameter(target, value);
2763
+ };
2764
+ var _glGetError = function _glGetError() {
2765
+ var error = GLctx.getError() || GL.lastError;
2766
+ GL.lastError = 0;
2767
+ return error;
2768
+ };
2769
+ var writeI53ToI64 = function writeI53ToI64(ptr, num) {
2770
+ HEAPU32[ptr >> 2] = num;
2771
+ var lower = HEAPU32[ptr >> 2];
2772
+ HEAPU32[ptr + 4 >> 2] = (num - lower) / 4294967296;
2773
+ };
2774
+ var webglGetExtensions = function $webglGetExtensions() {
2775
+ var exts = getEmscriptenSupportedExtensions(GLctx);
2776
+ exts = exts.concat(exts.map(function (e) {
2777
+ return "GL_" + e;
2778
+ }));
2779
+ return exts;
2780
+ };
2781
+ var emscriptenWebGLGet = function emscriptenWebGLGet(name_, p, type) {
2782
+ if (!p) {
2783
+ GL.recordError(1281);
2784
+ return;
2785
+ }
2786
+ var ret = undefined;
2787
+ switch (name_) {
2788
+ case 36346:
2789
+ ret = 1;
2790
+ break;
2791
+ case 36344:
2792
+ if (type != 0 && type != 1) {
2793
+ GL.recordError(1280);
2794
+ }
2795
+ return;
2796
+ case 34814:
2797
+ case 36345:
2798
+ ret = 0;
2799
+ break;
2800
+ case 34466:
2801
+ var formats = GLctx.getParameter(34467);
2802
+ ret = formats ? formats.length : 0;
2803
+ break;
2804
+ case 33309:
2805
+ if (GL.currentContext.version < 2) {
2806
+ GL.recordError(1282);
2807
+ return;
2808
+ }
2809
+ ret = webglGetExtensions().length;
2810
+ break;
2811
+ case 33307:
2812
+ case 33308:
2813
+ if (GL.currentContext.version < 2) {
2814
+ GL.recordError(1280);
2815
+ return;
2816
+ }
2817
+ ret = name_ == 33307 ? 3 : 0;
2818
+ break;
2819
+ }
2820
+ if (ret === undefined) {
2821
+ var result = GLctx.getParameter(name_);
2822
+ switch (_typeof(result)) {
2823
+ case "number":
2824
+ ret = result;
2825
+ break;
2826
+ case "boolean":
2827
+ ret = result ? 1 : 0;
2828
+ break;
2829
+ case "string":
2830
+ GL.recordError(1280);
2831
+ return;
2832
+ case "object":
2833
+ if (result === null) {
2834
+ switch (name_) {
2835
+ case 34964:
2836
+ case 35725:
2837
+ case 34965:
2838
+ case 36006:
2839
+ case 36007:
2840
+ case 32873:
2841
+ case 34229:
2842
+ case 36662:
2843
+ case 36663:
2844
+ case 35053:
2845
+ case 35055:
2846
+ case 36010:
2847
+ case 35097:
2848
+ case 35869:
2849
+ case 32874:
2850
+ case 36389:
2851
+ case 35983:
2852
+ case 35368:
2853
+ case 34068:
2854
+ {
2855
+ ret = 0;
2856
+ break;
2857
+ }
2858
+ default:
2859
+ {
2860
+ GL.recordError(1280);
2861
+ return;
2862
+ }
2863
+ }
2864
+ } else if (result instanceof Float32Array || result instanceof Uint32Array || result instanceof Int32Array || result instanceof Array) {
2865
+ for (var i = 0; i < result.length; ++i) {
2866
+ switch (type) {
2867
+ case 0:
2868
+ HEAP32[p + i * 4 >> 2] = result[i];
2869
+ break;
2870
+ case 2:
2871
+ HEAPF32[p + i * 4 >> 2] = result[i];
2872
+ break;
2873
+ case 4:
2874
+ HEAP8[p + i] = result[i] ? 1 : 0;
2875
+ break;
2876
+ }
2877
+ }
2878
+ return;
2879
+ } else {
2880
+ try {
2881
+ ret = result.name | 0;
2882
+ } catch (e) {
2883
+ GL.recordError(1280);
2884
+ err("GL_INVALID_ENUM in glGet".concat(type, "v: Unknown object returned from WebGL getParameter(").concat(name_, ")! (error: ").concat(e, ")"));
2885
+ return;
2886
+ }
2887
+ }
2888
+ break;
2889
+ default:
2890
+ GL.recordError(1280);
2891
+ err("GL_INVALID_ENUM in glGet".concat(type, "v: Native code calling glGet").concat(type, "v(").concat(name_, ") and it returns ").concat(result, " of type ").concat(_typeof(result), "!"));
2892
+ return;
2893
+ }
2894
+ }
2895
+ switch (type) {
2896
+ case 1:
2897
+ writeI53ToI64(p, ret);
2898
+ break;
2899
+ case 0:
2900
+ HEAP32[p >> 2] = ret;
2901
+ break;
2902
+ case 2:
2903
+ HEAPF32[p >> 2] = ret;
2904
+ break;
2905
+ case 4:
2906
+ HEAP8[p] = ret ? 1 : 0;
2907
+ break;
2908
+ }
2909
+ };
2910
+ var _glGetFloatv = function _glGetFloatv(name_, p) {
2911
+ return emscriptenWebGLGet(name_, p, 2);
2912
+ };
2913
+ var _glGetFramebufferAttachmentParameteriv = function _glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) {
2914
+ var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname);
2915
+ if (result instanceof WebGLRenderbuffer || result instanceof WebGLTexture) {
2916
+ result = result.name | 0;
2917
+ }
2918
+ HEAP32[params >> 2] = result;
2919
+ };
2920
+ var _glGetIntegerv = function _glGetIntegerv(name_, p) {
2921
+ return emscriptenWebGLGet(name_, p, 0);
2922
+ };
2923
+ var _glGetProgramInfoLog = function _glGetProgramInfoLog(program, maxLength, length, infoLog) {
2924
+ var log = GLctx.getProgramInfoLog(GL.programs[program]);
2925
+ if (log === null) log = "(unknown error)";
2926
+ var numBytesWrittenExclNull = maxLength > 0 && infoLog ? stringToUTF8(log, infoLog, maxLength) : 0;
2927
+ if (length) HEAP32[length >> 2] = numBytesWrittenExclNull;
2928
+ };
2929
+ var _glGetProgramiv = function _glGetProgramiv(program, pname, p) {
2930
+ if (!p) {
2931
+ GL.recordError(1281);
2932
+ return;
2933
+ }
2934
+ if (program >= GL.counter) {
2935
+ GL.recordError(1281);
2936
+ return;
2937
+ }
2938
+ program = GL.programs[program];
2939
+ if (pname == 35716) {
2940
+ var log = GLctx.getProgramInfoLog(program);
2941
+ if (log === null) log = "(unknown error)";
2942
+ HEAP32[p >> 2] = log.length + 1;
2943
+ } else if (pname == 35719) {
2944
+ if (!program.maxUniformLength) {
2945
+ for (var i = 0; i < GLctx.getProgramParameter(program, 35718); ++i) {
2946
+ program.maxUniformLength = Math.max(program.maxUniformLength, GLctx.getActiveUniform(program, i).name.length + 1);
2947
+ }
2948
+ }
2949
+ HEAP32[p >> 2] = program.maxUniformLength;
2950
+ } else if (pname == 35722) {
2951
+ if (!program.maxAttributeLength) {
2952
+ for (var i = 0; i < GLctx.getProgramParameter(program, 35721); ++i) {
2953
+ program.maxAttributeLength = Math.max(program.maxAttributeLength, GLctx.getActiveAttrib(program, i).name.length + 1);
2954
+ }
2955
+ }
2956
+ HEAP32[p >> 2] = program.maxAttributeLength;
2957
+ } else if (pname == 35381) {
2958
+ if (!program.maxUniformBlockNameLength) {
2959
+ for (var i = 0; i < GLctx.getProgramParameter(program, 35382); ++i) {
2960
+ program.maxUniformBlockNameLength = Math.max(program.maxUniformBlockNameLength, GLctx.getActiveUniformBlockName(program, i).length + 1);
2961
+ }
2962
+ }
2963
+ HEAP32[p >> 2] = program.maxUniformBlockNameLength;
2964
+ } else {
2965
+ HEAP32[p >> 2] = GLctx.getProgramParameter(program, pname);
2966
+ }
2967
+ };
2968
+ var _glGetRenderbufferParameteriv = function _glGetRenderbufferParameteriv(target, pname, params) {
2969
+ if (!params) {
2970
+ GL.recordError(1281);
2971
+ return;
2972
+ }
2973
+ HEAP32[params >> 2] = GLctx.getRenderbufferParameter(target, pname);
2974
+ };
2975
+ var _glGetShaderInfoLog = function _glGetShaderInfoLog(shader, maxLength, length, infoLog) {
2976
+ var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
2977
+ if (log === null) log = "(unknown error)";
2978
+ var numBytesWrittenExclNull = maxLength > 0 && infoLog ? stringToUTF8(log, infoLog, maxLength) : 0;
2979
+ if (length) HEAP32[length >> 2] = numBytesWrittenExclNull;
2980
+ };
2981
+ var _glGetShaderPrecisionFormat = function _glGetShaderPrecisionFormat(shaderType, precisionType, range, precision) {
2982
+ var result = GLctx.getShaderPrecisionFormat(shaderType, precisionType);
2983
+ HEAP32[range >> 2] = result.rangeMin;
2984
+ HEAP32[range + 4 >> 2] = result.rangeMax;
2985
+ HEAP32[precision >> 2] = result.precision;
2986
+ };
2987
+ var _glGetShaderiv = function _glGetShaderiv(shader, pname, p) {
2988
+ if (!p) {
2989
+ GL.recordError(1281);
2990
+ return;
2991
+ }
2992
+ if (pname == 35716) {
2993
+ var log = GLctx.getShaderInfoLog(GL.shaders[shader]);
2994
+ if (log === null) log = "(unknown error)";
2995
+ var logLength = log ? log.length + 1 : 0;
2996
+ HEAP32[p >> 2] = logLength;
2997
+ } else if (pname == 35720) {
2998
+ var source = GLctx.getShaderSource(GL.shaders[shader]);
2999
+ var sourceLength = source ? source.length + 1 : 0;
3000
+ HEAP32[p >> 2] = sourceLength;
3001
+ } else {
3002
+ HEAP32[p >> 2] = GLctx.getShaderParameter(GL.shaders[shader], pname);
3003
+ }
3004
+ };
3005
+ var stringToNewUTF8 = function stringToNewUTF8(str) {
3006
+ var size = lengthBytesUTF8(str) + 1;
3007
+ var ret = _malloc(size);
3008
+ if (ret) stringToUTF8(str, ret, size);
3009
+ return ret;
3010
+ };
3011
+ var _glGetString = function _glGetString(name_) {
3012
+ var ret = GL.stringCache[name_];
3013
+ if (!ret) {
3014
+ switch (name_) {
3015
+ case 7939:
3016
+ ret = stringToNewUTF8(webglGetExtensions().join(" "));
3017
+ break;
3018
+ case 7936:
3019
+ case 7937:
3020
+ case 37445:
3021
+ case 37446:
3022
+ var s = GLctx.getParameter(name_);
3023
+ if (!s) {
3024
+ GL.recordError(1280);
3025
+ }
3026
+ ret = s ? stringToNewUTF8(s) : 0;
3027
+ break;
3028
+ case 7938:
3029
+ var glVersion = GLctx.getParameter(7938);
3030
+ if (GL.currentContext.version >= 2) glVersion = "OpenGL ES 3.0 (".concat(glVersion, ")");else {
3031
+ glVersion = "OpenGL ES 2.0 (".concat(glVersion, ")");
3032
+ }
3033
+ ret = stringToNewUTF8(glVersion);
3034
+ break;
3035
+ case 35724:
3036
+ var glslVersion = GLctx.getParameter(35724);
3037
+ var ver_re = /^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;
3038
+ var ver_num = glslVersion.match(ver_re);
3039
+ if (ver_num !== null) {
3040
+ if (ver_num[1].length == 3) ver_num[1] = ver_num[1] + "0";
3041
+ glslVersion = "OpenGL ES GLSL ES ".concat(ver_num[1], " (").concat(glslVersion, ")");
3042
+ }
3043
+ ret = stringToNewUTF8(glslVersion);
3044
+ break;
3045
+ default:
3046
+ GL.recordError(1280);
3047
+ }
3048
+ GL.stringCache[name_] = ret;
3049
+ }
3050
+ return ret;
3051
+ };
3052
+ var _glGetStringi = function _glGetStringi(name, index) {
3053
+ if (GL.currentContext.version < 2) {
3054
+ GL.recordError(1282);
3055
+ return 0;
3056
+ }
3057
+ var stringiCache = GL.stringiCache[name];
3058
+ if (stringiCache) {
3059
+ if (index < 0 || index >= stringiCache.length) {
3060
+ GL.recordError(1281);
3061
+ return 0;
3062
+ }
3063
+ return stringiCache[index];
3064
+ }
3065
+ switch (name) {
3066
+ case 7939:
3067
+ var exts = webglGetExtensions().map(stringToNewUTF8);
3068
+ stringiCache = GL.stringiCache[name] = exts;
3069
+ if (index < 0 || index >= stringiCache.length) {
3070
+ GL.recordError(1281);
3071
+ return 0;
3072
+ }
3073
+ return stringiCache[index];
3074
+ default:
3075
+ GL.recordError(1280);
3076
+ return 0;
3077
+ }
3078
+ };
3079
+ var jstoi_q = function jstoi_q(str) {
3080
+ return parseInt(str);
3081
+ };
3082
+ var webglGetLeftBracePos = function webglGetLeftBracePos(name) {
3083
+ return name.slice(-1) == "]" && name.lastIndexOf("[");
3084
+ };
3085
+ var webglPrepareUniformLocationsBeforeFirstUse = function webglPrepareUniformLocationsBeforeFirstUse(program) {
3086
+ var uniformLocsById = program.uniformLocsById,
3087
+ uniformSizeAndIdsByName = program.uniformSizeAndIdsByName,
3088
+ i,
3089
+ j;
3090
+ if (!uniformLocsById) {
3091
+ program.uniformLocsById = uniformLocsById = {};
3092
+ program.uniformArrayNamesById = {};
3093
+ for (i = 0; i < GLctx.getProgramParameter(program, 35718); ++i) {
3094
+ var u = GLctx.getActiveUniform(program, i);
3095
+ var nm = u.name;
3096
+ var sz = u.size;
3097
+ var lb = webglGetLeftBracePos(nm);
3098
+ var arrayName = lb > 0 ? nm.slice(0, lb) : nm;
3099
+ var id = program.uniformIdCounter;
3100
+ program.uniformIdCounter += sz;
3101
+ uniformSizeAndIdsByName[arrayName] = [sz, id];
3102
+ for (j = 0; j < sz; ++j) {
3103
+ uniformLocsById[id] = j;
3104
+ program.uniformArrayNamesById[id++] = arrayName;
3105
+ }
3106
+ }
3107
+ }
3108
+ };
3109
+ var _glGetUniformLocation = function _glGetUniformLocation(program, name) {
3110
+ name = UTF8ToString(name);
3111
+ if (program = GL.programs[program]) {
3112
+ webglPrepareUniformLocationsBeforeFirstUse(program);
3113
+ var uniformLocsById = program.uniformLocsById;
3114
+ var arrayIndex = 0;
3115
+ var uniformBaseName = name;
3116
+ var leftBrace = webglGetLeftBracePos(name);
3117
+ if (leftBrace > 0) {
3118
+ arrayIndex = jstoi_q(name.slice(leftBrace + 1)) >>> 0;
3119
+ uniformBaseName = name.slice(0, leftBrace);
3120
+ }
3121
+ var sizeAndId = program.uniformSizeAndIdsByName[uniformBaseName];
3122
+ if (sizeAndId && arrayIndex < sizeAndId[0]) {
3123
+ arrayIndex += sizeAndId[1];
3124
+ if (uniformLocsById[arrayIndex] = uniformLocsById[arrayIndex] || GLctx.getUniformLocation(program, name)) {
3125
+ return arrayIndex;
3126
+ }
3127
+ }
3128
+ } else {
3129
+ GL.recordError(1281);
3130
+ }
3131
+ return -1;
3132
+ };
3133
+ var _glInvalidateFramebuffer = function _glInvalidateFramebuffer(target, numAttachments, attachments) {
3134
+ var list = tempFixedLengthArray[numAttachments];
3135
+ for (var i = 0; i < numAttachments; i++) {
3136
+ list[i] = HEAP32[attachments + i * 4 >> 2];
3137
+ }
3138
+ GLctx.invalidateFramebuffer(target, list);
3139
+ };
3140
+ var _glInvalidateSubFramebuffer = function _glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height) {
3141
+ var list = tempFixedLengthArray[numAttachments];
3142
+ for (var i = 0; i < numAttachments; i++) {
3143
+ list[i] = HEAP32[attachments + i * 4 >> 2];
3144
+ }
3145
+ GLctx.invalidateSubFramebuffer(target, list, x, y, width, height);
3146
+ };
3147
+ var _glIsSync = function _glIsSync(sync) {
3148
+ return GLctx.isSync(GL.syncs[sync]);
3149
+ };
3150
+ var _glIsTexture = function _glIsTexture(id) {
3151
+ var texture = GL.textures[id];
3152
+ if (!texture) return 0;
3153
+ return GLctx.isTexture(texture);
3154
+ };
3155
+ var _glLineWidth = function _glLineWidth(x0) {
3156
+ return GLctx.lineWidth(x0);
3157
+ };
3158
+ var _glLinkProgram = function _glLinkProgram(program) {
3159
+ program = GL.programs[program];
3160
+ GLctx.linkProgram(program);
3161
+ program.uniformLocsById = 0;
3162
+ program.uniformSizeAndIdsByName = {};
3163
+ };
3164
+ var _glMultiDrawArraysInstancedBaseInstanceWEBGL = function _glMultiDrawArraysInstancedBaseInstanceWEBGL(mode, firsts, counts, instanceCounts, baseInstances, drawCount) {
3165
+ GLctx.mdibvbi["multiDrawArraysInstancedBaseInstanceWEBGL"](mode, HEAP32, firsts >> 2, HEAP32, counts >> 2, HEAP32, instanceCounts >> 2, HEAPU32, baseInstances >> 2, drawCount);
3166
+ };
3167
+ var _glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL = function _glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(mode, counts, type, offsets, instanceCounts, baseVertices, baseInstances, drawCount) {
3168
+ GLctx.mdibvbi["multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL"](mode, HEAP32, counts >> 2, type, HEAP32, offsets >> 2, HEAP32, instanceCounts >> 2, HEAP32, baseVertices >> 2, HEAPU32, baseInstances >> 2, drawCount);
3169
+ };
3170
+ var _glPixelStorei = function _glPixelStorei(pname, param) {
3171
+ if (pname == 3317) {
3172
+ GL.unpackAlignment = param;
3173
+ }
3174
+ GLctx.pixelStorei(pname, param);
3175
+ };
3176
+ var _glReadBuffer = function _glReadBuffer(x0) {
3177
+ return GLctx.readBuffer(x0);
3178
+ };
3179
+ var computeUnpackAlignedImageSize = function computeUnpackAlignedImageSize(width, height, sizePerPixel, alignment) {
3180
+ function roundedToNextMultipleOf(x, y) {
3181
+ return x + y - 1 & -y;
3182
+ }
3183
+ var plainRowSize = width * sizePerPixel;
3184
+ var alignedRowSize = roundedToNextMultipleOf(plainRowSize, alignment);
3185
+ return height * alignedRowSize;
3186
+ };
3187
+ var colorChannelsInGlTextureFormat = function colorChannelsInGlTextureFormat(format) {
3188
+ var colorChannels = {
3189
+ 5: 3,
3190
+ 6: 4,
3191
+ 8: 2,
3192
+ 29502: 3,
3193
+ 29504: 4,
3194
+ 26917: 2,
3195
+ 26918: 2,
3196
+ 29846: 3,
3197
+ 29847: 4
3198
+ };
3199
+ return colorChannels[format - 6402] || 1;
3200
+ };
3201
+ var heapObjectForWebGLType = function heapObjectForWebGLType(type) {
3202
+ type -= 5120;
3203
+ if (type == 0) return HEAP8;
3204
+ if (type == 1) return HEAPU8;
3205
+ if (type == 2) return HEAP16;
3206
+ if (type == 4) return HEAP32;
3207
+ if (type == 6) return HEAPF32;
3208
+ if (type == 5 || type == 28922 || type == 28520 || type == 30779 || type == 30782) return HEAPU32;
3209
+ return HEAPU16;
3210
+ };
3211
+ var toTypedArrayIndex = function toTypedArrayIndex(pointer, heap) {
3212
+ return pointer >>> 31 - Math.clz32(heap.BYTES_PER_ELEMENT);
3213
+ };
3214
+ var emscriptenWebGLGetTexPixelData = function emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) {
3215
+ var heap = heapObjectForWebGLType(type);
3216
+ var sizePerPixel = colorChannelsInGlTextureFormat(format) * heap.BYTES_PER_ELEMENT;
3217
+ var bytes = computeUnpackAlignedImageSize(width, height, sizePerPixel, GL.unpackAlignment);
3218
+ return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap));
3219
+ };
3220
+ var _glReadPixels = function _glReadPixels(x, y, width, height, format, type, pixels) {
3221
+ if (GL.currentContext.version >= 2) {
3222
+ if (GLctx.currentPixelPackBufferBinding) {
3223
+ GLctx.readPixels(x, y, width, height, format, type, pixels);
3224
+ return;
3225
+ }
3226
+ var heap = heapObjectForWebGLType(type);
3227
+ var target = toTypedArrayIndex(pixels, heap);
3228
+ GLctx.readPixels(x, y, width, height, format, type, heap, target);
3229
+ return;
3230
+ }
3231
+ var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels);
3232
+ if (!pixelData) {
3233
+ GL.recordError(1280);
3234
+ return;
3235
+ }
3236
+ GLctx.readPixels(x, y, width, height, format, type, pixelData);
3237
+ };
3238
+ var _glRenderbufferStorage = function _glRenderbufferStorage(x0, x1, x2, x3) {
3239
+ return GLctx.renderbufferStorage(x0, x1, x2, x3);
3240
+ };
3241
+ var _glRenderbufferStorageMultisample = function _glRenderbufferStorageMultisample(x0, x1, x2, x3, x4) {
3242
+ return GLctx.renderbufferStorageMultisample(x0, x1, x2, x3, x4);
3243
+ };
3244
+ var _glSamplerParameterf = function _glSamplerParameterf(sampler, pname, param) {
3245
+ GLctx.samplerParameterf(GL.samplers[sampler], pname, param);
3246
+ };
3247
+ var _glSamplerParameteri = function _glSamplerParameteri(sampler, pname, param) {
3248
+ GLctx.samplerParameteri(GL.samplers[sampler], pname, param);
3249
+ };
3250
+ var _glSamplerParameteriv = function _glSamplerParameteriv(sampler, pname, params) {
3251
+ var param = HEAP32[params >> 2];
3252
+ GLctx.samplerParameteri(GL.samplers[sampler], pname, param);
3253
+ };
3254
+ var _glScissor = function _glScissor(x0, x1, x2, x3) {
3255
+ return GLctx.scissor(x0, x1, x2, x3);
3256
+ };
3257
+ var _glShaderSource = function _glShaderSource(shader, count, string, length) {
3258
+ var source = GL.getSource(shader, count, string, length);
3259
+ GLctx.shaderSource(GL.shaders[shader], source);
3260
+ };
3261
+ var _glStencilFunc = function _glStencilFunc(x0, x1, x2) {
3262
+ return GLctx.stencilFunc(x0, x1, x2);
3263
+ };
3264
+ var _glStencilFuncSeparate = function _glStencilFuncSeparate(x0, x1, x2, x3) {
3265
+ return GLctx.stencilFuncSeparate(x0, x1, x2, x3);
3266
+ };
3267
+ var _glStencilMask = function _glStencilMask(x0) {
3268
+ return GLctx.stencilMask(x0);
3269
+ };
3270
+ var _glStencilMaskSeparate = function _glStencilMaskSeparate(x0, x1) {
3271
+ return GLctx.stencilMaskSeparate(x0, x1);
3272
+ };
3273
+ var _glStencilOp = function _glStencilOp(x0, x1, x2) {
3274
+ return GLctx.stencilOp(x0, x1, x2);
3275
+ };
3276
+ var _glStencilOpSeparate = function _glStencilOpSeparate(x0, x1, x2, x3) {
3277
+ return GLctx.stencilOpSeparate(x0, x1, x2, x3);
3278
+ };
3279
+ var _glTexImage2D = function _glTexImage2D(target, level, internalFormat, width, height, border, format, type, pixels) {
3280
+ if (GL.currentContext.version >= 2) {
3281
+ if (GLctx.currentPixelUnpackBufferBinding) {
3282
+ GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels);
3283
+ return;
3284
+ }
3285
+ if (pixels) {
3286
+ var heap = heapObjectForWebGLType(type);
3287
+ var index = toTypedArrayIndex(pixels, heap);
3288
+ GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index);
3289
+ return;
3290
+ }
3291
+ }
3292
+ var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels) : null;
3293
+ GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData);
3294
+ };
3295
+ var _glTexParameterf = function _glTexParameterf(x0, x1, x2) {
3296
+ return GLctx.texParameterf(x0, x1, x2);
3297
+ };
3298
+ var _glTexParameterfv = function _glTexParameterfv(target, pname, params) {
3299
+ var param = HEAPF32[params >> 2];
3300
+ GLctx.texParameterf(target, pname, param);
3301
+ };
3302
+ var _glTexParameteri = function _glTexParameteri(x0, x1, x2) {
3303
+ return GLctx.texParameteri(x0, x1, x2);
3304
+ };
3305
+ var _glTexParameteriv = function _glTexParameteriv(target, pname, params) {
3306
+ var param = HEAP32[params >> 2];
3307
+ GLctx.texParameteri(target, pname, param);
3308
+ };
3309
+ var _glTexStorage2D = function _glTexStorage2D(x0, x1, x2, x3, x4) {
3310
+ return GLctx.texStorage2D(x0, x1, x2, x3, x4);
3311
+ };
3312
+ var _glTexSubImage2D = function _glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) {
3313
+ if (GL.currentContext.version >= 2) {
3314
+ if (GLctx.currentPixelUnpackBufferBinding) {
3315
+ GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
3316
+ return;
3317
+ }
3318
+ if (pixels) {
3319
+ var heap = heapObjectForWebGLType(type);
3320
+ GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, heap, toTypedArrayIndex(pixels, heap));
3321
+ return;
3322
+ }
3323
+ }
3324
+ var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels) : null;
3325
+ GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData);
3326
+ };
3327
+ var webglGetUniformLocation = function webglGetUniformLocation(location) {
3328
+ var p = GLctx.currentProgram;
3329
+ if (p) {
3330
+ var webglLoc = p.uniformLocsById[location];
3331
+ if (typeof webglLoc == "number") {
3332
+ p.uniformLocsById[location] = webglLoc = GLctx.getUniformLocation(p, p.uniformArrayNamesById[location] + (webglLoc > 0 ? "[".concat(webglLoc, "]") : ""));
3333
+ }
3334
+ return webglLoc;
3335
+ } else {
3336
+ GL.recordError(1282);
3337
+ }
3338
+ };
3339
+ var _glUniform1f = function _glUniform1f(location, v0) {
3340
+ GLctx.uniform1f(webglGetUniformLocation(location), v0);
3341
+ };
3342
+ var miniTempWebGLFloatBuffers = [];
3343
+ var _glUniform1fv = function _glUniform1fv(location, count, value) {
3344
+ if (GL.currentContext.version >= 2) {
3345
+ count && GLctx.uniform1fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count);
3346
+ return;
3347
+ }
3348
+ if (count <= 288) {
3349
+ var view = miniTempWebGLFloatBuffers[count];
3350
+ for (var i = 0; i < count; ++i) {
3351
+ view[i] = HEAPF32[value + 4 * i >> 2];
3352
+ }
3353
+ } else {
3354
+ var view = HEAPF32.subarray(value >> 2, value + count * 4 >> 2);
3355
+ }
3356
+ GLctx.uniform1fv(webglGetUniformLocation(location), view);
3357
+ };
3358
+ var _glUniform1i = function _glUniform1i(location, v0) {
3359
+ GLctx.uniform1i(webglGetUniformLocation(location), v0);
3360
+ };
3361
+ var miniTempWebGLIntBuffers = [];
3362
+ var _glUniform1iv = function _glUniform1iv(location, count, value) {
3363
+ if (GL.currentContext.version >= 2) {
3364
+ count && GLctx.uniform1iv(webglGetUniformLocation(location), HEAP32, value >> 2, count);
3365
+ return;
3366
+ }
3367
+ if (count <= 288) {
3368
+ var view = miniTempWebGLIntBuffers[count];
3369
+ for (var i = 0; i < count; ++i) {
3370
+ view[i] = HEAP32[value + 4 * i >> 2];
3371
+ }
3372
+ } else {
3373
+ var view = HEAP32.subarray(value >> 2, value + count * 4 >> 2);
3374
+ }
3375
+ GLctx.uniform1iv(webglGetUniformLocation(location), view);
3376
+ };
3377
+ var _glUniform2f = function _glUniform2f(location, v0, v1) {
3378
+ GLctx.uniform2f(webglGetUniformLocation(location), v0, v1);
3379
+ };
3380
+ var _glUniform2fv = function _glUniform2fv(location, count, value) {
3381
+ if (GL.currentContext.version >= 2) {
3382
+ count && GLctx.uniform2fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 2);
3383
+ return;
3384
+ }
3385
+ if (count <= 144) {
3386
+ var view = miniTempWebGLFloatBuffers[2 * count];
3387
+ for (var i = 0; i < 2 * count; i += 2) {
3388
+ view[i] = HEAPF32[value + 4 * i >> 2];
3389
+ view[i + 1] = HEAPF32[value + (4 * i + 4) >> 2];
3390
+ }
3391
+ } else {
3392
+ var view = HEAPF32.subarray(value >> 2, value + count * 8 >> 2);
3393
+ }
3394
+ GLctx.uniform2fv(webglGetUniformLocation(location), view);
3395
+ };
3396
+ var _glUniform2i = function _glUniform2i(location, v0, v1) {
3397
+ GLctx.uniform2i(webglGetUniformLocation(location), v0, v1);
3398
+ };
3399
+ var _glUniform2iv = function _glUniform2iv(location, count, value) {
3400
+ if (GL.currentContext.version >= 2) {
3401
+ count && GLctx.uniform2iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 2);
3402
+ return;
3403
+ }
3404
+ if (count <= 144) {
3405
+ var view = miniTempWebGLIntBuffers[2 * count];
3406
+ for (var i = 0; i < 2 * count; i += 2) {
3407
+ view[i] = HEAP32[value + 4 * i >> 2];
3408
+ view[i + 1] = HEAP32[value + (4 * i + 4) >> 2];
3409
+ }
3410
+ } else {
3411
+ var view = HEAP32.subarray(value >> 2, value + count * 8 >> 2);
3412
+ }
3413
+ GLctx.uniform2iv(webglGetUniformLocation(location), view);
3414
+ };
3415
+ var _glUniform3f = function _glUniform3f(location, v0, v1, v2) {
3416
+ GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2);
3417
+ };
3418
+ var _glUniform3fv = function _glUniform3fv(location, count, value) {
3419
+ if (GL.currentContext.version >= 2) {
3420
+ count && GLctx.uniform3fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 3);
3421
+ return;
3422
+ }
3423
+ if (count <= 96) {
3424
+ var view = miniTempWebGLFloatBuffers[3 * count];
3425
+ for (var i = 0; i < 3 * count; i += 3) {
3426
+ view[i] = HEAPF32[value + 4 * i >> 2];
3427
+ view[i + 1] = HEAPF32[value + (4 * i + 4) >> 2];
3428
+ view[i + 2] = HEAPF32[value + (4 * i + 8) >> 2];
3429
+ }
3430
+ } else {
3431
+ var view = HEAPF32.subarray(value >> 2, value + count * 12 >> 2);
3432
+ }
3433
+ GLctx.uniform3fv(webglGetUniformLocation(location), view);
3434
+ };
3435
+ var _glUniform3i = function _glUniform3i(location, v0, v1, v2) {
3436
+ GLctx.uniform3i(webglGetUniformLocation(location), v0, v1, v2);
3437
+ };
3438
+ var _glUniform3iv = function _glUniform3iv(location, count, value) {
3439
+ if (GL.currentContext.version >= 2) {
3440
+ count && GLctx.uniform3iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 3);
3441
+ return;
3442
+ }
3443
+ if (count <= 96) {
3444
+ var view = miniTempWebGLIntBuffers[3 * count];
3445
+ for (var i = 0; i < 3 * count; i += 3) {
3446
+ view[i] = HEAP32[value + 4 * i >> 2];
3447
+ view[i + 1] = HEAP32[value + (4 * i + 4) >> 2];
3448
+ view[i + 2] = HEAP32[value + (4 * i + 8) >> 2];
3449
+ }
3450
+ } else {
3451
+ var view = HEAP32.subarray(value >> 2, value + count * 12 >> 2);
3452
+ }
3453
+ GLctx.uniform3iv(webglGetUniformLocation(location), view);
3454
+ };
3455
+ var _glUniform4f = function _glUniform4f(location, v0, v1, v2, v3) {
3456
+ GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3);
3457
+ };
3458
+ var _glUniform4fv = function _glUniform4fv(location, count, value) {
3459
+ if (GL.currentContext.version >= 2) {
3460
+ count && GLctx.uniform4fv(webglGetUniformLocation(location), HEAPF32, value >> 2, count * 4);
3461
+ return;
3462
+ }
3463
+ if (count <= 72) {
3464
+ var view = miniTempWebGLFloatBuffers[4 * count];
3465
+ var heap = HEAPF32;
3466
+ value = value >> 2;
3467
+ for (var i = 0; i < 4 * count; i += 4) {
3468
+ var dst = value + i;
3469
+ view[i] = heap[dst];
3470
+ view[i + 1] = heap[dst + 1];
3471
+ view[i + 2] = heap[dst + 2];
3472
+ view[i + 3] = heap[dst + 3];
3473
+ }
3474
+ } else {
3475
+ var view = HEAPF32.subarray(value >> 2, value + count * 16 >> 2);
3476
+ }
3477
+ GLctx.uniform4fv(webglGetUniformLocation(location), view);
3478
+ };
3479
+ var _glUniform4i = function _glUniform4i(location, v0, v1, v2, v3) {
3480
+ GLctx.uniform4i(webglGetUniformLocation(location), v0, v1, v2, v3);
3481
+ };
3482
+ var _glUniform4iv = function _glUniform4iv(location, count, value) {
3483
+ if (GL.currentContext.version >= 2) {
3484
+ count && GLctx.uniform4iv(webglGetUniformLocation(location), HEAP32, value >> 2, count * 4);
3485
+ return;
3486
+ }
3487
+ if (count <= 72) {
3488
+ var view = miniTempWebGLIntBuffers[4 * count];
3489
+ for (var i = 0; i < 4 * count; i += 4) {
3490
+ view[i] = HEAP32[value + 4 * i >> 2];
3491
+ view[i + 1] = HEAP32[value + (4 * i + 4) >> 2];
3492
+ view[i + 2] = HEAP32[value + (4 * i + 8) >> 2];
3493
+ view[i + 3] = HEAP32[value + (4 * i + 12) >> 2];
3494
+ }
3495
+ } else {
3496
+ var view = HEAP32.subarray(value >> 2, value + count * 16 >> 2);
3497
+ }
3498
+ GLctx.uniform4iv(webglGetUniformLocation(location), view);
3499
+ };
3500
+ var _glUniformMatrix2fv = function _glUniformMatrix2fv(location, count, transpose, value) {
3501
+ if (GL.currentContext.version >= 2) {
3502
+ count && GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 4);
3503
+ return;
3504
+ }
3505
+ if (count <= 72) {
3506
+ var view = miniTempWebGLFloatBuffers[4 * count];
3507
+ for (var i = 0; i < 4 * count; i += 4) {
3508
+ view[i] = HEAPF32[value + 4 * i >> 2];
3509
+ view[i + 1] = HEAPF32[value + (4 * i + 4) >> 2];
3510
+ view[i + 2] = HEAPF32[value + (4 * i + 8) >> 2];
3511
+ view[i + 3] = HEAPF32[value + (4 * i + 12) >> 2];
3512
+ }
3513
+ } else {
3514
+ var view = HEAPF32.subarray(value >> 2, value + count * 16 >> 2);
3515
+ }
3516
+ GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, view);
3517
+ };
3518
+ var _glUniformMatrix3fv = function _glUniformMatrix3fv(location, count, transpose, value) {
3519
+ if (GL.currentContext.version >= 2) {
3520
+ count && GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 9);
3521
+ return;
3522
+ }
3523
+ if (count <= 32) {
3524
+ var view = miniTempWebGLFloatBuffers[9 * count];
3525
+ for (var i = 0; i < 9 * count; i += 9) {
3526
+ view[i] = HEAPF32[value + 4 * i >> 2];
3527
+ view[i + 1] = HEAPF32[value + (4 * i + 4) >> 2];
3528
+ view[i + 2] = HEAPF32[value + (4 * i + 8) >> 2];
3529
+ view[i + 3] = HEAPF32[value + (4 * i + 12) >> 2];
3530
+ view[i + 4] = HEAPF32[value + (4 * i + 16) >> 2];
3531
+ view[i + 5] = HEAPF32[value + (4 * i + 20) >> 2];
3532
+ view[i + 6] = HEAPF32[value + (4 * i + 24) >> 2];
3533
+ view[i + 7] = HEAPF32[value + (4 * i + 28) >> 2];
3534
+ view[i + 8] = HEAPF32[value + (4 * i + 32) >> 2];
3535
+ }
3536
+ } else {
3537
+ var view = HEAPF32.subarray(value >> 2, value + count * 36 >> 2);
3538
+ }
3539
+ GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, view);
3540
+ };
3541
+ var _glUniformMatrix4fv = function _glUniformMatrix4fv(location, count, transpose, value) {
3542
+ if (GL.currentContext.version >= 2) {
3543
+ count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, value >> 2, count * 16);
3544
+ return;
3545
+ }
3546
+ if (count <= 18) {
3547
+ var view = miniTempWebGLFloatBuffers[16 * count];
3548
+ var heap = HEAPF32;
3549
+ value = value >> 2;
3550
+ for (var i = 0; i < 16 * count; i += 16) {
3551
+ var dst = value + i;
3552
+ view[i] = heap[dst];
3553
+ view[i + 1] = heap[dst + 1];
3554
+ view[i + 2] = heap[dst + 2];
3555
+ view[i + 3] = heap[dst + 3];
3556
+ view[i + 4] = heap[dst + 4];
3557
+ view[i + 5] = heap[dst + 5];
3558
+ view[i + 6] = heap[dst + 6];
3559
+ view[i + 7] = heap[dst + 7];
3560
+ view[i + 8] = heap[dst + 8];
3561
+ view[i + 9] = heap[dst + 9];
3562
+ view[i + 10] = heap[dst + 10];
3563
+ view[i + 11] = heap[dst + 11];
3564
+ view[i + 12] = heap[dst + 12];
3565
+ view[i + 13] = heap[dst + 13];
3566
+ view[i + 14] = heap[dst + 14];
3567
+ view[i + 15] = heap[dst + 15];
3568
+ }
3569
+ } else {
3570
+ var view = HEAPF32.subarray(value >> 2, value + count * 64 >> 2);
3571
+ }
3572
+ GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view);
3573
+ };
3574
+ var _glUseProgram = function _glUseProgram(program) {
3575
+ program = GL.programs[program];
3576
+ GLctx.useProgram(program);
3577
+ GLctx.currentProgram = program;
3578
+ };
3579
+ var _glVertexAttrib1f = function _glVertexAttrib1f(x0, x1) {
3580
+ return GLctx.vertexAttrib1f(x0, x1);
3581
+ };
3582
+ var _glVertexAttrib2fv = function _glVertexAttrib2fv(index, v) {
3583
+ GLctx.vertexAttrib2f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2]);
3584
+ };
3585
+ var _glVertexAttrib3fv = function _glVertexAttrib3fv(index, v) {
3586
+ GLctx.vertexAttrib3f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2], HEAPF32[v + 8 >> 2]);
3587
+ };
3588
+ var _glVertexAttrib4fv = function _glVertexAttrib4fv(index, v) {
3589
+ GLctx.vertexAttrib4f(index, HEAPF32[v >> 2], HEAPF32[v + 4 >> 2], HEAPF32[v + 8 >> 2], HEAPF32[v + 12 >> 2]);
3590
+ };
3591
+ var _glVertexAttribDivisor = function _glVertexAttribDivisor(index, divisor) {
3592
+ GLctx.vertexAttribDivisor(index, divisor);
3593
+ };
3594
+ var _glVertexAttribIPointer = function _glVertexAttribIPointer(index, size, type, stride, ptr) {
3595
+ GLctx.vertexAttribIPointer(index, size, type, stride, ptr);
3596
+ };
3597
+ var _glVertexAttribPointer = function _glVertexAttribPointer(index, size, type, normalized, stride, ptr) {
3598
+ GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr);
3599
+ };
3600
+ var _glViewport = function _glViewport(x0, x1, x2, x3) {
3601
+ return GLctx.viewport(x0, x1, x2, x3);
3602
+ };
3603
+ var _glWaitSync = function _glWaitSync(sync, flags, timeout) {
3604
+ timeout = Number(timeout);
3605
+ GLctx.waitSync(GL.syncs[sync], flags, timeout);
3606
+ };
3607
+ var isLeapYear = function isLeapYear(year) {
3608
+ return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
3609
+ };
3610
+ var arraySum = function arraySum(array, index) {
3611
+ var sum = 0;
3612
+ for (var i = 0; i <= index; sum += array[i++]) {}
3613
+ return sum;
3614
+ };
3615
+ var MONTH_DAYS_LEAP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
3616
+ var MONTH_DAYS_REGULAR = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
3617
+ var addDays = function addDays(date, days) {
3618
+ var newDate = new Date(date.getTime());
3619
+ while (days > 0) {
3620
+ var leap = isLeapYear(newDate.getFullYear());
3621
+ var currentMonth = newDate.getMonth();
3622
+ var daysInCurrentMonth = (leap ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR)[currentMonth];
3623
+ if (days > daysInCurrentMonth - newDate.getDate()) {
3624
+ days -= daysInCurrentMonth - newDate.getDate() + 1;
3625
+ newDate.setDate(1);
3626
+ if (currentMonth < 11) {
3627
+ newDate.setMonth(currentMonth + 1);
3628
+ } else {
3629
+ newDate.setMonth(0);
3630
+ newDate.setFullYear(newDate.getFullYear() + 1);
3631
+ }
3632
+ } else {
3633
+ newDate.setDate(newDate.getDate() + days);
3634
+ return newDate;
3635
+ }
3636
+ }
3637
+ return newDate;
3638
+ };
3639
+ function intArrayFromString(stringy, dontAddNull, length) {
3640
+ var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;
3641
+ var u8array = new Array(len);
3642
+ var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);
3643
+ if (dontAddNull) u8array.length = numBytesWritten;
3644
+ return u8array;
3645
+ }
3646
+ var writeArrayToMemory = function writeArrayToMemory(array, buffer) {
3647
+ HEAP8.set(array, buffer);
3648
+ };
3649
+ var _strftime = function _strftime(s, maxsize, format, tm) {
3650
+ var tm_zone = HEAPU32[tm + 40 >> 2];
3651
+ var date = {
3652
+ tm_sec: HEAP32[tm >> 2],
3653
+ tm_min: HEAP32[tm + 4 >> 2],
3654
+ tm_hour: HEAP32[tm + 8 >> 2],
3655
+ tm_mday: HEAP32[tm + 12 >> 2],
3656
+ tm_mon: HEAP32[tm + 16 >> 2],
3657
+ tm_year: HEAP32[tm + 20 >> 2],
3658
+ tm_wday: HEAP32[tm + 24 >> 2],
3659
+ tm_yday: HEAP32[tm + 28 >> 2],
3660
+ tm_isdst: HEAP32[tm + 32 >> 2],
3661
+ tm_gmtoff: HEAP32[tm + 36 >> 2],
3662
+ tm_zone: tm_zone ? UTF8ToString(tm_zone) : ""
3663
+ };
3664
+ var pattern = UTF8ToString(format);
3665
+ var EXPANSION_RULES_1 = {
3666
+ "%c": "%a %b %d %H:%M:%S %Y",
3667
+ "%D": "%m/%d/%y",
3668
+ "%F": "%Y-%m-%d",
3669
+ "%h": "%b",
3670
+ "%r": "%I:%M:%S %p",
3671
+ "%R": "%H:%M",
3672
+ "%T": "%H:%M:%S",
3673
+ "%x": "%m/%d/%y",
3674
+ "%X": "%H:%M:%S",
3675
+ "%Ec": "%c",
3676
+ "%EC": "%C",
3677
+ "%Ex": "%m/%d/%y",
3678
+ "%EX": "%H:%M:%S",
3679
+ "%Ey": "%y",
3680
+ "%EY": "%Y",
3681
+ "%Od": "%d",
3682
+ "%Oe": "%e",
3683
+ "%OH": "%H",
3684
+ "%OI": "%I",
3685
+ "%Om": "%m",
3686
+ "%OM": "%M",
3687
+ "%OS": "%S",
3688
+ "%Ou": "%u",
3689
+ "%OU": "%U",
3690
+ "%OV": "%V",
3691
+ "%Ow": "%w",
3692
+ "%OW": "%W",
3693
+ "%Oy": "%y"
3694
+ };
3695
+ for (var rule in EXPANSION_RULES_1) {
3696
+ pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_1[rule]);
3697
+ }
3698
+ var WEEKDAYS = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
3699
+ var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
3700
+ function leadingSomething(value, digits, character) {
3701
+ var str = typeof value == "number" ? value.toString() : value || "";
3702
+ while (str.length < digits) {
3703
+ str = character[0] + str;
3704
+ }
3705
+ return str;
3706
+ }
3707
+ function leadingNulls(value, digits) {
3708
+ return leadingSomething(value, digits, "0");
3709
+ }
3710
+ function compareByDay(date1, date2) {
3711
+ function sgn(value) {
3712
+ return value < 0 ? -1 : value > 0 ? 1 : 0;
3713
+ }
3714
+ var compare;
3715
+ if ((compare = sgn(date1.getFullYear() - date2.getFullYear())) === 0) {
3716
+ if ((compare = sgn(date1.getMonth() - date2.getMonth())) === 0) {
3717
+ compare = sgn(date1.getDate() - date2.getDate());
3718
+ }
3719
+ }
3720
+ return compare;
3721
+ }
3722
+ function getFirstWeekStartDate(janFourth) {
3723
+ switch (janFourth.getDay()) {
3724
+ case 0:
3725
+ return new Date(janFourth.getFullYear() - 1, 11, 29);
3726
+ case 1:
3727
+ return janFourth;
3728
+ case 2:
3729
+ return new Date(janFourth.getFullYear(), 0, 3);
3730
+ case 3:
3731
+ return new Date(janFourth.getFullYear(), 0, 2);
3732
+ case 4:
3733
+ return new Date(janFourth.getFullYear(), 0, 1);
3734
+ case 5:
3735
+ return new Date(janFourth.getFullYear() - 1, 11, 31);
3736
+ case 6:
3737
+ return new Date(janFourth.getFullYear() - 1, 11, 30);
3738
+ }
3739
+ }
3740
+ function getWeekBasedYear(date) {
3741
+ var thisDate = addDays(new Date(date.tm_year + 1900, 0, 1), date.tm_yday);
3742
+ var janFourthThisYear = new Date(thisDate.getFullYear(), 0, 4);
3743
+ var janFourthNextYear = new Date(thisDate.getFullYear() + 1, 0, 4);
3744
+ var firstWeekStartThisYear = getFirstWeekStartDate(janFourthThisYear);
3745
+ var firstWeekStartNextYear = getFirstWeekStartDate(janFourthNextYear);
3746
+ if (compareByDay(firstWeekStartThisYear, thisDate) <= 0) {
3747
+ if (compareByDay(firstWeekStartNextYear, thisDate) <= 0) {
3748
+ return thisDate.getFullYear() + 1;
3749
+ }
3750
+ return thisDate.getFullYear();
3751
+ }
3752
+ return thisDate.getFullYear() - 1;
3753
+ }
3754
+ var EXPANSION_RULES_2 = {
3755
+ "%a": function a(date) {
3756
+ return WEEKDAYS[date.tm_wday].substring(0, 3);
3757
+ },
3758
+ "%A": function A(date) {
3759
+ return WEEKDAYS[date.tm_wday];
3760
+ },
3761
+ "%b": function b(date) {
3762
+ return MONTHS[date.tm_mon].substring(0, 3);
3763
+ },
3764
+ "%B": function B(date) {
3765
+ return MONTHS[date.tm_mon];
3766
+ },
3767
+ "%C": function C(date) {
3768
+ var year = date.tm_year + 1900;
3769
+ return leadingNulls(year / 100 | 0, 2);
3770
+ },
3771
+ "%d": function d(date) {
3772
+ return leadingNulls(date.tm_mday, 2);
3773
+ },
3774
+ "%e": function e(date) {
3775
+ return leadingSomething(date.tm_mday, 2, " ");
3776
+ },
3777
+ "%g": function g(date) {
3778
+ return getWeekBasedYear(date).toString().substring(2);
3779
+ },
3780
+ "%G": getWeekBasedYear,
3781
+ "%H": function H(date) {
3782
+ return leadingNulls(date.tm_hour, 2);
3783
+ },
3784
+ "%I": function I(date) {
3785
+ var twelveHour = date.tm_hour;
3786
+ if (twelveHour == 0) twelveHour = 12;else if (twelveHour > 12) twelveHour -= 12;
3787
+ return leadingNulls(twelveHour, 2);
3788
+ },
3789
+ "%j": function j(date) {
3790
+ return leadingNulls(date.tm_mday + arraySum(isLeapYear(date.tm_year + 1900) ? MONTH_DAYS_LEAP : MONTH_DAYS_REGULAR, date.tm_mon - 1), 3);
3791
+ },
3792
+ "%m": function m(date) {
3793
+ return leadingNulls(date.tm_mon + 1, 2);
3794
+ },
3795
+ "%M": function M(date) {
3796
+ return leadingNulls(date.tm_min, 2);
3797
+ },
3798
+ "%n": function n() {
3799
+ return "\n";
3800
+ },
3801
+ "%p": function p(date) {
3802
+ if (date.tm_hour >= 0 && date.tm_hour < 12) {
3803
+ return "AM";
3804
+ }
3805
+ return "PM";
3806
+ },
3807
+ "%S": function S(date) {
3808
+ return leadingNulls(date.tm_sec, 2);
3809
+ },
3810
+ "%t": function t() {
3811
+ return "\t";
3812
+ },
3813
+ "%u": function u(date) {
3814
+ return date.tm_wday || 7;
3815
+ },
3816
+ "%U": function U(date) {
3817
+ var days = date.tm_yday + 7 - date.tm_wday;
3818
+ return leadingNulls(Math.floor(days / 7), 2);
3819
+ },
3820
+ "%V": function V(date) {
3821
+ var val = Math.floor((date.tm_yday + 7 - (date.tm_wday + 6) % 7) / 7);
3822
+ if ((date.tm_wday + 371 - date.tm_yday - 2) % 7 <= 2) {
3823
+ val++;
3824
+ }
3825
+ if (!val) {
3826
+ val = 52;
3827
+ var dec31 = (date.tm_wday + 7 - date.tm_yday - 1) % 7;
3828
+ if (dec31 == 4 || dec31 == 5 && isLeapYear(date.tm_year % 400 - 1)) {
3829
+ val++;
3830
+ }
3831
+ } else if (val == 53) {
3832
+ var jan1 = (date.tm_wday + 371 - date.tm_yday) % 7;
3833
+ if (jan1 != 4 && (jan1 != 3 || !isLeapYear(date.tm_year))) val = 1;
3834
+ }
3835
+ return leadingNulls(val, 2);
3836
+ },
3837
+ "%w": function w(date) {
3838
+ return date.tm_wday;
3839
+ },
3840
+ "%W": function W(date) {
3841
+ var days = date.tm_yday + 7 - (date.tm_wday + 6) % 7;
3842
+ return leadingNulls(Math.floor(days / 7), 2);
3843
+ },
3844
+ "%y": function y(date) {
3845
+ return (date.tm_year + 1900).toString().substring(2);
3846
+ },
3847
+ "%Y": function Y(date) {
3848
+ return date.tm_year + 1900;
3849
+ },
3850
+ "%z": function z(date) {
3851
+ var off = date.tm_gmtoff;
3852
+ var ahead = off >= 0;
3853
+ off = Math.abs(off) / 60;
3854
+ off = off / 60 * 100 + off % 60;
3855
+ return (ahead ? "+" : "-") + String("0000" + off).slice(-4);
3856
+ },
3857
+ "%Z": function Z(date) {
3858
+ return date.tm_zone;
3859
+ },
3860
+ "%%": function _() {
3861
+ return "%";
3862
+ }
3863
+ };
3864
+ pattern = pattern.replace(/%%/g, "\0\0");
3865
+ for (var rule in EXPANSION_RULES_2) {
3866
+ if (pattern.includes(rule)) {
3867
+ pattern = pattern.replace(new RegExp(rule, "g"), EXPANSION_RULES_2[rule](date));
3868
+ }
3869
+ }
3870
+ pattern = pattern.replace(/\0\0/g, "%");
3871
+ var bytes = intArrayFromString(pattern, false);
3872
+ if (bytes.length > maxsize) {
3873
+ return 0;
3874
+ }
3875
+ writeArrayToMemory(bytes, s);
3876
+ return bytes.length - 1;
3877
+ };
3878
+ var _strftime_l = function _strftime_l(s, maxsize, format, tm, loc) {
3879
+ return _strftime(s, maxsize, format, tm);
3880
+ };
3881
+ InternalError = Module["InternalError"] = /*#__PURE__*/function (_Error) {
3882
+ function InternalError(message) {
3883
+ var _this;
3884
+ _classCallCheck(this, InternalError);
3885
+ _this = _callSuper(this, InternalError, [message]);
3886
+ _this.name = "InternalError";
3887
+ return _this;
3888
+ }
3889
+ _inherits(InternalError, _Error);
3890
+ return _createClass(InternalError);
3891
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
3892
+ embind_init_charCodes();
3893
+ BindingError = Module["BindingError"] = /*#__PURE__*/function (_Error2) {
3894
+ function BindingError(message) {
3895
+ var _this2;
3896
+ _classCallCheck(this, BindingError);
3897
+ _this2 = _callSuper(this, BindingError, [message]);
3898
+ _this2.name = "BindingError";
3899
+ return _this2;
3900
+ }
3901
+ _inherits(BindingError, _Error2);
3902
+ return _createClass(BindingError);
3903
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
3904
+ init_ClassHandle();
3905
+ init_embind();
3906
+ init_RegisteredPointer();
3907
+ UnboundTypeError = Module["UnboundTypeError"] = extendError(Error, "UnboundTypeError");
3908
+ init_emval();
3909
+ var GLctx;
3910
+ for (var i = 0; i < 32; ++i) tempFixedLengthArray.push(new Array(i));
3911
+ var miniTempWebGLFloatBuffersStorage = new Float32Array(288);
3912
+ for (var i = 0; i < 288; ++i) {
3913
+ miniTempWebGLFloatBuffers[i] = miniTempWebGLFloatBuffersStorage.subarray(0, i);
3914
+ }
3915
+ var miniTempWebGLIntBuffersStorage = new Int32Array(288);
3916
+ for (var i = 0; i < 288; ++i) {
3917
+ miniTempWebGLIntBuffers[i] = miniTempWebGLIntBuffersStorage.subarray(0, i);
3918
+ }
3919
+ var wasmImports = {
3920
+ nb: __abort_js,
3921
+ o: __embind_finalize_value_object,
3922
+ R: __embind_register_bigint,
3923
+ ab: __embind_register_bool,
3924
+ g: __embind_register_class,
3925
+ da: __embind_register_class_class_function,
3926
+ w: __embind_register_class_constructor,
3927
+ a: __embind_register_class_function,
3928
+ c: __embind_register_class_property,
3929
+ $a: __embind_register_emval,
3930
+ n: __embind_register_enum,
3931
+ b: __embind_register_enum_value,
3932
+ Q: __embind_register_float,
3933
+ y: __embind_register_integer,
3934
+ s: __embind_register_memory_view,
3935
+ x: __embind_register_optional,
3936
+ I: __embind_register_smart_ptr,
3937
+ P: __embind_register_std_string,
3938
+ G: __embind_register_std_wstring,
3939
+ p: __embind_register_value_object,
3940
+ e: __embind_register_value_object_field,
3941
+ bb: __embind_register_void,
3942
+ lb: __emscripten_get_now_is_monotonic,
3943
+ db: __emscripten_throw_longjmp,
3944
+ E: __emval_as,
3945
+ B: __emval_call,
3946
+ l: __emval_call_method,
3947
+ d: __emval_decref,
3948
+ S: __emval_get_global,
3949
+ j: __emval_get_method_caller,
3950
+ m: __emval_get_module_property,
3951
+ H: __emval_get_property,
3952
+ r: __emval_incref,
3953
+ _a: __emval_new_array,
3954
+ D: __emval_new_cstring,
3955
+ h: __emval_run_destructors,
3956
+ u: __emval_take_value,
3957
+ gb: __gmtime_js,
3958
+ fb: __tzset_js,
3959
+ O: _emscripten_cancel_animation_frame,
3960
+ U: _emscripten_date_now,
3961
+ kb: _emscripten_get_now,
3962
+ C: _emscripten_request_animation_frame,
3963
+ eb: _emscripten_resize_heap,
3964
+ Za: _emscripten_webgl_make_context_current,
3965
+ ib: _environ_get,
3966
+ jb: _environ_sizes_get,
3967
+ ob: _exit,
3968
+ mb: _fd_close,
3969
+ hb: _fd_seek,
3970
+ T: _fd_write,
3971
+ Mc: _glActiveTexture,
3972
+ Nc: _glAttachShader,
3973
+ Oc: _glBindAttribLocation,
3974
+ Pc: _glBindBuffer,
3975
+ N: _glBindFramebuffer,
3976
+ Qb: _glBindRenderbuffer,
3977
+ yb: _glBindSampler,
3978
+ Qc: _glBindTexture,
3979
+ jc: _glBindVertexArray,
3980
+ lc: _glBindVertexArrayOES,
3981
+ Rc: _glBlendColor,
3982
+ Sc: _glBlendEquation,
3983
+ V: _glBlendFunc,
3984
+ Kb: _glBlitFramebuffer,
3985
+ W: _glBufferData,
3986
+ X: _glBufferSubData,
3987
+ Rb: _glCheckFramebufferStatus,
3988
+ K: _glClear,
3989
+ M: _glClearColor,
3990
+ L: _glClearStencil,
3991
+ Ib: _glClientWaitSync,
3992
+ Y: _glColorMask,
3993
+ Z: _glCompileShader,
3994
+ _: _glCompressedTexImage2D,
3995
+ $: _glCompressedTexSubImage2D,
3996
+ Hb: _glCopyBufferSubData,
3997
+ aa: _glCopyTexSubImage2D,
3998
+ ba: _glCreateProgram,
3999
+ ca: _glCreateShader,
4000
+ ea: _glCullFace,
4001
+ fa: _glDeleteBuffers,
4002
+ Sb: _glDeleteFramebuffers,
4003
+ ga: _glDeleteProgram,
4004
+ Tb: _glDeleteRenderbuffers,
4005
+ zb: _glDeleteSamplers,
4006
+ ha: _glDeleteShader,
4007
+ Jb: _glDeleteSync,
4008
+ ia: _glDeleteTextures,
4009
+ kc: _glDeleteVertexArrays,
4010
+ mc: _glDeleteVertexArraysOES,
4011
+ ja: _glDepthMask,
4012
+ ka: _glDisable,
4013
+ la: _glDisableVertexAttribArray,
4014
+ ma: _glDrawArrays,
4015
+ hc: _glDrawArraysInstanced,
4016
+ ec: _glDrawArraysInstancedBaseInstanceWEBGL,
4017
+ cc: _glDrawBuffers,
4018
+ na: _glDrawElements,
4019
+ ic: _glDrawElementsInstanced,
4020
+ fc: _glDrawElementsInstancedBaseVertexBaseInstanceWEBGL,
4021
+ Yb: _glDrawRangeElements,
4022
+ oa: _glEnable,
4023
+ pa: _glEnableVertexAttribArray,
4024
+ Eb: _glFenceSync,
4025
+ qa: _glFinish,
4026
+ ra: _glFlush,
4027
+ Ub: _glFramebufferRenderbuffer,
4028
+ Vb: _glFramebufferTexture2D,
4029
+ sa: _glFrontFace,
4030
+ ta: _glGenBuffers,
4031
+ Wb: _glGenFramebuffers,
4032
+ Xb: _glGenRenderbuffers,
4033
+ Ab: _glGenSamplers,
4034
+ ua: _glGenTextures,
4035
+ gc: _glGenVertexArrays,
4036
+ nc: _glGenVertexArraysOES,
4037
+ Mb: _glGenerateMipmap,
4038
+ va: _glGetBufferParameteriv,
4039
+ wa: _glGetError,
4040
+ xa: _glGetFloatv,
4041
+ Nb: _glGetFramebufferAttachmentParameteriv,
4042
+ F: _glGetIntegerv,
4043
+ ya: _glGetProgramInfoLog,
4044
+ za: _glGetProgramiv,
4045
+ Ob: _glGetRenderbufferParameteriv,
4046
+ Aa: _glGetShaderInfoLog,
4047
+ vb: _glGetShaderPrecisionFormat,
4048
+ Ba: _glGetShaderiv,
4049
+ J: _glGetString,
4050
+ Ya: _glGetStringi,
4051
+ Ca: _glGetUniformLocation,
4052
+ wb: _glInvalidateFramebuffer,
4053
+ xb: _glInvalidateSubFramebuffer,
4054
+ Fb: _glIsSync,
4055
+ Da: _glIsTexture,
4056
+ Ea: _glLineWidth,
4057
+ Fa: _glLinkProgram,
4058
+ ac: _glMultiDrawArraysInstancedBaseInstanceWEBGL,
4059
+ bc: _glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL,
4060
+ Ga: _glPixelStorei,
4061
+ dc: _glReadBuffer,
4062
+ Ha: _glReadPixels,
4063
+ Pb: _glRenderbufferStorage,
4064
+ Lb: _glRenderbufferStorageMultisample,
4065
+ Bb: _glSamplerParameterf,
4066
+ Cb: _glSamplerParameteri,
4067
+ Db: _glSamplerParameteriv,
4068
+ Ia: _glScissor,
4069
+ Ja: _glShaderSource,
4070
+ Ka: _glStencilFunc,
4071
+ La: _glStencilFuncSeparate,
4072
+ Ma: _glStencilMask,
4073
+ Na: _glStencilMaskSeparate,
4074
+ Oa: _glStencilOp,
4075
+ Pa: _glStencilOpSeparate,
4076
+ Qa: _glTexImage2D,
4077
+ Ra: _glTexParameterf,
4078
+ Sa: _glTexParameterfv,
4079
+ Ta: _glTexParameteri,
4080
+ Ua: _glTexParameteriv,
4081
+ Zb: _glTexStorage2D,
4082
+ Va: _glTexSubImage2D,
4083
+ Wa: _glUniform1f,
4084
+ Xa: _glUniform1fv,
4085
+ Ic: _glUniform1i,
4086
+ Jc: _glUniform1iv,
4087
+ Kc: _glUniform2f,
4088
+ Lc: _glUniform2fv,
4089
+ Hc: _glUniform2i,
4090
+ Gc: _glUniform2iv,
4091
+ Fc: _glUniform3f,
4092
+ Ec: _glUniform3fv,
4093
+ Dc: _glUniform3i,
4094
+ Cc: _glUniform3iv,
4095
+ Bc: _glUniform4f,
4096
+ Ac: _glUniform4fv,
4097
+ oc: _glUniform4i,
4098
+ pc: _glUniform4iv,
4099
+ qc: _glUniformMatrix2fv,
4100
+ rc: _glUniformMatrix3fv,
4101
+ sc: _glUniformMatrix4fv,
4102
+ tc: _glUseProgram,
4103
+ uc: _glVertexAttrib1f,
4104
+ vc: _glVertexAttrib2fv,
4105
+ wc: _glVertexAttrib3fv,
4106
+ xc: _glVertexAttrib4fv,
4107
+ _b: _glVertexAttribDivisor,
4108
+ $b: _glVertexAttribIPointer,
4109
+ yc: _glVertexAttribPointer,
4110
+ zc: _glViewport,
4111
+ Gb: _glWaitSync,
4112
+ f: invoke_ii,
4113
+ t: invoke_iii,
4114
+ i: invoke_iiii,
4115
+ z: invoke_iiiii,
4116
+ rb: invoke_iiiiii,
4117
+ qb: invoke_iiiiiii,
4118
+ tb: invoke_v,
4119
+ k: invoke_vi,
4120
+ A: invoke_vii,
4121
+ v: invoke_viii,
4122
+ q: invoke_viiii,
4123
+ pb: invoke_viiiii,
4124
+ sb: invoke_viiiiii,
4125
+ ub: invoke_viiiiiiiii,
4126
+ cb: _strftime_l
4127
+ };
4128
+ var wasmExports = createWasm();
4129
+ var _getTypeName = function ___getTypeName(a0) {
4130
+ return (_getTypeName = wasmExports["Vc"])(a0);
4131
+ };
4132
+ var _malloc = Module["_malloc"] = function (a0) {
4133
+ return (_malloc = Module["_malloc"] = wasmExports["Wc"])(a0);
4134
+ };
4135
+ var _free = Module["_free"] = function (a0) {
4136
+ return (_free = Module["_free"] = wasmExports["Yc"])(a0);
4137
+ };
4138
+ var _setThrew2 = function _setThrew(a0, a1) {
4139
+ return (_setThrew2 = wasmExports["Zc"])(a0, a1);
4140
+ };
4141
+ var _emscripten_stack_restore = function __emscripten_stack_restore(a0) {
4142
+ return (_emscripten_stack_restore = wasmExports["_c"])(a0);
4143
+ };
4144
+ var _emscripten_stack_get_current2 = function _emscripten_stack_get_current() {
4145
+ return (_emscripten_stack_get_current2 = wasmExports["$c"])();
4146
+ };
4147
+ function invoke_ii(index, a1) {
4148
+ var sp = stackSave();
4149
+ try {
4150
+ return getWasmTableEntry(index)(a1);
4151
+ } catch (e) {
4152
+ stackRestore(sp);
4153
+ if (e !== e + 0) throw e;
4154
+ _setThrew2(1, 0);
4155
+ }
4156
+ }
4157
+ function invoke_iii(index, a1, a2) {
4158
+ var sp = stackSave();
4159
+ try {
4160
+ return getWasmTableEntry(index)(a1, a2);
4161
+ } catch (e) {
4162
+ stackRestore(sp);
4163
+ if (e !== e + 0) throw e;
4164
+ _setThrew2(1, 0);
4165
+ }
4166
+ }
4167
+ function invoke_viii(index, a1, a2, a3) {
4168
+ var sp = stackSave();
4169
+ try {
4170
+ getWasmTableEntry(index)(a1, a2, a3);
4171
+ } catch (e) {
4172
+ stackRestore(sp);
4173
+ if (e !== e + 0) throw e;
4174
+ _setThrew2(1, 0);
4175
+ }
4176
+ }
4177
+ function invoke_vii(index, a1, a2) {
4178
+ var sp = stackSave();
4179
+ try {
4180
+ getWasmTableEntry(index)(a1, a2);
4181
+ } catch (e) {
4182
+ stackRestore(sp);
4183
+ if (e !== e + 0) throw e;
4184
+ _setThrew2(1, 0);
4185
+ }
4186
+ }
4187
+ function invoke_iiiii(index, a1, a2, a3, a4) {
4188
+ var sp = stackSave();
4189
+ try {
4190
+ return getWasmTableEntry(index)(a1, a2, a3, a4);
4191
+ } catch (e) {
4192
+ stackRestore(sp);
4193
+ if (e !== e + 0) throw e;
4194
+ _setThrew2(1, 0);
4195
+ }
4196
+ }
4197
+ function invoke_iiii(index, a1, a2, a3) {
4198
+ var sp = stackSave();
4199
+ try {
4200
+ return getWasmTableEntry(index)(a1, a2, a3);
4201
+ } catch (e) {
4202
+ stackRestore(sp);
4203
+ if (e !== e + 0) throw e;
4204
+ _setThrew2(1, 0);
4205
+ }
4206
+ }
4207
+ function invoke_vi(index, a1) {
4208
+ var sp = stackSave();
4209
+ try {
4210
+ getWasmTableEntry(index)(a1);
4211
+ } catch (e) {
4212
+ stackRestore(sp);
4213
+ if (e !== e + 0) throw e;
4214
+ _setThrew2(1, 0);
4215
+ }
4216
+ }
4217
+ function invoke_viiii(index, a1, a2, a3, a4) {
4218
+ var sp = stackSave();
4219
+ try {
4220
+ getWasmTableEntry(index)(a1, a2, a3, a4);
4221
+ } catch (e) {
4222
+ stackRestore(sp);
4223
+ if (e !== e + 0) throw e;
4224
+ _setThrew2(1, 0);
4225
+ }
4226
+ }
4227
+ function invoke_viiiiiiiii(index, a1, a2, a3, a4, a5, a6, a7, a8, a9) {
4228
+ var sp = stackSave();
4229
+ try {
4230
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6, a7, a8, a9);
4231
+ } catch (e) {
4232
+ stackRestore(sp);
4233
+ if (e !== e + 0) throw e;
4234
+ _setThrew2(1, 0);
4235
+ }
4236
+ }
4237
+ function invoke_v(index) {
4238
+ var sp = stackSave();
4239
+ try {
4240
+ getWasmTableEntry(index)();
4241
+ } catch (e) {
4242
+ stackRestore(sp);
4243
+ if (e !== e + 0) throw e;
4244
+ _setThrew2(1, 0);
4245
+ }
4246
+ }
4247
+ function invoke_viiiiii(index, a1, a2, a3, a4, a5, a6) {
4248
+ var sp = stackSave();
4249
+ try {
4250
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
4251
+ } catch (e) {
4252
+ stackRestore(sp);
4253
+ if (e !== e + 0) throw e;
4254
+ _setThrew2(1, 0);
4255
+ }
4256
+ }
4257
+ function invoke_iiiiii(index, a1, a2, a3, a4, a5) {
4258
+ var sp = stackSave();
4259
+ try {
4260
+ return getWasmTableEntry(index)(a1, a2, a3, a4, a5);
4261
+ } catch (e) {
4262
+ stackRestore(sp);
4263
+ if (e !== e + 0) throw e;
4264
+ _setThrew2(1, 0);
4265
+ }
4266
+ }
4267
+ function invoke_iiiiiii(index, a1, a2, a3, a4, a5, a6) {
4268
+ var sp = stackSave();
4269
+ try {
4270
+ return getWasmTableEntry(index)(a1, a2, a3, a4, a5, a6);
4271
+ } catch (e) {
4272
+ stackRestore(sp);
4273
+ if (e !== e + 0) throw e;
4274
+ _setThrew2(1, 0);
4275
+ }
4276
+ }
4277
+ function invoke_viiiii(index, a1, a2, a3, a4, a5) {
4278
+ var sp = stackSave();
4279
+ try {
4280
+ getWasmTableEntry(index)(a1, a2, a3, a4, a5);
4281
+ } catch (e) {
4282
+ stackRestore(sp);
4283
+ if (e !== e + 0) throw e;
4284
+ _setThrew2(1, 0);
4285
+ }
4286
+ }
4287
+ Module["GL"] = GL;
4288
+ var calledRun;
4289
+ dependenciesFulfilled = function runCaller() {
4290
+ if (!calledRun) run();
4291
+ if (!calledRun) dependenciesFulfilled = runCaller;
4292
+ };
4293
+ function run() {
4294
+ if (runDependencies > 0) {
4295
+ return;
4296
+ }
4297
+ preRun();
4298
+ if (runDependencies > 0) {
4299
+ return;
4300
+ }
4301
+ function doRun() {
4302
+ if (calledRun) return;
4303
+ calledRun = true;
4304
+ Module["calledRun"] = true;
4305
+ if (ABORT) return;
4306
+ initRuntime();
4307
+ readyPromiseResolve(Module);
4308
+ postRun();
4309
+ }
4310
+ {
4311
+ doRun();
4312
+ }
4313
+ }
4314
+ run();
4315
+ moduleRtn = readyPromise;
4316
+ return moduleRtn;
4317
+ };
4318
+ }();
4319
+
4320
+ export { WebRendererWasmFactory as default };