@deck.gl/arcgis 9.3.0-alpha.5 → 9.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commons.d.ts.map +1 -1
- package/dist/commons.js +1 -2
- package/dist/commons.js.map +1 -1
- package/dist/dist.dev.js +35 -32
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +2 -2
- package/dist.min.js +2 -2
- package/package.json +5 -5
- package/src/commons.ts +1 -1
package/dist/commons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commons.d.ts","sourceRoot":"","sources":["../src/commons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"commons.d.ts","sourceRoot":"","sources":["../src/commons.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAS,OAAO,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAIhD,UAAU,QAAQ;IAChB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,WAAW,CAAC;CAClB,CAAC;AA8BF,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,QAAQ,EACd,EAAE,EAAE,sBAAsB,GACzB,OAAO,CAAC,eAAe,CAAC,CAmF1B;AAED,wBAAgB,MAAM,CACpB,SAAS,EAAE,eAAe,EAC1B,QAAQ,EAAE;IACR,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,QAkCF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,eAAe,QAK3D"}
|
package/dist/commons.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
// deck.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
/* eslint-disable no-invalid-this */
|
|
5
|
-
import { GL } from '@luma.gl/webgl/constants';
|
|
6
4
|
import { Deck } from '@deck.gl/core';
|
|
7
5
|
import { Model, Geometry } from '@luma.gl/engine';
|
|
6
|
+
import { GL } from '@luma.gl/webgl/constants';
|
|
8
7
|
import { WebGLDevice } from '@luma.gl/webgl';
|
|
9
8
|
async function createDeckInstance(gl) {
|
|
10
9
|
return new Promise(resolve => {
|
package/dist/commons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commons.js","sourceRoot":"","sources":["../src/commons.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;
|
|
1
|
+
{"version":3,"file":"commons.js","sourceRoot":"","sources":["../src/commons.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAKpC,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,KAAK,EAAE,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,EAAE,EAAC,MAAM,0BAA0B,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAa3C,KAAK,UAAU,kBAAkB,CAAC,EAA0B;IAI1D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;QAC3B,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC;YAC5B,qDAAqD;YACrD,UAAU,EAAE,KAAK;YAEjB,kEAAkE;YAClE,EAAE;YAEF,0FAA0F;YAC1F,UAAU,EAAE;gBACV,YAAY,EAAE,YAAY;aAC3B;YAED,uFAAuF;YACvF,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;YAEZ,mBAAmB,EAAE,CAAC,MAAc,EAAE,EAAE;gBACtC,OAAO,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;YAClC,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAEvC,EAA0B;IAE1B,MAAM,EAAC,YAAY,EAAE,MAAM,EAAC,GAAG,MAAM,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;QACnC,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,OAAO,EAAE;YACP,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,eAAe;YAC7B,YAAY,EAAE,eAAe;SAC9B;KACF,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE;QAC9B,EAAE,EAAE;;;;;;;;KAQH;QACD,EAAE,EAAE;;;;;;;;;;;;KAYH;QACD,QAAQ,EAAE;YACR,aAAa,EAAE,OAAO;SACvB;QACD,UAAU,EAAE;YACV,iBAAiB,EAAE,IAAI;YACvB,YAAY,EAAE,YAAY;YAC1B,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,qBAAqB;YAC1C,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,qBAAqB;YAC1C,mBAAmB,EAAE,KAAK;YAC1B,mBAAmB,EAAE,KAAK;SAC3B;QACD,QAAQ,EAAE,IAAI,QAAQ,CAAC;YACrB,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE;gBACV,GAAG,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC;aACjF;SACF,CAAC;QACF,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;QACnC,EAAE,EAAE,SAAS;QACb,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,gBAAgB,EAAE,CAAC,OAAO,CAAC;QAC3B,sBAAsB,EAAE,cAAc;KACvC,CAAC,CAAC;IAEH,YAAY,CAAC,QAAQ,CAAC;QACpB,mDAAmD;QACnD,YAAY,EAAE,GAAG;QAEjB,aAAa,EAAE,YAAY,CAAC,EAAE;YAC5B,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC9B,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,MAAM,CACpB,SAA0B,EAC1B,QASC;IAED,MAAM,EAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAC,GAAG,SAAS,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,IAAI,MAAM,YAAY,WAAW,EAAE,CAAC;QAClC,uEAAuE;QACvE,MAAM,SAAS,GAAgB,MAAM,CAAC,kBAAkB,OAAwB,CAAC;QACjF,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAC,GAAG,QAAQ,CAAC;QAE/C,mBAAmB;QACnB,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACpC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAE7C,GAAG,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAC,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC;QAC3B,uCAAuC;QACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEtB,uEAAuE;QAEvE,MAAM,mBAAmB,GAAG,MAAM,CAAC,eAAe,CAAC;YACjD,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,EAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,EAAC;YACvD,UAAU,EAAE,KAAK;YACjB,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,mBAAmB,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAA0B;IAC1D,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC1B,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC1B,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACxB,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC9B,CAAC"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -48,6 +48,13 @@ var __exports__ = (() => {
|
|
|
48
48
|
}
|
|
49
49
|
});
|
|
50
50
|
|
|
51
|
+
// external-global-plugin:@luma.gl/engine
|
|
52
|
+
var require_engine = __commonJS({
|
|
53
|
+
"external-global-plugin:@luma.gl/engine"(exports, module) {
|
|
54
|
+
module.exports = globalThis.luma;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
51
58
|
// ../../node_modules/@luma.gl/webgl/dist/constants/webgl-constants.js
|
|
52
59
|
var GLEnum;
|
|
53
60
|
var init_webgl_constants = __esm({
|
|
@@ -710,13 +717,6 @@ var __exports__ = (() => {
|
|
|
710
717
|
}
|
|
711
718
|
});
|
|
712
719
|
|
|
713
|
-
// external-global-plugin:@luma.gl/engine
|
|
714
|
-
var require_engine = __commonJS({
|
|
715
|
-
"external-global-plugin:@luma.gl/engine"(exports, module) {
|
|
716
|
-
module.exports = globalThis.luma;
|
|
717
|
-
}
|
|
718
|
-
});
|
|
719
|
-
|
|
720
720
|
// external-global-plugin:@luma.gl/core
|
|
721
721
|
var require_core2 = __commonJS({
|
|
722
722
|
"external-global-plugin:@luma.gl/core"(exports, module) {
|
|
@@ -2788,11 +2788,11 @@ var __exports__ = (() => {
|
|
|
2788
2788
|
continue;
|
|
2789
2789
|
}
|
|
2790
2790
|
let lineNum = parseInt(lineNumber, 10);
|
|
2791
|
-
if (isNaN(lineNum)) {
|
|
2791
|
+
if (Number.isNaN(lineNum)) {
|
|
2792
2792
|
lineNum = 0;
|
|
2793
2793
|
}
|
|
2794
2794
|
let linePos = parseInt(linePosition, 10);
|
|
2795
|
-
if (isNaN(linePos)) {
|
|
2795
|
+
if (Number.isNaN(linePos)) {
|
|
2796
2796
|
linePos = 0;
|
|
2797
2797
|
}
|
|
2798
2798
|
messages.push({
|
|
@@ -4063,29 +4063,29 @@ ${source}`;
|
|
|
4063
4063
|
if (!options?.disableWarnings) {
|
|
4064
4064
|
import_core16.log.warn(`No binding "${name}" in render pipeline "${this.id}", expected one of ${validBindings}`, value)();
|
|
4065
4065
|
}
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4066
|
+
} else {
|
|
4067
|
+
if (!value) {
|
|
4068
|
+
import_core16.log.warn(`Unsetting binding "${name}" in render pipeline "${this.id}"`)();
|
|
4069
|
+
}
|
|
4070
|
+
switch (binding.type) {
|
|
4071
|
+
case "uniform":
|
|
4072
|
+
if (!(value instanceof WEBGLBuffer) && !(value.buffer instanceof WEBGLBuffer)) {
|
|
4073
|
+
throw new Error("buffer value");
|
|
4074
|
+
}
|
|
4075
|
+
break;
|
|
4076
|
+
case "texture":
|
|
4077
|
+
if (!(value instanceof WEBGLTextureView || value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {
|
|
4078
|
+
throw new Error(`${this} Bad texture binding for ${name}`);
|
|
4079
|
+
}
|
|
4080
|
+
break;
|
|
4081
|
+
case "sampler":
|
|
4082
|
+
import_core16.log.warn(`Ignoring sampler ${name}`)();
|
|
4083
|
+
break;
|
|
4084
|
+
default:
|
|
4085
|
+
throw new Error(binding.type);
|
|
4086
|
+
}
|
|
4087
|
+
this.bindings[name] = value;
|
|
4087
4088
|
}
|
|
4088
|
-
this.bindings[name] = value;
|
|
4089
4089
|
}
|
|
4090
4090
|
}
|
|
4091
4091
|
/** @todo needed for portable model
|
|
@@ -6140,7 +6140,10 @@ ${source}`;
|
|
|
6140
6140
|
this.spectorJS = initializeSpectorJS({ ...this.props, gl: this.handle });
|
|
6141
6141
|
const contextData = getWebGLContextData(this.handle);
|
|
6142
6142
|
contextData.device = this;
|
|
6143
|
-
|
|
6143
|
+
if (!contextData.extensions) {
|
|
6144
|
+
contextData.extensions = {};
|
|
6145
|
+
}
|
|
6146
|
+
this.extensions = contextData.extensions;
|
|
6144
6147
|
this.info = getDeviceInfo(this.gl, this.extensions);
|
|
6145
6148
|
this.limits = new WebGLDeviceLimits(this.gl);
|
|
6146
6149
|
this.features = new WebGLDeviceFeatures(this.gl, this.extensions, this.props._disabledFeatures);
|
package/dist/index.cjs
CHANGED
|
@@ -117,9 +117,9 @@ function createDeckLayer(DeckProps2, Layer2, DeckLayerView2D2) {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
// dist/commons.js
|
|
120
|
-
var import_constants = require("@luma.gl/webgl/constants");
|
|
121
120
|
var import_core = require("@deck.gl/core");
|
|
122
121
|
var import_engine = require("@luma.gl/engine");
|
|
122
|
+
var import_constants = require("@luma.gl/webgl/constants");
|
|
123
123
|
var import_webgl = require("@luma.gl/webgl");
|
|
124
124
|
async function createDeckInstance(gl) {
|
|
125
125
|
return new Promise((resolve) => {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/deck-props.ts", "../src/deck-layer.ts", "../src/commons.ts", "../src/deck-layer-view-2d.ts", "../src/deck-renderer.ts", "../src/load-modules.ts"],
|
|
4
|
-
"sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport createDeckProps from './deck-props';\nimport createDeckLayer from './deck-layer';\nimport createDeckLayerView2D from './deck-layer-view-2d';\nimport createDeckRenderer from './deck-renderer';\n\nimport Accessor from '@arcgis/core/core/Accessor';\nimport Layer from '@arcgis/core/layers/Layer';\nimport BaseLayerViewGL2D from '@arcgis/core/views/2d/layers/BaseLayerViewGL2D';\nimport * as externalRenderers from '@arcgis/core/views/3d/externalRenderers';\n\n// require-style loader\nexport {loadArcGISModules} from './load-modules';\n\n// ESM-style classes\nconst DeckProps = createDeckProps(Accessor);\nconst DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\nexport const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\nexport const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nconst properties = {\n layers: {},\n layerFilter: {},\n parameters: {},\n effects: {},\n pickingRadius: {},\n onBeforeRender: {},\n onAfterRender: {},\n onClick: {},\n onHover: {},\n onDragStart: {},\n onDrag: {},\n onDragEnd: {},\n onError: {},\n debug: {},\n drawPickingColors: {},\n getCursor: {},\n getTooltip: {}\n};\n\n/* eslint-disable callback-return */\nexport default function createDeckProps(Accessor) {\n const DeckProps = Accessor.createSubclass({\n properties,\n\n constructor() {\n this._callbacks = {};\n\n this.watch(Object.keys(properties), (newValue, oldValue, propName) => {\n this.emit('change', {[propName]: newValue});\n });\n },\n\n on(eventName, cb) {\n this._callbacks[eventName] = this._callbacks[eventName] || [];\n this._callbacks[eventName].push(cb);\n },\n\n emit(eventName, details) {\n const callbacks = this._callbacks[eventName];\n if (callbacks) {\n for (const cb of callbacks) {\n cb(details);\n }\n }\n },\n\n toJSON() {\n const result = {};\n for (const key of this.keys()) {\n if (this[key] !== undefined) {\n result[key] = this[key];\n }\n }\n return result;\n }\n });\n\n return DeckProps;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default function createDeckLayer(DeckProps, Layer, DeckLayerView2D) {\n // A layer that displays inside a MapView using an instance\n // of the layer view defined above.\n return Layer.createSubclass({\n properties: {\n deck: {},\n blendMode: {},\n effect: {}\n },\n\n constructor() {\n this.deck = new DeckProps();\n },\n\n // Called by the MapView whenever a layer view\n // needs to be created for a given layer.\n createLayerView(view) {\n if (view.type === '2d') {\n return new DeckLayerView2D({\n view,\n layer: this\n });\n }\n\n // eslint-disable-next-line\n console.error(\n 'DeckLayer does not support SceneView at the moment. Use DeckRenderer instead.'\n );\n\n return null;\n }\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-invalid-this */\n\nimport {GL} from '@luma.gl/webgl/constants';\nimport type {Device, Texture, Framebuffer} from '@luma.gl/core';\nimport {Deck} from '@deck.gl/core';\nimport {Model, Geometry} from '@luma.gl/engine';\nimport {WebGLDevice} from '@luma.gl/webgl';\n\ninterface Renderer {\n redraw: () => void;\n}\n\nexport type RenderResources = {\n deck: Deck;\n texture: Texture;\n model: Model;\n fbo: Framebuffer;\n};\n\nasync function createDeckInstance(gl: WebGL2RenderingContext): Promise<{\n deckInstance: Deck;\n device: Device;\n}> {\n return new Promise(resolve => {\n const deckInstance = new Deck({\n // Input is handled by the ArcGIS API for JavaScript.\n controller: false,\n\n // We use the same WebGL context as the ArcGIS API for JavaScript.\n gl,\n\n // We need depth testing in general; we don't know what layers might be added to the deck.\n parameters: {\n depthCompare: 'less-equal'\n },\n\n // To disable canvas resizing, since the FBO is owned by the ArcGIS API for JavaScript.\n width: null,\n height: null,\n\n onDeviceInitialized: (device: Device) => {\n resolve({deckInstance, device});\n }\n });\n });\n}\n\nexport async function initializeResources(\n this: Renderer,\n gl: WebGL2RenderingContext\n): Promise<RenderResources> {\n const {deckInstance, device} = await createDeckInstance(gl);\n\n const texture = device.createTexture({\n format: 'rgba8unorm',\n width: 1,\n height: 1,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n });\n\n const model = new Model(device, {\n vs: `\\\n#version 300 es\nin vec2 pos;\nout vec2 v_texcoord;\nvoid main(void) {\n gl_Position = vec4(pos, 0.0, 1.0);\n v_texcoord = (pos + 1.0) / 2.0;\n}\n `,\n fs: `\\\n#version 300 es\nprecision mediump float;\nuniform sampler2D deckglTexture;\nin vec2 v_texcoord;\nout vec4 fragColor;\n\nvoid main(void) {\n vec4 imageColor = texture(deckglTexture, v_texcoord);\n imageColor.rgb *= imageColor.a;\n fragColor = imageColor;\n}\n `,\n bindings: {\n deckglTexture: texture\n },\n parameters: {\n depthWriteEnabled: true,\n depthCompare: 'less-equal',\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one-minus-src-alpha',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one-minus-src-alpha',\n blendColorOperation: 'add',\n blendAlphaOperation: 'add'\n },\n geometry: new Geometry({\n topology: 'triangle-strip',\n attributes: {\n pos: {size: 2, value: new Int8Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1])}\n }\n }),\n vertexCount: 6,\n disableWarnings: true\n });\n\n const fbo = device.createFramebuffer({\n id: 'deckfbo',\n width: 1,\n height: 1,\n colorAttachments: [texture],\n depthStencilAttachment: 'depth16unorm'\n });\n\n deckInstance.setProps({\n // This deck renders into an auxiliary framebuffer.\n _framebuffer: fbo,\n\n _customRender: redrawReason => {\n if (redrawReason === 'arcgis') {\n deckInstance._drawLayers(redrawReason);\n } else {\n this.redraw();\n }\n }\n });\n\n return {deck: deckInstance, texture, fbo, model};\n}\n\nexport function render(\n resources: RenderResources,\n viewport: {\n width: number;\n height: number;\n longitude: number;\n latitude: number;\n zoom: number;\n altitude?: number;\n pitch: number;\n bearing: number;\n }\n) {\n const {model, deck, fbo} = resources;\n const device = model.device;\n if (device instanceof WebGLDevice) {\n // @ts-ignore device.getParametersWebGL should return `any` not `void`?\n const screenFbo: Framebuffer = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING);\n const {width, height, ...viewState} = viewport;\n\n /* global window */\n const dpr = window.devicePixelRatio;\n const pixelWidth = Math.round(width * dpr);\n const pixelHeight = Math.round(height * dpr);\n\n fbo.resize({width: pixelWidth, height: pixelHeight});\n\n deck.setProps({viewState});\n // redraw deck immediately into deckFbo\n deck.redraw('arcgis');\n\n // We overlay the texture on top of the map using the full-screen quad.\n\n const textureToScreenPass = device.beginRenderPass({\n framebuffer: screenFbo,\n parameters: {viewport: [0, 0, pixelWidth, pixelHeight]},\n clearColor: false,\n clearDepth: false\n });\n try {\n model.draw(textureToScreenPass);\n } finally {\n textureToScreenPass.end();\n }\n }\n}\n\nexport function finalizeResources(resources: RenderResources) {\n resources.deck.finalize();\n resources.model.destroy();\n resources.fbo.destroy();\n resources.texture.destroy();\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {initializeResources, render, finalizeResources} from './commons';\n\nexport default function createDeckLayerView2D(BaseLayerViewGL2D) {\n return BaseLayerViewGL2D.createSubclass({\n properties: {\n cancelInitialization: null,\n resources: null\n },\n\n // Attach is called as soon as the layer view is ready to start rendering.\n async attach() {\n // We use a full-screen quad and shaders to composite the frame rendered\n // with deck.gl on top of the MapView. Composition uses the MapView context.\n const gl = this.context;\n\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the layer got detached while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n this.resources = resources;\n\n // Update deck props\n this.layer.deck.on('change', props => resources.deck.setProps(props));\n\n // We need to start drawing the deck.gl layer immediately.\n resources.deck.setProps(this.layer.deck.toJSON());\n },\n\n redraw() {\n this.requestRender();\n },\n\n // Called when the layer must be destroyed.\n detach() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n this.resources = null;\n }\n },\n\n // Called every time that the layer view must be rendered.\n render(renderParameters) {\n if (!this.resources) {\n return;\n }\n\n const [width, height] = this.view.state.size;\n // The view state must be kept in-sync with the MapView of the ArcGIS API.\n const state = renderParameters.state;\n\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n zoom: this.view.featuresTilingScheme.scaleToLevel(state.scale),\n bearing: -state.rotation,\n pitch: 0\n });\n }\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-invalid-this */\nimport {initializeResources, render, finalizeResources, RenderResources} from './commons';\n\nimport SceneView from '@arcgis/core/views/SceneView';\nimport type {DeckProps} from '@deck.gl/core';\n\n/** Convert ArcGIS FOV to WebMercatorViewport altitude */\nfunction arcgisFOVToDeckAltitude(fov: number, aspectRatio: number): number {\n // ArcGIS fov is corner-to-corner\n const D = Math.sqrt(1 + aspectRatio ** 2);\n const halfFOV = (fov / 2 / 180) * Math.PI;\n return D / 2 / Math.tan(halfFOV);\n}\n\nexport default function createDeckRenderer(DeckProps, externalRenderers) {\n class DeckRenderer {\n view: SceneView;\n deck: any;\n resources: RenderResources | null = null;\n cancelInitialization: (() => void) | null = null;\n\n constructor(view: SceneView, props: DeckProps) {\n this.view = view;\n this.deck = new DeckProps(props);\n }\n\n async setup(context) {\n const gl = context.gl;\n\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the renderer got disposed while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n\n this.deck.on('change', props => resources.deck.setProps(props));\n\n resources.deck.setProps(this.deck.toJSON());\n this.resources = resources;\n }\n\n dispose() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n }\n }\n\n redraw() {\n externalRenderers.requestRender(this.view);\n }\n\n render() {\n const [width, height] = this.view.size;\n\n render(this.resources!, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n altitude: arcgisFOVToDeckAltitude(this.view.camera.fov, width / height),\n zoom: this.view.zoom,\n bearing: this.view.camera.heading,\n pitch: this.view.camera.tilt\n });\n }\n }\n\n return DeckRenderer;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport createDeckProps from './deck-props';\nimport createDeckLayer from './deck-layer';\nimport createDeckLayerView2D from './deck-layer-view-2d';\nimport createDeckRenderer from './deck-renderer';\nimport {loadModules as esriLoaderLoadModules, ILoadScriptOptions} from 'esri-loader';\n\ntype LoadedModules = {\n DeckLayer: any;\n DeckRenderer: any;\n modules?: unknown[];\n};\n\nlet arcGIS: LoadedModules;\n\nexport async function loadArcGISModules(\n modules: string[],\n loadScriptOptions: ILoadScriptOptions\n): Promise<LoadedModules> {\n const namespace = Array.isArray(modules) ? null : modules;\n await loadArcGISModule(namespace, loadScriptOptions);\n\n if (Array.isArray(modules)) {\n return esriLoaderLoadModules(modules, loadScriptOptions).then(array => {\n return {...arcGIS, modules: array};\n });\n }\n return arcGIS;\n}\n\nasync function loadArcGISModule(\n esri,\n loadScriptOptions: ILoadScriptOptions\n): Promise<LoadedModules> {\n if (arcGIS) {\n // Already loaded\n return arcGIS;\n }\n if (esri) {\n // Using user-provided dependencies\n // Right now this object has to be manually assembled - let @arcgis/webpack-plugin handle this?\n const Layer = esri.layers.Layer;\n const Accessor = esri.core.Accessor;\n const BaseLayerViewGL2D = esri.views['2d'].layers.BaseLayerViewGL2D;\n const externalRenderers = esri.views['3d'].externalRenderers;\n\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n }\n\n const [Layer, Accessor, BaseLayerViewGL2D, externalRenderers] = await esriLoaderLoadModules(\n [\n 'esri/layers/Layer',\n 'esri/core/Accessor',\n 'esri/views/2d/layers/BaseLayerViewGL2D',\n 'esri/views/3d/externalRenderers'\n ],\n loadScriptOptions\n );\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n}\n\nfunction initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers): LoadedModules {\n const DeckProps = createDeckProps(Accessor);\n const DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\n const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\n const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n\n arcGIS = {DeckLayer, DeckRenderer};\n return arcGIS;\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACIA,IAAM,aAAa;EACjB,QAAQ,CAAA;EACR,aAAa,CAAA;EACb,YAAY,CAAA;EACZ,SAAS,CAAA;EACT,eAAe,CAAA;EACf,gBAAgB,CAAA;EAChB,eAAe,CAAA;EACf,SAAS,CAAA;EACT,SAAS,CAAA;EACT,aAAa,CAAA;EACb,QAAQ,CAAA;EACR,WAAW,CAAA;EACX,SAAS,CAAA;EACT,OAAO,CAAA;EACP,mBAAmB,CAAA;EACnB,WAAW,CAAA;EACX,YAAY,CAAA;;AAIA,SAAP,gBAAiCA,WAAQ;AAC9C,QAAMC,aAAYD,UAAS,eAAe;IACxC;IAEA,cAAW;AACT,WAAK,aAAa,CAAA;AAElB,WAAK,MAAM,OAAO,KAAK,UAAU,GAAG,CAAC,UAAU,UAAU,aAAY;AACnE,aAAK,KAAK,UAAU,EAAC,CAAC,QAAQ,GAAG,SAAQ,CAAC;MAC5C,CAAC;IACH;IAEA,GAAG,WAAW,IAAE;AACd,WAAK,WAAW,SAAS,IAAI,KAAK,WAAW,SAAS,KAAK,CAAA;AAC3D,WAAK,WAAW,SAAS,EAAE,KAAK,EAAE;IACpC;IAEA,KAAK,WAAW,SAAO;AACrB,YAAM,YAAY,KAAK,WAAW,SAAS;AAC3C,UAAI,WAAW;AACb,mBAAW,MAAM,WAAW;AAC1B,aAAG,OAAO;QACZ;MACF;IACF;IAEA,SAAM;AACJ,YAAM,SAAS,CAAA;AACf,iBAAW,OAAO,KAAK,KAAI,GAAI;AAC7B,YAAI,KAAK,GAAG,MAAM,QAAW;AAC3B,iBAAO,GAAG,IAAI,KAAK,GAAG;QACxB;MACF;AACA,aAAO;IACT;GACD;AAED,SAAOC;AACT;;;AC3Dc,SAAP,gBAAiCC,YAAWC,QAAOC,kBAAe;AAGvE,SAAOD,OAAM,eAAe;IAC1B,YAAY;MACV,MAAM,CAAA;MACN,WAAW,CAAA;MACX,QAAQ,CAAA;;IAGV,cAAW;AACT,WAAK,OAAO,IAAID,WAAS;IAC3B;;;IAIA,gBAAgB,MAAI;AAClB,UAAI,KAAK,SAAS,MAAM;AACtB,eAAO,IAAIE,iBAAgB;UACzB;UACA,OAAO;SACR;MACH;AAGA,cAAQ,MACN,+EAA+E;AAGjF,aAAO;IACT;GACD;AACH;;;
|
|
4
|
+
"sourcesContent": ["// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport createDeckProps from './deck-props';\nimport createDeckLayer from './deck-layer';\nimport createDeckLayerView2D from './deck-layer-view-2d';\nimport createDeckRenderer from './deck-renderer';\n\nimport Accessor from '@arcgis/core/core/Accessor';\nimport Layer from '@arcgis/core/layers/Layer';\nimport BaseLayerViewGL2D from '@arcgis/core/views/2d/layers/BaseLayerViewGL2D';\nimport * as externalRenderers from '@arcgis/core/views/3d/externalRenderers';\n\n// require-style loader\nexport {loadArcGISModules} from './load-modules';\n\n// ESM-style classes\nconst DeckProps = createDeckProps(Accessor);\nconst DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\nexport const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\nexport const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nconst properties = {\n layers: {},\n layerFilter: {},\n parameters: {},\n effects: {},\n pickingRadius: {},\n onBeforeRender: {},\n onAfterRender: {},\n onClick: {},\n onHover: {},\n onDragStart: {},\n onDrag: {},\n onDragEnd: {},\n onError: {},\n debug: {},\n drawPickingColors: {},\n getCursor: {},\n getTooltip: {}\n};\n\n/* eslint-disable callback-return */\nexport default function createDeckProps(Accessor) {\n const DeckProps = Accessor.createSubclass({\n properties,\n\n constructor() {\n this._callbacks = {};\n\n this.watch(Object.keys(properties), (newValue, oldValue, propName) => {\n this.emit('change', {[propName]: newValue});\n });\n },\n\n on(eventName, cb) {\n this._callbacks[eventName] = this._callbacks[eventName] || [];\n this._callbacks[eventName].push(cb);\n },\n\n emit(eventName, details) {\n const callbacks = this._callbacks[eventName];\n if (callbacks) {\n for (const cb of callbacks) {\n cb(details);\n }\n }\n },\n\n toJSON() {\n const result = {};\n for (const key of this.keys()) {\n if (this[key] !== undefined) {\n result[key] = this[key];\n }\n }\n return result;\n }\n });\n\n return DeckProps;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nexport default function createDeckLayer(DeckProps, Layer, DeckLayerView2D) {\n // A layer that displays inside a MapView using an instance\n // of the layer view defined above.\n return Layer.createSubclass({\n properties: {\n deck: {},\n blendMode: {},\n effect: {}\n },\n\n constructor() {\n this.deck = new DeckProps();\n },\n\n // Called by the MapView whenever a layer view\n // needs to be created for a given layer.\n createLayerView(view) {\n if (view.type === '2d') {\n return new DeckLayerView2D({\n view,\n layer: this\n });\n }\n\n // eslint-disable-next-line\n console.error(\n 'DeckLayer does not support SceneView at the moment. Use DeckRenderer instead.'\n );\n\n return null;\n }\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-invalid-this */\n\nimport type {Device, Texture, Framebuffer} from '@luma.gl/core';\nimport {Deck} from '@deck.gl/core';\nimport {Model, Geometry} from '@luma.gl/engine';\nimport {GL} from '@luma.gl/webgl/constants';\nimport {WebGLDevice} from '@luma.gl/webgl';\n\ninterface Renderer {\n redraw: () => void;\n}\n\nexport type RenderResources = {\n deck: Deck;\n texture: Texture;\n model: Model;\n fbo: Framebuffer;\n};\n\nasync function createDeckInstance(gl: WebGL2RenderingContext): Promise<{\n deckInstance: Deck;\n device: Device;\n}> {\n return new Promise(resolve => {\n const deckInstance = new Deck({\n // Input is handled by the ArcGIS API for JavaScript.\n controller: false,\n\n // We use the same WebGL context as the ArcGIS API for JavaScript.\n gl,\n\n // We need depth testing in general; we don't know what layers might be added to the deck.\n parameters: {\n depthCompare: 'less-equal'\n },\n\n // To disable canvas resizing, since the FBO is owned by the ArcGIS API for JavaScript.\n width: null,\n height: null,\n\n onDeviceInitialized: (device: Device) => {\n resolve({deckInstance, device});\n }\n });\n });\n}\n\nexport async function initializeResources(\n this: Renderer,\n gl: WebGL2RenderingContext\n): Promise<RenderResources> {\n const {deckInstance, device} = await createDeckInstance(gl);\n\n const texture = device.createTexture({\n format: 'rgba8unorm',\n width: 1,\n height: 1,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n });\n\n const model = new Model(device, {\n vs: `\\\n#version 300 es\nin vec2 pos;\nout vec2 v_texcoord;\nvoid main(void) {\n gl_Position = vec4(pos, 0.0, 1.0);\n v_texcoord = (pos + 1.0) / 2.0;\n}\n `,\n fs: `\\\n#version 300 es\nprecision mediump float;\nuniform sampler2D deckglTexture;\nin vec2 v_texcoord;\nout vec4 fragColor;\n\nvoid main(void) {\n vec4 imageColor = texture(deckglTexture, v_texcoord);\n imageColor.rgb *= imageColor.a;\n fragColor = imageColor;\n}\n `,\n bindings: {\n deckglTexture: texture\n },\n parameters: {\n depthWriteEnabled: true,\n depthCompare: 'less-equal',\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one-minus-src-alpha',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one-minus-src-alpha',\n blendColorOperation: 'add',\n blendAlphaOperation: 'add'\n },\n geometry: new Geometry({\n topology: 'triangle-strip',\n attributes: {\n pos: {size: 2, value: new Int8Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1])}\n }\n }),\n vertexCount: 6,\n disableWarnings: true\n });\n\n const fbo = device.createFramebuffer({\n id: 'deckfbo',\n width: 1,\n height: 1,\n colorAttachments: [texture],\n depthStencilAttachment: 'depth16unorm'\n });\n\n deckInstance.setProps({\n // This deck renders into an auxiliary framebuffer.\n _framebuffer: fbo,\n\n _customRender: redrawReason => {\n if (redrawReason === 'arcgis') {\n deckInstance._drawLayers(redrawReason);\n } else {\n this.redraw();\n }\n }\n });\n\n return {deck: deckInstance, texture, fbo, model};\n}\n\nexport function render(\n resources: RenderResources,\n viewport: {\n width: number;\n height: number;\n longitude: number;\n latitude: number;\n zoom: number;\n altitude?: number;\n pitch: number;\n bearing: number;\n }\n) {\n const {model, deck, fbo} = resources;\n const device = model.device;\n if (device instanceof WebGLDevice) {\n // @ts-ignore device.getParametersWebGL should return `any` not `void`?\n const screenFbo: Framebuffer = device.getParametersWebGL(GL.FRAMEBUFFER_BINDING);\n const {width, height, ...viewState} = viewport;\n\n /* global window */\n const dpr = window.devicePixelRatio;\n const pixelWidth = Math.round(width * dpr);\n const pixelHeight = Math.round(height * dpr);\n\n fbo.resize({width: pixelWidth, height: pixelHeight});\n\n deck.setProps({viewState});\n // redraw deck immediately into deckFbo\n deck.redraw('arcgis');\n\n // We overlay the texture on top of the map using the full-screen quad.\n\n const textureToScreenPass = device.beginRenderPass({\n framebuffer: screenFbo,\n parameters: {viewport: [0, 0, pixelWidth, pixelHeight]},\n clearColor: false,\n clearDepth: false\n });\n try {\n model.draw(textureToScreenPass);\n } finally {\n textureToScreenPass.end();\n }\n }\n}\n\nexport function finalizeResources(resources: RenderResources) {\n resources.deck.finalize();\n resources.model.destroy();\n resources.fbo.destroy();\n resources.texture.destroy();\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {initializeResources, render, finalizeResources} from './commons';\n\nexport default function createDeckLayerView2D(BaseLayerViewGL2D) {\n return BaseLayerViewGL2D.createSubclass({\n properties: {\n cancelInitialization: null,\n resources: null\n },\n\n // Attach is called as soon as the layer view is ready to start rendering.\n async attach() {\n // We use a full-screen quad and shaders to composite the frame rendered\n // with deck.gl on top of the MapView. Composition uses the MapView context.\n const gl = this.context;\n\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the layer got detached while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n this.resources = resources;\n\n // Update deck props\n this.layer.deck.on('change', props => resources.deck.setProps(props));\n\n // We need to start drawing the deck.gl layer immediately.\n resources.deck.setProps(this.layer.deck.toJSON());\n },\n\n redraw() {\n this.requestRender();\n },\n\n // Called when the layer must be destroyed.\n detach() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n this.resources = null;\n }\n },\n\n // Called every time that the layer view must be rendered.\n render(renderParameters) {\n if (!this.resources) {\n return;\n }\n\n const [width, height] = this.view.state.size;\n // The view state must be kept in-sync with the MapView of the ArcGIS API.\n const state = renderParameters.state;\n\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n zoom: this.view.featuresTilingScheme.scaleToLevel(state.scale),\n bearing: -state.rotation,\n pitch: 0\n });\n }\n });\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/* eslint-disable no-invalid-this */\nimport {initializeResources, render, finalizeResources, RenderResources} from './commons';\n\nimport SceneView from '@arcgis/core/views/SceneView';\nimport type {DeckProps} from '@deck.gl/core';\n\n/** Convert ArcGIS FOV to WebMercatorViewport altitude */\nfunction arcgisFOVToDeckAltitude(fov: number, aspectRatio: number): number {\n // ArcGIS fov is corner-to-corner\n const D = Math.sqrt(1 + aspectRatio ** 2);\n const halfFOV = (fov / 2 / 180) * Math.PI;\n return D / 2 / Math.tan(halfFOV);\n}\n\nexport default function createDeckRenderer(DeckProps, externalRenderers) {\n class DeckRenderer {\n view: SceneView;\n deck: any;\n resources: RenderResources | null = null;\n cancelInitialization: (() => void) | null = null;\n\n constructor(view: SceneView, props: DeckProps) {\n this.view = view;\n this.deck = new DeckProps(props);\n }\n\n async setup(context) {\n const gl = context.gl;\n\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the renderer got disposed while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n\n this.deck.on('change', props => resources.deck.setProps(props));\n\n resources.deck.setProps(this.deck.toJSON());\n this.resources = resources;\n }\n\n dispose() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n }\n }\n\n redraw() {\n externalRenderers.requestRender(this.view);\n }\n\n render() {\n const [width, height] = this.view.size;\n\n render(this.resources!, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n altitude: arcgisFOVToDeckAltitude(this.view.camera.fov, width / height),\n zoom: this.view.zoom,\n bearing: this.view.camera.heading,\n pitch: this.view.camera.tilt\n });\n }\n }\n\n return DeckRenderer;\n}\n", "// deck.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport createDeckProps from './deck-props';\nimport createDeckLayer from './deck-layer';\nimport createDeckLayerView2D from './deck-layer-view-2d';\nimport createDeckRenderer from './deck-renderer';\nimport {loadModules as esriLoaderLoadModules, ILoadScriptOptions} from 'esri-loader';\n\ntype LoadedModules = {\n DeckLayer: any;\n DeckRenderer: any;\n modules?: unknown[];\n};\n\nlet arcGIS: LoadedModules;\n\nexport async function loadArcGISModules(\n modules: string[],\n loadScriptOptions: ILoadScriptOptions\n): Promise<LoadedModules> {\n const namespace = Array.isArray(modules) ? null : modules;\n await loadArcGISModule(namespace, loadScriptOptions);\n\n if (Array.isArray(modules)) {\n return esriLoaderLoadModules(modules, loadScriptOptions).then(array => {\n return {...arcGIS, modules: array};\n });\n }\n return arcGIS;\n}\n\nasync function loadArcGISModule(\n esri,\n loadScriptOptions: ILoadScriptOptions\n): Promise<LoadedModules> {\n if (arcGIS) {\n // Already loaded\n return arcGIS;\n }\n if (esri) {\n // Using user-provided dependencies\n // Right now this object has to be manually assembled - let @arcgis/webpack-plugin handle this?\n const Layer = esri.layers.Layer;\n const Accessor = esri.core.Accessor;\n const BaseLayerViewGL2D = esri.views['2d'].layers.BaseLayerViewGL2D;\n const externalRenderers = esri.views['3d'].externalRenderers;\n\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n }\n\n const [Layer, Accessor, BaseLayerViewGL2D, externalRenderers] = await esriLoaderLoadModules(\n [\n 'esri/layers/Layer',\n 'esri/core/Accessor',\n 'esri/views/2d/layers/BaseLayerViewGL2D',\n 'esri/views/3d/externalRenderers'\n ],\n loadScriptOptions\n );\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n}\n\nfunction initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers): LoadedModules {\n const DeckProps = createDeckProps(Accessor);\n const DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\n const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\n const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n\n arcGIS = {DeckLayer, DeckRenderer};\n return arcGIS;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;ACIA,IAAM,aAAa;EACjB,QAAQ,CAAA;EACR,aAAa,CAAA;EACb,YAAY,CAAA;EACZ,SAAS,CAAA;EACT,eAAe,CAAA;EACf,gBAAgB,CAAA;EAChB,eAAe,CAAA;EACf,SAAS,CAAA;EACT,SAAS,CAAA;EACT,aAAa,CAAA;EACb,QAAQ,CAAA;EACR,WAAW,CAAA;EACX,SAAS,CAAA;EACT,OAAO,CAAA;EACP,mBAAmB,CAAA;EACnB,WAAW,CAAA;EACX,YAAY,CAAA;;AAIA,SAAP,gBAAiCA,WAAQ;AAC9C,QAAMC,aAAYD,UAAS,eAAe;IACxC;IAEA,cAAW;AACT,WAAK,aAAa,CAAA;AAElB,WAAK,MAAM,OAAO,KAAK,UAAU,GAAG,CAAC,UAAU,UAAU,aAAY;AACnE,aAAK,KAAK,UAAU,EAAC,CAAC,QAAQ,GAAG,SAAQ,CAAC;MAC5C,CAAC;IACH;IAEA,GAAG,WAAW,IAAE;AACd,WAAK,WAAW,SAAS,IAAI,KAAK,WAAW,SAAS,KAAK,CAAA;AAC3D,WAAK,WAAW,SAAS,EAAE,KAAK,EAAE;IACpC;IAEA,KAAK,WAAW,SAAO;AACrB,YAAM,YAAY,KAAK,WAAW,SAAS;AAC3C,UAAI,WAAW;AACb,mBAAW,MAAM,WAAW;AAC1B,aAAG,OAAO;QACZ;MACF;IACF;IAEA,SAAM;AACJ,YAAM,SAAS,CAAA;AACf,iBAAW,OAAO,KAAK,KAAI,GAAI;AAC7B,YAAI,KAAK,GAAG,MAAM,QAAW;AAC3B,iBAAO,GAAG,IAAI,KAAK,GAAG;QACxB;MACF;AACA,aAAO;IACT;GACD;AAED,SAAOC;AACT;;;AC3Dc,SAAP,gBAAiCC,YAAWC,QAAOC,kBAAe;AAGvE,SAAOD,OAAM,eAAe;IAC1B,YAAY;MACV,MAAM,CAAA;MACN,WAAW,CAAA;MACX,QAAQ,CAAA;;IAGV,cAAW;AACT,WAAK,OAAO,IAAID,WAAS;IAC3B;;;IAIA,gBAAgB,MAAI;AAClB,UAAI,KAAK,SAAS,MAAM;AACtB,eAAO,IAAIE,iBAAgB;UACzB;UACA,OAAO;SACR;MACH;AAGA,cAAQ,MACN,+EAA+E;AAGjF,aAAO;IACT;GACD;AACH;;;AC7BA,kBAAmB;AACnB,oBAA8B;AAC9B,uBAAiB;AACjB,mBAA0B;AAa1B,eAAe,mBAAmB,IAA0B;AAI1D,SAAO,IAAI,QAAQ,aAAU;AAC3B,UAAM,eAAe,IAAI,iBAAK;;MAE5B,YAAY;;MAGZ;;MAGA,YAAY;QACV,cAAc;;;MAIhB,OAAO;MACP,QAAQ;MAER,qBAAqB,CAAC,WAAkB;AACtC,gBAAQ,EAAC,cAAc,OAAM,CAAC;MAChC;KACD;EACH,CAAC;AACH;AAEA,eAAsB,oBAEpB,IAA0B;AAE1B,QAAM,EAAC,cAAc,OAAM,IAAI,MAAM,mBAAmB,EAAE;AAE1D,QAAM,UAAU,OAAO,cAAc;IACnC,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,SAAS;MACP,WAAW;MACX,WAAW;MACX,cAAc;MACd,cAAc;;GAEjB;AAED,QAAM,QAAQ,IAAI,oBAAM,QAAQ;IAC9B,IAAI;;;;;;;;IASJ,IAAI;;;;;;;;;;;;IAaJ,UAAU;MACR,eAAe;;IAEjB,YAAY;MACV,mBAAmB;MACnB,cAAc;MACd,qBAAqB;MACrB,qBAAqB;MACrB,qBAAqB;MACrB,qBAAqB;MACrB,qBAAqB;MACrB,qBAAqB;;IAEvB,UAAU,IAAI,uBAAS;MACrB,UAAU;MACV,YAAY;QACV,KAAK,EAAC,MAAM,GAAG,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,EAAC;;KAElF;IACD,aAAa;IACb,iBAAiB;GAClB;AAED,QAAM,MAAM,OAAO,kBAAkB;IACnC,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,kBAAkB,CAAC,OAAO;IAC1B,wBAAwB;GACzB;AAED,eAAa,SAAS;;IAEpB,cAAc;IAEd,eAAe,kBAAe;AAC5B,UAAI,iBAAiB,UAAU;AAC7B,qBAAa,YAAY,YAAY;MACvC,OAAO;AACL,aAAK,OAAM;MACb;IACF;GACD;AAED,SAAO,EAAC,MAAM,cAAc,SAAS,KAAK,MAAK;AACjD;AAEM,SAAU,OACd,WACA,UASC;AAED,QAAM,EAAC,OAAO,MAAM,IAAG,IAAI;AAC3B,QAAM,SAAS,MAAM;AACrB,MAAI,kBAAkB,0BAAa;AAEjC,UAAM,YAAyB,OAAO,mBAAkB,KAAA;AACxD,UAAM,EAAC,OAAO,QAAQ,GAAG,UAAS,IAAI;AAGtC,UAAM,MAAM,OAAO;AACnB,UAAM,aAAa,KAAK,MAAM,QAAQ,GAAG;AACzC,UAAM,cAAc,KAAK,MAAM,SAAS,GAAG;AAE3C,QAAI,OAAO,EAAC,OAAO,YAAY,QAAQ,YAAW,CAAC;AAEnD,SAAK,SAAS,EAAC,UAAS,CAAC;AAEzB,SAAK,OAAO,QAAQ;AAIpB,UAAM,sBAAsB,OAAO,gBAAgB;MACjD,aAAa;MACb,YAAY,EAAC,UAAU,CAAC,GAAG,GAAG,YAAY,WAAW,EAAC;MACtD,YAAY;MACZ,YAAY;KACb;AACD,QAAI;AACF,YAAM,KAAK,mBAAmB;IAChC;AACE,0BAAoB,IAAG;IACzB;EACF;AACF;AAEM,SAAU,kBAAkB,WAA0B;AAC1D,YAAU,KAAK,SAAQ;AACvB,YAAU,MAAM,QAAO;AACvB,YAAU,IAAI,QAAO;AACrB,YAAU,QAAQ,QAAO;AAC3B;;;ACzLc,SAAP,sBAAuCC,oBAAiB;AAC7D,SAAOA,mBAAkB,eAAe;IACtC,YAAY;MACV,sBAAsB;MACtB,WAAW;;;IAIb,MAAM,SAAM;AAGV,YAAM,KAAK,KAAK;AAEhB,UAAI,YAAY;AAChB,WAAK,uBAAuB,MAAO,YAAY;AAC/C,YAAM,YAAY,MAAM,oBAAoB,KAAK,MAAM,EAAE;AAEzD,UAAI,WAAW;AACb,0BAAkB,SAAS;AAC3B;MACF;AACA,WAAK,YAAY;AAGjB,WAAK,MAAM,KAAK,GAAG,UAAU,WAAS,UAAU,KAAK,SAAS,KAAK,CAAC;AAGpE,gBAAU,KAAK,SAAS,KAAK,MAAM,KAAK,OAAM,CAAE;IAClD;IAEA,SAAM;AACJ,WAAK,cAAa;IACpB;;IAGA,SAAM;AAzCV;AA0CM,iBAAK,yBAAL;AACA,UAAI,KAAK,WAAW;AAClB,0BAAkB,KAAK,SAAS;AAChC,aAAK,YAAY;MACnB;IACF;;IAGA,OAAO,kBAAgB;AACrB,UAAI,CAAC,KAAK,WAAW;AACnB;MACF;AAEA,YAAM,CAAC,OAAO,MAAM,IAAI,KAAK,KAAK,MAAM;AAExC,YAAM,QAAQ,iBAAiB;AAE/B,aAAO,KAAK,WAAW;QACrB;QACA;QACA,UAAU,KAAK,KAAK,OAAO;QAC3B,WAAW,KAAK,KAAK,OAAO;QAC5B,MAAM,KAAK,KAAK,qBAAqB,aAAa,MAAM,KAAK;QAC7D,SAAS,CAAC,MAAM;QAChB,OAAO;OACR;IACH;GACD;AACH;;;AC3DA,SAAS,wBAAwB,KAAa,aAAmB;AAE/D,QAAM,IAAI,KAAK,KAAK,IAAI,eAAe,CAAC;AACxC,QAAM,UAAW,MAAM,IAAI,MAAO,KAAK;AACvC,SAAO,IAAI,IAAI,KAAK,IAAI,OAAO;AACjC;AAEc,SAAP,mBAAoCC,YAAWC,oBAAiB;AACrE,QAAMC,cAAY;IAMhB,YAAY,MAAiB,OAAgB;AAH7C,WAAA,YAAoC;AACpC,WAAA,uBAA4C;AAG1C,WAAK,OAAO;AACZ,WAAK,OAAO,IAAIF,WAAU,KAAK;IACjC;IAEA,MAAM,MAAM,SAAO;AACjB,YAAM,KAAK,QAAQ;AAEnB,UAAI,YAAY;AAChB,WAAK,uBAAuB,MAAO,YAAY;AAC/C,YAAM,YAAY,MAAM,oBAAoB,KAAK,MAAM,EAAE;AAEzD,UAAI,WAAW;AACb,0BAAkB,SAAS;AAC3B;MACF;AAEA,WAAK,KAAK,GAAG,UAAU,WAAS,UAAU,KAAK,SAAS,KAAK,CAAC;AAE9D,gBAAU,KAAK,SAAS,KAAK,KAAK,OAAM,CAAE;AAC1C,WAAK,YAAY;IACnB;IAEA,UAAO;AAhDX;AAiDM,iBAAK,yBAAL;AACA,UAAI,KAAK,WAAW;AAClB,0BAAkB,KAAK,SAAS;MAClC;IACF;IAEA,SAAM;AACJ,MAAAC,mBAAkB,cAAc,KAAK,IAAI;IAC3C;IAEA,SAAM;AACJ,YAAM,CAAC,OAAO,MAAM,IAAI,KAAK,KAAK;AAElC,aAAO,KAAK,WAAY;QACtB;QACA;QACA,UAAU,KAAK,KAAK,OAAO;QAC3B,WAAW,KAAK,KAAK,OAAO;QAC5B,UAAU,wBAAwB,KAAK,KAAK,OAAO,KAAK,QAAQ,MAAM;QACtE,MAAM,KAAK,KAAK;QAChB,SAAS,KAAK,KAAK,OAAO;QAC1B,OAAO,KAAK,KAAK,OAAO;OACzB;IACH;;AAGF,SAAOC;AACT;;;ALnEA,sBAAqB;AACrB,mBAAkB;AAClB,+BAA8B;AAC9B,wBAAmC;;;AMJnC,yBAAuE;AAQvE,IAAI;AAEJ,eAAsB,kBACpB,SACA,mBAAqC;AAErC,QAAM,YAAY,MAAM,QAAQ,OAAO,IAAI,OAAO;AAClD,QAAM,iBAAiB,WAAW,iBAAiB;AAEnD,MAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,eAAO,mBAAAC,aAAsB,SAAS,iBAAiB,EAAE,KAAK,WAAQ;AACpE,aAAO,EAAC,GAAG,QAAQ,SAAS,MAAK;IACnC,CAAC;EACH;AACA,SAAO;AACT;AAEA,eAAe,iBACb,MACA,mBAAqC;AAErC,MAAI,QAAQ;AAEV,WAAO;EACT;AACA,MAAI,MAAM;AAGR,UAAMC,SAAQ,KAAK,OAAO;AAC1B,UAAMC,YAAW,KAAK,KAAK;AAC3B,UAAMC,qBAAoB,KAAK,MAAM,IAAI,EAAE,OAAO;AAClD,UAAMC,qBAAoB,KAAK,MAAM,IAAI,EAAE;AAE3C,WAAO,WAAWH,QAAOC,WAAUC,oBAAmBC,kBAAiB;EACzE;AAEA,QAAM,CAACH,QAAOC,WAAUC,oBAAmBC,kBAAiB,IAAI,UAAM,mBAAAJ,aACpE;IACE;IACA;IACA;IACA;KAEF,iBAAiB;AAEnB,SAAO,WAAWC,QAAOC,WAAUC,oBAAmBC,kBAAiB;AACzE;AAEA,SAAS,WAAWH,QAAOC,WAAUC,oBAAmBC,oBAAiB;AACvE,QAAMC,aAAY,gBAAgBH,SAAQ;AAC1C,QAAMI,mBAAkB,sBAAsBH,kBAAiB;AAC/D,QAAMI,aAAY,gBAAgBF,YAAWJ,QAAOK,gBAAe;AACnE,QAAME,gBAAe,mBAAmBH,YAAWD,kBAAiB;AAEpE,WAAS,EAAC,WAAAG,YAAW,cAAAC,cAAY;AACjC,SAAO;AACT;;;ANtDA,IAAM,YAAY,gBAAgB,gBAAAC,OAAQ;AAC1C,IAAM,kBAAkB,sBAAsB,yBAAAC,OAAiB;AACxD,IAAM,YAAY,gBAAgB,WAAW,aAAAC,SAAO,eAAe;AACnE,IAAM,eAAe,mBAAmB,WAAW,iBAAiB;",
|
|
6
6
|
"names": ["Accessor", "DeckProps", "DeckProps", "Layer", "DeckLayerView2D", "BaseLayerViewGL2D", "DeckProps", "externalRenderers", "DeckRenderer", "esriLoaderLoadModules", "Layer", "Accessor", "BaseLayerViewGL2D", "externalRenderers", "DeckProps", "DeckLayerView2D", "DeckLayer", "DeckRenderer", "Accessor", "BaseLayerViewGL2D", "Layer"]
|
|
7
7
|
}
|
package/dist.min.js
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var Vi=Object.create;var Ie=Object.defineProperty;var ki=Object.getOwnPropertyDescriptor;var Ki=Object.getOwnPropertyNames;var Yi=Object.getPrototypeOf,$i=Object.prototype.hasOwnProperty;var R=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Qi=(e,t)=>{for(var r in t)Ie(e,r,{get:t[r],enumerable:!0})},Ce=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ki(t))!$i.call(e,s)&&s!==r&&Ie(e,s,{get:()=>t[s],enumerable:!(i=ki(t,s))||i.enumerable});return e},j=(e,t,r)=>(Ce(e,t,"default"),r&&Ce(r,t,"default")),E=(e,t,r)=>(r=e!=null?Vi(Yi(e)):{},Ce(t||!e||!e.__esModule?Ie(r,"default",{value:e,enumerable:!0}):r,e)),zi=e=>Ce(Ie({},"__esModule",{value:!0}),e);var Oe=Ne((ro,Qt)=>{Qt.exports=globalThis.deck});var q,jt=R(()=>{(function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e[e.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",e[e.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",e[e.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",e[e.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",e[e.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",e[e.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",e[e.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",e[e.LINE_WEBGL=6913]="LINE_WEBGL",e[e.FILL_WEBGL=6914]="FILL_WEBGL",e[e.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",e[e.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",e[e.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",e[e.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",e[e.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",e[e.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",e[e.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",e[e.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",e[e.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",e[e.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",e[e.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",e[e.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",e[e.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",e[e.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",e[e.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",e[e.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",e[e.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",e[e.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",e[e.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",e[e.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",e[e.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",e[e.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",e[e.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",e[e.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(q||(q={}))});var qt=R(()=>{jt()});var Lt=Ne((co,Jt)=>{Jt.exports=globalThis.luma});var p=Ne((lo,Gt)=>{Gt.exports=globalThis.luma});function ee(e){let t=e.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return t._polyfilled??=!1,t.extensions||={},e.luma=t,t}var Fe=R(()=>{});function tr(e){if(e={...ji,...e},!e.debugSpectorJS)return null;if(!D&&globalThis.SPECTOR&&!globalThis.luma?.spector){se.log.probe(Zi,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:t}=globalThis.SPECTOR;D=new t,globalThis.luma&&(globalThis.luma.spector=D)}if(!D)return null;if(er||(er=!0,D.spyCanvases(),D?.onCaptureStarted.add(t=>se.log.info("Spector capture started:",t)()),D?.onCapture.add(t=>{se.log.info("Spector capture complete:",t)(),D?.getResultUI(),D?.resultView.display(),D?.resultView.addCapture(t)})),e.gl){let t=e.gl,r=ee(t),i=r.device;D?.startCapture(e.gl,500),r.device=i,new Promise(s=>setTimeout(s,2e3)).then(s=>{se.log.info("Spector capture stopped after 2 seconds")(),D?.stopCapture()})}return D}var se,Zi,D,er,ji,rr=R(()=>{se=E(p(),1);Fe();Zi=1,D=null,er=!1,ji={debugSpectorJS:se.log.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0}});var ho,Ao,So,ir,sr=R(()=>{ho=globalThis.document||{},Ao=globalThis.process||{},So=globalThis.console,ir=globalThis.navigator||{}});function Be(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return Boolean(r&&r.indexOf("Electron")>=0)}var St=R(()=>{});function or(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Be()}var ar=R(()=>{St()});function gt(e){return!e&&!or()?"Node":Be(e)?"Electron":(e||ir.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var nr=R(()=>{ar();St();sr()});var _r=R(()=>{nr()});function lr(e){return e.luma=e.luma||{},e.luma}function fr(e,t={}){return t.debugWebGL||t.traceWebGL?Ji(e,t):qi(e)}function qi(e){let t=lr(e);return t.realContext?t.realContext:e}function Ji(e,t){if(!globalThis.WebGLDebugUtils)return Te.log.warn("webgl-debug not loaded")(),e;let r=lr(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...q,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,Li.bind(null,t),Gi.bind(null,t));for(let a in q)!(a in i)&&typeof q[a]=="number"&&(i[a]=q[a]);class s{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(s,i);let o=Object.create(s);return r.realContext=e,r.debugContext=o,o.luma=r,o.debug=!0,o}function cr(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function Li(e,t,r,i){i=Array.from(i).map(n=>n===void 0?"undefined":n);let s=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),a=`${s} in gl.${r}(${o})`;Te.log.error("%cWebGL","color: white; background: red; padding: 2px 6px; border-radius: 3px;",a)();debugger;throw new Error(a)}function Gi(e,t,r){let i="";e.traceWebGL&&Te.log.level>=1&&(i=cr(t,r),Te.log.info(1,"%cWebGL","color: white; background: blue; padding: 2px 6px; border-radius: 3px;",i)());for(let s of r)if(s===void 0){i=i||cr(t,r);debugger}}var Te,dr=R(()=>{Te=E(p(),1);qt()});function Et(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function I(e,t,r){return t[e]!==void 0?t[e]:r[e]}var he,O,Tr,x,Rr,Re,hr,Ar,pt,H,ut,Sr,bt=R(()=>{he={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},O=(e,t,r)=>t?e.enable(r):e.disable(r),Tr=(e,t,r)=>e.hint(r,t),x=(e,t,r)=>e.pixelStorei(r,t),Rr=(e,t,r)=>{let i=r===36006?36009:36008;return e.bindFramebuffer(i,t)},Re=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};hr={[3042]:O,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:O,[2885]:(e,t)=>e.cullFace(t),[2929]:O,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:O,[35723]:Tr,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>e.bindTransformFeedback?.(36386,t),[34229]:(e,t)=>e.bindVertexArray(t),[36006]:Rr,[36010]:Rr,[34964]:Re,[36662]:Re,[36663]:Re,[35053]:Re,[35055]:Re,[2886]:(e,t)=>e.frontFace(t),[33170]:Tr,[2849]:(e,t)=>e.lineWidth(t),[32823]:O,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:O,[32926]:O,[32928]:O,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:O,[3088]:(e,t)=>e.scissor(...t),[2960]:O,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[34383]:O,[10754]:O,[12288]:O,[12289]:O,[12290]:O,[12291]:O,[12292]:O,[12293]:O,[12294]:O,[12295]:O,[3333]:x,[3317]:x,[37440]:x,[37441]:x,[37443]:x,[3330]:x,[3332]:x,[3331]:x,[3314]:x,[32878]:x,[3316]:x,[3315]:x,[32877]:x,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Et(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Et(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,n]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,o,a,n)},stencilOp:(e,t)=>{t=Et(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,n]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,o,a,n)},viewport:(e,t)=>e.viewport(...t)};Ar={blendEquation:(e,t,r)=>e.blendEquationSeparate(I(32777,t,r),I(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(I(32969,t,r),I(32968,t,r),I(32971,t,r),I(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(I(32824,t,r),I(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(I(32938,t,r),I(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,I(2962,t,r),I(2967,t,r),I(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,I(34816,t,r),I(36003,t,r),I(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,I(2964,t,r),I(2965,t,r),I(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,I(34817,t,r),I(34818,t,r),I(34819,t,r))},pt={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,s)=>e({[32773]:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,s)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:s}),clearColor:(e,t,r,i,s)=>e({[3106]:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,s)=>e({[3107]:[t,r,i,s]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,s)=>e({[3088]:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({[2978]:[t,r,i,s]})},H=(e,t)=>e.isEnabled(t),ut={[3042]:H,[2884]:H,[2929]:H,[3024]:H,[32823]:H,[32926]:H,[32928]:H,[3089]:H,[2960]:H,[35977]:H},Sr=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068])});function y(e,t){if(es(t))return;let r={};for(let s in t){let o=Number(s),a=hr[s];a&&(typeof a=="string"?r[a]=!0:a(e,t[s],o))}let i=e.lumaState?.cache;if(i)for(let s in r){let o=Ar[s];o(e,t,i)}}function Me(e,t=he){if(typeof t=="number"){let s=t,o=ut[s];return o?o(e,s):e.getParameter(s)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let s of r){let o=ut[s];i[s]=o?o(e,Number(s)):e.getParameter(Number(s))}return i}function gr(e){y(e,he)}function es(e){for(let t in e)return!1;return!0}var oe=R(()=>{bt()});function pr(e,t){if(e===t)return!0;if(Er(e)&&Er(t)&&e.length===t.length){for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}return!1}function Er(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var ur=R(()=>{});function br(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||Sr.has(s))return r(s);let o=U.get(e);return s in o.cache||(o.cache[s]=r(s)),o.enable?o.cache[s]:r(s)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function ts(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(...o){let a=U.get(e),{valueChanged:n,oldValue:_}=r(a._updateCache,...o);return n&&i(...o),_},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function rs(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=U.get(e);s.program!==i&&(t(i),s.program=i)}}var U,Ct=R(()=>{oe();ur();bt();U=class{static get(t){return t.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(t,r){this.gl=t,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){let t=this.stateStack[this.stateStack.length-1];y(this.gl,t),this.stateStack.pop()}trackState(t,r){if(this.cache=r?.copyState?Me(t):Object.assign({},he),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,rs(t);for(let i in pt){let s=pt[i];ts(t,i,s)}br(t,"getParameter"),br(t,"isEnabled")}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){let a=t[o],n=this.cache[o];pr(a,n)||(r=!0,i=n,s&&!(o in s)&&(s[o]=n),this.cache[o]=a)}return{valueChanged:r,oldValue:i}}}});function Cr(e,t,r){let i="",s=_=>{let c=_.statusMessage;c&&(i||=c)};e.addEventListener("webglcontextcreationerror",s,!1);let o=r.failIfMajorPerformanceCaveat!==!0,a={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},n=null;try{n||=e.getContext("webgl2",a),!n&&a.failIfMajorPerformanceCaveat&&(i||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let _=!1;if(!n&&o&&(a.failIfMajorPerformanceCaveat=!1,n=e.getContext("webgl2",a),_=!0),n||(n=e.getContext("webgl",{}),n&&(n=null,i||="Your browser only supports WebGL1")),!n)throw i||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${i}`);let c=ee(n);c.softwareRenderer=_;let{onContextLost:l,onContextRestored:f}=t;return e.addEventListener("webglcontextlost",h=>l(h),!1),e.addEventListener("webglcontextrestored",h=>f(h),!1),n}finally{e.removeEventListener("webglcontextcreationerror",s,!1)}}var Ir=R(()=>{Fe()});function w(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}var Ae=R(()=>{});function Nr(e,t){let r=e.getParameter(7936),i=e.getParameter(7937);w(e,"WEBGL_debug_renderer_info",t);let s=t.WEBGL_debug_renderer_info,o=e.getParameter(s?s.UNMASKED_VENDOR_WEBGL:7936),a=e.getParameter(s?s.UNMASKED_RENDERER_WEBGL:7937),n=o||r,_=a||i,c=e.getParameter(7938),l=Or(n,_),f=is(n,_),h=ss(n,_);return{type:"webgl",gpu:l,gpuType:h,gpuBackend:f,vendor:n,renderer:_,version:c,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Or(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function is(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function ss(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(Or(e,t)){case"apple":return os(e,t)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function os(e,t){return/Apple (M\d|A\d|GPU)/i.test(`${e} ${t}`)}var Fr=R(()=>{Ae()});function Pe(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var It=R(()=>{});function Pr(e){return e in xe}function Pt(e,t,r){return Dr(e,t,r,new Set)}function Dr(e,t,r,i){let s=xe[t];if(!s||i.has(t))return!1;i.add(t);let o=(s.features||[]).every(a=>Dr(e,a,r,i));return i.delete(t),o?(s.extensions||[]).every(a=>Boolean(w(e,a,r))):!1}function xr(e,t,r){let i=t.create,s=ye[t.format];s?.gl===void 0&&(i=!1),s?.x&&(i=i&&Boolean(w(e,s.x,r))),t.format==="stencil8"&&(i=!1);let o=s?.r===!1?!1:s?.r===void 0||Pt(e,s.r,r),a=i&&t.render&&o&&Ts(e,t.format,r);return{format:t.format,create:i&&t.create,render:a,filter:i&&t.filter,blend:i&&t.blend,store:i&&t.store}}function Ts(e,t,r){let i=ye[t],s=i?.gl;if(s===void 0||i?.x&&!w(e,i.x,r))return!1;let o=e.getParameter(32873),a=e.getParameter(36006),n=e.createTexture(),_=e.createFramebuffer();if(!n||!_)return!1;let c=Number(0),l=Number(e.getError());for(;l!==c;)l=e.getError();let f=!1;try{if(e.bindTexture(3553,n),e.texStorage2D(3553,1,s,1,1),Number(e.getError())!==c)return!1;e.bindFramebuffer(36160,_),e.framebufferTexture2D(36160,36064,3553,n,0),f=Number(e.checkFramebufferStatus(36160))===Number(36053)&&Number(e.getError())===c}finally{e.bindFramebuffer(36160,a),e.deleteFramebuffer(_),e.bindTexture(3553,o),e.deleteTexture(n)}return f}function Ue(e){let t=ye[e],r=hs(e),i=Mt.textureFormatDecoder.getInfo(e);return i.compressed&&(t.dataFormat=r),{internalFormat:r,format:t?.dataFormat||Rs(i.channels,i.integer,i.normalized,r),type:i.dataType?Pe(i.dataType):t?.types?.[0]||5121,compressed:i.compressed||!1}}function yr(e){switch(Mt.textureFormatDecoder.getInfo(e).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${e}`)}}function Rs(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function hs(e){let r=ye[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}var Mt,Se,ge,ae,ne,as,ns,_s,cs,ls,fs,Br,Mr,Nt,Ot,Ft,Bt,De,ds,xe,ye,_e=R(()=>{Mt=E(p(),1);Ae();It();Se="WEBGL_compressed_texture_s3tc",ge="WEBGL_compressed_texture_s3tc_srgb",ae="EXT_texture_compression_rgtc",ne="EXT_texture_compression_bptc",as="WEBGL_compressed_texture_etc",ns="WEBGL_compressed_texture_astc",_s="WEBGL_compressed_texture_etc1",cs="WEBGL_compressed_texture_pvrtc",ls="WEBGL_compressed_texture_atc",fs="EXT_texture_norm16",Br="EXT_render_snorm",Mr="EXT_color_buffer_float",Nt="snorm8-renderable-webgl",Ot="norm16-renderable-webgl",Ft="snorm16-renderable-webgl",Bt="float16-renderable-webgl",De="float32-renderable-webgl",ds="rgb9e5ufloat-renderable-webgl",xe={"float32-renderable-webgl":{extensions:[Mr]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[Br]},"norm16-webgl":{extensions:[fs]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[Br]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[Se,ge,ae,ne]},"texture-compression-bc5-webgl":{extensions:[ae]},"texture-compression-bc7-webgl":{extensions:[ne]},"texture-compression-etc2":{extensions:[as]},"texture-compression-astc":{extensions:[ns]},"texture-compression-etc1-webgl":{extensions:[_s]},"texture-compression-pvrtc-webgl":{extensions:[cs]},"texture-compression-atc-webgl":{extensions:[ls]}};ye={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:Nt},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:Nt},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:Bt},r16unorm:{gl:33322,rb:!0,r:Ot},r16snorm:{gl:36760,r:Ft},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:Nt},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:Bt},rg16unorm:{gl:33324,r:Ot},rg16snorm:{gl:36761,r:Ft},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:De},rgb9e5ufloat:{gl:35901,r:ds},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:De},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:Bt},rgba16unorm:{gl:32859,rb:!0,r:Ot},rgba16snorm:{gl:36763,r:Ft},"rgb32float-webgl":{gl:34837,x:Mr,r:De,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:De},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Se},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:ge},"bc1-rgba-unorm":{gl:33777,x:Se},"bc1-rgba-unorm-srgb":{gl:35916,x:ge},"bc2-rgba-unorm":{gl:33778,x:Se},"bc2-rgba-unorm-srgb":{gl:35918,x:ge},"bc3-rgba-unorm":{gl:33779,x:Se},"bc3-rgba-unorm-srgb":{gl:35919,x:ge},"bc4-r-unorm":{gl:36283,x:ae},"bc4-r-snorm":{gl:36284,x:ae},"bc5-rg-unorm":{gl:36285,x:ae},"bc5-rg-snorm":{gl:36286,x:ae},"bc6h-rgb-ufloat":{gl:36495,x:ne},"bc6h-rgb-float":{gl:36494,x:ne},"bc7-rgba-unorm":{gl:36492,x:ne},"bc7-rgba-unorm-srgb":{gl:36493,x:ne},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var wr,Ur,we,vr=R(()=>{wr=E(p(),1);Ae();_e();Ur={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},we=class extends wr.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,i){super([],i),this.gl=t,this.extensions=r,w(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let t=this.getFeatures();for(let r of t)this.has(r)&&(yield r);return[]}has(t){return this.disabledFeatures?.[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),Pr(t)&&Pt(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){let t=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of t)this.has(r)}getFeatures(){return[...Object.keys(Ur),...Object.keys(xe)]}getWebGLFeature(t){let r=Ur[t];return Boolean(typeof r=="string"?w(this.gl,r,this.extensions):r)}}});var mr,ve,Xr=R(()=>{mr=E(p(),1),ve=class extends mr.DeviceLimits{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(t){super(),this.gl=t}getParameter(t){return this.limits[t]===void 0&&(this.limits[t]=this.gl.getParameter(t)),this.limits[t]||0}}});function As(e){return e<34069?e+34069:e}function Ss(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var Wr,V,me=R(()=>{Wr=E(p(),1);_e();V=class extends Wr.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(t,r){super(t,r);let i=r.handle===null;this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),i||(t._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.autoCreateAttachmentTextures(),this.updateAttachments())}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let t=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let i=this.colorAttachments[r];if(i){let s=36064+r;this._attachTextureView(s,i)}}if(this.depthStencilAttachment){let r=yr(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${Ss(r)}`)}this.gl.bindFramebuffer(36160,t)}_attachTextureView(t,r){let{gl:i}=this.device,{texture:s}=r,o=r.props.baseMipLevel,a=r.props.baseArrayLayer;switch(i.bindTexture(s.glTarget,s.handle),s.glTarget){case 35866:case 32879:i.framebufferTextureLayer(36160,t,s.handle,o,a);break;case 34067:let n=As(a);i.framebufferTexture2D(36160,t,n,s.handle,o);break;case 3553:i.framebufferTexture2D(36160,t,3553,s.handle,o);break;default:throw new Error("Illegal texture type")}i.bindTexture(s.glTarget,null)}resizeAttachments(t,r){if(this.handle===null){this.width=t,this.height=r;return}super.resizeAttachments(t,r)}}});var Hr,Xe,Vr=R(()=>{Hr=E(p(),1);me();Xe=class extends Hr.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(t,r){super(r),this.device=t,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new V(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var kr,We,Kr=R(()=>{kr=E(p(),1),We=class extends kr.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(t,r={}){super(r),this.device=t;let i=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${i}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let o=this.canvas.getContext("2d");if(!o)throw new Error(`${i}: Failed to create 2d presentation context`);this.context2d=o,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let t=this.device.getDefaultCanvasContext(),[r,i]=t.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||i===0||t.canvas.width===0||t.canvas.height===0)){if(r!==this.drawingBufferWidth||i!==this.drawingBufferHeight||t.canvas.width!==this.drawingBufferWidth||t.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${i} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(t.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(t){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(t)}}});function Yr(e="id"){Dt[e]=Dt[e]||1;let t=Dt[e]++;return`${e}-${t}`}var Dt,$r=R(()=>{Dt={}});function gs(e){return e&J.Buffer.INDEX?34963:e&J.Buffer.VERTEX?34962:e&J.Buffer.UNIFORM?35345:34962}function Es(e){return e&J.Buffer.INDEX||e&J.Buffer.VERTEX?35044:e&J.Buffer.UNIFORM?35048:35044}var J,v,He=R(()=>{J=E(p(),1),v=class extends J.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(t,r={}){super(t,r),this.device=t,this.gl=this.device.gl;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=gs(this.props.usage),this.glUsage=Es(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(t,r=0,i=t.byteLength+r){let s=this.glTarget;this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.props.handle?this.trackReferencedMemory(i,"Buffer"):this.trackAllocatedMemory(i)}_initWithByteLength(t){let r=t;t===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.props.handle?this.trackReferencedMemory(t,"Buffer"):this.trackAllocatedMemory(t),this}write(t,r=0){let i=ArrayBuffer.isView(t)?t:new Uint8Array(t),s=0,o=void 0,a=36663;this.gl.bindBuffer(a,this.handle),s!==0||o!==void 0?this.gl.bufferSubData(a,r,i,s,o):this.gl.bufferSubData(a,r,i),this.gl.bindBuffer(a,null),this._setDebugData(t,r,t.byteLength)}async mapAndWriteAsync(t,r=0,i=this.byteLength-r){let s=new ArrayBuffer(i);await t(s,"copied"),this.write(s,r)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}async mapAndReadAsync(t,r=0,i){let s=await this.readAsync(r,i);return await t(s.buffer,"copied")}readSyncWebGL(t=0,r){r=r??this.byteLength-t;let i=new Uint8Array(r),s=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,i,s,r),this.gl.bindBuffer(36662,null),this._setDebugData(i,t,r),i}}});function Qr(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.trim(),o=i.split(":"),a=o[0]?.trim();if(o.length===2){let[T,A]=o;if(!T||!A){r.push({message:s,type:Ve(a||"info"),lineNum:0,linePos:0});continue}r.push({message:A.trim(),type:Ve(T),lineNum:0,linePos:0});continue}let[n,_,c,...l]=o;if(!n||!_||!c){r.push({message:o.slice(1).join(":").trim()||s,type:Ve(a||"info"),lineNum:0,linePos:0});continue}let f=parseInt(c,10);isNaN(f)&&(f=0);let h=parseInt(_,10);isNaN(h)&&(h=0),r.push({message:l.join(":").trim(),type:Ve(n),lineNum:f,linePos:h})}return r}function Ve(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var zr=R(()=>{});var Ee,ke,Zr=R(()=>{Ee=E(p(),1);zr();ke=class extends Ee.Shader{device;handle;constructor(t,r){switch(super(t,r),this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}t._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let i=this._compile(this.source);i&&typeof i.catch=="function"&&i.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?Qr(t):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(t){t=t.startsWith("#version ")?t:`#version 300 es
|
|
8
|
-
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}return Ee.log.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{Ee.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()})}async _waitForCompilationComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}});function Jr(e,t,r,i){if(Cs(t))return i(e);let s=e;s.pushState();try{return ps(e,t),y(s.gl,r),i(e)}finally{s.popState()}}function ps(e,t){let r=e,{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(te("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&(i.enable(32823),i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,a=te("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,a=te("polygonMode",t.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,a),o?.polygonModeWEBGL(1029,a)}t.polygonOffsetLine&&i.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&i.enable(12288),t.clipDistance1&&i.enable(12289),t.clipDistance2&&i.enable(12290),t.clipDistance3&&i.enable(12291),t.clipDistance4&&i.enable(12292),t.clipDistance5&&i.enable(12293),t.clipDistance6&&i.enable(12294),t.clipDistance7&&i.enable(12295)),t.depthWriteEnabled!==void 0&&i.depthMask(bs("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(Ye("depthCompare",t.depthCompare))),t.clearDepth!==void 0&&i.clearDepth(t.clearDepth),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&qr.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=Ye("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,s),i.stencilFuncSeparate(1029,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=xt("stencilPassOperation",t.stencilPassOperation),o=xt("stencilFailOperation",t.stencilFailOperation),a=xt("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}switch(t.blend){case!0:i.enable(3042);break;case!1:i.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let s=jr("blendColorOperation",t.blendColorOperation||"add"),o=jr("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(s,o);let a=Ke("blendColorSrcFactor",t.blendColorSrcFactor||"one"),n=Ke("blendColorDstFactor",t.blendColorDstFactor||"zero"),_=Ke("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),c=Ke("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(a,n,_,c)}}function Ye(e,t){return te(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function xt(e,t){return te(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function jr(e,t){return te(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Ke(e,t,r="color"){return te(e,t,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function us(e,t){return`Illegal parameter ${t} for ${e}`}function te(e,t,r){if(!(t in r))throw new Error(us(e,t));return r[t]}function bs(e,t){return t}function Cs(e){let t=!0;for(let r in e){t=!1;break}return t}var qr,yt=R(()=>{qr=E(p(),1);oe()});function $e(e){let t={};return e.addressModeU&&(t[10242]=Ut(e.addressModeU)),e.addressModeV&&(t[10243]=Ut(e.addressModeV)),e.addressModeW&&(t[32882]=Ut(e.addressModeW)),e.magFilter&&(t[10240]=wt(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Is(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=Ye("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Ut(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function wt(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Is(e,t="none"){if(!t)return wt(e);switch(t){case"none":return wt(e);case"nearest":switch(e){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(e){case"nearest":return 9986;case"linear":return 9987}}}var vt=R(()=>{yt()});var Lr,Qe,Gr=R(()=>{Lr=E(p(),1);vt();Qe=class extends Lr.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=$e(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let s=Number(r);switch(s){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,s,i);break;default:this.device.gl.samplerParameteri(this.handle,s,i);break}}}}});function k(e,t,r){if(Ns(t))return r(e);let{nocatch:i=!0}=t,s=U.get(e);s.push(),y(e,t);let o;if(i)o=r(e),s.pop();else try{o=r(e)}finally{s.pop()}return o}function Ns(e){for(let t in e)return!1;return!0}var ze=R(()=>{oe();Ct()});var Ze,K,mt=R(()=>{Ze=E(p(),1),K=class extends Ze.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...Ze.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function je(e){return Os[e]}var Os,Xt=R(()=>{Os={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function Fs(e,t=0){return t?new e.constructor(e.buffer,e.byteOffset+t,(e.byteLength-t)/e.BYTES_PER_ELEMENT):e}function Bs(e,t){if(t%e.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${t} must align to typed array element size ${e.BYTES_PER_ELEMENT}`);return t/e.BYTES_PER_ELEMENT}function Ms(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function qe(e,t,r){return t==="cube"?34069+r:e}var L,Y,Je=R(()=>{L=E(p(),1);_e();vt();ze();mt();Xt();Y=class extends L.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(t,r){super(t,r,{byteAlignment:1}),this.device=t,this.gl=this.device.gl;let i=Ue(this.props.format);this.glTarget=Ms(this.props.dimension),this.glInternalFormat=i.internalFormat,this.glFormat=i.format,this.glType=i.type,this.compressed=i.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);let{dimension:s,width:o,height:a,depth:n,mipLevels:_,glTarget:c,glInternalFormat:l}=this;if(!this.compressed)switch(s){case"2d":case"cube":this.gl.texStorage2D(c,_,l,o,a);break;case"2d-array":case"3d":this.gl.texStorage3D(c,_,l,o,a,n);break;default:throw new Error(s)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data),this.props.handle?this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"):this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"),this.setSampler(this.props.sampler),this.view=new K(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Texture"):(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")),this.destroyed=!0)}createView(t){return new K(this.device,{...t,texture:this})}setSampler(t={}){super.setSampler(t);let r=$e(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(t){let r=this._normalizeCopyExternalImageOptions(t);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:i,glType:s}=this,{image:o,depth:a,mipLevel:n,x:_,y:c,z:l,width:f,height:h}=r,T=qe(this.glTarget,this.dimension,l),A=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),k(this.gl,A,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(T,n,_,c,f,h,i,s,o);break;case"2d-array":case"3d":this.gl.texSubImage3D(T,n,_,c,l,f,h,a,i,s,o);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(t){super.copyImageData(t)}readBuffer(t={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let i=this._getSupportedColorReadOptions(t),s=t.byteOffset??0,o=this.computeMemoryLayout(i);if(r.byteLength<s+o.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${s+o.byteLength})`);let a=r;this.gl.bindBuffer(35051,a.handle);try{this._readColorTextureLayers(i,o,n=>{this.gl.readPixels(i.x,i.y,i.width,i.height,this.glFormat,this.glType,s+n)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(t={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(t,r={}){let i=this._normalizeTextureWriteOptions(r),{width:s,height:o,depthOrArrayLayers:a,mipLevel:n,byteOffset:_,x:c,y:l,z:f}=i,{glFormat:h,glType:T,compressed:A}=this,g=qe(this.glTarget,this.dimension,f);if(A)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:u}=this.device.getTextureFormatInfo(this.format),b=u?i.bytesPerRow/u:void 0,B={[3317]:this.byteAlignment,...b!==void 0?{[3314]:b}:{},[32878]:i.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,t.handle),k(this.gl,B,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,n,c,l,s,o,h,T,_);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,n,c,l,f,s,o,a,h,T,_);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(t,r={}){let i=this._normalizeTextureWriteOptions(r),s=ArrayBuffer.isView(t)?t:new Uint8Array(t),{width:o,height:a,depthOrArrayLayers:n,mipLevel:_,x:c,y:l,z:f,byteOffset:h}=i,{glFormat:T,glType:A,compressed:g}=this,u=qe(this.glTarget,this.dimension,f),b;if(!g){let{bytesPerPixel:d}=this.device.getTextureFormatInfo(this.format);d&&(b=i.bytesPerRow/d)}let B=this.compressed?{}:{[3317]:this.byteAlignment,...b!==void 0?{[3314]:b}:{},[32878]:i.rowsPerImage},$=Bs(s,h),X=g?Fs(s,h):s,Z=this._getMipLevelSize(_),ie=c===0&&l===0&&f===0&&o===Z.width&&a===Z.height&&n===Z.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),k(this.gl,B,()=>{switch(this.dimension){case"2d":case"cube":g?ie?this.gl.compressedTexImage2D(u,_,T,o,a,0,X):this.gl.compressedTexSubImage2D(u,_,c,l,o,a,T,X):this.gl.texSubImage2D(u,_,c,l,o,a,T,A,s,$);break;case"2d-array":case"3d":g?ie?this.gl.compressedTexImage3D(u,_,T,o,a,n,0,X):this.gl.compressedTexSubImage3D(u,_,c,l,f,o,a,n,T,X):this.gl.texSubImage3D(u,_,c,l,f,o,a,n,T,A,s,$);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(t,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(t={}){let r=this._getSupportedColorReadOptions(t),i=this.computeMemoryLayout(r),s=je(this.glType),o=(0,L.getTypedArrayConstructor)(s),a=new o(i.byteLength/o.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,i,n=>{let _=new o(a.buffer,a.byteOffset+n,i.bytesPerImage/o.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,_)}),a.buffer}_readColorTextureLayers(t,r,i){let s=this._getFramebuffer(),o=r.bytesPerRow/r.bytesPerPixel,a={[3333]:this.byteAlignment,...o!==t.width?{[3330]:o}:{}},n=this.gl.getParameter(3074),_=this.gl.bindFramebuffer(36160,s.handle);try{this.gl.readBuffer(36064),k(this.gl,a,()=>{for(let c=0;c<t.depthOrArrayLayers;c++)this._attachReadSubresource(s,t.mipLevel,t.z+c),i(c*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,_||null),this.gl.readBuffer(n)}}_attachReadSubresource(t,r,i){let s=`${r}:${i}`;if(this._framebufferAttachmentKey!==s){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,qe(this.glTarget,this.dimension,i),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,i);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let o=Number(this.gl.checkFramebufferStatus(36160));if(o!==Number(36053))throw new Error(`${t} incomplete for ${this} readback (${o})`)}this._framebufferAttachmentKey=s}}generateMipmapsWebGL(t){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(L.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!t?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(i){L.log.warn(`Error generating mipmap for ${this}: ${i.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(t){L.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,i]of Object.entries(t)){let s=Number(r),o=i;switch(s){case 33082:case 33083:this.gl.texParameterf(this.glTarget,s,o);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,s,o);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,s,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,s,o);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,s,o);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}_unbind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}}});function ei(e,t,r,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let a=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,a);case 35664:return e.uniform2fv(t,a);case 35665:return e.uniform3fv(t,a);case 35666:return e.uniform4fv(t,a);case 5124:return e.uniform1iv(t,a);case 35667:return e.uniform2iv(t,a);case 35668:return e.uniform3iv(t,a);case 35669:return e.uniform4iv(t,a);case 35670:return e.uniform1iv(t,a);case 35671:return e.uniform2iv(t,a);case 35672:return e.uniform3iv(t,a);case 35673:return e.uniform4iv(t,a);case 5125:return s.uniform1uiv(t,a,1);case 36294:return s.uniform2uiv(t,a,2);case 36295:return s.uniform3uiv(t,a,3);case 36296:return s.uniform4uiv(t,a,4);case 35674:return e.uniformMatrix2fv(t,!1,a);case 35675:return e.uniformMatrix3fv(t,!1,a);case 35676:return e.uniformMatrix4fv(t,!1,a);case 35685:return s.uniformMatrix2x3fv(t,!1,a);case 35686:return s.uniformMatrix2x4fv(t,!1,a);case 35687:return s.uniformMatrix3x2fv(t,!1,a);case 35688:return s.uniformMatrix3x4fv(t,!1,a);case 35689:return s.uniformMatrix4x2fv(t,!1,a);case 35690:return s.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}var ti=R(()=>{});function ri(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function ii(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var Wt=R(()=>{});function Ps(e,t){let r={...e,attributes:e.attributes.map(i=>({...i})),bindings:e.bindings.map(i=>({...i}))};for(let i of t?.attributes||[]){let s=r.attributes.find(o=>o.name===i.name);s?(s.type=i.type||s.type,s.stepMode=i.stepMode||s.stepMode):F.log.warn(`shader layout attribute ${i.name} not present in shader`)}for(let i of t?.bindings||[]){let s=oi(r,i.name);if(!s){F.log.warn(`shader layout binding ${i.name} not present in shader`);continue}Object.assign(s,i)}return r}function oi(e,t){return e.bindings.find(r=>r.name===t||r.name===`${t}Uniforms`||`${r.name}Uniforms`===t)}function si(e,t){return e[t]||e[`${t}Uniforms`]||e[t.replace(/Uniforms$/,"")]}var F,Le,ai=R(()=>{F=E(p(),1);yt();ti();He();me();Je();mt();Wt();Le=class extends F.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(t,r){super(t,r),this.device=t;let i=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=i,this.handle=i.handle,this.vs=i.vs,this.fs=i.fs,this.linkStatus=i.linkStatus,this.introspectedLayout=i.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?Ps(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(t,r){let i=(0,F.flattenBindingsByGroup)((0,F.normalizeBindingsByGroup)(this.shaderLayout,t));for(let[s,o]of Object.entries(i)){let a=oi(this.shaderLayout,s);if(!a){let n=this.shaderLayout.bindings.map(_=>`"${_.name}"`).join(", ");r?.disableWarnings||F.log.warn(`No binding "${s}" in render pipeline "${this.id}", expected one of ${n}`,o)();continue}switch(o||F.log.warn(`Unsetting binding "${s}" in render pipeline "${this.id}"`)(),a.type){case"uniform":if(!(o instanceof v)&&!(o.buffer instanceof v))throw new Error("buffer value");break;case"texture":if(!(o instanceof K||o instanceof Y||o instanceof V))throw new Error(`${this} Bad texture binding for ${s}`);break;case"sampler":F.log.warn(`Ignoring sampler ${s}`)();break;default:throw new Error(a.type)}this.bindings[s]=o}}draw(t){this._syncLinkStatus();let r=t.bindGroups?(0,F.flattenBindingsByGroup)(t.bindGroups):t.bindings||this.bindings,{renderPass:i,parameters:s=this.props.parameters,topology:o=this.props.topology,vertexArray:a,vertexCount:n,instanceCount:_,isInstanced:c=!1,firstVertex:l=0,transformFeedback:f,uniforms:h=this.uniforms}=t,T=ri(o),A=Boolean(a.indexBuffer),g=a.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return F.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable(r))return F.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),a.bindBeforeRender(i),f&&f.begin(this.props.topology),this._applyBindings(r,{disableWarnings:this.props.disableWarnings}),this._applyUniforms(h);let u=i;return Jr(this.device,s,u.glParameters,()=>{A&&c?this.device.gl.drawElementsInstanced(T,n||0,g,l,_||0):A?this.device.gl.drawElements(T,n||0,g,l):c?this.device.gl.drawArraysInstanced(T,l,n||0,_||0):this.device.gl.drawArrays(T,l,n||0),f&&f.end()}),a.unbindAfterRender(i),!0}_areTexturesRenderable(t){let r=!0;for(let i of this.shaderLayout.bindings)si(t,i.name)||(F.log.warn(`Binding ${i.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(t,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:i}=this.device;i.useProgram(this.handle);let s=0,o=0;for(let a of this.shaderLayout.bindings){let n=si(t,a.name);if(!n)throw new Error(`No value for binding ${a.name} in ${this.id}`);switch(a.type){case"uniform":let{name:_}=a,c=i.getUniformBlockIndex(this.handle,_);if(c===4294967295)throw new Error(`Invalid uniform block name ${_}`);if(i.uniformBlockBinding(this.handle,c,o),n instanceof v)i.bindBufferBase(35345,o,n.handle);else{let f=n;i.bindBufferRange(35345,o,f.buffer.handle,f.offset||0,f.size||f.buffer.byteLength-(f.offset||0))}o+=1;break;case"texture":if(!(n instanceof K||n instanceof Y||n instanceof V))throw new Error("texture");let l;if(n instanceof K)l=n.texture;else if(n instanceof Y)l=n;else if(n instanceof V&&n.colorAttachments[0]instanceof K)F.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=n.colorAttachments[0].texture;else throw new Error("No texture");i.activeTexture(33984+s),i.bindTexture(l.glTarget,l.handle),s+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${a.type}' not supported in WebGL`)}}}_applyUniforms(t){for(let r of this.shaderLayout.uniforms||[]){let{name:i,location:s,type:o,textureUnit:a}=r,n=t[i]??a;n!==void 0&&ei(this.device.gl,s,o,n)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function ni(e){return xs[e]}function Ge(e){return Ds[e]}function et(e){return Boolean(ci[e])}function _i(e){return ci[e]}var Ds,ci,xs,tt=R(()=>{Ds={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},ci={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},xs={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function li(e,t){let r={attributes:[],bindings:[]};r.attributes=ys(e,t);let i=vs(e,t);for(let n of i){let _=n.uniforms.map(c=>({name:c.name,format:c.format,byteOffset:c.byteOffset,byteStride:c.byteStride,arrayLength:c.arrayLength}));r.bindings.push({type:"uniform",name:n.name,group:0,location:n.location,visibility:(n.vertex?1:0)&(n.fragment?2:0),minBindingSize:n.byteLength,uniforms:_})}let s=ws(e,t),o=0;for(let n of s)if(et(n.type)){let{viewDimension:_,sampleType:c}=_i(n.type);r.bindings.push({type:"texture",name:n.name,group:0,location:o,viewDimension:_,sampleType:c}),n.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=Us(e,t);return a?.length&&(r.varyings=a),r}function ys(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:n}=o,_=e.getAttribLocation(t,a);if(_>=0){let c=Ge(n),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:_,stepMode:l,type:c})}}return r.sort((s,o)=>s.location-o.location),r}function Us(e,t){let r=[],i=e.getProgramParameter(t,35971);for(let s=0;s<i;s++){let o=e.getTransformFeedbackVarying(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:n,size:_}=o,c=Ge(n),{type:l,components:f}=(0,ce.getVariableShaderTypeInfo)(c);r.push({location:s,name:a,type:l,size:_*f})}return r.sort((s,o)=>s.location-o.location),r}function ws(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:a,size:n,type:_}=o,{name:c,isArray:l}=ms(a),f=e.getUniformLocation(t,c),h={location:f,name:c,size:n,type:_,isArray:l};if(r.push(h),h.size>1)for(let T=0;T<h.size;T++){let A=`${c}[${T}]`;f=e.getUniformLocation(t,A);let g={...h,name:A,location:f};r.push(g)}}return r}function vs(e,t){let r=(o,a)=>e.getActiveUniformBlockParameter(t,o,a),i=[],s=e.getProgramParameter(t,35382);for(let o=0;o<s;o++){let a={name:e.getActiveUniformBlockName(t,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},n=r(o,35395)||[],_=e.getActiveUniforms(t,n,35383),c=e.getActiveUniforms(t,n,35384),l=e.getActiveUniforms(t,n,35387),f=e.getActiveUniforms(t,n,35388);for(let A=0;A<a.uniformCount;++A){let g=n[A];if(g!==void 0){let u=e.getActiveUniform(t,g);if(!u)throw new Error("activeInfo");let b=Ge(_[A]);a.uniforms.push({name:u.name,format:b,type:_[A],arrayLength:c[A],byteOffset:l[A],byteStride:f[A]})}}let h=new Set(a.uniforms.map(A=>A.name.split(".")[0]).filter(A=>Boolean(A))),T=a.name.replace(/Uniforms$/,"");if(h.size===1&&!h.has(a.name)&&!h.has(T)){let[A]=h;ce.log.warn(`Uniform block "${a.name}" uses GLSL instance "${A}". luma.gl binds uniform buffers by block name ("${a.name}") and alias ("${T}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}function ms(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);return{name:(0,ce.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${e}`),length:r?.[2]?1:0,isArray:Boolean(r?.[2])}}var ce,fi=R(()=>{ce=E(p(),1);tt()});var z,di,rt,Ti=R(()=>{z=E(p(),1);fi();tt();di=4,rt=class extends z.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(t,r){super(t,r),this.device=t,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),z.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=li(this.device.gl,this.handle),z.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),z.log.time(di,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),z.log.timeEnd(di,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}z.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),z.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:let r=t==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let i=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${t}: ${i}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=t.getProgramParameter(this.handle,35718);for(let s=0;s<i;s++){let o=t.getActiveUniform(this.handle,s);if(o&&et(o.type)){let a=o.name.endsWith("[0]"),n=a?o.name.slice(0,-3):o.name,_=t.getUniformLocation(this.handle,n);_!==null&&(r=this._assignSamplerUniform(_,o,a,r))}}}_assignSamplerUniform(t,r,i,s){let{gl:o}=this.device;if(i&&r.size>1){let a=Int32Array.from({length:r.size},(n,_)=>s+_);return o.uniform1iv(t,a),s+r.size}return o.uniform1i(t,s),s+1}async _waitForLinkComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await t(10)}}}});function Xs(e,t){let r=t.sourceBuffer,i=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,i.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Ws(e,t){throw new Error("copyBufferToTexture is not supported in WebGL")}function Hs(e,t){let{sourceTexture:r,mipLevel:i=0,aspect:s="all",width:o=t.sourceTexture.width,height:a=t.sourceTexture.height,depthOrArrayLayers:n,origin:_=[0,0,0],destinationBuffer:c,byteOffset:l=0,bytesPerRow:f,rowsPerImage:h}=t;if(r instanceof re.Texture){r.readBuffer({x:_[0]??0,y:_[1]??0,z:_[2]??0,width:o,height:a,depthOrArrayLayers:n,mipLevel:i,aspect:s,byteOffset:l},c);return}if(s!=="all")throw new Error("aspect not supported in WebGL");if(i!==0||n!==void 0||f||h)throw new Error("not implemented");let{framebuffer:T,destroyFramebuffer:A}=Ri(r),g;try{let u=c,b=o||T.width,B=a||T.height,$=(0,re.assertDefined)(T.colorAttachments[0]),X=Ue($.texture.props.format),Z=X.format,ie=X.type;e.gl.bindBuffer(35051,u.handle),g=e.gl.bindFramebuffer(36160,T.handle),e.gl.readPixels(_[0],_[1],b,B,Z,ie,l)}finally{e.gl.bindBuffer(35051,null),g!==void 0&&e.gl.bindFramebuffer(36160,g),A&&T.destroy()}}function Vs(e,t){let{sourceTexture:r,destinationMipLevel:i=0,origin:s=[0,0],destinationOrigin:o=[0,0,0],destinationTexture:a}=t,{width:n=t.destinationTexture.width,height:_=t.destinationTexture.height}=t,{framebuffer:c,destroyFramebuffer:l}=Ri(r),[f=0,h=0]=s,[T,A,g]=o,u=e.gl.bindFramebuffer(36160,c.handle),b,B;if(a instanceof Y)b=a,n=Number.isFinite(n)?n:b.width,_=Number.isFinite(_)?_:b.height,b._bind(0),B=b.glTarget;else throw new Error("invalid destination");switch(B){case 3553:case 34067:e.gl.copyTexSubImage2D(B,i,T,A,f,h,n,_);break;case 35866:case 32879:e.gl.copyTexSubImage3D(B,i,T,A,g,f,h,n,_);break;default:}b&&b._unbind(),e.gl.bindFramebuffer(36160,u),l&&c.destroy()}function Ri(e){if(e instanceof re.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var re,it,hi=R(()=>{re=E(p(),1);_e();Je();it=class extends re.CommandBuffer{device;handle=null;commands=[];constructor(t,r={}){super(t,r),this.device=t}_executeCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Xs(this.device,r.options);break;case"copy-buffer-to-texture":Ws(this.device,r.options);break;case"copy-texture-to-buffer":Hs(this.device,r.options);break;case"copy-texture-to-texture":Vs(this.device,r.options);break;default:throw new Error(r.name)}}}});var Ai,ks,st,Si=R(()=>{Ai=E(p(),1);ze();oe();ks=[1,2,4,8],st=class extends Ai.RenderPass{device;handle=null;glParameters={};constructor(t,r){super(t,r),this.device=t;let i=this.props.framebuffer,s=!i||i.handle===null;s&&t.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let o;if(!r?.parameters?.viewport)if(s){let[a,n]=t.getDefaultCanvasContext().getDrawingBufferSize();o=[0,0,a,n]}else{let{width:a,height:n}=i;o=[0,0,a,n]}if(this.device.pushState(),this.setParameters({viewport:o,...this.props.parameters}),s)this.device.gl.drawBuffers([1029]);else{let a=i.colorAttachments.map((n,_)=>36064+_);this.device.gl.drawBuffers(a)}this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference!==void 0&&(r[2967]=t.stencilReference,r[36003]=t.stencilReference),"colorMask"in t&&(r.colorMask=ks.map(i=>Boolean(i&t.colorMask))),this.glParameters=r,y(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((i,s)=>{i&&this.clearColorBuffer(s,i)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,t.clearStencil=this.props.clearStencil),r!==0&&k(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){k(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var gi,pe,Ei=R(()=>{gi=E(p(),1);hi();Si();pe=class extends gi.CommandEncoder{device;handle=null;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new it(t,{id:`${this.props.id}-command-buffer`})}destroy(){this.destroyResource()}finish(t){return t?.id&&this.commandBuffer.id!==t.id&&(this.commandBuffer.id=t.id,this.commandBuffer.props.id=t.id),this.destroy(),this.commandBuffer}beginRenderPass(t={}){return new st(this.device,this._applyTimeProfilingToPassProps(t))}beginComputePass(t={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,i){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(t,r){t.writeTimestamp(r)}}});function pi(e){let{target:t,source:r,start:i=0,count:s=1}=e,o=r.length,a=s*o,n=0;for(let _=i;n<o;n++)t[_++]=r[n]??0;for(;n<a;)n<a-n?(t.copyWithin(i+n,i,i+n),n*=2):(t.copyWithin(i+n,i,i+a-n),n=a);return e.target}var ui=R(()=>{});function Ks(e){return Array.isArray(e)?new Float32Array(e):e}function Ys(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ot,le,bi=R(()=>{ot=E(p(),1);_r();It();ui();le=class extends ot.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return gt()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:a,offset:n,normalized:_,integer:c,divisor:l}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),c?this.device.gl.vertexAttribIPointer(t,s,o,a,n):this.device.gl.vertexAttribPointer(t,s,o,_,a,n),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,l||0),this.attributes[t]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=Pe(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let s=le.isConstantAttributeZeroSupported(this.device)||t!==0;(r||s)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let i=Ks(r),s=i.byteLength*t,o=i.length*t;if(this.buffer&&s!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${s} !== ${this.buffer.byteLength}.`);let a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),a||=!Ys(i,this.bufferValue),a){let n=(0,ot.getScratchArray)(r.constructor,o);pi({target:n,source:i,start:0,count:o}),this.buffer.write(n),this.bufferValue=r}return this.buffer}}});function Ci(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var nt,at,Ii=R(()=>{nt=E(p(),1);Ht();Wt();at=class extends nt.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(ii(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let[r,i]of Object.entries(t))this.setBuffer(r,i)})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,nt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:s,byteLength:o,byteOffset:a},this.bindOnUse||this._bindBuffer(i,s,a,o)}getBuffer(t){if(Ci(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return this.buffers[r]??null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof v)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:s=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:s}}_getVaryingIndex(t){if(Ci(t))return Number(t);for(let r of this.layout.varyings||[])if(t===r.name)return r.location;return-1}_bindBuffers(){for(let[t,r]of Object.entries(this.buffers)){let{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);this._bindBuffer(Number(t),i,o,s)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,i=0,s){let o=r&&r.handle;!o||s===void 0?this.gl.bindBufferBase(35982,t,o):this.gl.bindBufferRange(35982,t,o,i,s)}}});var Ni,_t,Oi=R(()=>{Ni=E(p(),1),_t=class extends Ni.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(t,r){if(super(t,r),this.device=t,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");this.handle=i}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let t of this._timestampPairs){t.activeQuery&&(this._cancelPendingQuery(t.activeQuery),this.device.gl.deleteQuery(t.activeQuery.handle));for(let r of t.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let t of Array.from(this._pendingReads))this._cancelPendingQuery(t);this.destroyResource()}}isResultAvailable(t){return this.props.type==="timestamp"?t===void 0?this._timestampPairs.some((r,i)=>this._isTimestampPairAvailable(i)):this._isTimestampPairAvailable(this._getTimestampPairIndex(t)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(t){let r=t?.firstQuery||0,i=t?.queryCount||this.props.count-r;if(this._validateRange(r,i),this.props.type==="timestamp"){let s=new Array(i).fill(0n),o=Math.floor(r/2),a=Math.floor((r+i-1)/2);for(let n=o;n<=a;n++){let _=await this._consumeTimestampPairResult(n),c=n*2,l=c+1;c>=r&&c<r+i&&(s[c-r]=0n),l>=r&&l<r+i&&(s[l-r]=_)}return s}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(t,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(t<0||r>=this.props.count||r<=t)throw new Error("Timestamp duration range is out of bounds");if(t%2!==0||r!==t+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let i=await this._consumeTimestampPairResult(this._getTimestampPairIndex(t));return Number(i)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(t){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(t),i=this._timestampPairs[r];if(t%2===0){if(i.activeQuery)throw new Error("Timestamp query pair is already active");let s=this.device.gl.createQuery();if(!s)throw new Error("WebGL query not supported");let o={handle:s,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,s),i.activeQuery=o;return}if(!i.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),i.completedQueries.push(i.activeQuery),i.activeQuery=null}_validateRange(t,r){if(t<0||r<0||t+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(t){if(t<0||t>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(t/2)}_isTimestampPairAvailable(t){let r=this._timestampPairs[t];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(t){if(t.cancelled||this.destroyed)return t.result=0n,!0;if(t.result!==null||t.disjoint)return!0;if(!this.device.gl.getQueryParameter(t.handle,34919))return!1;let i=Boolean(this.device.gl.getParameter(36795));return t.disjoint=i,t.result=i?0n:BigInt(this.device.gl.getQueryParameter(t.handle,34918)),!0}async _consumeTimestampPairResult(t){let r=this._timestampPairs[t];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let i=r.completedQueries.shift();try{return await this._consumeQueryResult(i)}finally{this.device.gl.deleteQuery(i.handle)}}_consumeQueryResult(t){return t.promise||(this._pendingReads.add(t),t.promise=new Promise((r,i)=>{t.resolve=r,t.reject=i;let s=()=>{if(t.pollRequestId=null,t.cancelled||this.destroyed){this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,r(0n);return}if(!this._pollQueryAvailability(t)){t.pollRequestId=this._requestAnimationFrame(s);return}this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,t.disjoint?i(new Error("GPU timestamp query was invalidated by a disjoint event")):r(t.result||0n)};s()})),t.promise}_cancelPendingQuery(t){if(this._pendingReads.delete(t),t.cancelled=!0,t.pollRequestId!==null&&(this._cancelAnimationFrame(t.pollRequestId),t.pollRequestId=null),t.resolve){let r=t.resolve;t.promise=null,t.resolve=null,t.reject=null,r(0n)}}_requestAnimationFrame(t){return requestAnimationFrame(t)}_cancelAnimationFrame(t){cancelAnimationFrame(t)}}});var Fi,ct,Bi=R(()=>{Fi=E(p(),1),ct=class extends Fi.Fence{device;gl;handle;signaled;_signaled=!1;constructor(t,r={}){super(t,{}),this.device=t,this.gl=t.gl;let i=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!i)throw new Error("Failed to create WebGL fence");this.handle=i,this.signaled=new Promise(s=>{let o=()=>{let a=this.gl.clientWaitSync(this.handle,0,0);a===this.gl.ALREADY_SIGNALED||a===this.gl.CONDITION_SATISFIED?(this._signaled=!0,s()):setTimeout(o,1)};o()})}isSignaled(){if(this._signaled)return!0;let t=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=t===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function Vt(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function Mi(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var Pi=R(()=>{});function Di(e,t){let{sourceX:r=0,sourceY:i=0,sourceAttachment:s=0}=t||{},{target:o=null,sourceWidth:a,sourceHeight:n,sourceDepth:_,sourceFormat:c,sourceType:l}=t||{},{framebuffer:f,deleteFramebuffer:h}=yi(e),{gl:T,handle:A}=f;a||=f.width,n||=f.height;let g=f.colorAttachments[s]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${s}`);_=g?.depth||1,c||=g?.glFormat||6408,l||=g?.glType||5121,o=Qs(o,l,c,a,n,_);let u=ue.dataTypeDecoder.getDataType(o);l=l||ni(u);let b=T.bindFramebuffer(36160,A);return T.readBuffer(36064+s),T.readPixels(r,i,a,n,c,l,o),T.readBuffer(36064),T.bindFramebuffer(36160,b||null),h&&f.destroy(),o}function xi(e,t){let{target:r,sourceX:i=0,sourceY:s=0,sourceFormat:o=6408,targetByteOffset:a=0}=t||{},{sourceWidth:n,sourceHeight:_,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:f}=yi(e);n=n||l.width,_=_||l.height;let h=l;c=c||5121;let T=r;if(!T){let g=Vt(o),u=Mi(c),b=a+n*_*g*u;T=h.device.createBuffer({byteLength:b})}let A=e.device.createCommandEncoder();return A.copyTextureToBuffer({sourceTexture:e,width:n,height:_,origin:[i,s],destinationBuffer:T,byteOffset:a}),A.destroy(),f&&l.destroy(),T}function yi(e){return e instanceof ue.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:$s(e),deleteFramebuffer:!0}}function $s(e,t){let{device:r,width:i,height:s,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:s,colorAttachments:[e]})}function Qs(e,t,r,i,s,o){if(e)return e;t||=5121;let a=je(t),n=ue.dataTypeDecoder.getTypedArrayConstructor(a),_=Vt(r);return new n(i*s*_)}var ue,Ui=R(()=>{ue=E(p(),1);tt();Pi();Xt()});function zs(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function Zs(e,t,r){e.gl.vertexAttribI4iv(t,r)}function js(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function qs(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var m,G,wi=R(()=>{m=E(p(),1);Ct();Ir();Fe();Fr();vr();Xr();Vr();Kr();rr();dr();_e();$r();He();Zr();Gr();Je();me();ai();Ti();Ei();bi();Ii();Oi();Bi();Ui();oe();ze();Ae();G=class extends m.Device{static getDeviceFromContext(t){return t?t.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(t){switch(t){case"unorm8x4-bgra":return!1;default:return!0}}constructor(t){super({...t,id:t.id||Yr("webgl-device")});let r=m.Device._getCanvasContextProps(t);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let i=r.canvas?.gl??null,s=G.getDeviceFromContext(i);if(s)throw new Error(`WebGL context already attached to device ${s.id}`);this.canvasContext=new Xe(this,r),this.lost=new Promise(l=>{this._resolveContextLost=l});let o={...t.webgl};r.alphaMode==="premultiplied"&&(o.premultipliedAlpha=!0),t.powerPreference!==void 0&&(o.powerPreference=t.powerPreference),t.failIfMajorPerformanceCaveat!==void 0&&(o.failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat);let n=this.props._handle||Cr(this.canvasContext.canvas,{onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:l=>console.log("WebGL context restored")},o);if(!n)throw new Error("WebGL context creation failed");if(s=G.getDeviceFromContext(n),s){if(t._reuseDevices)return m.log.log(1,`Not creating a new Device, instead returning a reference to Device ${s.id} already attached to WebGL context`,s)(),this.canvasContext.destroy(),s._reused=!0,s;throw new Error(`WebGL context already attached to device ${s.id}`)}this.handle=n,this.gl=n,this.spectorJS=tr({...this.props,gl:this.handle});let _=ee(this.handle);_.device=this,this.extensions=_.extensions||(_.extensions={}),this.info=Nr(this.gl,this.extensions),this.limits=new ve(this.gl),this.features=new we(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new U(this.gl,{log:(...l)=>m.log.log(1,...l)()}).trackState(this.gl,{copyState:!1}),(t.debug||t.debugWebGL)&&(this.gl=fr(this.gl,{debugWebGL:!0,traceWebGL:t.debugWebGL}),m.log.warn("WebGL debug mode activated. Performance reduced.")()),t.debugWebGL&&(m.log.level=Math.max(m.log.level,1)),this.commandEncoder=new pe(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(this.commandEncoder?.destroy(),!this.props._reuseDevices&&!this._reused){let t=ee(this.handle);t.device=null}}get isLost(){return this.gl.isContextLost()}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createPresentationContext(t){return new We(this,t||{})}createBuffer(t){let r=this._normalizeBufferProps(t);return new v(this,r)}createTexture(t){return new Y(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new Qe(this,t)}createShader(t){return new ke(this,t)}createFramebuffer(t){return new V(this,t)}createVertexArray(t){return new le(this,t)}createTransformFeedback(t){return new at(this,t)}createQuerySet(t){return new _t(this,t)}createFence(){return new ct(this)}createRenderPipeline(t){return new Le(this,t)}_createSharedRenderPipelineWebGL(t){return new rt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(t={}){return new pe(this,t)}submit(t){let r=null;t||({submittedCommandEncoder:r,commandBuffer:t}=this._finalizeDefaultCommandEncoderForSubmit());try{t._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{t.destroy()}}_finalizeDefaultCommandEncoderForSubmit(){let t=this.commandEncoder,r=t.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:t.props.id,timeProfilingQuerySet:t.getTimeProfilingQuerySet()}),{submittedCommandEncoder:t,commandBuffer:r}}readPixelsToArrayWebGL(t,r){return Di(t,r)}readPixelsToBufferWebGL(t,r){return xi(t,r)}setParametersWebGL(t){y(this.gl,t)}getParametersWebGL(t){return Me(this.gl,t)}withParametersWebGL(t,r){return k(this.gl,t,r)}resetWebGL(){m.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),gr(this.gl)}_getDeviceSpecificTextureFormatCapabilities(t){return xr(this.gl,t,this.extensions)}loseDevice(){let t=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(t=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){U.get(this.gl).push()}popState(){U.get(this.gl).pop()}getGLKey(t,r){let i=Number(t);for(let s in this.gl)if(this.gl[s]===i)return`GL.${s}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((i,[s,o])=>(i[`${s}:${this.getGLKey(s,r)}`]=`${o}:${this.getGLKey(o,r)}`,i),{})}setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&qs(s,r)&&m.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:zs(this,t,r);break;case Int32Array:Zs(this,t,r);break;case Uint32Array:js(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return w(this.gl,t,this.extensions),this.extensions}_setWebGLDebugMetadata(t,r,i){t.luma=r;let s={props:i.spector,id:i.spector.id};t.__SPECTOR_Metadata=s}}});var Ht=R(()=>{wi();He()});var Xi=Ne((Tt,mi)=>{(function(e,t){typeof Tt=="object"&&typeof mi<"u"?t(Tt):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Tt,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},i="4.25",s="next";function o(d){if(d.toLowerCase()===s)return s;var S=d&&d.match(/^(\d)\.(\d+)/);return S&&{major:parseInt(S[1],10),minor:parseInt(S[2],10)}}function a(d){return d===void 0&&(d=i),"https://js.arcgis.com/".concat(d,"/")}function n(d){d===void 0&&(d=i);var S=a(d),C=o(d);if(C!==s&&C.major===3){var N=C.minor<=10?"js/":"";return"".concat(S).concat(N,"esri/css/esri.css")}else return"".concat(S,"esri/themes/light/main.css")}function _(d){var S=document.createElement("link");return S.rel="stylesheet",S.href=d,S}function c(d,S){if(S){var C=document.querySelector(S);C.parentNode.insertBefore(d,C)}else document.head.appendChild(d)}function l(d){return document.querySelector('link[href*="'.concat(d,'"]'))}function f(d){return!d||o(d)?n(d):d}function h(d,S){var C=f(d),N=l(C);return N||(N=_(C),c(N,S)),N}var T={};function A(d){var S=document.createElement("script");return S.type="text/javascript",S.src=d,S.setAttribute("data-esri-loader","loading"),S}function g(d,S,C){var N;C&&(N=u(d,C));var M=function(){S(d),d.removeEventListener("load",M,!1),N&&d.removeEventListener("error",N,!1)};d.addEventListener("load",M,!1)}function u(d,S){var C=function(N){S(N.error||new Error("There was an error attempting to load ".concat(d.src))),d.removeEventListener("error",C,!1)};return d.addEventListener("error",C,!1),C}function b(d){d===void 0&&(d={}),T=d}function B(){return document.querySelector("script[data-esri-loader]")}function $(){var d=window.require;return d&&d.on}function X(d){d===void 0&&(d={});var S={};[T,d].forEach(function(M){for(var P in M)Object.prototype.hasOwnProperty.call(M,P)&&(S[P]=M[P])});var C=S.version,N=S.url||a(C);return new r.Promise(function(M,P){var Q=B();if(Q){var $t=Q.getAttribute("src");$t!==N?P(new Error("The ArcGIS API for JavaScript is already loaded (".concat($t,")."))):$()?M(Q):g(Q,M,P)}else if($())P(new Error("The ArcGIS API for JavaScript is already loaded."));else{var Rt=S.css;if(Rt){var Hi=Rt===!0;h(Hi?C:Rt,S.insertCssBefore)}Q=A(N),g(Q,function(){Q.setAttribute("data-esri-loader","loaded"),M(Q)},P),document.body.appendChild(Q)}})}function Z(d){return new r.Promise(function(S,C){var N=window.require.on("error",C);window.require(d,function(){for(var M=[],P=0;P<arguments.length;P++)M[P]=arguments[P];N.remove(),S(M)})})}function ie(d,S){if(S===void 0&&(S={}),$())return Z(d);var C=B(),N=C&&C.getAttribute("src");return!S.url&&N&&(S.url=N),X(S).then(function(){return Z(d)})}e.utils=r,e.loadModules=ie,e.getScript=B,e.isLoaded=$,e.loadScript=X,e.setDefaultOptions=b,e.loadCss=h,Object.defineProperty(e,"__esModule",{value:!0})})});var be={};Qi(be,{loadArcGISModules:()=>Gs});var W={},zt=E(Oe(),1);j(W,E(Oe(),1));if(!zt.Layer)throw new Error("@deck.gl/core is not found");j(be,W);var Zt={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function ht(e){return e.createSubclass({properties:Zt,constructor(){this._callbacks={},this.watch(Object.keys(Zt),(r,i,s)=>{this.emit("change",{[s]:r})})},on(r,i){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(i)},emit(r,i){let s=this._callbacks[r];if(s)for(let o of s)o(i)},toJSON(){let r={};for(let i of this.keys())this[i]!==void 0&&(r[i]=this[i]);return r}})}function At(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new e},createLayerView(i){return i.type==="2d"?new r({view:i,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var vi=E(Oe(),1),lt=E(Lt(),1);Ht();async function Js(e){return new Promise(t=>{let r=new vi.Deck({controller:!1,gl:e,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:i=>{t({deckInstance:r,device:i})}})})}async function ft(e){let{deckInstance:t,device:r}=await Js(e),i=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),s=new lt.Model(r,{vs:`#version 300 es
|
|
7
|
+
"use strict";var __exports__=(()=>{var Vi=Object.create;var Ie=Object.defineProperty;var ki=Object.getOwnPropertyDescriptor;var Ki=Object.getOwnPropertyNames;var Yi=Object.getPrototypeOf,$i=Object.prototype.hasOwnProperty;var R=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ne=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Qi=(e,t)=>{for(var r in t)Ie(e,r,{get:t[r],enumerable:!0})},Ce=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ki(t))!$i.call(e,s)&&s!==r&&Ie(e,s,{get:()=>t[s],enumerable:!(i=ki(t,s))||i.enumerable});return e},j=(e,t,r)=>(Ce(e,t,"default"),r&&Ce(r,t,"default")),E=(e,t,r)=>(r=e!=null?Vi(Yi(e)):{},Ce(t||!e||!e.__esModule?Ie(r,"default",{value:e,enumerable:!0}):r,e)),zi=e=>Ce(Ie({},"__esModule",{value:!0}),e);var Oe=Ne((ro,Qt)=>{Qt.exports=globalThis.deck});var qt=Ne((ao,jt)=>{jt.exports=globalThis.luma});var q,Jt=R(()=>{(function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e[e.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",e[e.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",e[e.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",e[e.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",e[e.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",e[e.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",e[e.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",e[e.LINE_WEBGL=6913]="LINE_WEBGL",e[e.FILL_WEBGL=6914]="FILL_WEBGL",e[e.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",e[e.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",e[e.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",e[e.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",e[e.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",e[e.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",e[e.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",e[e.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",e[e.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",e[e.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",e[e.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",e[e.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",e[e.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",e[e.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",e[e.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",e[e.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",e[e.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",e[e.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",e[e.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",e[e.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",e[e.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",e[e.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",e[e.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",e[e.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(q||(q={}))});var Lt=R(()=>{Jt()});var p=Ne((lo,Gt)=>{Gt.exports=globalThis.luma});function ee(e){let t=e.luma||{_polyfilled:!1,extensions:{},softwareRenderer:!1};return t._polyfilled??=!1,t.extensions||={},e.luma=t,t}var Fe=R(()=>{});function tr(e){if(e={...ji,...e},!e.debugSpectorJS)return null;if(!D&&globalThis.SPECTOR&&!globalThis.luma?.spector){se.log.probe(Zi,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:t}=globalThis.SPECTOR;D=new t,globalThis.luma&&(globalThis.luma.spector=D)}if(!D)return null;if(er||(er=!0,D.spyCanvases(),D?.onCaptureStarted.add(t=>se.log.info("Spector capture started:",t)()),D?.onCapture.add(t=>{se.log.info("Spector capture complete:",t)(),D?.getResultUI(),D?.resultView.display(),D?.resultView.addCapture(t)})),e.gl){let t=e.gl,r=ee(t),i=r.device;D?.startCapture(e.gl,500),r.device=i,new Promise(s=>setTimeout(s,2e3)).then(s=>{se.log.info("Spector capture stopped after 2 seconds")(),D?.stopCapture()})}return D}var se,Zi,D,er,ji,rr=R(()=>{se=E(p(),1);Fe();Zi=1,D=null,er=!1,ji={debugSpectorJS:se.log.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0}});var ho,Ao,So,ir,sr=R(()=>{ho=globalThis.document||{},Ao=globalThis.process||{},So=globalThis.console,ir=globalThis.navigator||{}});function Be(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return Boolean(r&&r.indexOf("Electron")>=0)}var St=R(()=>{});function or(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Be()}var ar=R(()=>{St()});function gt(e){return!e&&!or()?"Node":Be(e)?"Electron":(e||ir.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var nr=R(()=>{ar();St();sr()});var _r=R(()=>{nr()});function lr(e){return e.luma=e.luma||{},e.luma}function fr(e,t={}){return t.debugWebGL||t.traceWebGL?Ji(e,t):qi(e)}function qi(e){let t=lr(e);return t.realContext?t.realContext:e}function Ji(e,t){if(!globalThis.WebGLDebugUtils)return Te.log.warn("webgl-debug not loaded")(),e;let r=lr(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...q,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,Li.bind(null,t),Gi.bind(null,t));for(let a in q)!(a in i)&&typeof q[a]=="number"&&(i[a]=q[a]);class s{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(s,i);let o=Object.create(s);return r.realContext=e,r.debugContext=o,o.luma=r,o.debug=!0,o}function cr(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function Li(e,t,r,i){i=Array.from(i).map(n=>n===void 0?"undefined":n);let s=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),a=`${s} in gl.${r}(${o})`;Te.log.error("%cWebGL","color: white; background: red; padding: 2px 6px; border-radius: 3px;",a)();debugger;throw new Error(a)}function Gi(e,t,r){let i="";e.traceWebGL&&Te.log.level>=1&&(i=cr(t,r),Te.log.info(1,"%cWebGL","color: white; background: blue; padding: 2px 6px; border-radius: 3px;",i)());for(let s of r)if(s===void 0){i=i||cr(t,r);debugger}}var Te,dr=R(()=>{Te=E(p(),1);Lt()});function Et(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function I(e,t,r){return t[e]!==void 0?t[e]:r[e]}var he,O,Tr,x,Rr,Re,hr,Ar,pt,H,ut,Sr,bt=R(()=>{he={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},O=(e,t,r)=>t?e.enable(r):e.disable(r),Tr=(e,t,r)=>e.hint(r,t),x=(e,t,r)=>e.pixelStorei(r,t),Rr=(e,t,r)=>{let i=r===36006?36009:36008;return e.bindFramebuffer(i,t)},Re=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};hr={[3042]:O,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:O,[2885]:(e,t)=>e.cullFace(t),[2929]:O,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:O,[35723]:Tr,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>e.bindTransformFeedback?.(36386,t),[34229]:(e,t)=>e.bindVertexArray(t),[36006]:Rr,[36010]:Rr,[34964]:Re,[36662]:Re,[36663]:Re,[35053]:Re,[35055]:Re,[2886]:(e,t)=>e.frontFace(t),[33170]:Tr,[2849]:(e,t)=>e.lineWidth(t),[32823]:O,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:O,[32926]:O,[32928]:O,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:O,[3088]:(e,t)=>e.scissor(...t),[2960]:O,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[34383]:O,[10754]:O,[12288]:O,[12289]:O,[12290]:O,[12291]:O,[12292]:O,[12293]:O,[12294]:O,[12295]:O,[3333]:x,[3317]:x,[37440]:x,[37441]:x,[37443]:x,[3330]:x,[3332]:x,[3331]:x,[3314]:x,[32878]:x,[3316]:x,[3315]:x,[32877]:x,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Et(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Et(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,n]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,o,a,n)},stencilOp:(e,t)=>{t=Et(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,n]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,o,a,n)},viewport:(e,t)=>e.viewport(...t)};Ar={blendEquation:(e,t,r)=>e.blendEquationSeparate(I(32777,t,r),I(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(I(32969,t,r),I(32968,t,r),I(32971,t,r),I(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(I(32824,t,r),I(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(I(32938,t,r),I(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,I(2962,t,r),I(2967,t,r),I(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,I(34816,t,r),I(36003,t,r),I(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,I(2964,t,r),I(2965,t,r),I(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,I(34817,t,r),I(34818,t,r),I(34819,t,r))},pt={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,s)=>e({[32773]:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,s)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:s}),clearColor:(e,t,r,i,s)=>e({[3106]:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,s)=>e({[3107]:[t,r,i,s]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,s)=>e({[3088]:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({[2978]:[t,r,i,s]})},H=(e,t)=>e.isEnabled(t),ut={[3042]:H,[2884]:H,[2929]:H,[3024]:H,[32823]:H,[32926]:H,[32928]:H,[3089]:H,[2960]:H,[35977]:H},Sr=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068])});function y(e,t){if(es(t))return;let r={};for(let s in t){let o=Number(s),a=hr[s];a&&(typeof a=="string"?r[a]=!0:a(e,t[s],o))}let i=e.lumaState?.cache;if(i)for(let s in r){let o=Ar[s];o(e,t,i)}}function Me(e,t=he){if(typeof t=="number"){let s=t,o=ut[s];return o?o(e,s):e.getParameter(s)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let s of r){let o=ut[s];i[s]=o?o(e,Number(s)):e.getParameter(Number(s))}return i}function gr(e){y(e,he)}function es(e){for(let t in e)return!1;return!0}var oe=R(()=>{bt()});function pr(e,t){if(e===t)return!0;if(Er(e)&&Er(t)&&e.length===t.length){for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}return!1}function Er(e){return Array.isArray(e)||ArrayBuffer.isView(e)}var ur=R(()=>{});function br(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||Sr.has(s))return r(s);let o=U.get(e);return s in o.cache||(o.cache[s]=r(s)),o.enable?o.cache[s]:r(s)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function ts(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(...o){let a=U.get(e),{valueChanged:n,oldValue:_}=r(a._updateCache,...o);return n&&i(...o),_},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function rs(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=U.get(e);s.program!==i&&(t(i),s.program=i)}}var U,Ct=R(()=>{oe();ur();bt();U=class{static get(t){return t.lumaState}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(t,r){this.gl=t,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){let t=this.stateStack[this.stateStack.length-1];y(this.gl,t),this.stateStack.pop()}trackState(t,r){if(this.cache=r?.copyState?Me(t):Object.assign({},he),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.lumaState=this,rs(t);for(let i in pt){let s=pt[i];ts(t,i,s)}br(t,"getParameter"),br(t,"isEnabled")}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){let a=t[o],n=this.cache[o];pr(a,n)||(r=!0,i=n,s&&!(o in s)&&(s[o]=n),this.cache[o]=a)}return{valueChanged:r,oldValue:i}}}});function Cr(e,t,r){let i="",s=_=>{let c=_.statusMessage;c&&(i||=c)};e.addEventListener("webglcontextcreationerror",s,!1);let o=r.failIfMajorPerformanceCaveat!==!0,a={preserveDrawingBuffer:!0,...r,failIfMajorPerformanceCaveat:!0},n=null;try{n||=e.getContext("webgl2",a),!n&&a.failIfMajorPerformanceCaveat&&(i||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow.");let _=!1;if(!n&&o&&(a.failIfMajorPerformanceCaveat=!1,n=e.getContext("webgl2",a),_=!0),n||(n=e.getContext("webgl",{}),n&&(n=null,i||="Your browser only supports WebGL1")),!n)throw i||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${i}`);let c=ee(n);c.softwareRenderer=_;let{onContextLost:l,onContextRestored:f}=t;return e.addEventListener("webglcontextlost",h=>l(h),!1),e.addEventListener("webglcontextrestored",h=>f(h),!1),n}finally{e.removeEventListener("webglcontextcreationerror",s,!1)}}var Ir=R(()=>{Fe()});function w(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}var Ae=R(()=>{});function Nr(e,t){let r=e.getParameter(7936),i=e.getParameter(7937);w(e,"WEBGL_debug_renderer_info",t);let s=t.WEBGL_debug_renderer_info,o=e.getParameter(s?s.UNMASKED_VENDOR_WEBGL:7936),a=e.getParameter(s?s.UNMASKED_RENDERER_WEBGL:7937),n=o||r,_=a||i,c=e.getParameter(7938),l=Or(n,_),f=is(n,_),h=ss(n,_);return{type:"webgl",gpu:l,gpuType:h,gpuBackend:f,vendor:n,renderer:_,version:c,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Or(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function is(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function ss(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(Or(e,t)){case"apple":return os(e,t)?"integrated":"unknown";case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function os(e,t){return/Apple (M\d|A\d|GPU)/i.test(`${e} ${t}`)}var Fr=R(()=>{Ae()});function Pe(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var It=R(()=>{});function Pr(e){return e in xe}function Pt(e,t,r){return Dr(e,t,r,new Set)}function Dr(e,t,r,i){let s=xe[t];if(!s||i.has(t))return!1;i.add(t);let o=(s.features||[]).every(a=>Dr(e,a,r,i));return i.delete(t),o?(s.extensions||[]).every(a=>Boolean(w(e,a,r))):!1}function xr(e,t,r){let i=t.create,s=ye[t.format];s?.gl===void 0&&(i=!1),s?.x&&(i=i&&Boolean(w(e,s.x,r))),t.format==="stencil8"&&(i=!1);let o=s?.r===!1?!1:s?.r===void 0||Pt(e,s.r,r),a=i&&t.render&&o&&Ts(e,t.format,r);return{format:t.format,create:i&&t.create,render:a,filter:i&&t.filter,blend:i&&t.blend,store:i&&t.store}}function Ts(e,t,r){let i=ye[t],s=i?.gl;if(s===void 0||i?.x&&!w(e,i.x,r))return!1;let o=e.getParameter(32873),a=e.getParameter(36006),n=e.createTexture(),_=e.createFramebuffer();if(!n||!_)return!1;let c=Number(0),l=Number(e.getError());for(;l!==c;)l=e.getError();let f=!1;try{if(e.bindTexture(3553,n),e.texStorage2D(3553,1,s,1,1),Number(e.getError())!==c)return!1;e.bindFramebuffer(36160,_),e.framebufferTexture2D(36160,36064,3553,n,0),f=Number(e.checkFramebufferStatus(36160))===Number(36053)&&Number(e.getError())===c}finally{e.bindFramebuffer(36160,a),e.deleteFramebuffer(_),e.bindTexture(3553,o),e.deleteTexture(n)}return f}function Ue(e){let t=ye[e],r=hs(e),i=Mt.textureFormatDecoder.getInfo(e);return i.compressed&&(t.dataFormat=r),{internalFormat:r,format:t?.dataFormat||Rs(i.channels,i.integer,i.normalized,r),type:i.dataType?Pe(i.dataType):t?.types?.[0]||5121,compressed:i.compressed||!1}}function yr(e){switch(Mt.textureFormatDecoder.getInfo(e).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${e}`)}}function Rs(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function hs(e){let r=ye[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}var Mt,Se,ge,ae,ne,as,ns,_s,cs,ls,fs,Br,Mr,Nt,Ot,Ft,Bt,De,ds,xe,ye,_e=R(()=>{Mt=E(p(),1);Ae();It();Se="WEBGL_compressed_texture_s3tc",ge="WEBGL_compressed_texture_s3tc_srgb",ae="EXT_texture_compression_rgtc",ne="EXT_texture_compression_bptc",as="WEBGL_compressed_texture_etc",ns="WEBGL_compressed_texture_astc",_s="WEBGL_compressed_texture_etc1",cs="WEBGL_compressed_texture_pvrtc",ls="WEBGL_compressed_texture_atc",fs="EXT_texture_norm16",Br="EXT_render_snorm",Mr="EXT_color_buffer_float",Nt="snorm8-renderable-webgl",Ot="norm16-renderable-webgl",Ft="snorm16-renderable-webgl",Bt="float16-renderable-webgl",De="float32-renderable-webgl",ds="rgb9e5ufloat-renderable-webgl",xe={"float32-renderable-webgl":{extensions:[Mr]},"float16-renderable-webgl":{extensions:["EXT_color_buffer_half_float"]},"rgb9e5ufloat-renderable-webgl":{extensions:["WEBGL_render_shared_exponent"]},"snorm8-renderable-webgl":{extensions:[Br]},"norm16-webgl":{extensions:[fs]},"norm16-renderable-webgl":{features:["norm16-webgl"]},"snorm16-renderable-webgl":{features:["norm16-webgl"],extensions:[Br]},"float32-filterable":{extensions:["OES_texture_float_linear"]},"float16-filterable-webgl":{extensions:["OES_texture_half_float_linear"]},"texture-filterable-anisotropic-webgl":{extensions:["EXT_texture_filter_anisotropic"]},"texture-blend-float-webgl":{extensions:["EXT_float_blend"]},"texture-compression-bc":{extensions:[Se,ge,ae,ne]},"texture-compression-bc5-webgl":{extensions:[ae]},"texture-compression-bc7-webgl":{extensions:[ne]},"texture-compression-etc2":{extensions:[as]},"texture-compression-astc":{extensions:[ns]},"texture-compression-etc1-webgl":{extensions:[_s]},"texture-compression-pvrtc-webgl":{extensions:[cs]},"texture-compression-atc-webgl":{extensions:[ls]}};ye={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756,r:Nt},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757,r:Nt},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0,r:Bt},r16unorm:{gl:33322,rb:!0,r:Ot},r16snorm:{gl:36760,r:Ft},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759,r:Nt},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0,r:Bt},rg16unorm:{gl:33324,r:Ot},rg16snorm:{gl:36761,r:Ft},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326,r:De},rgb9e5ufloat:{gl:35901,r:ds},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},rgb10a2uint:{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852,r:!1},"rgb16snorm-webgl":{gl:36762,r:!1},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0,r:De},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842,r:Bt},rgba16unorm:{gl:32859,rb:!0,r:Ot},rgba16snorm:{gl:36763,r:Ft},"rgb32float-webgl":{gl:34837,x:Mr,r:De,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0,r:De},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Se},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:ge},"bc1-rgba-unorm":{gl:33777,x:Se},"bc1-rgba-unorm-srgb":{gl:35916,x:ge},"bc2-rgba-unorm":{gl:33778,x:Se},"bc2-rgba-unorm-srgb":{gl:35918,x:ge},"bc3-rgba-unorm":{gl:33779,x:Se},"bc3-rgba-unorm-srgb":{gl:35919,x:ge},"bc4-r-unorm":{gl:36283,x:ae},"bc4-r-snorm":{gl:36284,x:ae},"bc5-rg-unorm":{gl:36285,x:ae},"bc5-rg-snorm":{gl:36286,x:ae},"bc6h-rgb-ufloat":{gl:36495,x:ne},"bc6h-rgb-float":{gl:36494,x:ne},"bc7-rgba-unorm":{gl:36492,x:ne},"bc7-rgba-unorm-srgb":{gl:36493,x:ne},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37816},"astc-10x5-unorm-srgb":{gl:37848},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rgb2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}}});var wr,Ur,we,vr=R(()=>{wr=E(p(),1);Ae();_e();Ur={"depth-clip-control":"EXT_depth_clamp","timestamp-query":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},we=class extends wr.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,i){super([],i),this.gl=t,this.extensions=r,w(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let t=this.getFeatures();for(let r of t)this.has(r)&&(yield r);return[]}has(t){return this.disabledFeatures?.[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),Pr(t)&&Pt(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){let t=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of t)this.has(r)}getFeatures(){return[...Object.keys(Ur),...Object.keys(xe)]}getWebGLFeature(t){let r=Ur[t];return Boolean(typeof r=="string"?w(this.gl,r,this.extensions):r)}}});var mr,ve,Xr=R(()=>{mr=E(p(),1),ve=class extends mr.DeviceLimits{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderVariables(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(t){super(),this.gl=t}getParameter(t){return this.limits[t]===void 0&&(this.limits[t]=this.gl.getParameter(t)),this.limits[t]||0}}});function As(e){return e<34069?e+34069:e}function Ss(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var Wr,V,me=R(()=>{Wr=E(p(),1);_e();V=class extends Wr.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(t,r){super(t,r);let i=r.handle===null;this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),i||(t._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.autoCreateAttachmentTextures(),this.updateAttachments())}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let t=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let i=this.colorAttachments[r];if(i){let s=36064+r;this._attachTextureView(s,i)}}if(this.depthStencilAttachment){let r=yr(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${Ss(r)}`)}this.gl.bindFramebuffer(36160,t)}_attachTextureView(t,r){let{gl:i}=this.device,{texture:s}=r,o=r.props.baseMipLevel,a=r.props.baseArrayLayer;switch(i.bindTexture(s.glTarget,s.handle),s.glTarget){case 35866:case 32879:i.framebufferTextureLayer(36160,t,s.handle,o,a);break;case 34067:let n=As(a);i.framebufferTexture2D(36160,t,n,s.handle,o);break;case 3553:i.framebufferTexture2D(36160,t,3553,s.handle,o);break;default:throw new Error("Illegal texture type")}i.bindTexture(s.glTarget,null)}resizeAttachments(t,r){if(this.handle===null){this.width=t,this.height=r;return}super.resizeAttachments(t,r)}}});var Hr,Xe,Vr=R(()=>{Hr=E(p(),1);me();Xe=class extends Hr.CanvasContext{device;handle=null;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(t,r){super(r),this.device=t,this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this._configureDevice()}_configureDevice(){(this.drawingBufferWidth!==this._framebuffer?.width||this.drawingBufferHeight!==this._framebuffer?.height)&&this._framebuffer?.resize([this.drawingBufferWidth,this.drawingBufferHeight])}_getCurrentFramebuffer(){return this._framebuffer||=new V(this.device,{id:"canvas-context-framebuffer",handle:null,width:this.drawingBufferWidth,height:this.drawingBufferHeight}),this._framebuffer}}});var kr,We,Kr=R(()=>{kr=E(p(),1),We=class extends kr.PresentationContext{device;handle=null;context2d;get[Symbol.toStringTag](){return"WebGLPresentationContext"}constructor(t,r={}){super(r),this.device=t;let i=`${this[Symbol.toStringTag]}(${this.id})`;if(!this.device.getDefaultCanvasContext().offscreenCanvas)throw new Error(`${i}: WebGL PresentationContext requires the default CanvasContext canvas to be an OffscreenCanvas`);let o=this.canvas.getContext("2d");if(!o)throw new Error(`${i}: Failed to create 2d presentation context`);this.context2d=o,this._setAutoCreatedCanvasId(`${this.device.id}-presentation-canvas`),this._configureDevice(),this._startObservers()}present(){this._resizeDrawingBufferIfNeeded(),this.device.submit();let t=this.device.getDefaultCanvasContext(),[r,i]=t.getDrawingBufferSize();if(!(this.drawingBufferWidth===0||this.drawingBufferHeight===0||r===0||i===0||t.canvas.width===0||t.canvas.height===0)){if(r!==this.drawingBufferWidth||i!==this.drawingBufferHeight||t.canvas.width!==this.drawingBufferWidth||t.canvas.height!==this.drawingBufferHeight)throw new Error(`${this[Symbol.toStringTag]}(${this.id}): Default canvas context size ${r}x${i} does not match presentation size ${this.drawingBufferWidth}x${this.drawingBufferHeight}`);this.context2d.clearRect(0,0,this.drawingBufferWidth,this.drawingBufferHeight),this.context2d.drawImage(t.canvas,0,0)}}_configureDevice(){}_getCurrentFramebuffer(t){let r=this.device.getDefaultCanvasContext();return r.setDrawingBufferSize(this.drawingBufferWidth,this.drawingBufferHeight),r.getCurrentFramebuffer(t)}}});function Yr(e="id"){Dt[e]=Dt[e]||1;let t=Dt[e]++;return`${e}-${t}`}var Dt,$r=R(()=>{Dt={}});function gs(e){return e&J.Buffer.INDEX?34963:e&J.Buffer.VERTEX?34962:e&J.Buffer.UNIFORM?35345:34962}function Es(e){return e&J.Buffer.INDEX||e&J.Buffer.VERTEX?35044:e&J.Buffer.UNIFORM?35048:35044}var J,v,He=R(()=>{J=E(p(),1),v=class extends J.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength=0;bytesUsed=0;constructor(t,r={}){super(t,r),this.device=t,this.gl=this.device.gl;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t._setWebGLDebugMetadata(this.handle,this,{spector:{...this.props,data:typeof this.props.data}}),this.glTarget=gs(this.props.usage),this.glUsage=Es(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Buffer"):(this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle)),this.destroyed=!0,this.handle=null)}_initWithData(t,r=0,i=t.byteLength+r){let s=this.glTarget;this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.props.handle?this.trackReferencedMemory(i,"Buffer"):this.trackAllocatedMemory(i)}_initWithByteLength(t){let r=t;t===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.props.handle?this.trackReferencedMemory(t,"Buffer"):this.trackAllocatedMemory(t),this}write(t,r=0){let i=ArrayBuffer.isView(t)?t:new Uint8Array(t),s=0,o=void 0,a=36663;this.gl.bindBuffer(a,this.handle),s!==0||o!==void 0?this.gl.bufferSubData(a,r,i,s,o):this.gl.bufferSubData(a,r,i),this.gl.bindBuffer(a,null),this._setDebugData(t,r,t.byteLength)}async mapAndWriteAsync(t,r=0,i=this.byteLength-r){let s=new ArrayBuffer(i);await t(s,"copied"),this.write(s,r)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}async mapAndReadAsync(t,r=0,i){let s=await this.readAsync(r,i);return await t(s.buffer,"copied")}readSyncWebGL(t=0,r){r=r??this.byteLength-t;let i=new Uint8Array(r),s=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,i,s,r),this.gl.bindBuffer(36662,null),this._setDebugData(i,t,r),i}}});function Qr(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.trim(),o=i.split(":"),a=o[0]?.trim();if(o.length===2){let[T,A]=o;if(!T||!A){r.push({message:s,type:Ve(a||"info"),lineNum:0,linePos:0});continue}r.push({message:A.trim(),type:Ve(T),lineNum:0,linePos:0});continue}let[n,_,c,...l]=o;if(!n||!_||!c){r.push({message:o.slice(1).join(":").trim()||s,type:Ve(a||"info"),lineNum:0,linePos:0});continue}let f=parseInt(c,10);Number.isNaN(f)&&(f=0);let h=parseInt(_,10);Number.isNaN(h)&&(h=0),r.push({message:l.join(":").trim(),type:Ve(n),lineNum:f,linePos:h})}return r}function Ve(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var zr=R(()=>{});var Ee,ke,Zr=R(()=>{Ee=E(p(),1);zr();ke=class extends Ee.Shader{device;handle;constructor(t,r){switch(super(t,r),this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}t._setWebGLDebugMetadata(this.handle,this,{spector:this.props});let i=this._compile(this.source);i&&typeof i.catch=="function"&&i.catch(()=>{this.compilationStatus="error"})}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0,this.handle.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>(this._getCompilationStatus(),this.compilationStatus))}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?Qr(t):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}_compile(t){t=t.startsWith("#version ")?t:`#version 300 es
|
|
8
|
+
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}return Ee.log.once(1,"Shader compilation is asynchronous")(),this._waitForCompilationComplete().then(()=>{Ee.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()})}async _waitForCompilationComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}});function Jr(e,t,r,i){if(Cs(t))return i(e);let s=e;s.pushState();try{return ps(e,t),y(s.gl,r),i(e)}finally{s.popState()}}function ps(e,t){let r=e,{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(te("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&(i.enable(32823),i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,a=te("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,a=te("polygonMode",t.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,a),o?.polygonModeWEBGL(1029,a)}t.polygonOffsetLine&&i.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&i.enable(12288),t.clipDistance1&&i.enable(12289),t.clipDistance2&&i.enable(12290),t.clipDistance3&&i.enable(12291),t.clipDistance4&&i.enable(12292),t.clipDistance5&&i.enable(12293),t.clipDistance6&&i.enable(12294),t.clipDistance7&&i.enable(12295)),t.depthWriteEnabled!==void 0&&i.depthMask(bs("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(Ye("depthCompare",t.depthCompare))),t.clearDepth!==void 0&&i.clearDepth(t.clearDepth),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&qr.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=Ye("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,s),i.stencilFuncSeparate(1029,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=xt("stencilPassOperation",t.stencilPassOperation),o=xt("stencilFailOperation",t.stencilFailOperation),a=xt("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}switch(t.blend){case!0:i.enable(3042);break;case!1:i.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let s=jr("blendColorOperation",t.blendColorOperation||"add"),o=jr("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(s,o);let a=Ke("blendColorSrcFactor",t.blendColorSrcFactor||"one"),n=Ke("blendColorDstFactor",t.blendColorDstFactor||"zero"),_=Ke("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),c=Ke("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(a,n,_,c)}}function Ye(e,t){return te(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function xt(e,t){return te(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function jr(e,t){return te(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Ke(e,t,r="color"){return te(e,t,{one:1,zero:0,src:768,"one-minus-src":769,dst:774,"one-minus-dst":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,constant:r==="color"?32769:32771,"one-minus-constant":r==="color"?32770:32772,src1:768,"one-minus-src1":769,"src1-alpha":770,"one-minus-src1-alpha":771})}function us(e,t){return`Illegal parameter ${t} for ${e}`}function te(e,t,r){if(!(t in r))throw new Error(us(e,t));return r[t]}function bs(e,t){return t}function Cs(e){let t=!0;for(let r in e){t=!1;break}return t}var qr,yt=R(()=>{qr=E(p(),1);oe()});function $e(e){let t={};return e.addressModeU&&(t[10242]=Ut(e.addressModeU)),e.addressModeV&&(t[10243]=Ut(e.addressModeV)),e.addressModeW&&(t[32882]=Ut(e.addressModeW)),e.magFilter&&(t[10240]=wt(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Is(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=Ye("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Ut(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function wt(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Is(e,t="none"){if(!t)return wt(e);switch(t){case"none":return wt(e);case"nearest":switch(e){case"nearest":return 9984;case"linear":return 9985}break;case"linear":switch(e){case"nearest":return 9986;case"linear":return 9987}}}var vt=R(()=>{yt()});var Lr,Qe,Gr=R(()=>{Lr=E(p(),1);vt();Qe=class extends Lr.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=$e(r),this.handle=r.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let s=Number(r);switch(s){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,s,i);break;default:this.device.gl.samplerParameteri(this.handle,s,i);break}}}}});function k(e,t,r){if(Ns(t))return r(e);let{nocatch:i=!0}=t,s=U.get(e);s.push(),y(e,t);let o;if(i)o=r(e),s.pop();else try{o=r(e)}finally{s.pop()}return o}function Ns(e){for(let t in e)return!1;return!0}var ze=R(()=>{oe();Ct()});var Ze,K,mt=R(()=>{Ze=E(p(),1),K=class extends Ze.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...Ze.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}}});function je(e){return Os[e]}var Os,Xt=R(()=>{Os={[5124]:"sint32",[5125]:"uint32",[5122]:"sint16",[5123]:"uint16",[5120]:"sint8",[5121]:"uint8",[5126]:"float32",[5131]:"float16",[33635]:"uint16",[32819]:"uint16",[32820]:"uint16",[33640]:"uint32",[35899]:"uint32",[35902]:"uint32",[34042]:"uint32",[36269]:"uint32"}});function Fs(e,t=0){return t?new e.constructor(e.buffer,e.byteOffset+t,(e.byteLength-t)/e.BYTES_PER_ELEMENT):e}function Bs(e,t){if(t%e.BYTES_PER_ELEMENT!==0)throw new Error(`Texture byteOffset ${t} must align to typed array element size ${e.BYTES_PER_ELEMENT}`);return t/e.BYTES_PER_ELEMENT}function Ms(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function qe(e,t,r){return t==="cube"?34069+r:e}var L,Y,Je=R(()=>{L=E(p(),1);_e();vt();ze();mt();Xt();Y=class extends L.Texture{device;gl;handle;sampler=void 0;view;glTarget;glFormat;glType;glInternalFormat;compressed;_textureUnit=0;_framebuffer=null;_framebufferAttachmentKey=null;constructor(t,r){super(t,r,{byteAlignment:1}),this.device=t,this.gl=this.device.gl;let i=Ue(this.props.format);this.glTarget=Ms(this.props.dimension),this.glInternalFormat=i.internalFormat,this.glFormat=i.format,this.glType=i.type,this.compressed=i.compressed,this.handle=this.props.handle||this.gl.createTexture(),this.device._setWebGLDebugMetadata(this.handle,this,{spector:this.props}),this.gl.bindTexture(this.glTarget,this.handle);let{dimension:s,width:o,height:a,depth:n,mipLevels:_,glTarget:c,glInternalFormat:l}=this;if(!this.compressed)switch(s){case"2d":case"cube":this.gl.texStorage2D(c,_,l,o,a);break;case"2d-array":case"3d":this.gl.texStorage3D(c,_,l,o,a,n);break;default:throw new Error(s)}this.gl.bindTexture(this.glTarget,null),this._initializeData(r.data),this.props.handle?this.trackReferencedMemory(this.getAllocatedByteLength(),"Texture"):this.trackAllocatedMemory(this.getAllocatedByteLength(),"Texture"),this.setSampler(this.props.sampler),this.view=new K(this.device,{...this.props,texture:this}),Object.seal(this)}destroy(){this.handle&&(this._framebuffer?.destroy(),this._framebuffer=null,this._framebufferAttachmentKey=null,this.removeStats(),this.props.handle?this.trackDeallocatedReferencedMemory("Texture"):(this.gl.deleteTexture(this.handle),this.trackDeallocatedMemory("Texture")),this.destroyed=!0)}createView(t){return new K(this.device,{...t,texture:this})}setSampler(t={}){super.setSampler(t);let r=$e(this.sampler.props);this._setSamplerParameters(r)}copyExternalImage(t){let r=this._normalizeCopyExternalImageOptions(t);if(r.sourceX||r.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");let{glFormat:i,glType:s}=this,{image:o,depth:a,mipLevel:n,x:_,y:c,z:l,width:f,height:h}=r,T=qe(this.glTarget,this.dimension,l),A=r.flipY?{[37440]:!0}:{};return this.gl.bindTexture(this.glTarget,this.handle),k(this.gl,A,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(T,n,_,c,f,h,i,s,o);break;case"2d-array":case"3d":this.gl.texSubImage3D(T,n,_,c,l,f,h,a,i,s,o);break;default:}}),this.gl.bindTexture(this.glTarget,null),{width:r.width,height:r.height}}copyImageData(t){super.copyImageData(t)}readBuffer(t={},r){if(!r)throw new Error(`${this} readBuffer requires a destination buffer`);let i=this._getSupportedColorReadOptions(t),s=t.byteOffset??0,o=this.computeMemoryLayout(i);if(r.byteLength<s+o.byteLength)throw new Error(`${this} readBuffer target is too small (${r.byteLength} < ${s+o.byteLength})`);let a=r;this.gl.bindBuffer(35051,a.handle);try{this._readColorTextureLayers(i,o,n=>{this.gl.readPixels(i.x,i.y,i.width,i.height,this.glFormat,this.glType,s+n)})}finally{this.gl.bindBuffer(35051,null)}return r}async readDataAsync(t={}){throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`)}writeBuffer(t,r={}){let i=this._normalizeTextureWriteOptions(r),{width:s,height:o,depthOrArrayLayers:a,mipLevel:n,byteOffset:_,x:c,y:l,z:f}=i,{glFormat:h,glType:T,compressed:A}=this,g=qe(this.glTarget,this.dimension,f);if(A)throw new Error("writeBuffer for compressed textures is not implemented in WebGL");let{bytesPerPixel:u}=this.device.getTextureFormatInfo(this.format),b=u?i.bytesPerRow/u:void 0,B={[3317]:this.byteAlignment,...b!==void 0?{[3314]:b}:{},[32878]:i.rowsPerImage};this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,t.handle),k(this.gl,B,()=>{switch(this.dimension){case"2d":case"cube":this.gl.texSubImage2D(g,n,c,l,s,o,h,T,_);break;case"2d-array":case"3d":this.gl.texSubImage3D(g,n,c,l,f,s,o,a,h,T,_);break;default:}}),this.gl.bindBuffer(35052,null),this.gl.bindTexture(this.glTarget,null)}writeData(t,r={}){let i=this._normalizeTextureWriteOptions(r),s=ArrayBuffer.isView(t)?t:new Uint8Array(t),{width:o,height:a,depthOrArrayLayers:n,mipLevel:_,x:c,y:l,z:f,byteOffset:h}=i,{glFormat:T,glType:A,compressed:g}=this,u=qe(this.glTarget,this.dimension,f),b;if(!g){let{bytesPerPixel:d}=this.device.getTextureFormatInfo(this.format);d&&(b=i.bytesPerRow/d)}let B=this.compressed?{}:{[3317]:this.byteAlignment,...b!==void 0?{[3314]:b}:{},[32878]:i.rowsPerImage},$=Bs(s,h),X=g?Fs(s,h):s,Z=this._getMipLevelSize(_),ie=c===0&&l===0&&f===0&&o===Z.width&&a===Z.height&&n===Z.depthOrArrayLayers;this.gl.bindTexture(this.glTarget,this.handle),this.gl.bindBuffer(35052,null),k(this.gl,B,()=>{switch(this.dimension){case"2d":case"cube":g?ie?this.gl.compressedTexImage2D(u,_,T,o,a,0,X):this.gl.compressedTexSubImage2D(u,_,c,l,o,a,T,X):this.gl.texSubImage2D(u,_,c,l,o,a,T,A,s,$);break;case"2d-array":case"3d":g?ie?this.gl.compressedTexImage3D(u,_,T,o,a,n,0,X):this.gl.compressedTexSubImage3D(u,_,c,l,f,o,a,n,T,X):this.gl.texSubImage3D(u,_,c,l,f,o,a,n,T,A,s,$);break;default:}}),this.gl.bindTexture(this.glTarget,null)}_getRowByteAlignment(t,r){return 1}_getFramebuffer(){return this._framebuffer||=this.device.createFramebuffer({id:`framebuffer-for-${this.id}`,width:this.width,height:this.height,colorAttachments:[this]}),this._framebuffer}readDataSyncWebGL(t={}){let r=this._getSupportedColorReadOptions(t),i=this.computeMemoryLayout(r),s=je(this.glType),o=(0,L.getTypedArrayConstructor)(s),a=new o(i.byteLength/o.BYTES_PER_ELEMENT);return this._readColorTextureLayers(r,i,n=>{let _=new o(a.buffer,a.byteOffset+n,i.bytesPerImage/o.BYTES_PER_ELEMENT);this.gl.readPixels(r.x,r.y,r.width,r.height,this.glFormat,this.glType,_)}),a.buffer}_readColorTextureLayers(t,r,i){let s=this._getFramebuffer(),o=r.bytesPerRow/r.bytesPerPixel,a={[3333]:this.byteAlignment,...o!==t.width?{[3330]:o}:{}},n=this.gl.getParameter(3074),_=this.gl.bindFramebuffer(36160,s.handle);try{this.gl.readBuffer(36064),k(this.gl,a,()=>{for(let c=0;c<t.depthOrArrayLayers;c++)this._attachReadSubresource(s,t.mipLevel,t.z+c),i(c*r.bytesPerImage)})}finally{this.gl.bindFramebuffer(36160,_||null),this.gl.readBuffer(n)}}_attachReadSubresource(t,r,i){let s=`${r}:${i}`;if(this._framebufferAttachmentKey!==s){switch(this.dimension){case"2d":this.gl.framebufferTexture2D(36160,36064,3553,this.handle,r);break;case"cube":this.gl.framebufferTexture2D(36160,36064,qe(this.glTarget,this.dimension,i),this.handle,r);break;case"2d-array":case"3d":this.gl.framebufferTextureLayer(36160,36064,this.handle,r,i);break;default:throw new Error(`${this} color readback does not support ${this.dimension} textures`)}if(this.device.props.debug){let o=Number(this.gl.checkFramebufferStatus(36160));if(o!==Number(36053))throw new Error(`${t} incomplete for ${this} readback (${o})`)}this._framebufferAttachmentKey=s}}generateMipmapsWebGL(t){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(L.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!t?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(i){L.log.warn(`Error generating mipmap for ${this}: ${i.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}_setSamplerParameters(t){L.log.log(2,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,i]of Object.entries(t)){let s=Number(r),o=i;switch(s){case 33082:case 33083:this.gl.texParameterf(this.glTarget,s,o);break;case 10240:case 10241:this.gl.texParameteri(this.glTarget,s,o);break;case 10242:case 10243:case 32882:this.gl.texParameteri(this.glTarget,s,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,s,o);break;case 34892:case 34893:this.gl.texParameteri(this.glTarget,s,o);break}}this.gl.bindTexture(this.glTarget,null)}_getActiveUnit(){return this.gl.getParameter(34016)-33984}_bind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}_unbind(t){let{gl:r}=this;return t!==void 0&&(this._textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}}});function ei(e,t,r,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let a=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,a);case 35664:return e.uniform2fv(t,a);case 35665:return e.uniform3fv(t,a);case 35666:return e.uniform4fv(t,a);case 5124:return e.uniform1iv(t,a);case 35667:return e.uniform2iv(t,a);case 35668:return e.uniform3iv(t,a);case 35669:return e.uniform4iv(t,a);case 35670:return e.uniform1iv(t,a);case 35671:return e.uniform2iv(t,a);case 35672:return e.uniform3iv(t,a);case 35673:return e.uniform4iv(t,a);case 5125:return s.uniform1uiv(t,a,1);case 36294:return s.uniform2uiv(t,a,2);case 36295:return s.uniform3uiv(t,a,3);case 36296:return s.uniform4uiv(t,a,4);case 35674:return e.uniformMatrix2fv(t,!1,a);case 35675:return e.uniformMatrix3fv(t,!1,a);case 35676:return e.uniformMatrix4fv(t,!1,a);case 35685:return s.uniformMatrix2x3fv(t,!1,a);case 35686:return s.uniformMatrix2x4fv(t,!1,a);case 35687:return s.uniformMatrix3x2fv(t,!1,a);case 35688:return s.uniformMatrix3x4fv(t,!1,a);case 35689:return s.uniformMatrix4x2fv(t,!1,a);case 35690:return s.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}var ti=R(()=>{});function ri(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function ii(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var Wt=R(()=>{});function Ps(e,t){let r={...e,attributes:e.attributes.map(i=>({...i})),bindings:e.bindings.map(i=>({...i}))};for(let i of t?.attributes||[]){let s=r.attributes.find(o=>o.name===i.name);s?(s.type=i.type||s.type,s.stepMode=i.stepMode||s.stepMode):F.log.warn(`shader layout attribute ${i.name} not present in shader`)}for(let i of t?.bindings||[]){let s=oi(r,i.name);if(!s){F.log.warn(`shader layout binding ${i.name} not present in shader`);continue}Object.assign(s,i)}return r}function oi(e,t){return e.bindings.find(r=>r.name===t||r.name===`${t}Uniforms`||`${r.name}Uniforms`===t)}function si(e,t){return e[t]||e[`${t}Uniforms`]||e[t.replace(/Uniforms$/,"")]}var F,Le,ai=R(()=>{F=E(p(),1);yt();ti();He();me();Je();mt();Wt();Le=class extends F.RenderPipeline{device;handle;vs;fs;introspectedLayout;bindings={};uniforms={};varyings=null;_uniformCount=0;_uniformSetters={};get[Symbol.toStringTag](){return"WEBGLRenderPipeline"}constructor(t,r){super(t,r),this.device=t;let i=this.sharedRenderPipeline||this.device._createSharedRenderPipelineWebGL(r);this.sharedRenderPipeline=i,this.handle=i.handle,this.vs=i.vs,this.fs=i.fs,this.linkStatus=i.linkStatus,this.introspectedLayout=i.introspectedLayout,this.device._setWebGLDebugMetadata(this.handle,this,{spector:{id:this.props.id}}),this.shaderLayout=r.shaderLayout?Ps(this.introspectedLayout,r.shaderLayout):this.introspectedLayout}destroy(){this.destroyed||(this.sharedRenderPipeline&&!this.props._sharedRenderPipeline&&this.sharedRenderPipeline.destroy(),this.destroyResource())}setBindings(t,r){let i=(0,F.flattenBindingsByGroup)((0,F.normalizeBindingsByGroup)(this.shaderLayout,t));for(let[s,o]of Object.entries(i)){let a=oi(this.shaderLayout,s);if(a){switch(o||F.log.warn(`Unsetting binding "${s}" in render pipeline "${this.id}"`)(),a.type){case"uniform":if(!(o instanceof v)&&!(o.buffer instanceof v))throw new Error("buffer value");break;case"texture":if(!(o instanceof K||o instanceof Y||o instanceof V))throw new Error(`${this} Bad texture binding for ${s}`);break;case"sampler":F.log.warn(`Ignoring sampler ${s}`)();break;default:throw new Error(a.type)}this.bindings[s]=o}else{let n=this.shaderLayout.bindings.map(_=>`"${_.name}"`).join(", ");r?.disableWarnings||F.log.warn(`No binding "${s}" in render pipeline "${this.id}", expected one of ${n}`,o)()}}}draw(t){this._syncLinkStatus();let r=t.bindGroups?(0,F.flattenBindingsByGroup)(t.bindGroups):t.bindings||this.bindings,{renderPass:i,parameters:s=this.props.parameters,topology:o=this.props.topology,vertexArray:a,vertexCount:n,instanceCount:_,isInstanced:c=!1,firstVertex:l=0,transformFeedback:f,uniforms:h=this.uniforms}=t,T=ri(o),A=Boolean(a.indexBuffer),g=a.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return F.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable(r))return F.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),a.bindBeforeRender(i),f&&f.begin(this.props.topology),this._applyBindings(r,{disableWarnings:this.props.disableWarnings}),this._applyUniforms(h);let u=i;return Jr(this.device,s,u.glParameters,()=>{A&&c?this.device.gl.drawElementsInstanced(T,n||0,g,l,_||0):A?this.device.gl.drawElements(T,n||0,g,l):c?this.device.gl.drawArraysInstanced(T,l,n||0,_||0):this.device.gl.drawArrays(T,l,n||0),f&&f.end()}),a.unbindAfterRender(i),!0}_areTexturesRenderable(t){let r=!0;for(let i of this.shaderLayout.bindings)si(t,i.name)||(F.log.warn(`Binding ${i.name} not found in ${this.id}`)(),r=!1);return r}_applyBindings(t,r){if(this._syncLinkStatus(),this.linkStatus!=="success")return;let{gl:i}=this.device;i.useProgram(this.handle);let s=0,o=0;for(let a of this.shaderLayout.bindings){let n=si(t,a.name);if(!n)throw new Error(`No value for binding ${a.name} in ${this.id}`);switch(a.type){case"uniform":let{name:_}=a,c=i.getUniformBlockIndex(this.handle,_);if(c===4294967295)throw new Error(`Invalid uniform block name ${_}`);if(i.uniformBlockBinding(this.handle,c,o),n instanceof v)i.bindBufferBase(35345,o,n.handle);else{let f=n;i.bindBufferRange(35345,o,f.buffer.handle,f.offset||0,f.size||f.buffer.byteLength-(f.offset||0))}o+=1;break;case"texture":if(!(n instanceof K||n instanceof Y||n instanceof V))throw new Error("texture");let l;if(n instanceof K)l=n.texture;else if(n instanceof Y)l=n;else if(n instanceof V&&n.colorAttachments[0]instanceof K)F.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=n.colorAttachments[0].texture;else throw new Error("No texture");i.activeTexture(33984+s),i.bindTexture(l.glTarget,l.handle),s+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${a.type}' not supported in WebGL`)}}}_applyUniforms(t){for(let r of this.shaderLayout.uniforms||[]){let{name:i,location:s,type:o,textureUnit:a}=r,n=t[i]??a;n!==void 0&&ei(this.device.gl,s,o,n)}}_syncLinkStatus(){this.linkStatus=this.sharedRenderPipeline.linkStatus}}});function ni(e){return xs[e]}function Ge(e){return Ds[e]}function et(e){return Boolean(ci[e])}function _i(e){return ci[e]}var Ds,ci,xs,tt=R(()=>{Ds={[5126]:"f32",[35664]:"vec2<f32>",[35665]:"vec3<f32>",[35666]:"vec4<f32>",[5124]:"i32",[35667]:"vec2<i32>",[35668]:"vec3<i32>",[35669]:"vec4<i32>",[5125]:"u32",[36294]:"vec2<u32>",[36295]:"vec3<u32>",[36296]:"vec4<u32>",[35670]:"f32",[35671]:"vec2<f32>",[35672]:"vec3<f32>",[35673]:"vec4<f32>",[35674]:"mat2x2<f32>",[35685]:"mat2x3<f32>",[35686]:"mat2x4<f32>",[35687]:"mat3x2<f32>",[35675]:"mat3x3<f32>",[35688]:"mat3x4<f32>",[35689]:"mat4x2<f32>",[35690]:"mat4x3<f32>",[35676]:"mat4x4<f32>"},ci={[35678]:{viewDimension:"2d",sampleType:"float"},[35680]:{viewDimension:"cube",sampleType:"float"},[35679]:{viewDimension:"3d",sampleType:"float"},[35682]:{viewDimension:"3d",sampleType:"depth"},[36289]:{viewDimension:"2d-array",sampleType:"float"},[36292]:{viewDimension:"2d-array",sampleType:"depth"},[36293]:{viewDimension:"cube",sampleType:"float"},[36298]:{viewDimension:"2d",sampleType:"sint"},[36299]:{viewDimension:"3d",sampleType:"sint"},[36300]:{viewDimension:"cube",sampleType:"sint"},[36303]:{viewDimension:"2d-array",sampleType:"uint"},[36306]:{viewDimension:"2d",sampleType:"uint"},[36307]:{viewDimension:"3d",sampleType:"uint"},[36308]:{viewDimension:"cube",sampleType:"uint"},[36311]:{viewDimension:"2d-array",sampleType:"uint"}},xs={uint8:5121,sint8:5120,unorm8:5121,snorm8:5120,uint16:5123,sint16:5122,unorm16:5123,snorm16:5122,uint32:5125,sint32:5124,float16:5131,float32:5126}});function li(e,t){let r={attributes:[],bindings:[]};r.attributes=ys(e,t);let i=vs(e,t);for(let n of i){let _=n.uniforms.map(c=>({name:c.name,format:c.format,byteOffset:c.byteOffset,byteStride:c.byteStride,arrayLength:c.arrayLength}));r.bindings.push({type:"uniform",name:n.name,group:0,location:n.location,visibility:(n.vertex?1:0)&(n.fragment?2:0),minBindingSize:n.byteLength,uniforms:_})}let s=ws(e,t),o=0;for(let n of s)if(et(n.type)){let{viewDimension:_,sampleType:c}=_i(n.type);r.bindings.push({type:"texture",name:n.name,group:0,location:o,viewDimension:_,sampleType:c}),n.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=Us(e,t);return a?.length&&(r.varyings=a),r}function ys(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:n}=o,_=e.getAttribLocation(t,a);if(_>=0){let c=Ge(n),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:_,stepMode:l,type:c})}}return r.sort((s,o)=>s.location-o.location),r}function Us(e,t){let r=[],i=e.getProgramParameter(t,35971);for(let s=0;s<i;s++){let o=e.getTransformFeedbackVarying(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:n,size:_}=o,c=Ge(n),{type:l,components:f}=(0,ce.getVariableShaderTypeInfo)(c);r.push({location:s,name:a,type:l,size:_*f})}return r.sort((s,o)=>s.location-o.location),r}function ws(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:a,size:n,type:_}=o,{name:c,isArray:l}=ms(a),f=e.getUniformLocation(t,c),h={location:f,name:c,size:n,type:_,isArray:l};if(r.push(h),h.size>1)for(let T=0;T<h.size;T++){let A=`${c}[${T}]`;f=e.getUniformLocation(t,A);let g={...h,name:A,location:f};r.push(g)}}return r}function vs(e,t){let r=(o,a)=>e.getActiveUniformBlockParameter(t,o,a),i=[],s=e.getProgramParameter(t,35382);for(let o=0;o<s;o++){let a={name:e.getActiveUniformBlockName(t,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},n=r(o,35395)||[],_=e.getActiveUniforms(t,n,35383),c=e.getActiveUniforms(t,n,35384),l=e.getActiveUniforms(t,n,35387),f=e.getActiveUniforms(t,n,35388);for(let A=0;A<a.uniformCount;++A){let g=n[A];if(g!==void 0){let u=e.getActiveUniform(t,g);if(!u)throw new Error("activeInfo");let b=Ge(_[A]);a.uniforms.push({name:u.name,format:b,type:_[A],arrayLength:c[A],byteOffset:l[A],byteStride:f[A]})}}let h=new Set(a.uniforms.map(A=>A.name.split(".")[0]).filter(A=>Boolean(A))),T=a.name.replace(/Uniforms$/,"");if(h.size===1&&!h.has(a.name)&&!h.has(T)){let[A]=h;ce.log.warn(`Uniform block "${a.name}" uses GLSL instance "${A}". luma.gl binds uniform buffers by block name ("${a.name}") and alias ("${T}"). Prefer matching the instance name to one of those to avoid confusing silent mismatches.`)()}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}function ms(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);return{name:(0,ce.assertDefined)(r?.[1],`Failed to parse GLSL uniform name ${e}`),length:r?.[2]?1:0,isArray:Boolean(r?.[2])}}var ce,fi=R(()=>{ce=E(p(),1);tt()});var z,di,rt,Ti=R(()=>{z=E(p(),1);fi();tt();di=4,rt=class extends z.SharedRenderPipeline{device;handle;vs;fs;introspectedLayout={attributes:[],bindings:[],uniforms:[]};linkStatus="pending";constructor(t,r){super(t,r),this.device=t,this.handle=r.handle||this.device.gl.createProgram(),this.vs=r.vs,this.fs=r.fs,r.varyings&&r.varyings.length>0&&this.device.gl.transformFeedbackVaryings(this.handle,r.varyings,r.bufferMode||35981),this._linkShaders(),z.log.time(3,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=li(this.device.gl,this.handle),z.log.timeEnd(3,`RenderPipeline ${this.id} - shaderLayout introspection`)()}destroy(){this.destroyed||(this.device.gl.useProgram(null),this.device.gl.deleteProgram(this.handle),this.handle.destroyed=!0,this.destroyResource())}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),z.log.time(di,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),z.log.timeEnd(di,`linkProgram for ${this.id}`)(),!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}z.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),z.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:let r=t==="link-error"?"Link error":"Validation error";switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`${this} ${r} during compilation of ${this.vs}`);case"pending":await this.vs.asyncCompilationStatus,this.vs.debugShader();break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`${this} ${r} during compilation of ${this.fs}`);case"pending":await this.fs.asyncCompilationStatus,this.fs.debugShader();break;case"success":break}let i=this.device.gl.getProgramInfoLog(this.handle);this.device.reportError(new Error(`${r} during ${t}: ${i}`),this)(),this.device.debug()}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(this._initializeSamplerUniforms(),t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation-error")):(this.linkStatus="error","link-error")}_initializeSamplerUniforms(){let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=t.getProgramParameter(this.handle,35718);for(let s=0;s<i;s++){let o=t.getActiveUniform(this.handle,s);if(o&&et(o.type)){let a=o.name.endsWith("[0]"),n=a?o.name.slice(0,-3):o.name,_=t.getUniformLocation(this.handle,n);_!==null&&(r=this._assignSamplerUniform(_,o,a,r))}}}_assignSamplerUniform(t,r,i,s){let{gl:o}=this.device;if(i&&r.size>1){let a=Int32Array.from({length:r.size},(n,_)=>s+_);return o.uniform1iv(t,a),s+r.size}return o.uniform1i(t,s),s+1}async _waitForLinkComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await t(10)}}}});function Xs(e,t){let r=t.sourceBuffer,i=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,i.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Ws(e,t){throw new Error("copyBufferToTexture is not supported in WebGL")}function Hs(e,t){let{sourceTexture:r,mipLevel:i=0,aspect:s="all",width:o=t.sourceTexture.width,height:a=t.sourceTexture.height,depthOrArrayLayers:n,origin:_=[0,0,0],destinationBuffer:c,byteOffset:l=0,bytesPerRow:f,rowsPerImage:h}=t;if(r instanceof re.Texture){r.readBuffer({x:_[0]??0,y:_[1]??0,z:_[2]??0,width:o,height:a,depthOrArrayLayers:n,mipLevel:i,aspect:s,byteOffset:l},c);return}if(s!=="all")throw new Error("aspect not supported in WebGL");if(i!==0||n!==void 0||f||h)throw new Error("not implemented");let{framebuffer:T,destroyFramebuffer:A}=Ri(r),g;try{let u=c,b=o||T.width,B=a||T.height,$=(0,re.assertDefined)(T.colorAttachments[0]),X=Ue($.texture.props.format),Z=X.format,ie=X.type;e.gl.bindBuffer(35051,u.handle),g=e.gl.bindFramebuffer(36160,T.handle),e.gl.readPixels(_[0],_[1],b,B,Z,ie,l)}finally{e.gl.bindBuffer(35051,null),g!==void 0&&e.gl.bindFramebuffer(36160,g),A&&T.destroy()}}function Vs(e,t){let{sourceTexture:r,destinationMipLevel:i=0,origin:s=[0,0],destinationOrigin:o=[0,0,0],destinationTexture:a}=t,{width:n=t.destinationTexture.width,height:_=t.destinationTexture.height}=t,{framebuffer:c,destroyFramebuffer:l}=Ri(r),[f=0,h=0]=s,[T,A,g]=o,u=e.gl.bindFramebuffer(36160,c.handle),b,B;if(a instanceof Y)b=a,n=Number.isFinite(n)?n:b.width,_=Number.isFinite(_)?_:b.height,b._bind(0),B=b.glTarget;else throw new Error("invalid destination");switch(B){case 3553:case 34067:e.gl.copyTexSubImage2D(B,i,T,A,f,h,n,_);break;case 35866:case 32879:e.gl.copyTexSubImage3D(B,i,T,A,g,f,h,n,_);break;default:}b&&b._unbind(),e.gl.bindFramebuffer(36160,u),l&&c.destroy()}function Ri(e){if(e instanceof re.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var re,it,hi=R(()=>{re=E(p(),1);_e();Je();it=class extends re.CommandBuffer{device;handle=null;commands=[];constructor(t,r={}){super(t,r),this.device=t}_executeCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Xs(this.device,r.options);break;case"copy-buffer-to-texture":Ws(this.device,r.options);break;case"copy-texture-to-buffer":Hs(this.device,r.options);break;case"copy-texture-to-texture":Vs(this.device,r.options);break;default:throw new Error(r.name)}}}});var Ai,ks,st,Si=R(()=>{Ai=E(p(),1);ze();oe();ks=[1,2,4,8],st=class extends Ai.RenderPass{device;handle=null;glParameters={};constructor(t,r){super(t,r),this.device=t;let i=this.props.framebuffer,s=!i||i.handle===null;s&&t.getDefaultCanvasContext()._resizeDrawingBufferIfNeeded();let o;if(!r?.parameters?.viewport)if(s){let[a,n]=t.getDefaultCanvasContext().getDrawingBufferSize();o=[0,0,a,n]}else{let{width:a,height:n}=i;o=[0,0,a,n]}if(this.device.pushState(),this.setParameters({viewport:o,...this.props.parameters}),s)this.device.gl.drawBuffers([1029]);else{let a=i.colorAttachments.map((n,_)=>36064+_);this.device.gl.drawBuffers(a)}this.clear(),this.props.timestampQuerySet&&this.props.beginTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.beginTimestampIndex)}end(){this.destroyed||(this.props.timestampQuerySet&&this.props.endTimestampIndex!==void 0&&this.props.timestampQuerySet.writeTimestamp(this.props.endTimestampIndex),this.device.popState(),this.destroy())}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference!==void 0&&(r[2967]=t.stencilReference,r[36003]=t.stencilReference),"colorMask"in t&&(r.colorMask=ks.map(i=>Boolean(i&t.colorMask))),this.glParameters=r,y(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((i,s)=>{i&&this.clearColorBuffer(s,i)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,t.clearStencil=this.props.clearStencil),r!==0&&k(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){k(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}});var gi,pe,Ei=R(()=>{gi=E(p(),1);hi();Si();pe=class extends gi.CommandEncoder{device;handle=null;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new it(t,{id:`${this.props.id}-command-buffer`})}destroy(){this.destroyResource()}finish(t){return t?.id&&this.commandBuffer.id!==t.id&&(this.commandBuffer.id=t.id,this.commandBuffer.props.id=t.id),this.destroy(),this.commandBuffer}beginRenderPass(t={}){return new st(this.device,this._applyTimeProfilingToPassProps(t))}beginComputePass(t={}){throw new Error("ComputePass not supported in WebGL")}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,i){throw new Error("resolveQuerySet is not supported in WebGL")}writeTimestamp(t,r){t.writeTimestamp(r)}}});function pi(e){let{target:t,source:r,start:i=0,count:s=1}=e,o=r.length,a=s*o,n=0;for(let _=i;n<o;n++)t[_++]=r[n]??0;for(;n<a;)n<a-n?(t.copyWithin(i+n,i,i+n),n*=2):(t.copyWithin(i+n,i,i+a-n),n=a);return e.target}var ui=R(()=>{});function Ks(e){return Array.isArray(e)?new Float32Array(e):e}function Ys(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ot,le,bi=R(()=>{ot=E(p(),1);_r();It();ui();le=class extends ot.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return gt()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:a,offset:n,normalized:_,integer:c,divisor:l}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),c?this.device.gl.vertexAttribIPointer(t,s,o,a,n):this.device.gl.vertexAttribPointer(t,s,o,_,a,n),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,l||0),this.attributes[t]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=Pe(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let s=le.isConstantAttributeZeroSupported(this.device)||t!==0;(r||s)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let i=Ks(r),s=i.byteLength*t,o=i.length*t;if(this.buffer&&s!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${s} !== ${this.buffer.byteLength}.`);let a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),a||=!Ys(i,this.bufferValue),a){let n=(0,ot.getScratchArray)(r.constructor,o);pi({target:n,source:i,start:0,count:o}),this.buffer.write(n),this.bufferValue=r}return this.buffer}}});function Ci(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var nt,at,Ii=R(()=>{nt=E(p(),1);Ht();Wt();at=class extends nt.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(ii(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let[r,i]of Object.entries(t))this.setBuffer(r,i)})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,nt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:s,byteLength:o,byteOffset:a},this.bindOnUse||this._bindBuffer(i,s,a,o)}getBuffer(t){if(Ci(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return this.buffers[r]??null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof v)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:s=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:s}}_getVaryingIndex(t){if(Ci(t))return Number(t);for(let r of this.layout.varyings||[])if(t===r.name)return r.location;return-1}_bindBuffers(){for(let[t,r]of Object.entries(this.buffers)){let{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(r);this._bindBuffer(Number(t),i,o,s)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,i=0,s){let o=r&&r.handle;!o||s===void 0?this.gl.bindBufferBase(35982,t,o):this.gl.bindBufferRange(35982,t,o,i,s)}}});var Ni,_t,Oi=R(()=>{Ni=E(p(),1),_t=class extends Ni.QuerySet{device;handle;_timestampPairs=[];_pendingReads=new Set;_occlusionQuery=null;_occlusionActive=!1;get[Symbol.toStringTag](){return"QuerySet"}constructor(t,r){if(super(t,r),this.device=t,r.type==="timestamp"){if(r.count<2)throw new Error("Timestamp QuerySet requires at least two query slots");this._timestampPairs=new Array(Math.ceil(r.count/2)).fill(null).map(()=>({activeQuery:null,completedQueries:[]})),this.handle=null}else{if(r.count>1)throw new Error("WebGL occlusion QuerySet can only have one value");let i=this.device.gl.createQuery();if(!i)throw new Error("WebGL query not supported");this.handle=i}Object.seal(this)}destroy(){if(!this.destroyed){this.handle&&this.device.gl.deleteQuery(this.handle);for(let t of this._timestampPairs){t.activeQuery&&(this._cancelPendingQuery(t.activeQuery),this.device.gl.deleteQuery(t.activeQuery.handle));for(let r of t.completedQueries)this._cancelPendingQuery(r),this.device.gl.deleteQuery(r.handle)}this._occlusionQuery&&(this._cancelPendingQuery(this._occlusionQuery),this.device.gl.deleteQuery(this._occlusionQuery.handle));for(let t of Array.from(this._pendingReads))this._cancelPendingQuery(t);this.destroyResource()}}isResultAvailable(t){return this.props.type==="timestamp"?t===void 0?this._timestampPairs.some((r,i)=>this._isTimestampPairAvailable(i)):this._isTimestampPairAvailable(this._getTimestampPairIndex(t)):this._occlusionQuery?this._pollQueryAvailability(this._occlusionQuery):!1}async readResults(t){let r=t?.firstQuery||0,i=t?.queryCount||this.props.count-r;if(this._validateRange(r,i),this.props.type==="timestamp"){let s=new Array(i).fill(0n),o=Math.floor(r/2),a=Math.floor((r+i-1)/2);for(let n=o;n<=a;n++){let _=await this._consumeTimestampPairResult(n),c=n*2,l=c+1;c>=r&&c<r+i&&(s[c-r]=0n),l>=r&&l<r+i&&(s[l-r]=_)}return s}if(!this._occlusionQuery)throw new Error("Occlusion query has not been started");return[await this._consumeQueryResult(this._occlusionQuery)]}async readTimestampDuration(t,r){if(this.props.type!=="timestamp")throw new Error("Timestamp durations require a timestamp QuerySet");if(t<0||r>=this.props.count||r<=t)throw new Error("Timestamp duration range is out of bounds");if(t%2!==0||r!==t+1)throw new Error("WebGL timestamp durations require adjacent even/odd query indices");let i=await this._consumeTimestampPairResult(this._getTimestampPairIndex(t));return Number(i)/1e6}beginOcclusionQuery(){if(this.props.type!=="occlusion")throw new Error("Occlusion queries require an occlusion QuerySet");if(!this.handle)throw new Error("WebGL occlusion query is not available");if(this._occlusionActive)throw new Error("Occlusion query is already active");this.device.gl.beginQuery(35887,this.handle),this._occlusionQuery={handle:this.handle,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null},this._occlusionActive=!0}endOcclusionQuery(){if(!this._occlusionActive)throw new Error("Occlusion query is not active");this.device.gl.endQuery(35887),this._occlusionActive=!1}writeTimestamp(t){if(this.props.type!=="timestamp")throw new Error("Timestamp writes require a timestamp QuerySet");let r=this._getTimestampPairIndex(t),i=this._timestampPairs[r];if(t%2===0){if(i.activeQuery)throw new Error("Timestamp query pair is already active");let s=this.device.gl.createQuery();if(!s)throw new Error("WebGL query not supported");let o={handle:s,promise:null,result:null,disjoint:!1,cancelled:!1,pollRequestId:null,resolve:null,reject:null};this.device.gl.beginQuery(35007,s),i.activeQuery=o;return}if(!i.activeQuery)throw new Error("Timestamp query pair was ended before it was started");this.device.gl.endQuery(35007),i.completedQueries.push(i.activeQuery),i.activeQuery=null}_validateRange(t,r){if(t<0||r<0||t+r>this.props.count)throw new Error("Query read range is out of bounds")}_getTimestampPairIndex(t){if(t<0||t>=this.props.count)throw new Error("Query index is out of bounds");return Math.floor(t/2)}_isTimestampPairAvailable(t){let r=this._timestampPairs[t];return!r||r.completedQueries.length===0?!1:this._pollQueryAvailability(r.completedQueries[0])}_pollQueryAvailability(t){if(t.cancelled||this.destroyed)return t.result=0n,!0;if(t.result!==null||t.disjoint)return!0;if(!this.device.gl.getQueryParameter(t.handle,34919))return!1;let i=Boolean(this.device.gl.getParameter(36795));return t.disjoint=i,t.result=i?0n:BigInt(this.device.gl.getQueryParameter(t.handle,34918)),!0}async _consumeTimestampPairResult(t){let r=this._timestampPairs[t];if(!r||r.completedQueries.length===0)throw new Error("Timestamp query pair has no completed result");let i=r.completedQueries.shift();try{return await this._consumeQueryResult(i)}finally{this.device.gl.deleteQuery(i.handle)}}_consumeQueryResult(t){return t.promise||(this._pendingReads.add(t),t.promise=new Promise((r,i)=>{t.resolve=r,t.reject=i;let s=()=>{if(t.pollRequestId=null,t.cancelled||this.destroyed){this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,r(0n);return}if(!this._pollQueryAvailability(t)){t.pollRequestId=this._requestAnimationFrame(s);return}this._pendingReads.delete(t),t.promise=null,t.resolve=null,t.reject=null,t.disjoint?i(new Error("GPU timestamp query was invalidated by a disjoint event")):r(t.result||0n)};s()})),t.promise}_cancelPendingQuery(t){if(this._pendingReads.delete(t),t.cancelled=!0,t.pollRequestId!==null&&(this._cancelAnimationFrame(t.pollRequestId),t.pollRequestId=null),t.resolve){let r=t.resolve;t.promise=null,t.resolve=null,t.reject=null,r(0n)}}_requestAnimationFrame(t){return requestAnimationFrame(t)}_cancelAnimationFrame(t){cancelAnimationFrame(t)}}});var Fi,ct,Bi=R(()=>{Fi=E(p(),1),ct=class extends Fi.Fence{device;gl;handle;signaled;_signaled=!1;constructor(t,r={}){super(t,{}),this.device=t,this.gl=t.gl;let i=this.props.handle||this.gl.fenceSync(this.gl.SYNC_GPU_COMMANDS_COMPLETE,0);if(!i)throw new Error("Failed to create WebGL fence");this.handle=i,this.signaled=new Promise(s=>{let o=()=>{let a=this.gl.clientWaitSync(this.handle,0,0);a===this.gl.ALREADY_SIGNALED||a===this.gl.CONDITION_SATISFIED?(this._signaled=!0,s()):setTimeout(o,1)};o()})}isSignaled(){if(this._signaled)return!0;let t=this.gl.getSyncParameter(this.handle,this.gl.SYNC_STATUS);return this._signaled=t===this.gl.SIGNALED,this._signaled}destroy(){this.destroyed||this.gl.deleteSync(this.handle)}}});function Vt(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function Mi(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}var Pi=R(()=>{});function Di(e,t){let{sourceX:r=0,sourceY:i=0,sourceAttachment:s=0}=t||{},{target:o=null,sourceWidth:a,sourceHeight:n,sourceDepth:_,sourceFormat:c,sourceType:l}=t||{},{framebuffer:f,deleteFramebuffer:h}=yi(e),{gl:T,handle:A}=f;a||=f.width,n||=f.height;let g=f.colorAttachments[s]?.texture;if(!g)throw new Error(`Invalid framebuffer attachment ${s}`);_=g?.depth||1,c||=g?.glFormat||6408,l||=g?.glType||5121,o=Qs(o,l,c,a,n,_);let u=ue.dataTypeDecoder.getDataType(o);l=l||ni(u);let b=T.bindFramebuffer(36160,A);return T.readBuffer(36064+s),T.readPixels(r,i,a,n,c,l,o),T.readBuffer(36064),T.bindFramebuffer(36160,b||null),h&&f.destroy(),o}function xi(e,t){let{target:r,sourceX:i=0,sourceY:s=0,sourceFormat:o=6408,targetByteOffset:a=0}=t||{},{sourceWidth:n,sourceHeight:_,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:f}=yi(e);n=n||l.width,_=_||l.height;let h=l;c=c||5121;let T=r;if(!T){let g=Vt(o),u=Mi(c),b=a+n*_*g*u;T=h.device.createBuffer({byteLength:b})}let A=e.device.createCommandEncoder();return A.copyTextureToBuffer({sourceTexture:e,width:n,height:_,origin:[i,s],destinationBuffer:T,byteOffset:a}),A.destroy(),f&&l.destroy(),T}function yi(e){return e instanceof ue.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:$s(e),deleteFramebuffer:!0}}function $s(e,t){let{device:r,width:i,height:s,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:s,colorAttachments:[e]})}function Qs(e,t,r,i,s,o){if(e)return e;t||=5121;let a=je(t),n=ue.dataTypeDecoder.getTypedArrayConstructor(a),_=Vt(r);return new n(i*s*_)}var ue,Ui=R(()=>{ue=E(p(),1);tt();Pi();Xt()});function zs(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function Zs(e,t,r){e.gl.vertexAttribI4iv(t,r)}function js(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function qs(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var m,G,wi=R(()=>{m=E(p(),1);Ct();Ir();Fe();Fr();vr();Xr();Vr();Kr();rr();dr();_e();$r();He();Zr();Gr();Je();me();ai();Ti();Ei();bi();Ii();Oi();Bi();Ui();oe();ze();Ae();G=class extends m.Device{static getDeviceFromContext(t){return t?t.luma?.device??null:null}type="webgl";handle;features;limits;info;canvasContext;preferredColorFormat="rgba8unorm";preferredDepthFormat="depth24plus";commandEncoder;lost;_resolveContextLost;gl;_constants;extensions;_polyfilled=!1;spectorJS;get[Symbol.toStringTag](){return"WebGLDevice"}toString(){return`${this[Symbol.toStringTag]}(${this.id})`}isVertexFormatSupported(t){switch(t){case"unorm8x4-bgra":return!1;default:return!0}}constructor(t){super({...t,id:t.id||Yr("webgl-device")});let r=m.Device._getCanvasContextProps(t);if(!r)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let i=r.canvas?.gl??null,s=G.getDeviceFromContext(i);if(s)throw new Error(`WebGL context already attached to device ${s.id}`);this.canvasContext=new Xe(this,r),this.lost=new Promise(l=>{this._resolveContextLost=l});let o={...t.webgl};r.alphaMode==="premultiplied"&&(o.premultipliedAlpha=!0),t.powerPreference!==void 0&&(o.powerPreference=t.powerPreference),t.failIfMajorPerformanceCaveat!==void 0&&(o.failIfMajorPerformanceCaveat=t.failIfMajorPerformanceCaveat);let n=this.props._handle||Cr(this.canvasContext.canvas,{onContextLost:l=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:l=>console.log("WebGL context restored")},o);if(!n)throw new Error("WebGL context creation failed");if(s=G.getDeviceFromContext(n),s){if(t._reuseDevices)return m.log.log(1,`Not creating a new Device, instead returning a reference to Device ${s.id} already attached to WebGL context`,s)(),this.canvasContext.destroy(),s._reused=!0,s;throw new Error(`WebGL context already attached to device ${s.id}`)}this.handle=n,this.gl=n,this.spectorJS=tr({...this.props,gl:this.handle});let _=ee(this.handle);_.device=this,_.extensions||(_.extensions={}),this.extensions=_.extensions,this.info=Nr(this.gl,this.extensions),this.limits=new ve(this.gl),this.features=new we(this.gl,this.extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),new U(this.gl,{log:(...l)=>m.log.log(1,...l)()}).trackState(this.gl,{copyState:!1}),(t.debug||t.debugWebGL)&&(this.gl=fr(this.gl,{debugWebGL:!0,traceWebGL:t.debugWebGL}),m.log.warn("WebGL debug mode activated. Performance reduced.")()),t.debugWebGL&&(m.log.level=Math.max(m.log.level,1)),this.commandEncoder=new pe(this,{id:`${this}-command-encoder`}),this.canvasContext._startObservers()}destroy(){if(this.commandEncoder?.destroy(),!this.props._reuseDevices&&!this._reused){let t=ee(this.handle);t.device=null}}get isLost(){return this.gl.isContextLost()}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createPresentationContext(t){return new We(this,t||{})}createBuffer(t){let r=this._normalizeBufferProps(t);return new v(this,r)}createTexture(t){return new Y(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new Qe(this,t)}createShader(t){return new ke(this,t)}createFramebuffer(t){return new V(this,t)}createVertexArray(t){return new le(this,t)}createTransformFeedback(t){return new at(this,t)}createQuerySet(t){return new _t(this,t)}createFence(){return new ct(this)}createRenderPipeline(t){return new Le(this,t)}_createSharedRenderPipelineWebGL(t){return new rt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}createCommandEncoder(t={}){return new pe(this,t)}submit(t){let r=null;t||({submittedCommandEncoder:r,commandBuffer:t}=this._finalizeDefaultCommandEncoderForSubmit());try{t._executeCommands(),r&&r.resolveTimeProfilingQuerySet().then(()=>{this.commandEncoder._gpuTimeMs=r._gpuTimeMs}).catch(()=>{})}finally{t.destroy()}}_finalizeDefaultCommandEncoderForSubmit(){let t=this.commandEncoder,r=t.finish();return this.commandEncoder.destroy(),this.commandEncoder=this.createCommandEncoder({id:t.props.id,timeProfilingQuerySet:t.getTimeProfilingQuerySet()}),{submittedCommandEncoder:t,commandBuffer:r}}readPixelsToArrayWebGL(t,r){return Di(t,r)}readPixelsToBufferWebGL(t,r){return xi(t,r)}setParametersWebGL(t){y(this.gl,t)}getParametersWebGL(t){return Me(this.gl,t)}withParametersWebGL(t,r){return k(this.gl,t,r)}resetWebGL(){m.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),gr(this.gl)}_getDeviceSpecificTextureFormatCapabilities(t){return xr(this.gl,t,this.extensions)}loseDevice(){let t=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(t=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){U.get(this.gl).push()}popState(){U.get(this.gl).pop()}getGLKey(t,r){let i=Number(t);for(let s in this.gl)if(this.gl[s]===i)return`GL.${s}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((i,[s,o])=>(i[`${s}:${this.getGLKey(s,r)}`]=`${o}:${this.getGLKey(o,r)}`,i),{})}setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&qs(s,r)&&m.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:zs(this,t,r);break;case Int32Array:Zs(this,t,r);break;case Uint32Array:js(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return w(this.gl,t,this.extensions),this.extensions}_setWebGLDebugMetadata(t,r,i){t.luma=r;let s={props:i.spector,id:i.spector.id};t.__SPECTOR_Metadata=s}}});var Ht=R(()=>{wi();He()});var Xi=Ne((Tt,mi)=>{(function(e,t){typeof Tt=="object"&&typeof mi<"u"?t(Tt):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Tt,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},i="4.25",s="next";function o(d){if(d.toLowerCase()===s)return s;var S=d&&d.match(/^(\d)\.(\d+)/);return S&&{major:parseInt(S[1],10),minor:parseInt(S[2],10)}}function a(d){return d===void 0&&(d=i),"https://js.arcgis.com/".concat(d,"/")}function n(d){d===void 0&&(d=i);var S=a(d),C=o(d);if(C!==s&&C.major===3){var N=C.minor<=10?"js/":"";return"".concat(S).concat(N,"esri/css/esri.css")}else return"".concat(S,"esri/themes/light/main.css")}function _(d){var S=document.createElement("link");return S.rel="stylesheet",S.href=d,S}function c(d,S){if(S){var C=document.querySelector(S);C.parentNode.insertBefore(d,C)}else document.head.appendChild(d)}function l(d){return document.querySelector('link[href*="'.concat(d,'"]'))}function f(d){return!d||o(d)?n(d):d}function h(d,S){var C=f(d),N=l(C);return N||(N=_(C),c(N,S)),N}var T={};function A(d){var S=document.createElement("script");return S.type="text/javascript",S.src=d,S.setAttribute("data-esri-loader","loading"),S}function g(d,S,C){var N;C&&(N=u(d,C));var M=function(){S(d),d.removeEventListener("load",M,!1),N&&d.removeEventListener("error",N,!1)};d.addEventListener("load",M,!1)}function u(d,S){var C=function(N){S(N.error||new Error("There was an error attempting to load ".concat(d.src))),d.removeEventListener("error",C,!1)};return d.addEventListener("error",C,!1),C}function b(d){d===void 0&&(d={}),T=d}function B(){return document.querySelector("script[data-esri-loader]")}function $(){var d=window.require;return d&&d.on}function X(d){d===void 0&&(d={});var S={};[T,d].forEach(function(M){for(var P in M)Object.prototype.hasOwnProperty.call(M,P)&&(S[P]=M[P])});var C=S.version,N=S.url||a(C);return new r.Promise(function(M,P){var Q=B();if(Q){var $t=Q.getAttribute("src");$t!==N?P(new Error("The ArcGIS API for JavaScript is already loaded (".concat($t,")."))):$()?M(Q):g(Q,M,P)}else if($())P(new Error("The ArcGIS API for JavaScript is already loaded."));else{var Rt=S.css;if(Rt){var Hi=Rt===!0;h(Hi?C:Rt,S.insertCssBefore)}Q=A(N),g(Q,function(){Q.setAttribute("data-esri-loader","loaded"),M(Q)},P),document.body.appendChild(Q)}})}function Z(d){return new r.Promise(function(S,C){var N=window.require.on("error",C);window.require(d,function(){for(var M=[],P=0;P<arguments.length;P++)M[P]=arguments[P];N.remove(),S(M)})})}function ie(d,S){if(S===void 0&&(S={}),$())return Z(d);var C=B(),N=C&&C.getAttribute("src");return!S.url&&N&&(S.url=N),X(S).then(function(){return Z(d)})}e.utils=r,e.loadModules=ie,e.getScript=B,e.isLoaded=$,e.loadScript=X,e.setDefaultOptions=b,e.loadCss=h,Object.defineProperty(e,"__esModule",{value:!0})})});var be={};Qi(be,{loadArcGISModules:()=>Gs});var W={},zt=E(Oe(),1);j(W,E(Oe(),1));if(!zt.Layer)throw new Error("@deck.gl/core is not found");j(be,W);var Zt={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function ht(e){return e.createSubclass({properties:Zt,constructor(){this._callbacks={},this.watch(Object.keys(Zt),(r,i,s)=>{this.emit("change",{[s]:r})})},on(r,i){this._callbacks[r]=this._callbacks[r]||[],this._callbacks[r].push(i)},emit(r,i){let s=this._callbacks[r];if(s)for(let o of s)o(i)},toJSON(){let r={};for(let i of this.keys())this[i]!==void 0&&(r[i]=this[i]);return r}})}function At(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor(){this.deck=new e},createLayerView(i){return i.type==="2d"?new r({view:i,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var vi=E(Oe(),1),lt=E(qt(),1);Ht();async function Js(e){return new Promise(t=>{let r=new vi.Deck({controller:!1,gl:e,parameters:{depthCompare:"less-equal"},width:null,height:null,onDeviceInitialized:i=>{t({deckInstance:r,device:i})}})})}async function ft(e){let{deckInstance:t,device:r}=await Js(e),i=r.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),s=new lt.Model(r,{vs:`#version 300 es
|
|
9
9
|
in vec2 pos;
|
|
10
10
|
out vec2 v_texcoord;
|
|
11
11
|
void main(void) {
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "Use deck.gl as a custom ArcGIS API for JavaScript layer",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"version": "9.3.0-
|
|
6
|
+
"version": "9.3.0-beta.1",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
9
9
|
},
|
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
"peerDependencies": {
|
|
42
42
|
"@arcgis/core": "^4.0.0",
|
|
43
43
|
"@deck.gl/core": "~9.3.0-alpha.1",
|
|
44
|
-
"@luma.gl/core": "~9.3.
|
|
45
|
-
"@luma.gl/engine": "~9.3.
|
|
46
|
-
"@luma.gl/webgl": "~9.3.
|
|
44
|
+
"@luma.gl/core": "~9.3.2",
|
|
45
|
+
"@luma.gl/engine": "~9.3.2",
|
|
46
|
+
"@luma.gl/webgl": "~9.3.2"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@arcgis/core": "^4.21.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "a8b482631c7b10460411b08c8c674b86176ec191"
|
|
52
52
|
}
|
package/src/commons.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
/* eslint-disable no-invalid-this */
|
|
6
6
|
|
|
7
|
-
import {GL} from '@luma.gl/webgl/constants';
|
|
8
7
|
import type {Device, Texture, Framebuffer} from '@luma.gl/core';
|
|
9
8
|
import {Deck} from '@deck.gl/core';
|
|
10
9
|
import {Model, Geometry} from '@luma.gl/engine';
|
|
10
|
+
import {GL} from '@luma.gl/webgl/constants';
|
|
11
11
|
import {WebGLDevice} from '@luma.gl/webgl';
|
|
12
12
|
|
|
13
13
|
interface Renderer {
|