@deck.gl/arcgis 9.0.0-beta.9 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dist.dev.js CHANGED
@@ -71,7 +71,7 @@ var __exports__ = (() => {
71
71
  var utils = {
72
72
  Promise: isBrowser2 ? window["Promise"] : void 0
73
73
  };
74
- var DEFAULT_VERSION = "4.21";
74
+ var DEFAULT_VERSION = "4.25";
75
75
  var NEXT = "next";
76
76
  function parseVersion(version) {
77
77
  if (version.toLowerCase() === NEXT) {
@@ -87,7 +87,7 @@ var __exports__ = (() => {
87
87
  if (version === void 0) {
88
88
  version = DEFAULT_VERSION;
89
89
  }
90
- return "https://js.arcgis.com/" + version + "/";
90
+ return "https://js.arcgis.com/".concat(version, "/");
91
91
  }
92
92
  function getCdnCssUrl(version) {
93
93
  if (version === void 0) {
@@ -97,9 +97,9 @@ var __exports__ = (() => {
97
97
  var parsedVersion = parseVersion(version);
98
98
  if (parsedVersion !== NEXT && parsedVersion.major === 3) {
99
99
  var path = parsedVersion.minor <= 10 ? "js/" : "";
100
- return "" + baseUrl + path + "esri/css/esri.css";
100
+ return "".concat(baseUrl).concat(path, "esri/css/esri.css");
101
101
  } else {
102
- return baseUrl + "esri/themes/light/main.css";
102
+ return "".concat(baseUrl, "esri/themes/light/main.css");
103
103
  }
104
104
  }
105
105
  function createStylesheetLink(href) {
@@ -117,7 +117,7 @@ var __exports__ = (() => {
117
117
  }
118
118
  }
119
119
  function getCss(url) {
120
- return document.querySelector('link[href*="' + url + '"]');
120
+ return document.querySelector('link[href*="'.concat(url, '"]'));
121
121
  }
122
122
  function getCssUrl(urlOrVersion) {
123
123
  return !urlOrVersion || parseVersion(urlOrVersion) ? getCdnCssUrl(urlOrVersion) : urlOrVersion;
@@ -155,7 +155,7 @@ var __exports__ = (() => {
155
155
  }
156
156
  function handleScriptError(script, callback) {
157
157
  var onScriptError = function(e) {
158
- callback(e.error || new Error("There was an error attempting to load " + script.src));
158
+ callback(e.error || new Error("There was an error attempting to load ".concat(script.src)));
159
159
  script.removeEventListener("error", onScriptError, false);
160
160
  };
161
161
  script.addEventListener("error", onScriptError, false);
@@ -193,7 +193,7 @@ var __exports__ = (() => {
193
193
  if (script) {
194
194
  var src = script.getAttribute("src");
195
195
  if (src !== url) {
196
- reject(new Error("The ArcGIS API for JavaScript is already loaded (" + src + ")."));
196
+ reject(new Error("The ArcGIS API for JavaScript is already loaded (".concat(src, ").")));
197
197
  } else {
198
198
  if (isLoaded()) {
199
199
  resolve(script);
@@ -1504,6 +1504,9 @@ var __exports__ = (() => {
1504
1504
  }
1505
1505
  return state;
1506
1506
  }
1507
+ function resetGLParameters(gl) {
1508
+ setGLParameters(gl, GL_PARAMETER_DEFAULTS);
1509
+ }
1507
1510
  function isObjectEmpty(object) {
1508
1511
  for (const key in object) {
1509
1512
  return false;
@@ -2194,12 +2197,8 @@ var __exports__ = (() => {
2194
2197
  getWebGLExtension(gl, "EXT_color_buffer_float", extensions);
2195
2198
  }
2196
2199
  *[Symbol.iterator]() {
2197
- for (const feature of Object.keys(WEBGL_FEATURES)) {
2198
- if (this.has(feature)) {
2199
- yield feature;
2200
- }
2201
- }
2202
- for (const feature of Object.keys(TEXTURE_FEATURES)) {
2200
+ const features = this.getFeatures();
2201
+ for (const feature of features) {
2203
2202
  if (this.has(feature)) {
2204
2203
  yield feature;
2205
2204
  }
@@ -2222,9 +2221,14 @@ var __exports__ = (() => {
2222
2221
  return this.features.has(feature);
2223
2222
  }
2224
2223
  initializeFeatures() {
2225
- for (const feature of this) {
2224
+ const features = this.getFeatures().filter((feature) => feature !== "polygon-mode-webgl");
2225
+ for (const feature of features) {
2226
+ this.has(feature);
2226
2227
  }
2227
2228
  }
2229
+ getFeatures() {
2230
+ return [...Object.keys(WEBGL_FEATURES), ...Object.keys(TEXTURE_FEATURES)];
2231
+ }
2228
2232
  getWebGLFeature(feature) {
2229
2233
  const featureInfo = WEBGL_FEATURES[feature];
2230
2234
  const isSupported = typeof featureInfo === "string" ? Boolean(getWebGLExtension(this.gl, featureInfo, this.extensions)) : Boolean(featureInfo);
@@ -2427,9 +2431,9 @@ var __exports__ = (() => {
2427
2431
  const extensions = webglDevice.getExtension("WEBGL_polygon_mode");
2428
2432
  const ext = extensions.WEBGL_polygon_mode;
2429
2433
  if (parameters.polygonMode) {
2430
- const mode = map("polygonMode", parameters.provokingVertex, {
2434
+ const mode = map("polygonMode", parameters.polygonMode, {
2431
2435
  fill: 6914,
2432
- lint: 6913
2436
+ line: 6913
2433
2437
  });
2434
2438
  ext?.polygonModeWEBGL(1028, mode);
2435
2439
  ext?.polygonModeWEBGL(1029, mode);
@@ -2549,7 +2553,12 @@ var __exports__ = (() => {
2549
2553
  "src-alpha": 770,
2550
2554
  "one-minus-src-alpha": 771,
2551
2555
  "dst-alpha": 772,
2552
- "one-minus-dst-alpha": 773
2556
+ "one-minus-dst-alpha": 773,
2557
+ "src-alpha-saturated": 776,
2558
+ "constant-color": 32769,
2559
+ "one-minus-constant-color": 32770,
2560
+ "constant-alpha": 32771,
2561
+ "one-minus-constant-alpha": 32772
2553
2562
  });
2554
2563
  }
2555
2564
  function message(parameter, value) {
@@ -3336,7 +3345,7 @@ var __exports__ = (() => {
3336
3345
  if (!isDefaultFramebuffer) {
3337
3346
  device.setSpectorMetadata(this.handle, { id: this.props.id, props: this.props });
3338
3347
  this.autoCreateAttachmentTextures();
3339
- this.gl.bindFramebuffer(36160, this.handle);
3348
+ const prevHandle = this.gl.bindFramebuffer(36160, this.handle);
3340
3349
  for (let i = 0; i < this.colorAttachments.length; ++i) {
3341
3350
  const attachment = this.colorAttachments[i];
3342
3351
  const attachmentPoint = 36064 + i;
@@ -3353,7 +3362,7 @@ var __exports__ = (() => {
3353
3362
  throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);
3354
3363
  }
3355
3364
  }
3356
- this.gl.bindFramebuffer(36160, null);
3365
+ this.gl.bindFramebuffer(36160, prevHandle);
3357
3366
  }
3358
3367
  }
3359
3368
  destroy() {
@@ -3788,10 +3797,10 @@ ${source2}`;
3788
3797
  }
3789
3798
  if (!this.device.features.has("compilation-status-async-webgl")) {
3790
3799
  this._getCompilationStatus();
3800
+ this.debugShader();
3791
3801
  if (this.compilationStatus === "error") {
3792
3802
  throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);
3793
3803
  }
3794
- this.debugShader();
3795
3804
  return;
3796
3805
  }
3797
3806
  import_core15.log.once(1, "Shader compilation is asynchronous")();
@@ -3827,6 +3836,7 @@ ${source2}`;
3827
3836
  var GL_STENCIL_BUFFER_BIT = 1024;
3828
3837
  var GL_COLOR_BUFFER_BIT = 16384;
3829
3838
  var GL_COLOR = 6144;
3839
+ var COLOR_CHANNELS = [1, 2, 4, 8];
3830
3840
  var WEBGLRenderPass = class extends import_core16.RenderPass {
3831
3841
  device;
3832
3842
  glParameters;
@@ -3867,8 +3877,8 @@ ${source2}`;
3867
3877
  glParameters.viewport = parameters.viewport;
3868
3878
  }
3869
3879
  }
3870
- glParameters.scissorTest = Boolean(parameters.scissorRect);
3871
3880
  if (parameters.scissorRect) {
3881
+ glParameters.scissorTest = true;
3872
3882
  glParameters.scissor = parameters.scissorRect;
3873
3883
  }
3874
3884
  if (parameters.blendConstant) {
@@ -3878,6 +3888,9 @@ ${source2}`;
3878
3888
  console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL");
3879
3889
  parameters[2967] = parameters.stencilReference;
3880
3890
  }
3891
+ if (parameters.colorMask) {
3892
+ glParameters.colorMask = COLOR_CHANNELS.map((channel) => Boolean(channel & parameters.colorMask));
3893
+ }
3881
3894
  this.glParameters = glParameters;
3882
3895
  setGLParameters(this.device.gl, glParameters);
3883
3896
  }
@@ -4548,12 +4561,14 @@ ${source2}`;
4548
4561
  this.destroyed = true;
4549
4562
  }
4550
4563
  }
4551
- setBindings(bindings) {
4564
+ setBindings(bindings, options) {
4552
4565
  for (const [name, value] of Object.entries(bindings)) {
4553
4566
  const binding = this.shaderLayout.bindings.find((binding2) => binding2.name === name) || this.shaderLayout.bindings.find((binding2) => binding2.name === `${name}Uniforms`);
4554
4567
  if (!binding) {
4555
4568
  const validBindings = this.shaderLayout.bindings.map((binding2) => `"${binding2.name}"`).join(", ");
4556
- import_core18.log.warn(`Unknown binding "${name}" in render pipeline "${this.id}", expected one of ${validBindings}`)();
4569
+ if (options?.disableWarnings) {
4570
+ import_core18.log.warn(`Unknown binding "${name}" in render pipeline "${this.id}", expected one of ${validBindings}`)();
4571
+ }
4557
4572
  continue;
4558
4573
  }
4559
4574
  if (!value) {
@@ -4582,13 +4597,15 @@ ${source2}`;
4582
4597
  draw(options) {
4583
4598
  const {
4584
4599
  renderPass,
4600
+ parameters = this.props.parameters,
4601
+ topology = this.props.topology,
4585
4602
  vertexArray,
4586
4603
  vertexCount,
4587
4604
  instanceCount,
4588
4605
  firstVertex = 0,
4589
4606
  transformFeedback
4590
4607
  } = options;
4591
- const glDrawMode = getGLDrawMode(this.props.topology);
4608
+ const glDrawMode = getGLDrawMode(topology);
4592
4609
  const isIndexed = Boolean(vertexArray.indexBuffer);
4593
4610
  const glIndexType = vertexArray.indexBuffer?.glIndexType;
4594
4611
  const isInstanced = Number(instanceCount) > 0;
@@ -4612,7 +4629,7 @@ ${source2}`;
4612
4629
  this._applyBindings();
4613
4630
  this._applyUniforms();
4614
4631
  const webglRenderPass = renderPass;
4615
- withDeviceAndGLParameters(this.device, this.props.parameters, webglRenderPass.glParameters, () => {
4632
+ withDeviceAndGLParameters(this.device, parameters, webglRenderPass.glParameters, () => {
4616
4633
  if (isIndexed && isInstanced) {
4617
4634
  this.device.gl.drawElementsInstanced(
4618
4635
  glDrawMode,
@@ -4859,6 +4876,7 @@ ${source2}`;
4859
4876
  throw new Error("not implemented");
4860
4877
  }
4861
4878
  const { framebuffer, destroyFramebuffer } = getFramebuffer(source);
4879
+ let prevHandle;
4862
4880
  try {
4863
4881
  const webglBuffer = destination;
4864
4882
  const sourceWidth = width || framebuffer.width;
@@ -4867,11 +4885,13 @@ ${source2}`;
4867
4885
  const sourceFormat = sourceParams.dataFormat;
4868
4886
  const sourceType = sourceParams.type;
4869
4887
  device.gl.bindBuffer(35051, webglBuffer.handle);
4870
- device.gl.bindFramebuffer(36160, framebuffer.handle);
4888
+ prevHandle = device.gl.bindFramebuffer(36160, framebuffer.handle);
4871
4889
  device.gl.readPixels(origin[0], origin[1], sourceWidth, sourceHeight, sourceFormat, sourceType, byteOffset);
4872
4890
  } finally {
4873
4891
  device.gl.bindBuffer(35051, null);
4874
- device.gl.bindFramebuffer(36160, null);
4892
+ if (prevHandle !== void 0) {
4893
+ device.gl.bindFramebuffer(36160, prevHandle);
4894
+ }
4875
4895
  if (destroyFramebuffer) {
4876
4896
  framebuffer.destroy();
4877
4897
  }
@@ -4880,19 +4900,19 @@ ${source2}`;
4880
4900
  function _copyTextureToTexture(device, options) {
4881
4901
  const {
4882
4902
  source,
4903
+ destinationMipLevel = 0,
4883
4904
  origin = [0, 0],
4905
+ destinationOrigin = [0, 0],
4884
4906
  destination
4885
4907
  } = options;
4886
4908
  let {
4887
4909
  width = options.destination.width,
4888
- height = options.destination.width
4910
+ height = options.destination.height
4889
4911
  } = options;
4890
- const destinationMipmaplevel = 0;
4891
- const destinationInternalFormat = 6408;
4892
4912
  const { framebuffer, destroyFramebuffer } = getFramebuffer(source);
4893
4913
  const [sourceX, sourceY] = origin;
4894
- const isSubCopy = false;
4895
- device.gl.bindFramebuffer(36160, framebuffer.handle);
4914
+ const [destinationX, destinationY, destinationZ] = destinationOrigin;
4915
+ const prevHandle = device.gl.bindFramebuffer(36160, framebuffer.handle);
4896
4916
  let texture = null;
4897
4917
  let textureTarget;
4898
4918
  if (destination instanceof WEBGLTexture) {
@@ -4900,21 +4920,28 @@ ${source2}`;
4900
4920
  width = Number.isFinite(width) ? width : texture.width;
4901
4921
  height = Number.isFinite(height) ? height : texture.height;
4902
4922
  texture.bind(0);
4903
- textureTarget = texture.destination;
4923
+ textureTarget = texture.target;
4904
4924
  } else {
4905
- throw new Error("whoops");
4925
+ throw new Error("invalid destination");
4906
4926
  }
4907
- if (!isSubCopy) {
4908
- device.gl.copyTexImage2D(textureTarget, destinationMipmaplevel, destinationInternalFormat, sourceX, sourceY, width, height, 0);
4909
- } else {
4927
+ switch (textureTarget) {
4928
+ case 3553:
4929
+ case 34067:
4930
+ device.gl.copyTexSubImage2D(textureTarget, destinationMipLevel, destinationX, destinationY, sourceX, sourceY, width, height);
4931
+ break;
4932
+ case 35866:
4933
+ case 32879:
4934
+ device.gl.copyTexSubImage3D(textureTarget, destinationMipLevel, destinationX, destinationY, destinationZ, sourceX, sourceY, width, height);
4935
+ break;
4936
+ default:
4910
4937
  }
4911
4938
  if (texture) {
4912
4939
  texture.unbind();
4913
4940
  }
4941
+ device.gl.bindFramebuffer(36160, prevHandle);
4914
4942
  if (destroyFramebuffer) {
4915
4943
  framebuffer.destroy();
4916
4944
  }
4917
- return texture;
4918
4945
  }
4919
4946
  function getFramebuffer(source) {
4920
4947
  if (source instanceof import_core20.Texture) {
@@ -5002,6 +5029,7 @@ ${source2}`;
5002
5029
  this.device.gl.bindVertexArray(this.handle);
5003
5030
  this.device.gl.bindBuffer(34963, buffer ? buffer.handle : null);
5004
5031
  this.indexBuffer = buffer;
5032
+ this.device.gl.bindVertexArray(null);
5005
5033
  }
5006
5034
  setBuffer(location, attributeBuffer) {
5007
5035
  const buffer = attributeBuffer;
@@ -5019,19 +5047,14 @@ ${source2}`;
5019
5047
  this.device.gl.enableVertexAttribArray(location);
5020
5048
  this.device.gl.vertexAttribDivisor(location, divisor || 0);
5021
5049
  this.attributes[location] = buffer;
5050
+ this.device.gl.bindVertexArray(null);
5022
5051
  }
5023
5052
  setConstantWebGL(location, value) {
5024
5053
  this._enable(location, false);
5025
5054
  this.attributes[location] = value;
5026
5055
  }
5027
- init = false;
5028
5056
  bindBeforeRender() {
5029
5057
  this.device.gl.bindVertexArray(this.handle);
5030
- if (!this.init) {
5031
- const webglBuffer = this.indexBuffer;
5032
- this.device.gl.bindBuffer(34963, webglBuffer?.handle || null);
5033
- this.init = true;
5034
- }
5035
5058
  this._applyConstantAttributes();
5036
5059
  }
5037
5060
  unbindAfterRender() {
@@ -5706,11 +5729,15 @@ ${source2}`;
5706
5729
  return getGLParameters(this.gl, parameters);
5707
5730
  }
5708
5731
  withParametersWebGL(parameters, func) {
5709
- withGLParameters(this.gl, parameters, func);
5732
+ return withGLParameters(this.gl, parameters, func);
5710
5733
  }
5711
5734
  clearWebGL(options) {
5712
5735
  clear(this, options);
5713
5736
  }
5737
+ resetWebGL() {
5738
+ import_core28.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")();
5739
+ resetGLParameters(this.gl);
5740
+ }
5714
5741
  gl;
5715
5742
  debug = false;
5716
5743
  _canvasSizeInfo = { clientWidth: 0, clientHeight: 0, devicePixelRatio: 1 };
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 Gr=Object.create;var Ae=Object.defineProperty;var ei=Object.getOwnPropertyDescriptor;var ti=Object.getOwnPropertyNames;var ri=Object.getPrototypeOf,ii=Object.prototype.hasOwnProperty;var si=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Me=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),oi=(e,t)=>{for(var r in t)Ae(e,r,{get:t[r],enumerable:!0})},Oe=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ti(t))!ii.call(e,s)&&s!==r&&Ae(e,s,{get:()=>t[s],enumerable:!(i=ei(t,s))||i.enumerable});return e},j=(e,t,r)=>(Oe(e,t,"default"),r&&Oe(r,t,"default")),S=(e,t,r)=>(r=e!=null?Gr(ri(e)):{},Oe(t||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e)),ai=e=>Oe(Ae({},"__esModule",{value:!0}),e);var Be=(e,t,r)=>(si(e,typeof t!="symbol"?t+"":t,r),r);var Pe=Me((us,Wt)=>{Wt.exports=globalThis.deck});var E=Me((Bs,Kt)=>{Kt.exports=globalThis.luma});var $r=Me((Tn,zr)=>{zr.exports=globalThis.luma});var jr=Me((lt,Qr)=>{(function(e,t){typeof lt=="object"&&typeof Qr<"u"?t(lt):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(lt,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},i="4.21",s="next";function o(R){if(R.toLowerCase()===s)return s;var A=R&&R.match(/^(\d)\.(\d+)/);return A&&{major:parseInt(A[1],10),minor:parseInt(A[2],10)}}function a(R){return R===void 0&&(R=i),"https://js.arcgis.com/"+R+"/"}function n(R){R===void 0&&(R=i);var A=a(R),p=o(R);if(p!==s&&p.major===3){var u=p.minor<=10?"js/":"";return""+A+u+"esri/css/esri.css"}else return A+"esri/themes/light/main.css"}function _(R){var A=document.createElement("link");return A.rel="stylesheet",A.href=R,A}function c(R,A){if(A){var p=document.querySelector(A);p.parentNode.insertBefore(R,p)}else document.head.appendChild(R)}function l(R){return document.querySelector('link[href*="'+R+'"]')}function T(R){return!R||o(R)?n(R):R}function f(R,A){var p=T(R),u=l(p);return u||(u=_(p),c(u,A)),u}var d={};function h(R){var A=document.createElement("script");return A.type="text/javascript",A.src=R,A.setAttribute("data-esri-loader","loading"),A}function C(R,A,p){var u;p&&(u=w(R,p));var x=function(){A(R),R.removeEventListener("load",x,!1),u&&R.removeEventListener("error",u,!1)};R.addEventListener("load",x,!1)}function w(R,A){var p=function(u){A(u.error||new Error("There was an error attempting to load "+R.src)),R.removeEventListener("error",p,!1)};return R.addEventListener("error",p,!1),p}function V(R){R===void 0&&(R={}),d=R}function se(){return document.querySelector("script[data-esri-loader]")}function oe(){var R=window.require;return R&&R.on}function Fe(R){R===void 0&&(R={});var A={};[d,R].forEach(function(x){for(var U in x)Object.prototype.hasOwnProperty.call(x,U)&&(A[U]=x[U])});var p=A.version,u=A.url||a(p);return new r.Promise(function(x,U){var Z=se();if(Z){var Ht=Z.getAttribute("src");Ht!==u?U(new Error("The ArcGIS API for JavaScript is already loaded ("+Ht+").")):oe()?x(Z):C(Z,x,U)}else if(oe())U(new Error("The ArcGIS API for JavaScript is already loaded."));else{var ft=A.css;if(ft){var Lr=ft===!0;f(Lr?p:ft,A.insertCssBefore)}Z=h(u),C(Z,function(){Z.setAttribute("data-esri-loader","loaded"),x(Z)},U),document.body.appendChild(Z)}})}function Xt(R){return new r.Promise(function(A,p){var u=window.require.on("error",p);window.require(R,function(){for(var x=[],U=0;U<arguments.length;U++)x[U]=arguments[U];u.remove(),A(x)})})}function Jr(R,A){if(A===void 0&&(A={}),oe())return Xt(R);var p=se(),u=p&&p.getAttribute("src");return!A.url&&u&&(A.url=u),Fe(A).then(function(){return Xt(R)})}e.utils=r,e.loadModules=Jr,e.getScript=se,e.isLoaded=oe,e.loadScript=Fe,e.setDefaultOptions=V,e.loadCss=f,Object.defineProperty(e,"__esModule",{value:!0})})});var ue={};oi(ue,{loadArcGISModules:()=>Cs});var k={},Vt=S(Pe(),1);j(k,S(Pe(),1));if(!Vt.Layer)throw new Error("@deck.gl/core is not found");j(ue,k);var kt={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function Tt(e){return e.createSubclass({properties:kt,constructor(){this._callbacks={},this.watch(Object.keys(kt),(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 Rt(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 I=S(E(),1);var Se=S(E(),1);var q;(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 De={[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},F=(e,t,r)=>t?e.enable(r):e.disable(r),mt=(e,t,r)=>e.hint(r,t),y=(e,t,r)=>e.pixelStorei(r,t),Yt=(e,t,r)=>{let i=r===36006?36009:36008;return e.bindFramebuffer(i,t)},he=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};function dt(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var zt={[3042]:F,[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]:F,[2885]:(e,t)=>e.cullFace(t),[2929]:F,[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]:F,[35723]:mt,[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]:Yt,[36010]:Yt,[34964]:he,[36662]:he,[36663]:he,[35053]:he,[35055]:he,[2886]:(e,t)=>e.frontFace(t),[33170]:mt,[2849]:(e,t)=>e.lineWidth(t),[32823]:F,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:F,[32926]:F,[32928]:F,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:F,[3088]:(e,t)=>e.scissor(...t),[2960]:F,[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]:F,[10754]:F,[12288]:F,[12289]:F,[12290]:F,[12291]:F,[12292]:F,[12293]:F,[12294]:F,[12295]:F,[3333]:y,[3317]:y,[37440]:y,[37441]:y,[37443]:y,[3330]:y,[3332]:y,[3331]:y,[3314]:y,[32878]:y,[3316]:y,[3315]:y,[32877]:y,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),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=dt(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=dt(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=dt(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)};function N(e,t,r){return t[e]!==void 0?t[e]:r[e]}var $t={blendEquation:(e,t,r)=>e.blendEquationSeparate(N(32777,t,r),N(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(N(32969,t,r),N(32968,t,r),N(32971,t,r),N(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(N(32824,t,r),N(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(N(32938,t,r),N(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,N(2962,t,r),N(2967,t,r),N(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,N(34816,t,r),N(36003,t,r),N(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,N(2964,t,r),N(2965,t,r),N(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,N(34817,t,r),N(34818,t,r),N(34819,t,r))},At={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]})},K=(e,t)=>e.isEnabled(t),ht={[3042]:K,[2884]:K,[2929]:K,[3024]:K,[32823]:K,[32926]:K,[32928]:K,[3089]:K,[2960]:K,[35977]:K},Zt=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 H(e,t){if(ni(t))return;let r={};for(let s in t){let o=Number(s),a=zt[s];a&&(typeof a=="string"?r[a]=!0:a(e,t[s],o))}let i=e.state&&e.state.cache;if(i)for(let s in r){let o=$t[s];o(e,t,i)}}function xe(e,t=De){if(typeof t=="number"){let s=t,o=ht[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=ht[s];i[s]=o?o(e,Number(s)):e.getParameter(Number(s))}return i}function ni(e){for(let t in e)return!1;return!0}function Qt(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s<e.length;++s)if(e[s]!==t[s])return!1;return!0}return!1}var St=class{gl;program=null;stateStack=[];enable=!0;cache;log;constructor(t,{copyState:r=!1,log:i=()=>{}}={}){this.gl=t,this.cache=r?xe(t):Object.assign({},De),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){(0,Se.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];H(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,Se.assert)(o!==void 0);let a=t[o],n=this.cache[o];Qt(a,n)||(r=!0,i=n,s&&!(o in s)&&(s[o]=n),this.cache[o]=a)}return{valueChanged:r,oldValue:i}}};function te(e){return e.state}function Et(e,t){let{enable:r=!0,copyState:i}=t;if((0,Se.assert)(i!==void 0),!e.state){e.state=new St(e,{copyState:i}),ci(e);for(let o in At){let a=At[o];_i(e,o,a)}jt(e,"getParameter"),jt(e,"isEnabled")}let s=te(e);return s.enable=r,e}function J(e){let t=te(e);t||(Et(e,{copyState:!1}),t=te(e)),t.push()}function Q(e){let t=te(e);(0,Se.assert)(t),t.pop()}function jt(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||Zt.has(s))return r(s);let o=te(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 _i(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(...o){let a=te(e),{valueChanged:n,oldValue:_}=r(a._updateCache,...o);return n&&i(...o),_},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function ci(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=te(e);s.program!==i&&(t(i),s.program=i)}}var li={powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function qt(e,t){t={...li,...t};let r=null,i=o=>r=o.statusMessage||r;e.addEventListener("webglcontextcreationerror",i,!1);let s=null;if(s||=e.getContext("webgl2",t),e.removeEventListener("webglcontextcreationerror",i,!1),!s)throw new Error(`Failed to create WebGL context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",a=>o(a),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",a=>o(a),!1)}return s}function v(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}function Jt(e,t){let r=e.getParameter(7936),i=e.getParameter(7937);v(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=Lt(n,_),T=fi(n,_),f=Ti(n,_);return{type:"webgl",gpu:l,gpuType:f,gpuBackend:T,vendor:n,renderer:_,version:c,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Lt(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 fi(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function Ti(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(Lt(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}var _r=S(E(),1);var It=S(E(),1);function Ue(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 O="texture-compression-bc",g="texture-compression-astc",m="texture-compression-etc2",Ri="texture-compression-etc1-webgl",ye="texture-compression-pvrtc-webgl",gt="texture-compression-atc-webgl",Ee="float32-renderable-webgl",pt="float16-renderable-webgl",di="rgb9e5ufloat_renderable-webgl",bt="snorm8-renderable-webgl",ge="norm16-renderable-webgl",Ct="snorm16-renderable-webgl",we="float32-filterable",Gt="float16-filterable-webgl",pe="WEBGL_compressed_texture_s3tc",be="WEBGL_compressed_texture_s3tc_srgb",ae="EXT_texture_compression_rgtc",ne="EXT_texture_compression_bptc",Ai="WEBGL_compressed_texture_etc",hi="WEBGL_compressed_texture_astc",Si="WEBGL_compressed_texture_etc1",Ei="WEBGL_compressed_texture_pvrtc",gi="WEBGL_compressed_texture_atc",er="EXT_texture_norm16",tr="EXT_render_snorm",pi="EXT_color_buffer_float",ve={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat_renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[tr],"norm16-renderable-webgl":[er],"snorm16-renderable-webgl":[er,tr],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[pe,be,ae,ne],"texture-compression-bc5-webgl":[ae],"texture-compression-bc7-webgl":[ne],"texture-compression-etc2":[Ai],"texture-compression-astc":[hi],"texture-compression-etc1-webgl":[Si],"texture-compression-pvrtc-webgl":[Ei],"texture-compression-atc-webgl":[gi]};function rr(e){return e in ve}function ir(e,t,r){return(ve[t]||[]).every(s=>v(e,s,r))}var Xe={"rgb8unorm-unsized":{gl:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,rb:!0},r8snorm:{gl:36756,b:1,c:1,render:bt},r8uint:{gl:33330,b:1,c:1,rb:!0},r8sint:{gl:33329,b:1,c:1,rb:!0},rg8unorm:{gl:33323,b:2,c:2,rb:!0},rg8snorm:{gl:36757,b:2,c:2,render:bt},rg8uint:{gl:33336,b:2,c:2,rb:!0},rg8sint:{gl:33335,b:2,c:2,rb:!0},r16uint:{gl:33332,b:2,c:1,rb:!0},r16sint:{gl:33331,b:2,c:1,rb:!0},r16float:{gl:33325,b:2,c:1,render:pt,filter:"float16-filterable-webgl",rb:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:ge,rb:!0},"r16snorm-webgl":{gl:36760,b:2,c:1,f:Ct},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,rb:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,rb:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,rb:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,b:4,c:4,bpp:4},rgba8snorm:{gl:36759,b:4,c:4,render:bt},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:pt,filter:Gt,rb:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,render:ge},"rg16snorm-webgl":{gl:36761,b:2,c:2,render:Ct},r32uint:{gl:33334,b:4,c:1,bpp:4,rb:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,rb:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:Ee,filter:we},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:di},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:Ee,rb:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,rb:!0},"rgb10a2uint-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,rb:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:ge},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:ge},rg32uint:{gl:33340,b:8,c:2,rb:!0},rg32sint:{gl:33339,b:8,c:2,rb:!0},rg32float:{gl:33328,b:8,c:2,render:Ee,filter:we,rb:!0},rgba16uint:{gl:36214,b:8,c:4,rb:!0},rgba16sint:{gl:36232,b:8,c:4,rb:!0},rgba16float:{gl:34842,b:8,c:4,render:pt,filter:Gt},"rgba16unorm-webgl":{gl:32859,b:2,c:4,render:ge,rb:!0},"rgba16snorm-webgl":{gl:36763,b:2,c:4,render:Ct},"rgb32float-webgl":{gl:34837,render:Ee,filter:we,gl2ext:pi,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,rb:!0},rgba32sint:{gl:36226,b:16,c:4,rb:!0},rgba32float:{gl:34836,b:16,c:4,render:Ee,filter:we,rb:!0},stencil8:{gl:36168,b:1,c:1,attachment:36128,rb:!0},depth16unorm:{gl:33189,b:2,c:1,attachment:36096,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096,dataFormat:6402,types:[5125]},depth32float:{gl:36012,b:4,c:1,attachment:36096,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,dataFormat:34041,types:[34042],rb:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:pe,f:O},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:be,f:O},"bc1-rgba-unorm":{gl:33777,x:pe,f:O},"bc1-rgba-unorm-srgb":{gl:35916,x:be,f:O},"bc2-rgba-unorm":{gl:33778,x:pe,f:O},"bc2-rgba-unorm-srgb":{gl:35918,x:be,f:O},"bc3-rgba-unorm":{gl:33779,x:pe,f:O},"bc3-rgba-unorm-srgb":{gl:35919,x:be,f:O},"bc4-r-unorm":{gl:36283,x:ae,f:O},"bc4-r-snorm":{gl:36284,x:ae,f:O},"bc5-rg-unorm":{gl:36285,x:ae,f:O},"bc5-rg-snorm":{gl:36286,x:ae,f:O},"bc6h-rgb-ufloat":{gl:36495,x:ne,f:O},"bc6h-rgb-float":{gl:36494,x:ne,f:O},"bc7-rgba-unorm":{gl:36492,x:ne,f:O},"bc7-rgba-unorm-srgb":{gl:36493,x:ne,f:O},"etc2-rgb8unorm":{gl:37492,f:m},"etc2-rgb8unorm-srgb":{gl:37494,f:m},"etc2-rgb8a1unorm":{gl:37496,f:m},"etc2-rgb8a1unorm-srgb":{gl:37497,f:m},"etc2-rgba8unorm":{gl:37493,f:m},"etc2-rgba8unorm-srgb":{gl:37495,f:m},"eac-r11unorm":{gl:37488,f:m},"eac-r11snorm":{gl:37489,f:m},"eac-rg11unorm":{gl:37490,f:m},"eac-rg11snorm":{gl:37491,f:m},"astc-4x4-unorm":{gl:37808,f:g},"astc-4x4-unorm-srgb":{gl:37840,f:g},"astc-5x4-unorm":{gl:37809,f:g},"astc-5x4-unorm-srgb":{gl:37841,f:g},"astc-5x5-unorm":{gl:37810,f:g},"astc-5x5-unorm-srgb":{gl:37842,f:g},"astc-6x5-unorm":{gl:37811,f:g},"astc-6x5-unorm-srgb":{gl:37843,f:g},"astc-6x6-unorm":{gl:37812,f:g},"astc-6x6-unorm-srgb":{gl:37844,f:g},"astc-8x5-unorm":{gl:37813,f:g},"astc-8x5-unorm-srgb":{gl:37845,f:g},"astc-8x6-unorm":{gl:37814,f:g},"astc-8x6-unorm-srgb":{gl:37846,f:g},"astc-8x8-unorm":{gl:37815,f:g},"astc-8x8-unorm-srgb":{gl:37847,f:g},"astc-10x5-unorm":{gl:37819,f:g},"astc-10x5-unorm-srgb":{gl:37851,f:g},"astc-10x6-unorm":{gl:37817,f:g},"astc-10x6-unorm-srgb":{gl:37849,f:g},"astc-10x8-unorm":{gl:37818,f:g},"astc-10x8-unorm-srgb":{gl:37850,f:g},"astc-10x10-unorm":{gl:37819,f:g},"astc-10x10-unorm-srgb":{gl:37851,f:g},"astc-12x10-unorm":{gl:37820,f:g},"astc-12x10-unorm-srgb":{gl:37852,f:g},"astc-12x12-unorm":{gl:37821,f:g},"astc-12x12-unorm-srgb":{gl:37853,f:g},"pvrtc-rgb4unorm-webgl":{gl:35840,f:ye},"pvrtc-rgba4unorm-webgl":{gl:35842,f:ye},"pvrtc-rbg2unorm-webgl":{gl:35841,f:ye},"pvrtc-rgba2unorm-webgl":{gl:35843,f:ye},"etc1-rbg-unorm-webgl":{gl:36196,f:Ri},"atc-rgb-unorm-webgl":{gl:35986,f:gt},"atc-rgba-unorm-webgl":{gl:35986,f:gt},"atc-rgbai-unorm-webgl":{gl:34798,f:gt}},bi={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},Ci={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function He(e,t,r){let i=Xe[t];if(!i||i.gl===void 0)return!1;let s=i.x||i.gl2ext;return s?Boolean(v(e,s,r)):!0}function Nt(e){let r=Xe[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}function sr(e,t,r){if(!He(e,t,r)||t.startsWith("depth")||t.startsWith("stencil"))return!1;try{if((0,It.decodeTextureFormat)(t).signed)return!1}catch{return!1}return t.endsWith("32float")?Boolean(v(e,"OES_texture_float_linear, extensions",r)):t.endsWith("16float")?Boolean(v(e,"OES_texture_half_float_linear, extensions",r)):!0}function or(e,t,r){return!(!He(e,t,r)||typeof t=="number")}function _e(e){let t=Xe[e],r=Nt(e),i=(0,It.decodeTextureFormat)(e);return{format:r,dataFormat:t?.dataFormat||Ii(i.format,i.integer,i.normalized,r),type:i.dataType?Ue(i.dataType):t?.types?.[0]||5121,compressed:i.compressed}}function ar(e){let t=Xe[e];if(!t?.attachment)throw new Error(`${e} is not a depth stencil format`);return t.attachment}function ut(e){let t=_e(e),r=bi[t.dataFormat]||4,i=Ci[t.type]||1;return r*i}function Ii(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;default:return 6408}}var nr={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"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 _r.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,i){super([],i),this.gl=t,this.extensions=r,v(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){for(let t of Object.keys(nr))this.has(t)&&(yield t);for(let t of Object.keys(ve))this.has(t)&&(yield t);return[]}has(t){return this.disabledFeatures[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),rr(t)&&ir(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){for(let t of this);}getWebGLFeature(t){let r=nr[t];return Boolean(typeof r=="string"?v(this.gl,r,this.extensions):r)}};var cr=S(E(),1);var Ve=class extends cr.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 maxInterStageShaderComponents(){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]}};var dr=S(E(),1);var Ze=S(E(),1);var M=S(E(),1);function X(e,t,r){if(Ni(t))return r(e);let{nocatch:i=!0}=t;J(e),H(e,t);let s;if(i)s=r(e),Q(e);else try{s=r(e)}finally{Q(e)}return s}function Ni(e){for(let t in e)return!1;return!0}var me=S(E(),1);function fr(e,t,r,i){if((0,me.isObjectEmpty)(t))return i(e);let s=e;J(s.gl);try{return ui(e,t),H(s.gl,r),i(e)}finally{Q(s.gl)}}function ui(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(re("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex;if(t.provokingVertex){let a=re("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}}if(e.features.has("polygon-mode-webgl")){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode;if(t.polygonMode){let a=re("polygonMode",t.provokingVertex,{fill:6914,lint: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(Oi("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(Ke("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&me.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=Ke("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=Ft("stencilPassOperation",t.stencilPassOperation),o=Ft("stencilFailOperation",t.stencilFailOperation),a=Ft("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let s=lr("blendColorOperation",t.blendColorOperation||"add"),o=lr("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 Ke(e,t){return re(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Ft(e,t){return re(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function lr(e,t){return re(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ke(e,t){return re(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773})}function Fi(e,t){return`Illegal parameter ${t} for ${e}`}function re(e,t,r){if(!(t in r))throw new Error(Fi(e,t));return r[t]}function Oi(e,t){return t}function Ye(e){let t={};return e.addressModeU&&(t[10242]=Ot(e.addressModeU)),e.addressModeV&&(t[10243]=Ot(e.addressModeV)),e.addressModeW&&(t[32882]=Ot(e.addressModeW)),e.magFilter&&(t[10240]=Tr(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Mi(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]=Ke("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Ot(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Tr(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Mi(e,t){if(!t)return Tr(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var Y=S(E(),1);var B=class extends Y.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;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.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Bi(this.props.usage),this.glUsage=Pi(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)}_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.trackAllocatedMemory(i)}_initWithByteLength(t){(0,Y.assert)(t>=0);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.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t,r=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,r,t),this.gl.bindBuffer(36663,null),this._setDebugData(t,r,t.byteLength)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}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 Bi(e){return e&Y.Buffer.INDEX?34963:e&Y.Buffer.VERTEX?34962:e&Y.Buffer.UNIFORM?35345:34962}function Pi(e){return e&Y.Buffer.INDEX||e&Y.Buffer.VERTEX?35044:e&Y.Buffer.UNIFORM?35048:35044}var Rr=S(E(),1);var ie=class extends Rr.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=Ye(r),this.handle=this.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}}}};var ze=S(E(),1),W=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}};var Di={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},$e=class extends M.Texture{MAX_ATTRIBUTES;device;gl;handle;sampler=void 0;view=void 0;glFormat=void 0;type=void 0;dataFormat=void 0;mipmaps=void 0;target;textureUnit=void 0;loaded=!1;_video;constructor(t,r){super(t,{...Di,format:"rgba8unorm",...r}),this.device=t,this.gl=this.device.gl,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=xi(this.props),this.loaded=!1,typeof this.props?.data=="string"&&Object.assign(this.props,{data:(0,M.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}createView(t){return new W(this.device,{...t,texture:this})}initialize(t={}){if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(w=>this.initialize(Object.assign({},t,{pixels:w,data:w}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:s={}}=t,{pixels:o=null,pixelStore:a={},textureUnit:n=void 0,mipmaps:_=!0}=t;r||(r=o);let{width:c,height:l,dataFormat:T,type:f,compressed:d=!1}=t,{depth:h=0}=t,C=Nt(t.format);return{width:c,height:l,compressed:d,dataFormat:T,type:f}=this._deduceParameters({format:t.format,type:f,dataFormat:T,compressed:d,data:r,width:c,height:l}),this.width=c,this.height=l,this.glFormat=C,this.type=f,this.dataFormat=T,this.textureUnit=n,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),this.mipmaps=_,this.setImageData({data:r,width:c,height:l,depth:h,format:C,type:f,dataFormat:T,parameters:a,compressed:d}),this.setSampler(t.sampler),this._setSamplerParameters(s),this.view=this.createView({...this.props,mipLevelCount:1,arrayLayerCount:1}),_&&this.device.isTextureFormatFilterable(t.format)&&this.generateMipmap(),i&&(this._video={video:r,parameters:s,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(t={}){let r;t instanceof ie?(this.sampler=t,r=t.props):(this.sampler=new ie(this.device,t),r=t);let i=Ye(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:s=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:s}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(t={}){return this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),X(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:s=0,glFormat:o=this.glFormat,offset:a=0,parameters:n={}}=t,{data:_=null,type:c=this.type,width:l=this.width,height:T=this.height,dataFormat:f=this.dataFormat,compressed:d=!1}=t;_||(_=i),{type:c,dataFormat:f,compressed:d,width:l,height:T}=this._deduceParameters({format:this.props.format,type:c,dataFormat:f,compressed:d,data:_,width:l,height:T});let{gl:h}=this;h.bindTexture(this.target,this.handle);let C=null;if({data:_,dataType:C}=this._getDataType({data:_,compressed:d}),X(this.gl,n,()=>{switch(C){case"null":h.texImage2D(r,s,o,l,T,0,f,c,_);break;case"typed-array":h.texImage2D(r,s,o,l,T,0,f,c,_,a);break;case"buffer":this.device.gl.bindBuffer(35052,_.handle||_),this.device.gl.texImage2D(r,s,o,l,T,0,f,c,a),this.device.gl.bindBuffer(35052,null);break;case"browser-object":h.texImage2D(r,s,o,l,T,0,f,c,_);break;case"compressed":for(let[w,V]of _.entries())h.compressedTexImage2D(r,w,V.format,V.width,V.height,0,V.data);break;default:(0,M.assert)(!1,"Unknown image data type")}}),_&&_.byteLength)this.trackAllocatedMemory(_.byteLength,"Texture");else{let w=ut(this.props.format);this.trackAllocatedMemory(this.width*this.height*w,"Texture")}return this.loaded=!0,this}setSubImageData({target:t=this.target,pixels:r=null,data:i=null,x:s=0,y:o=0,width:a=this.width,height:n=this.height,level:_=0,glFormat:c=this.glFormat,type:l=this.type,dataFormat:T=this.dataFormat,compressed:f=!1,offset:d=0,parameters:h={}}){if({type:l,dataFormat:T,compressed:f,width:a,height:n}=this._deduceParameters({format:this.props.format,type:l,dataFormat:T,compressed:f,data:i,width:a,height:n}),(0,M.assert)(this.depth===1,"texSubImage not supported for 3D textures"),i||(i=r),i&&i.data){let C=i;i=C.data,a=C.shape[0],n=C.shape[1]}i instanceof B&&(i=i.handle),this.gl.bindTexture(this.target,this.handle),X(this.gl,h,()=>{f?this.gl.compressedTexSubImage2D(t,_,s,o,a,n,c,i):i===null?this.gl.texSubImage2D(t,_,s,o,a,n,T,l,null):ArrayBuffer.isView(i)?this.gl.texSubImage2D(t,_,s,o,a,n,T,l,i,d):typeof WebGLBuffer<"u"&&i instanceof WebGLBuffer?(this.device.gl.bindBuffer(35052,i),this.device.gl.texSubImage2D(t,_,s,o,a,n,T,l,d),this.device.gl.bindBuffer(35052,null)):this.device.gl.texSubImage2D(t,_,s,o,a,n,T,l,i)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(t={}){return M.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(t=this.textureUnit){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(t=this.textureUnit){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType({data:t,compressed:r=!1}){return r?{data:t,dataType:"compressed"}:t===null?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof B?{data:t.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:s,height:o,dataFormat:a,type:n,compressed:_}=t,c=_e(r);return a=a||c.dataFormat,n=n||c.type,_=_||c.compressed,{width:s,height:o}=this._deduceImageSize(i,s,o),{dataFormat:a,type:n,compressed:_,width:s,height:o,format:r,data:i}}_deduceImageSize(t,r,i){let s;return typeof ImageData<"u"&&t instanceof ImageData?s={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?s={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?s={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?s={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?s={width:t.videoWidth,height:t.videoHeight}:t?s={width:r,height:i}:s={width:r>=0?r:1,height:i>=0?i:1},(0,M.assert)(s,"Could not deduced texture size"),(0,M.assert)(r===void 0||s.width===r,"Deduced texture width does not match supplied width"),(0,M.assert)(i===void 0||s.height===i,"Deduced texture height does not match supplied height"),s}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:s,pixels:o,data:a,format:n=6408,type:_=5121}=t,c=o||a,l=await Promise.all($e.FACES.map(T=>{let f=c[T];return Promise.all(Array.isArray(f)?f:[f])}));this.bind(),$e.FACES.forEach((T,f)=>{l[f].length>1&&this.props.mipmaps!==!1&&M.log.warn(`${this.id} has mipmap and multiple LODs.`)(),l[f].forEach((d,h)=>{i&&s?r.texImage2D(T,h,n,i,s,0,n,_,d):r.texImage2D(T,h,n,n,_,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:o,data:a,format:n=6408,type:_=5121}=t,{gl:c}=this,l=o||a;return this.bind(),l instanceof Promise?l.then(T=>this.setImageDataForFace(Object.assign({},t,{face:r,data:T,pixels:T}))):this.width||this.height?c.texImage2D(r,0,n,i,s,0,n,_,l):c.texImage2D(r,0,n,n,_,l),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:s,type:o,width:a,height:n,depth:_=1,offset:c=0,data:l,parameters:T={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let f=_e(s);if(X(this.gl,T,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,r,f.format,a,n,_,0,f.dataFormat,f.type,l),l instanceof B&&(this.gl.bindBuffer(35052,l.handle),this.gl.texImage3D(this.target,r,i,a,n,_,0,s,o,c))}),l&&l.byteLength)this.trackAllocatedMemory(l.byteLength,"Texture");else{let d=ut(this.props.format);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(!(0,M.isObjectEmpty)(t)){Ui(t),this.gl.bindTexture(this.target,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.target,s,o);break;default:this.gl.texParameteri(this.target,s,o);break}}this.gl.bindTexture(this.target,null)}}},P=$e;Be(P,"FACES",[34069,34070,34071,34072,34073,34074]);function xi(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function Ui(e){M.log.log(1,"texture sampler parameters",e)()}var z=class extends Ze.Framebuffer{device;gl;handle;get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r);let i=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(36160,this.handle);for(let s=0;s<this.colorAttachments.length;++s){let o=this.colorAttachments[s],a=36064+s;o&&this._attachOne(a,o)}if(this.depthStencilAttachment&&this._attachOne(ar(this.depthStencilAttachment.props.format),this.depthStencilAttachment),r.check!==!1){let s=this.gl.checkFramebufferStatus(36160);if(s!==36053)throw new Error(`Framebuffer ${wi(s)}`)}this.gl.bindFramebuffer(36160,null)}}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}createDepthStencilTexture(t){return new P(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height,mipmaps:!1})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.texture.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.texture.resize({width:t,height:r}),this}_attachOne(t,r){if(Array.isArray(r)){let[i,s=0,o=0]=r;return this._attachTexture(t,i,s,o),i}if(r instanceof P)return this._attachTexture(t,r,0,0),r;if(r instanceof W){let i=r;return this._attachTexture(t,i.texture,i.props.baseMipLevel,i.props.baseArrayLayer),r.texture}throw new Error("attach")}_attachTexture(t,r,i,s){let{gl:o}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:o.framebufferTextureLayer(36160,t,r.target,s,i);break;case 34067:let a=yi(i);o.framebufferTexture2D(36160,t,a,r.handle,s);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,s);break;default:(0,Ze.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function yi(e){return e<34069?e+34069:e}function wi(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 Qe=class extends dr.CanvasContext{device;presentationSize;_framebuffer=null;constructor(t,r){super(r),this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new z(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t,this.resize())}resize(t){if(this.device.gl&&this.canvas){let r=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(r,t);return}}commit(){}};var $=S(E(),1),vi={spector:$.log.get("spector")||$.log.get("inspect")},Xi="https://spectorcdn.babylonjs.com/spector.bundle.js",Hi=1,D=null,Ar=!1;async function hr(e){if(!globalThis.SPECTOR)try{await(0,$.loadScript)(Xi)}catch(t){$.log.warn(String(t))}}function Sr(e){if(e={...vi,...e},!e?.spector||(!D&&globalThis.SPECTOR&&($.log.probe(Hi,"SPECTOR found and initialized")(),D=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=D)),!D))return null;if(Ar||(Ar=!0,D.spyCanvases(),D?.onCaptureStarted.add(t=>$.log.info("Spector capture started:",t)()),D?.onCapture.add(t=>{$.log.info("Spector capture complete:",t)(),D?.getResultUI(),D?.resultView.display(),D?.resultView.addCapture(t)})),e?.canvas){if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return D;D?.startCapture(e?.canvas,500),new Promise(t=>setTimeout(t,2e3)).then(t=>{$.log.info("Spector capture stopped after 2 seconds")(),D?.stopCapture()})}return D}var L=S(E(),1);var Mo=globalThis.document||{},Bo=globalThis.process||{},Po=globalThis.console,Er=globalThis.navigator||{};function je(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)}function Ce(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||je()}function Mt(e){return!e&&!Ce()?"Node":je(e)?"Electron":(e||Er.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var Wi="https://unpkg.com/webgl-debug@2.0.1/index.js";function gr(e){return e.luma=e.luma||{},e.luma}async function pr(){Ce()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,L.loadScript)(Wi))}function br(e,t={}){return e?t.debug?ki(e,t):Vi(e):null}function Vi(e){let t=gr(e);return t.realContext?t.realContext:e}function ki(e,t){if(!globalThis.WebGLDebugUtils)return L.log.warn("webgl-debug not loaded")(),e;let r=gr(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...q,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,Ki.bind(null,t),mi.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.debug=!0,o}function Bt(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 Ki(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})`;L.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function mi(e,t,r){let i="";if(L.log.level>=1&&(i=Bt(t,r),L.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||Bt(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let s of r)if(s===void 0){if(i=i||Bt(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);L.log.error(`Undefined argument: ${i}`)();debugger}}var ce=S(E(),1);function Ir(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.split(":");if(s.length===2){let[T,f]=s;r.push({message:f.trim(),type:Cr(T),lineNum:0,linePos:0});continue}let[o,a,n,..._]=s,c=parseInt(n,10);isNaN(c)&&(c=0);let l=parseInt(a,10);isNaN(l)&&(l=0),r.push({message:_.join(":").trim(),type:Cr(o),lineNum:c,linePos:l})}return r}function Cr(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var qe=class extends ce.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)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return Ir(t)}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)}async _compile(t){t=(s=>s.startsWith("#version ")?s:`#version 100
8
- ${s}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),ce.log.level===0){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);this.debugShader();return}ce.log.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),ce.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"}};var Nr=S(E(),1);var Yi=256,zi=1024,$i=16384,Pt=6144,Je=class extends Nr.RenderPass{device;glParameters;constructor(t,r){super(t,r),this.device=t,J(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){Q(this.device.gl),this.props.framebuffer&&H(this.device.gl,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),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),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),this.glParameters=r,H(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=$i,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Yi,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=zi,t.clearStencil=this.props.clearStencil),r!==0&&X(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){X(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(Pt,t,r);break;case Uint32Array:this.device.gl.clearBufferuiv(Pt,t,r);break;case Float32Array:default:this.device.gl.clearBufferfv(Pt,t,r);break}})}};var b=S(E(),1),yr=S(E(),1);var Le=S(E(),1);var Zi="Failed to deduce GL constant from typed array";function ur(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Zi)}}function Ie(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Qi={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},ji={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},G=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(t){return Ie(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,Le.assert)(t.size),Ie(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(...t){return new G(Qi,...t)}constructor(...t){t.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return G.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return G.getBytesPerVertex(this)}_assign(t={}){return t=(0,Le.checkProps)("Accessor",t,ji),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Fr(e){return qi.includes(e)}var qi=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Or={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function Dt(e){let t=Or[e];if(!t)throw new Error("uniform");let[r,i,,s]=t;return{format:s,components:i,glType:r}}function Mr(e){let t=Or[e];if(!t)throw new Error("attribute");let[,r,,i,s]=t;return{attributeType:i,vertexFormat:s,components:r}}function Br(e,t){let r={attributes:[],bindings:[]};r.attributes=Ji(e,t);let i=es(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,location:n.location,visibility:(n.vertex?1:0)&(n.fragment?2:0),minBindingSize:n.byteLength,uniforms:_})}let s=Gi(e,t),o=0;for(let n of s)if(Fr(n.type)){let{viewDimension:_,sampleType:c}=rs(n.type);r.bindings.push({type:"texture",name:n.name,location:o,viewDimension:_,sampleType:c}),n.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=Li(e,t);return a?.length&&(r.varyings=a),r}function Ji(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{attributeType:c}=Mr(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 Li(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,{glType:c,components:l}=Dt(n),T=new G({type:c,size:_*l}),f={location:s,name:a,accessor:T};r.push(f)}return r.sort((s,o)=>s.location-o.location),r}function Gi(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}=is(a),T=e.getUniformLocation(t,c),f={location:T,name:c,size:n,type:_,isArray:l};if(r.push(f),f.size>1)for(let d=0;d<f.size;d++){let h=`${c}[${d}]`;T=e.getUniformLocation(t,h);let C={...f,name:h,location:T};r.push(C)}}return r}function es(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),T=e.getActiveUniforms(t,n,35388);for(let f=0;f<a.uniformCount;++f){let d=e.getActiveUniform(t,n[f]);if(!d)throw new Error("activeInfo");a.uniforms.push({name:d.name,format:Dt(_[f]).format,type:_[f],arrayLength:c[f],byteOffset:l[f],byteStride:T[f]})}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}var ts={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function rs(e){let t=ts[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function is(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Pr(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")}function Dr(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function xr(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var Ur=4,Ge=class extends b.RenderPipeline{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(t,r){super(t,r),this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,b.cast)(r.vs),this.fs=(0,b.cast)(r.fs);let{varyings:i,bufferMode:s=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,s)),this._linkShaders(),b.log.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Br(this.device.gl,this.handle),b.log.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=(0,yr.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":b.log.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,i]of Object.entries(t)){let s=this.shaderLayout.bindings.find(o=>o.name===r)||this.shaderLayout.bindings.find(o=>o.name===`${r}Uniforms`);if(!s){let o=this.shaderLayout.bindings.map(a=>`"${a.name}"`).join(", ");b.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||b.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),s.type){case"uniform":if(!(i instanceof B)&&!(i.buffer instanceof B))throw new Error("buffer value");break;case"texture":if(!(i instanceof W||i instanceof P||i instanceof z))throw new Error("texture value");break;case"sampler":b.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(s.type)}this.bindings[r]=i}}draw(t){let{renderPass:r,vertexArray:i,vertexCount:s,instanceCount:o,firstVertex:a=0,transformFeedback:n}=t,_=Dr(this.props.topology),c=Boolean(i.indexBuffer),l=i.indexBuffer?.glIndexType,T=Number(o)>0;if(this.linkStatus!=="success")return b.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||s===0)return b.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(s===0)return b.log.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),i.bindBeforeRender(r),n&&n.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let f=r;return fr(this.device,this.props.parameters,f.glParameters,()=>{c&&T?this.device.gl.drawElementsInstanced(_,s||0,l,a,o||0):c?this.device.gl.drawElements(_,s||0,l,a):T?this.device.gl.drawArraysInstanced(_,a,s||0,o||0):this.device.gl.drawArrays(_,a,s||0),n&&n.end()}),i.unbindAfterRender(r),!0}setUniformsWebGL(t){let{bindings:r}=(0,b.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{b.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),b.log.time(Ur,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),b.log.timeEnd(Ur,`linkProgram for ${this.id}`)(),b.log.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}b.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),b.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(t){switch(t){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${t}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}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)}}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof P&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name]||this.bindings[s.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:a}=s,n=t.getUniformBlockIndex(this.handle,a);if(n===4294967295)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,i,n),o instanceof B?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof W||o instanceof P||o instanceof z))throw new Error("texture");let _;if(o instanceof W)_=o.texture;else if(o instanceof P)_=o;else if(o instanceof z&&o.colorAttachments[0]instanceof W)b.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),_=o.colorAttachments[0].texture;else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(_.target,_.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${s.type}' not supported in WebGL`)}}}_applyUniforms(){for(let t of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:s,textureUnit:o}=t,a=this.uniforms[r]??o;a!==void 0&&Pr(this.device.gl,i,s,a)}}};var vr=S(E(),1);var tt=S(E(),1);var et=class extends tt.CommandBuffer{device;commands=[];constructor(t){super(t,{}),this.device=t}submitCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":ss(this.device,r.options);break;case"copy-buffer-to-texture":os(this.device,r.options);break;case"copy-texture-to-buffer":as(this.device,r.options);break;case"copy-texture-to-texture":ns(this.device,r.options);break}}};function ss(e,t){let r=t.source,i=t.destination;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 os(e,t){throw new Error("Not implemented")}function as(e,t){let{source:r,mipLevel:i=0,aspect:s="all",width:o=t.source.width,height:a=t.source.height,depthOrArrayLayers:n=0,origin:_=[0,0],destination:c,byteOffset:l=0,bytesPerRow:T,rowsPerImage:f}=t;if(s!=="all")throw new Error("not supported");if(i!==0||n!==0||T||f)throw new Error("not implemented");let{framebuffer:d,destroyFramebuffer:h}=wr(r);try{let C=c,w=o||d.width,V=a||d.height,se=_e(d.texture.props.format),oe=se.dataFormat,Fe=se.type;e.gl.bindBuffer(35051,C.handle),e.gl.bindFramebuffer(36160,d.handle),e.gl.readPixels(_[0],_[1],w,V,oe,Fe,l)}finally{e.gl.bindBuffer(35051,null),e.gl.bindFramebuffer(36160,null),h&&d.destroy()}}function ns(e,t){let{source:r,origin:i=[0,0],destination:s}=t,{width:o=t.destination.width,height:a=t.destination.width}=t,n=0,_=6408,{framebuffer:c,destroyFramebuffer:l}=wr(r),[T,f]=i,d=!1;e.gl.bindFramebuffer(36160,c.handle);let h=null,C;if(s instanceof P)h=s,o=Number.isFinite(o)?o:h.width,a=Number.isFinite(a)?a:h.height,h.bind(0),C=h.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(C,n,_,T,f,o,a,0),h&&h.unbind(),l&&c.destroy(),h}function wr(e){if(e instanceof tt.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 rt=class extends vr.CommandEncoder{device;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new et(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}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){}};var fe=S(E(),1);var le=class extends fe.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return Mt()==="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}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.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,l||0),this.attributes[t]=i}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}init=!1;bindBeforeRender(){if(this.device.gl.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl.bindBuffer(34963,t?.handle||null),this.init=!0}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=Ue(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=_s(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=a||!cs(i,this.bufferValue),a){let n=(0,fe.getScratchArray)(r.constructor,o);(0,fe.fillArray)({target:n,source:i,start:0,count:o}),this.buffer.write(n),this.bufferValue=r}return this.buffer}};function _s(e){return Array.isArray(e)?new Float32Array(e):e}function cs(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 st=S(E(),1);var it=class extends st.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(xr(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 in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,st.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(Xr(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?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 B)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(Xr(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:s}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,s,i)}}_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)}};function Xr(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var Hr=S(E(),1);var ot=class extends Hr.QuerySet{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(t,r){if(super(t,r),this.device=t,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(t){return this._begin(t?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(t){this._queryPending||(this.target=t,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.device.gl.getQueryParameter(this.handle,34919);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(t=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};var Te=S(E(),1);var xt=S(E(),1);function Ut(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,xt.assert)(!1),0}}function Wr(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return(0,xt.assert)(!1),0}}function Vr(e,t){let{sourceX:r=0,sourceY:i=0,sourceFormat:s=6408,sourceAttachment:o=36064}=t||{},{target:a=null,sourceWidth:n,sourceHeight:_,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:T}=Kr(e);(0,Te.assert)(l);let{gl:f,handle:d}=l;n=n||l.width,_=_||l.height;let h=o-36064;c=c||l.colorAttachments[h]?.texture?.type||5121,a=fs(a,c,s,n,_),c=c||ur(a);let C=f.bindFramebuffer(36160,d);return f.readPixels(r,i,n,_,s,c,a),f.bindFramebuffer(36160,C||null),T&&l.destroy(),a}function kr(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:T}=Kr(e);(0,Te.assert)(l),n=n||l.width,_=_||l.height;let f=l;c=c||5121;let d=r;if(!d){let C=Ut(o),w=Wr(c),V=a+n*_*C*w;d=f.device.createBuffer({byteLength:V})}let h=e.device.createCommandEncoder();return h.copyTextureToBuffer({source:e,width:n,height:_,origin:[i,s],destination:d,byteOffset:a}),h.destroy(),T&&l.destroy(),d}function Kr(e){return e instanceof Te.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:ls(e),deleteFramebuffer:!0}}function ls(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 fs(e,t,r,i,s){if(e)return e;t=t||5121;let o=Ie(t,{clamped:!1}),a=Ut(r);return new o(i*s*a)}var mr=S(E(),1);var Ts=256,Rs=1024,ds=16384;var As="clear: bad arguments";function Yr(e,t){let{framebuffer:r=null,color:i=null,depth:s=null,stencil:o=null}=t||{},a={};r&&(a.framebuffer=r);let n=0;i&&(n|=ds,i!==!0&&(a.clearColor=i)),s&&(n|=Ts,s!==!0&&(a.clearDepth=s)),o&&(n|=Rs,s!==!0&&(a.clearStencil=s)),(0,mr.assert)(n!==0,As);let _=e.gl;X(_,a,()=>{_.clear(n)})}var Ne=1,Re=class extends I.Device{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(t){if(t instanceof Re)return t;if(t?.device instanceof I.Device)return t.device;if(!hs(t))throw new Error("Invalid WebGL2RenderingContext");return new Re({gl:t})}static async create(t={}){I.log.groupCollapsed(Ne,"WebGLDevice created")();let r=[];t.debug&&r.push(pr()),t.spector&&r.push(hr()),typeof t.canvas=="string"&&r.push(I.CanvasContext.pageLoaded);let i=await Promise.allSettled(r);for(let a of i)a.status==="rejected"&&I.log.error(`Failed to initialize debug libraries ${a.reason}`)();if(I.log.probe(Ne+1,"DOM is loaded")(),t.gl?.device)return I.log.warn("reattaching existing device")(),Re.attach(t.gl);let s=new Re(t),o=`Created ${s.type}${s.debug?" debug":""} context: ${s.info.vendor}, ${s.info.renderer} for canvas: ${s.canvasContext.id}`;return I.log.probe(Ne,o)(),I.log.table(Ne,s.info)(),I.log.groupEnd(Ne)(),s}constructor(t){super({...t,id:t.id||(0,I.uid)("webgl-device")});let r=t.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=t.gl?.canvas||t.canvas;this.canvasContext=new Qe(this,{...t,canvas:i}),this.lost=new Promise(n=>{this._resolveContextLost=n});let s=t.gl||null;if(s||=qt(this.canvasContext.canvas,{...t,onContextLost:n=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!s)throw new Error("WebGL context creation failed");this.handle=s,this.gl=s,this.gl.device=this,this.gl._version=2,this.info=Jt(this.gl,this._extensions),this.limits=new Ve(this.gl),this.features=new We(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:a=!1}=t;Et(this.gl,{enable:o,copyState:a,log:(...n)=>I.log.log(1,...n)()}),t.debug&&(this.gl=br(this.gl,{...t,throwOnError:!0}),this.debug=!0,I.log.level=Math.max(I.log.level,1),I.log.warn("WebGL debug mode activated. Performance reduced.")()),t.spector&&(this.spectorJS=Sr({...this.props,canvas:this.handle.canvas}))}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return He(this.gl,t,this._extensions)}isTextureFormatFilterable(t){return sr(this.gl,t,this._extensions)}isTextureFormatRenderable(t){return or(this.gl,t,this._extensions)}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new B(this,r)}_createTexture(t){return new P(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new ie(this,t)}createShader(t){return new qe(this,t)}createFramebuffer(t){return new z(this,t)}createVertexArray(t){return new le(this,t)}createTransformFeedback(t){return new it(this,t)}createQuerySet(t){return new ot(this,t)}createRenderPipeline(t){return new Ge(this,t)}beginRenderPass(t){return new Je(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(t){return new rt(this,t)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(t,r){return Vr(t,r)}readPixelsToBufferWebGL(t,r){return kr(t,r)}setParametersWebGL(t){H(this.gl,t)}getParametersWebGL(t){return xe(this.gl,t)}withParametersWebGL(t,r){X(this.gl,t,r)}clearWebGL(t){Yr(this,t)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;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(){J(this.gl)}popState(){Q(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let s in r)if(r[s]===i)return`GL.${s}`;return String(t)}_constants;setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&ps(s,r)&&I.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Ss(this,t,r);break;case Int32Array:Es(this,t,r);break;case Uint32Array:gs(this,t,r);break;default:(0,I.assert)(!1)}}getExtension(t){return v(this.gl,t,this._extensions),this._extensions}},ee=Re;Be(ee,"type","webgl");function hs(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function Ss(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:(0,I.assert)(!1)}}function Es(e,t,r){e.gl.vertexAttribI4iv(t,r)}function gs(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function ps(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 at=S($r(),1),Zr=S(Pe(),1);function nt(e){let t=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),r=new at.Model(e,{vs:`#version 300 es
7
+ "use strict";var __exports__=(()=>{var ei=Object.create;var Ae=Object.defineProperty;var ti=Object.getOwnPropertyDescriptor;var ri=Object.getOwnPropertyNames;var ii=Object.getPrototypeOf,si=Object.prototype.hasOwnProperty;var oi=(e,t,r)=>t in e?Ae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Pe=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ai=(e,t)=>{for(var r in t)Ae(e,r,{get:t[r],enumerable:!0})},Be=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ri(t))!si.call(e,s)&&s!==r&&Ae(e,s,{get:()=>t[s],enumerable:!(i=ti(t,s))||i.enumerable});return e},q=(e,t,r)=>(Be(e,t,"default"),r&&Be(r,t,"default")),h=(e,t,r)=>(r=e!=null?ei(ii(e)):{},Be(t||!e||!e.__esModule?Ae(r,"default",{value:e,enumerable:!0}):r,e)),ni=e=>Be(Ae({},"__esModule",{value:!0}),e);var De=(e,t,r)=>(oi(e,typeof t!="symbol"?t+"":t,r),r);var xe=Pe((Os,Wt)=>{Wt.exports=globalThis.deck});var E=Pe((Ds,Kt)=>{Kt.exports=globalThis.luma});var Zr=Pe((dn,$r)=>{$r.exports=globalThis.luma});var qr=Pe((ft,jr)=>{(function(e,t){typeof ft=="object"&&typeof jr<"u"?t(ft):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(ft,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},i="4.25",s="next";function o(R){if(R.toLowerCase()===s)return s;var A=R&&R.match(/^(\d)\.(\d+)/);return A&&{major:parseInt(A[1],10),minor:parseInt(A[2],10)}}function a(R){return R===void 0&&(R=i),"https://js.arcgis.com/".concat(R,"/")}function n(R){R===void 0&&(R=i);var A=a(R),b=o(R);if(b!==s&&b.major===3){var u=b.minor<=10?"js/":"";return"".concat(A).concat(u,"esri/css/esri.css")}else return"".concat(A,"esri/themes/light/main.css")}function _(R){var A=document.createElement("link");return A.rel="stylesheet",A.href=R,A}function c(R,A){if(A){var b=document.querySelector(A);b.parentNode.insertBefore(R,b)}else document.head.appendChild(R)}function l(R){return document.querySelector('link[href*="'.concat(R,'"]'))}function T(R){return!R||o(R)?n(R):R}function f(R,A){var b=T(R),u=l(b);return u||(u=_(b),c(u,A)),u}var d={};function S(R){var A=document.createElement("script");return A.type="text/javascript",A.src=R,A.setAttribute("data-esri-loader","loading"),A}function p(R,A,b){var u;b&&(u=x(R,b));var y=function(){A(R),R.removeEventListener("load",y,!1),u&&R.removeEventListener("error",u,!1)};R.addEventListener("load",y,!1)}function x(R,A){var b=function(u){A(u.error||new Error("There was an error attempting to load ".concat(R.src))),R.removeEventListener("error",b,!1)};return R.addEventListener("error",b,!1),b}function O(R){R===void 0&&(R={}),d=R}function k(){return document.querySelector("script[data-esri-loader]")}function re(){var R=window.require;return R&&R.on}function Oe(R){R===void 0&&(R={});var A={};[d,R].forEach(function(y){for(var w in y)Object.prototype.hasOwnProperty.call(y,w)&&(A[w]=y[w])});var b=A.version,u=A.url||a(b);return new r.Promise(function(y,w){var Q=k();if(Q){var Ht=Q.getAttribute("src");Ht!==u?w(new Error("The ArcGIS API for JavaScript is already loaded (".concat(Ht,")."))):re()?y(Q):p(Q,y,w)}else if(re())w(new Error("The ArcGIS API for JavaScript is already loaded."));else{var Tt=A.css;if(Tt){var Gr=Tt===!0;f(Gr?b:Tt,A.insertCssBefore)}Q=S(u),p(Q,function(){Q.setAttribute("data-esri-loader","loaded"),y(Q)},w),document.body.appendChild(Q)}})}function Me(R){return new r.Promise(function(A,b){var u=window.require.on("error",b);window.require(R,function(){for(var y=[],w=0;w<arguments.length;w++)y[w]=arguments[w];u.remove(),A(y)})})}function Lr(R,A){if(A===void 0&&(A={}),re())return Me(R);var b=k(),u=b&&b.getAttribute("src");return!A.url&&u&&(A.url=u),Oe(A).then(function(){return Me(R)})}e.utils=r,e.loadModules=Lr,e.getScript=k,e.isLoaded=re,e.loadScript=Oe,e.setDefaultOptions=O,e.loadCss=f,Object.defineProperty(e,"__esModule",{value:!0})})});var Fe={};ai(Fe,{loadArcGISModules:()=>Ns});var K={},Vt=h(xe(),1);q(K,h(xe(),1));if(!Vt.Layer)throw new Error("@deck.gl/core is not found");q(Fe,K);var kt={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function Rt(e){return e.createSubclass({properties:kt,constructor(){this._callbacks={},this.watch(Object.keys(kt),(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 dt(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 I=h(E(),1);var Ee=h(E(),1);var J;(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"})(J||(J={}));var Se={[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},F=(e,t,r)=>t?e.enable(r):e.disable(r),mt=(e,t,r)=>e.hint(r,t),v=(e,t,r)=>e.pixelStorei(r,t),Yt=(e,t,r)=>{let i=r===36006?36009:36008;return e.bindFramebuffer(i,t)},he=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};function At(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var zt={[3042]:F,[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]:F,[2885]:(e,t)=>e.cullFace(t),[2929]:F,[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]:F,[35723]:mt,[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]:Yt,[36010]:Yt,[34964]:he,[36662]:he,[36663]:he,[35053]:he,[35055]:he,[2886]:(e,t)=>e.frontFace(t),[33170]:mt,[2849]:(e,t)=>e.lineWidth(t),[32823]:F,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:F,[32926]:F,[32928]:F,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:F,[3088]:(e,t)=>e.scissor(...t),[2960]:F,[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]:F,[10754]:F,[12288]:F,[12289]:F,[12290]:F,[12291]:F,[12292]:F,[12293]:F,[12294]:F,[12295]:F,[3333]:v,[3317]:v,[37440]:v,[37441]:v,[37443]:v,[3330]:v,[3332]:v,[3331]:v,[3314]:v,[32878]:v,[3316]:v,[3315]:v,[32877]:v,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),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=At(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=At(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=At(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)};function N(e,t,r){return t[e]!==void 0?t[e]:r[e]}var $t={blendEquation:(e,t,r)=>e.blendEquationSeparate(N(32777,t,r),N(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(N(32969,t,r),N(32968,t,r),N(32971,t,r),N(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(N(32824,t,r),N(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(N(32938,t,r),N(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,N(2962,t,r),N(2967,t,r),N(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,N(34816,t,r),N(36003,t,r),N(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,N(2964,t,r),N(2965,t,r),N(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,N(34817,t,r),N(34818,t,r),N(34819,t,r))},ht={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]})},m=(e,t)=>e.isEnabled(t),St={[3042]:m,[2884]:m,[2929]:m,[3024]:m,[32823]:m,[32926]:m,[32928]:m,[3089]:m,[2960]:m,[35977]:m},Zt=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 X(e,t){if(_i(t))return;let r={};for(let s in t){let o=Number(s),a=zt[s];a&&(typeof a=="string"?r[a]=!0:a(e,t[s],o))}let i=e.state&&e.state.cache;if(i)for(let s in r){let o=$t[s];o(e,t,i)}}function Ue(e,t=Se){if(typeof t=="number"){let s=t,o=St[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=St[s];i[s]=o?o(e,Number(s)):e.getParameter(Number(s))}return i}function Qt(e){X(e,Se)}function _i(e){for(let t in e)return!1;return!0}function jt(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s<e.length;++s)if(e[s]!==t[s])return!1;return!0}return!1}var Et=class{gl;program=null;stateStack=[];enable=!0;cache;log;constructor(t,{copyState:r=!1,log:i=()=>{}}={}){this.gl=t,this.cache=r?Ue(t):Object.assign({},Se),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){(0,Ee.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];X(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,Ee.assert)(o!==void 0);let a=t[o],n=this.cache[o];jt(a,n)||(r=!0,i=n,s&&!(o in s)&&(s[o]=n),this.cache[o]=a)}return{valueChanged:r,oldValue:i}}};function ie(e){return e.state}function gt(e,t){let{enable:r=!0,copyState:i}=t;if((0,Ee.assert)(i!==void 0),!e.state){e.state=new Et(e,{copyState:i}),li(e);for(let o in ht){let a=ht[o];ci(e,o,a)}qt(e,"getParameter"),qt(e,"isEnabled")}let s=ie(e);return s.enable=r,e}function L(e){let t=ie(e);t||(gt(e,{copyState:!1}),t=ie(e)),t.push()}function j(e){let t=ie(e);(0,Ee.assert)(t),t.pop()}function qt(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||Zt.has(s))return r(s);let o=ie(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 ci(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(...o){let a=ie(e),{valueChanged:n,oldValue:_}=r(a._updateCache,...o);return n&&i(...o),_},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function li(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=ie(e);s.program!==i&&(t(i),s.program=i)}}var fi={powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function Jt(e,t){t={...fi,...t};let r=null,i=o=>r=o.statusMessage||r;e.addEventListener("webglcontextcreationerror",i,!1);let s=null;if(s||=e.getContext("webgl2",t),e.removeEventListener("webglcontextcreationerror",i,!1),!s)throw new Error(`Failed to create WebGL context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",a=>o(a),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",a=>o(a),!1)}return s}function H(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}function Lt(e,t){let r=e.getParameter(7936),i=e.getParameter(7937);H(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=Gt(n,_),T=Ti(n,_),f=Ri(n,_);return{type:"webgl",gpu:l,gpuType:f,gpuBackend:T,vendor:n,renderer:_,version:c,shadingLanguage:"glsl",shadingLanguageVersion:300}}function Gt(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 Ti(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function Ri(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(Gt(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}var cr=h(E(),1);var Nt=h(E(),1);function ye(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 M="texture-compression-bc",g="texture-compression-astc",Y="texture-compression-etc2",di="texture-compression-etc1-webgl",we="texture-compression-pvrtc-webgl",pt="texture-compression-atc-webgl",ge="float32-renderable-webgl",bt="float16-renderable-webgl",Ai="rgb9e5ufloat_renderable-webgl",Ct="snorm8-renderable-webgl",pe="norm16-renderable-webgl",It="snorm16-renderable-webgl",ve="float32-filterable",er="float16-filterable-webgl",be="WEBGL_compressed_texture_s3tc",Ce="WEBGL_compressed_texture_s3tc_srgb",ae="EXT_texture_compression_rgtc",ne="EXT_texture_compression_bptc",hi="WEBGL_compressed_texture_etc",Si="WEBGL_compressed_texture_astc",Ei="WEBGL_compressed_texture_etc1",gi="WEBGL_compressed_texture_pvrtc",pi="WEBGL_compressed_texture_atc",tr="EXT_texture_norm16",rr="EXT_render_snorm",bi="EXT_color_buffer_float",Xe={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat_renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[rr],"norm16-renderable-webgl":[tr],"snorm16-renderable-webgl":[tr,rr],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[be,Ce,ae,ne],"texture-compression-bc5-webgl":[ae],"texture-compression-bc7-webgl":[ne],"texture-compression-etc2":[hi],"texture-compression-astc":[Si],"texture-compression-etc1-webgl":[Ei],"texture-compression-pvrtc-webgl":[gi],"texture-compression-atc-webgl":[pi]};function ir(e){return e in Xe}function sr(e,t,r){return(Xe[t]||[]).every(s=>H(e,s,r))}var He={"rgb8unorm-unsized":{gl:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,rb:!0},r8snorm:{gl:36756,b:1,c:1,render:Ct},r8uint:{gl:33330,b:1,c:1,rb:!0},r8sint:{gl:33329,b:1,c:1,rb:!0},rg8unorm:{gl:33323,b:2,c:2,rb:!0},rg8snorm:{gl:36757,b:2,c:2,render:Ct},rg8uint:{gl:33336,b:2,c:2,rb:!0},rg8sint:{gl:33335,b:2,c:2,rb:!0},r16uint:{gl:33332,b:2,c:1,rb:!0},r16sint:{gl:33331,b:2,c:1,rb:!0},r16float:{gl:33325,b:2,c:1,render:bt,filter:"float16-filterable-webgl",rb:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:pe,rb:!0},"r16snorm-webgl":{gl:36760,b:2,c:1,f:It},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,rb:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,rb:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,rb:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,b:4,c:4,bpp:4},rgba8snorm:{gl:36759,b:4,c:4,render:Ct},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:bt,filter:er,rb:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,render:pe},"rg16snorm-webgl":{gl:36761,b:2,c:2,render:It},r32uint:{gl:33334,b:4,c:1,bpp:4,rb:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,rb:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:ge,filter:ve},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:Ai},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:ge,rb:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,rb:!0},"rgb10a2uint-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,rb:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:pe},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:pe},rg32uint:{gl:33340,b:8,c:2,rb:!0},rg32sint:{gl:33339,b:8,c:2,rb:!0},rg32float:{gl:33328,b:8,c:2,render:ge,filter:ve,rb:!0},rgba16uint:{gl:36214,b:8,c:4,rb:!0},rgba16sint:{gl:36232,b:8,c:4,rb:!0},rgba16float:{gl:34842,b:8,c:4,render:bt,filter:er},"rgba16unorm-webgl":{gl:32859,b:2,c:4,render:pe,rb:!0},"rgba16snorm-webgl":{gl:36763,b:2,c:4,render:It},"rgb32float-webgl":{gl:34837,render:ge,filter:ve,gl2ext:bi,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,rb:!0},rgba32sint:{gl:36226,b:16,c:4,rb:!0},rgba32float:{gl:34836,b:16,c:4,render:ge,filter:ve,rb:!0},stencil8:{gl:36168,b:1,c:1,attachment:36128,rb:!0},depth16unorm:{gl:33189,b:2,c:1,attachment:36096,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096,dataFormat:6402,types:[5125]},depth32float:{gl:36012,b:4,c:1,attachment:36096,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,dataFormat:34041,types:[34042],rb:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:be,f:M},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:Ce,f:M},"bc1-rgba-unorm":{gl:33777,x:be,f:M},"bc1-rgba-unorm-srgb":{gl:35916,x:Ce,f:M},"bc2-rgba-unorm":{gl:33778,x:be,f:M},"bc2-rgba-unorm-srgb":{gl:35918,x:Ce,f:M},"bc3-rgba-unorm":{gl:33779,x:be,f:M},"bc3-rgba-unorm-srgb":{gl:35919,x:Ce,f:M},"bc4-r-unorm":{gl:36283,x:ae,f:M},"bc4-r-snorm":{gl:36284,x:ae,f:M},"bc5-rg-unorm":{gl:36285,x:ae,f:M},"bc5-rg-snorm":{gl:36286,x:ae,f:M},"bc6h-rgb-ufloat":{gl:36495,x:ne,f:M},"bc6h-rgb-float":{gl:36494,x:ne,f:M},"bc7-rgba-unorm":{gl:36492,x:ne,f:M},"bc7-rgba-unorm-srgb":{gl:36493,x:ne,f:M},"etc2-rgb8unorm":{gl:37492,f:Y},"etc2-rgb8unorm-srgb":{gl:37494,f:Y},"etc2-rgb8a1unorm":{gl:37496,f:Y},"etc2-rgb8a1unorm-srgb":{gl:37497,f:Y},"etc2-rgba8unorm":{gl:37493,f:Y},"etc2-rgba8unorm-srgb":{gl:37495,f:Y},"eac-r11unorm":{gl:37488,f:Y},"eac-r11snorm":{gl:37489,f:Y},"eac-rg11unorm":{gl:37490,f:Y},"eac-rg11snorm":{gl:37491,f:Y},"astc-4x4-unorm":{gl:37808,f:g},"astc-4x4-unorm-srgb":{gl:37840,f:g},"astc-5x4-unorm":{gl:37809,f:g},"astc-5x4-unorm-srgb":{gl:37841,f:g},"astc-5x5-unorm":{gl:37810,f:g},"astc-5x5-unorm-srgb":{gl:37842,f:g},"astc-6x5-unorm":{gl:37811,f:g},"astc-6x5-unorm-srgb":{gl:37843,f:g},"astc-6x6-unorm":{gl:37812,f:g},"astc-6x6-unorm-srgb":{gl:37844,f:g},"astc-8x5-unorm":{gl:37813,f:g},"astc-8x5-unorm-srgb":{gl:37845,f:g},"astc-8x6-unorm":{gl:37814,f:g},"astc-8x6-unorm-srgb":{gl:37846,f:g},"astc-8x8-unorm":{gl:37815,f:g},"astc-8x8-unorm-srgb":{gl:37847,f:g},"astc-10x5-unorm":{gl:37819,f:g},"astc-10x5-unorm-srgb":{gl:37851,f:g},"astc-10x6-unorm":{gl:37817,f:g},"astc-10x6-unorm-srgb":{gl:37849,f:g},"astc-10x8-unorm":{gl:37818,f:g},"astc-10x8-unorm-srgb":{gl:37850,f:g},"astc-10x10-unorm":{gl:37819,f:g},"astc-10x10-unorm-srgb":{gl:37851,f:g},"astc-12x10-unorm":{gl:37820,f:g},"astc-12x10-unorm-srgb":{gl:37852,f:g},"astc-12x12-unorm":{gl:37821,f:g},"astc-12x12-unorm-srgb":{gl:37853,f:g},"pvrtc-rgb4unorm-webgl":{gl:35840,f:we},"pvrtc-rgba4unorm-webgl":{gl:35842,f:we},"pvrtc-rbg2unorm-webgl":{gl:35841,f:we},"pvrtc-rgba2unorm-webgl":{gl:35843,f:we},"etc1-rbg-unorm-webgl":{gl:36196,f:di},"atc-rgb-unorm-webgl":{gl:35986,f:pt},"atc-rgba-unorm-webgl":{gl:35986,f:pt},"atc-rgbai-unorm-webgl":{gl:34798,f:pt}},Ci={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},Ii={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function We(e,t,r){let i=He[t];if(!i||i.gl===void 0)return!1;let s=i.x||i.gl2ext;return s?Boolean(H(e,s,r)):!0}function ut(e){let r=He[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}function or(e,t,r){if(!We(e,t,r)||t.startsWith("depth")||t.startsWith("stencil"))return!1;try{if((0,Nt.decodeTextureFormat)(t).signed)return!1}catch{return!1}return t.endsWith("32float")?Boolean(H(e,"OES_texture_float_linear, extensions",r)):t.endsWith("16float")?Boolean(H(e,"OES_texture_half_float_linear, extensions",r)):!0}function ar(e,t,r){return!(!We(e,t,r)||typeof t=="number")}function _e(e){let t=He[e],r=ut(e),i=(0,Nt.decodeTextureFormat)(e);return{format:r,dataFormat:t?.dataFormat||Ni(i.format,i.integer,i.normalized,r),type:i.dataType?ye(i.dataType):t?.types?.[0]||5121,compressed:i.compressed}}function nr(e){let t=He[e];if(!t?.attachment)throw new Error(`${e} is not a depth stencil format`);return t.attachment}function Ft(e){let t=_e(e),r=Ci[t.dataFormat]||4,i=Ii[t.type]||1;return r*i}function Ni(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;default:return 6408}}var _r={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"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"},Ve=class extends cr.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,i){super([],i),this.gl=t,this.extensions=r,H(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),ir(t)&&sr(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(_r),...Object.keys(Xe)]}getWebGLFeature(t){let r=_r[t];return Boolean(typeof r=="string"?H(this.gl,r,this.extensions):r)}};var lr=h(E(),1);var ke=class extends lr.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 maxInterStageShaderComponents(){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]}};var Ar=h(E(),1);var Qe=h(E(),1);var B=h(E(),1);function W(e,t,r){if(ui(t))return r(e);let{nocatch:i=!0}=t;L(e),X(e,t);let s;if(i)s=r(e),j(e);else try{s=r(e)}finally{j(e)}return s}function ui(e){for(let t in e)return!1;return!0}var Ye=h(E(),1);function Tr(e,t,r,i){if((0,Ye.isObjectEmpty)(t))return i(e);let s=e;L(s.gl);try{return Fi(e,t),X(s.gl,r),i(e)}finally{j(s.gl)}}function Fi(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(se("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex;if(t.provokingVertex){let a=se("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}}if(e.features.has("polygon-mode-webgl")){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode;if(t.polygonMode){let a=se("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(Mi("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(me("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&Ye.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=me("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=Ot("stencilPassOperation",t.stencilPassOperation),o=Ot("stencilFailOperation",t.stencilFailOperation),a=Ot("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let s=fr("blendColorOperation",t.blendColorOperation||"add"),o=fr("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 me(e,t){return se(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Ot(e,t){return se(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function fr(e,t){return se(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Ke(e,t){return se(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function Oi(e,t){return`Illegal parameter ${t} for ${e}`}function se(e,t,r){if(!(t in r))throw new Error(Oi(e,t));return r[t]}function Mi(e,t){return t}function ze(e){let t={};return e.addressModeU&&(t[10242]=Mt(e.addressModeU)),e.addressModeV&&(t[10243]=Mt(e.addressModeV)),e.addressModeW&&(t[32882]=Mt(e.addressModeW)),e.magFilter&&(t[10240]=Rr(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Bi(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]=me("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Mt(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function Rr(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Bi(e,t){if(!t)return Rr(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var z=h(E(),1);var P=class extends z.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;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.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Pi(this.props.usage),this.glUsage=Di(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)}_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.trackAllocatedMemory(i)}_initWithByteLength(t){(0,z.assert)(t>=0);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.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t,r=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,r,t),this.gl.bindBuffer(36663,null),this._setDebugData(t,r,t.byteLength)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}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 Pi(e){return e&z.Buffer.INDEX?34963:e&z.Buffer.VERTEX?34962:e&z.Buffer.UNIFORM?35345:34962}function Di(e){return e&z.Buffer.INDEX||e&z.Buffer.VERTEX?35044:e&z.Buffer.UNIFORM?35048:35044}var dr=h(E(),1);var oe=class extends dr.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=ze(r),this.handle=this.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}}}};var $e=h(E(),1),V=class extends $e.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...$e.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}};var xi={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},Ze=class extends B.Texture{MAX_ATTRIBUTES;device;gl;handle;sampler=void 0;view=void 0;glFormat=void 0;type=void 0;dataFormat=void 0;mipmaps=void 0;target;textureUnit=void 0;loaded=!1;_video;constructor(t,r){super(t,{...xi,format:"rgba8unorm",...r}),this.device=t,this.gl=this.device.gl,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Ui(this.props),this.loaded=!1,typeof this.props?.data=="string"&&Object.assign(this.props,{data:(0,B.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}createView(t){return new V(this.device,{...t,texture:this})}initialize(t={}){if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(x=>this.initialize(Object.assign({},t,{pixels:x,data:x}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:s={}}=t,{pixels:o=null,pixelStore:a={},textureUnit:n=void 0,mipmaps:_=!0}=t;r||(r=o);let{width:c,height:l,dataFormat:T,type:f,compressed:d=!1}=t,{depth:S=0}=t,p=ut(t.format);return{width:c,height:l,compressed:d,dataFormat:T,type:f}=this._deduceParameters({format:t.format,type:f,dataFormat:T,compressed:d,data:r,width:c,height:l}),this.width=c,this.height=l,this.glFormat=p,this.type=f,this.dataFormat=T,this.textureUnit=n,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),this.mipmaps=_,this.setImageData({data:r,width:c,height:l,depth:S,format:p,type:f,dataFormat:T,parameters:a,compressed:d}),this.setSampler(t.sampler),this._setSamplerParameters(s),this.view=this.createView({...this.props,mipLevelCount:1,arrayLayerCount:1}),_&&this.device.isTextureFormatFilterable(t.format)&&this.generateMipmap(),i&&(this._video={video:r,parameters:s,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(t={}){let r;t instanceof oe?(this.sampler=t,r=t.props):(this.sampler=new oe(this.device,t),r=t);let i=ze(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:s=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:s}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(t={}){return this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),W(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:s=0,glFormat:o=this.glFormat,offset:a=0,parameters:n={}}=t,{data:_=null,type:c=this.type,width:l=this.width,height:T=this.height,dataFormat:f=this.dataFormat,compressed:d=!1}=t;_||(_=i),{type:c,dataFormat:f,compressed:d,width:l,height:T}=this._deduceParameters({format:this.props.format,type:c,dataFormat:f,compressed:d,data:_,width:l,height:T});let{gl:S}=this;S.bindTexture(this.target,this.handle);let p=null;if({data:_,dataType:p}=this._getDataType({data:_,compressed:d}),W(this.gl,n,()=>{switch(p){case"null":S.texImage2D(r,s,o,l,T,0,f,c,_);break;case"typed-array":S.texImage2D(r,s,o,l,T,0,f,c,_,a);break;case"buffer":this.device.gl.bindBuffer(35052,_.handle||_),this.device.gl.texImage2D(r,s,o,l,T,0,f,c,a),this.device.gl.bindBuffer(35052,null);break;case"browser-object":S.texImage2D(r,s,o,l,T,0,f,c,_);break;case"compressed":for(let[x,O]of _.entries())S.compressedTexImage2D(r,x,O.format,O.width,O.height,0,O.data);break;default:(0,B.assert)(!1,"Unknown image data type")}}),_&&_.byteLength)this.trackAllocatedMemory(_.byteLength,"Texture");else{let x=Ft(this.props.format);this.trackAllocatedMemory(this.width*this.height*x,"Texture")}return this.loaded=!0,this}setSubImageData({target:t=this.target,pixels:r=null,data:i=null,x:s=0,y:o=0,width:a=this.width,height:n=this.height,level:_=0,glFormat:c=this.glFormat,type:l=this.type,dataFormat:T=this.dataFormat,compressed:f=!1,offset:d=0,parameters:S={}}){if({type:l,dataFormat:T,compressed:f,width:a,height:n}=this._deduceParameters({format:this.props.format,type:l,dataFormat:T,compressed:f,data:i,width:a,height:n}),(0,B.assert)(this.depth===1,"texSubImage not supported for 3D textures"),i||(i=r),i&&i.data){let p=i;i=p.data,a=p.shape[0],n=p.shape[1]}i instanceof P&&(i=i.handle),this.gl.bindTexture(this.target,this.handle),W(this.gl,S,()=>{f?this.gl.compressedTexSubImage2D(t,_,s,o,a,n,c,i):i===null?this.gl.texSubImage2D(t,_,s,o,a,n,T,l,null):ArrayBuffer.isView(i)?this.gl.texSubImage2D(t,_,s,o,a,n,T,l,i,d):typeof WebGLBuffer<"u"&&i instanceof WebGLBuffer?(this.device.gl.bindBuffer(35052,i),this.device.gl.texSubImage2D(t,_,s,o,a,n,T,l,d),this.device.gl.bindBuffer(35052,null)):this.device.gl.texSubImage2D(t,_,s,o,a,n,T,l,i)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(t={}){return B.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(t=this.textureUnit){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(t=this.textureUnit){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType({data:t,compressed:r=!1}){return r?{data:t,dataType:"compressed"}:t===null?{data:t,dataType:"null"}:ArrayBuffer.isView(t)?{data:t,dataType:"typed-array"}:t instanceof P?{data:t.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&t instanceof WebGLBuffer?{data:t,dataType:"buffer"}:{data:t,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:s,height:o,dataFormat:a,type:n,compressed:_}=t,c=_e(r);return a=a||c.dataFormat,n=n||c.type,_=_||c.compressed,{width:s,height:o}=this._deduceImageSize(i,s,o),{dataFormat:a,type:n,compressed:_,width:s,height:o,format:r,data:i}}_deduceImageSize(t,r,i){let s;return typeof ImageData<"u"&&t instanceof ImageData?s={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?s={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?s={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?s={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?s={width:t.videoWidth,height:t.videoHeight}:t?s={width:r,height:i}:s={width:r>=0?r:1,height:i>=0?i:1},(0,B.assert)(s,"Could not deduced texture size"),(0,B.assert)(r===void 0||s.width===r,"Deduced texture width does not match supplied width"),(0,B.assert)(i===void 0||s.height===i,"Deduced texture height does not match supplied height"),s}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:s,pixels:o,data:a,format:n=6408,type:_=5121}=t,c=o||a,l=await Promise.all(Ze.FACES.map(T=>{let f=c[T];return Promise.all(Array.isArray(f)?f:[f])}));this.bind(),Ze.FACES.forEach((T,f)=>{l[f].length>1&&this.props.mipmaps!==!1&&B.log.warn(`${this.id} has mipmap and multiple LODs.`)(),l[f].forEach((d,S)=>{i&&s?r.texImage2D(T,S,n,i,s,0,n,_,d):r.texImage2D(T,S,n,n,_,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:o,data:a,format:n=6408,type:_=5121}=t,{gl:c}=this,l=o||a;return this.bind(),l instanceof Promise?l.then(T=>this.setImageDataForFace(Object.assign({},t,{face:r,data:T,pixels:T}))):this.width||this.height?c.texImage2D(r,0,n,i,s,0,n,_,l):c.texImage2D(r,0,n,n,_,l),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:s,type:o,width:a,height:n,depth:_=1,offset:c=0,data:l,parameters:T={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let f=_e(s);if(W(this.gl,T,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,r,f.format,a,n,_,0,f.dataFormat,f.type,l),l instanceof P&&(this.gl.bindBuffer(35052,l.handle),this.gl.texImage3D(this.target,r,i,a,n,_,0,s,o,c))}),l&&l.byteLength)this.trackAllocatedMemory(l.byteLength,"Texture");else{let d=Ft(this.props.format);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(!(0,B.isObjectEmpty)(t)){yi(t),this.gl.bindTexture(this.target,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.target,s,o);break;default:this.gl.texParameteri(this.target,s,o);break}}this.gl.bindTexture(this.target,null)}}},D=Ze;De(D,"FACES",[34069,34070,34071,34072,34073,34074]);function Ui(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function yi(e){B.log.log(1,"texture sampler parameters",e)()}var $=class extends Qe.Framebuffer{device;gl;handle;get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r);let i=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures();let s=this.gl.bindFramebuffer(36160,this.handle);for(let o=0;o<this.colorAttachments.length;++o){let a=this.colorAttachments[o],n=36064+o;a&&this._attachOne(n,a)}if(this.depthStencilAttachment&&this._attachOne(nr(this.depthStencilAttachment.props.format),this.depthStencilAttachment),r.check!==!1){let o=this.gl.checkFramebufferStatus(36160);if(o!==36053)throw new Error(`Framebuffer ${vi(o)}`)}this.gl.bindFramebuffer(36160,s)}}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}createDepthStencilTexture(t){return new D(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height,mipmaps:!1})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.texture.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.texture.resize({width:t,height:r}),this}_attachOne(t,r){if(Array.isArray(r)){let[i,s=0,o=0]=r;return this._attachTexture(t,i,s,o),i}if(r instanceof D)return this._attachTexture(t,r,0,0),r;if(r instanceof V){let i=r;return this._attachTexture(t,i.texture,i.props.baseMipLevel,i.props.baseArrayLayer),r.texture}throw new Error("attach")}_attachTexture(t,r,i,s){let{gl:o}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:o.framebufferTextureLayer(36160,t,r.target,s,i);break;case 34067:let a=wi(i);o.framebufferTexture2D(36160,t,a,r.handle,s);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,s);break;default:(0,Qe.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function wi(e){return e<34069?e+34069:e}function vi(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 je=class extends Ar.CanvasContext{device;presentationSize;_framebuffer=null;constructor(t,r){super(r),this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new $(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t,this.resize())}resize(t){if(this.device.gl&&this.canvas){let r=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(r,t);return}}commit(){}};var Z=h(E(),1),Xi={spector:Z.log.get("spector")||Z.log.get("inspect")},Hi="https://spectorcdn.babylonjs.com/spector.bundle.js",Wi=1,U=null,hr=!1;async function Sr(e){if(!globalThis.SPECTOR)try{await(0,Z.loadScript)(Hi)}catch(t){Z.log.warn(String(t))}}function Er(e){if(e={...Xi,...e},!e?.spector||(!U&&globalThis.SPECTOR&&(Z.log.probe(Wi,"SPECTOR found and initialized")(),U=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=U)),!U))return null;if(hr||(hr=!0,U.spyCanvases(),U?.onCaptureStarted.add(t=>Z.log.info("Spector capture started:",t)()),U?.onCapture.add(t=>{Z.log.info("Spector capture complete:",t)(),U?.getResultUI(),U?.resultView.display(),U?.resultView.addCapture(t)})),e?.canvas){if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return U;U?.startCapture(e?.canvas,500),new Promise(t=>setTimeout(t,2e3)).then(t=>{Z.log.info("Spector capture stopped after 2 seconds")(),U?.stopCapture()})}return U}var G=h(E(),1);var Po=globalThis.document||{},Do=globalThis.process||{},xo=globalThis.console,gr=globalThis.navigator||{};function qe(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)}function Ie(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||qe()}function Bt(e){return!e&&!Ie()?"Node":qe(e)?"Electron":(e||gr.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var Vi="https://unpkg.com/webgl-debug@2.0.1/index.js";function pr(e){return e.luma=e.luma||{},e.luma}async function br(){Ie()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,G.loadScript)(Vi))}function Cr(e,t={}){return e?t.debug?Ki(e,t):ki(e):null}function ki(e){let t=pr(e);return t.realContext?t.realContext:e}function Ki(e,t){if(!globalThis.WebGLDebugUtils)return G.log.warn("webgl-debug not loaded")(),e;let r=pr(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...J,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,mi.bind(null,t),Yi.bind(null,t));for(let a in J)!(a in i)&&typeof J[a]=="number"&&(i[a]=J[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.debug=!0,o}function Pt(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 mi(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})`;G.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Yi(e,t,r){let i="";if(G.log.level>=1&&(i=Pt(t,r),G.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||Pt(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let s of r)if(s===void 0){if(i=i||Pt(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);G.log.error(`Undefined argument: ${i}`)();debugger}}var ce=h(E(),1);function Nr(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.split(":");if(s.length===2){let[T,f]=s;r.push({message:f.trim(),type:Ir(T),lineNum:0,linePos:0});continue}let[o,a,n,..._]=s,c=parseInt(n,10);isNaN(c)&&(c=0);let l=parseInt(a,10);isNaN(l)&&(l=0),r.push({message:_.join(":").trim(),type:Ir(o),lineNum:c,linePos:l})}return r}function Ir(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Je=class extends ce.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)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return Nr(t)}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)}async _compile(t){t=(s=>s.startsWith("#version ")?s:`#version 100
8
+ ${s}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),ce.log.level===0){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}ce.log.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),ce.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"}};var ur=h(E(),1);var zi=256,$i=1024,Zi=16384,Dt=6144,Qi=[1,2,4,8],Le=class extends ur.RenderPass{device;glParameters;constructor(t,r){super(t,r),this.device=t,L(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){j(this.device.gl),this.props.framebuffer&&X(this.device.gl,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),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&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),t.colorMask&&(r.colorMask=Qi.map(i=>Boolean(i&t.colorMask))),this.glParameters=r,X(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Zi,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=zi,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=$i,t.clearStencil=this.props.clearStencil),r!==0&&W(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){W(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl.clearBufferiv(Dt,t,r);break;case Uint32Array:this.device.gl.clearBufferuiv(Dt,t,r);break;case Float32Array:default:this.device.gl.clearBufferfv(Dt,t,r);break}})}};var C=h(E(),1),wr=h(E(),1);var Ge=h(E(),1);var ji="Failed to deduce GL constant from typed array";function Fr(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(ji)}}function Ne(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var qi={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Ji={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},ee=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(t){return Ne(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,Ge.assert)(t.size),Ne(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(...t){return new ee(qi,...t)}constructor(...t){t.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return ee.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return ee.getBytesPerVertex(this)}_assign(t={}){return t=(0,Ge.checkProps)("Accessor",t,Ji),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Or(e){return Li.includes(e)}var Li=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],Mr={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function xt(e){let t=Mr[e];if(!t)throw new Error("uniform");let[r,i,,s]=t;return{format:s,components:i,glType:r}}function Br(e){let t=Mr[e];if(!t)throw new Error("attribute");let[,r,,i,s]=t;return{attributeType:i,vertexFormat:s,components:r}}function Pr(e,t){let r={attributes:[],bindings:[]};r.attributes=Gi(e,t);let i=rs(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,location:n.location,visibility:(n.vertex?1:0)&(n.fragment?2:0),minBindingSize:n.byteLength,uniforms:_})}let s=ts(e,t),o=0;for(let n of s)if(Or(n.type)){let{viewDimension:_,sampleType:c}=ss(n.type);r.bindings.push({type:"texture",name:n.name,location:o,viewDimension:_,sampleType:c}),n.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=es(e,t);return a?.length&&(r.varyings=a),r}function Gi(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{attributeType:c}=Br(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 es(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,{glType:c,components:l}=xt(n),T=new ee({type:c,size:_*l}),f={location:s,name:a,accessor:T};r.push(f)}return r.sort((s,o)=>s.location-o.location),r}function ts(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}=os(a),T=e.getUniformLocation(t,c),f={location:T,name:c,size:n,type:_,isArray:l};if(r.push(f),f.size>1)for(let d=0;d<f.size;d++){let S=`${c}[${d}]`;T=e.getUniformLocation(t,S);let p={...f,name:S,location:T};r.push(p)}}return r}function rs(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),T=e.getActiveUniforms(t,n,35388);for(let f=0;f<a.uniformCount;++f){let d=e.getActiveUniform(t,n[f]);if(!d)throw new Error("activeInfo");a.uniforms.push({name:d.name,format:xt(_[f]).format,type:_[f],arrayLength:c[f],byteOffset:l[f],byteStride:T[f]})}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}var is={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function ss(e){let t=is[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function os(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Dr(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")}function xr(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function Ur(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var yr=4,et=class extends C.RenderPipeline{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(t,r){super(t,r),this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,C.cast)(r.vs),this.fs=(0,C.cast)(r.fs);let{varyings:i,bufferMode:s=35981}=r;switch(i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,s)),this._linkShaders(),C.log.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=Pr(this.device.gl,this.handle),C.log.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=(0,wr.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":C.log.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t,r){for(let[i,s]of Object.entries(t)){let o=this.shaderLayout.bindings.find(a=>a.name===i)||this.shaderLayout.bindings.find(a=>a.name===`${i}Uniforms`);if(!o){let a=this.shaderLayout.bindings.map(n=>`"${n.name}"`).join(", ");r?.disableWarnings&&C.log.warn(`Unknown binding "${i}" in render pipeline "${this.id}", expected one of ${a}`)();continue}switch(s||C.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof P)&&!(s.buffer instanceof P))throw new Error("buffer value");break;case"texture":if(!(s instanceof V||s instanceof D||s instanceof $))throw new Error("texture value");break;case"sampler":C.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}}draw(t){let{renderPass:r,parameters:i=this.props.parameters,topology:s=this.props.topology,vertexArray:o,vertexCount:a,instanceCount:n,firstVertex:_=0,transformFeedback:c}=t,l=xr(s),T=Boolean(o.indexBuffer),f=o.indexBuffer?.glIndexType,d=Number(n)>0;if(this.linkStatus!=="success")return C.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable()||a===0)return C.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;if(a===0)return C.log.info(2,`RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)(),!0;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),c&&c.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let S=r;return Tr(this.device,i,S.glParameters,()=>{T&&d?this.device.gl.drawElementsInstanced(l,a||0,f,_,n||0):T?this.device.gl.drawElements(l,a||0,f,_):d?this.device.gl.drawArraysInstanced(l,_,a||0,n||0):this.device.gl.drawArrays(l,_,a||0),c&&c.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(t){let{bindings:r}=(0,C.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{C.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),C.log.time(yr,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),C.log.timeEnd(yr,`linkProgram for ${this.id}`)(),C.log.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}C.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),C.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}_reportLinkStatus(t){switch(t){case"success":return;default:throw this.vs.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`)):this.fs?.compilationStatus==="error"?(this.vs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`)):new Error(`Error during ${t}: ${this.device.gl.getProgramInfoLog(this.handle)}`)}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}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)}}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof D&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name]||this.bindings[s.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:a}=s,n=t.getUniformBlockIndex(this.handle,a);if(n===4294967295)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,i,n),o instanceof P?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof V||o instanceof D||o instanceof $))throw new Error("texture");let _;if(o instanceof V)_=o.texture;else if(o instanceof D)_=o;else if(o instanceof $&&o.colorAttachments[0]instanceof V)C.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),_=o.colorAttachments[0].texture;else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(_.target,_.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${s.type}' not supported in WebGL`)}}}_applyUniforms(){for(let t of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:s,textureUnit:o}=t,a=this.uniforms[r]??o;a!==void 0&&Dr(this.device.gl,i,s,a)}}};var Xr=h(E(),1);var rt=h(E(),1);var tt=class extends rt.CommandBuffer{device;commands=[];constructor(t){super(t,{}),this.device=t}submitCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":as(this.device,r.options);break;case"copy-buffer-to-texture":ns(this.device,r.options);break;case"copy-texture-to-buffer":_s(this.device,r.options);break;case"copy-texture-to-texture":cs(this.device,r.options);break}}};function as(e,t){let r=t.source,i=t.destination;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 ns(e,t){throw new Error("Not implemented")}function _s(e,t){let{source:r,mipLevel:i=0,aspect:s="all",width:o=t.source.width,height:a=t.source.height,depthOrArrayLayers:n=0,origin:_=[0,0],destination:c,byteOffset:l=0,bytesPerRow:T,rowsPerImage:f}=t;if(s!=="all")throw new Error("not supported");if(i!==0||n!==0||T||f)throw new Error("not implemented");let{framebuffer:d,destroyFramebuffer:S}=vr(r),p;try{let x=c,O=o||d.width,k=a||d.height,re=_e(d.texture.props.format),Oe=re.dataFormat,Me=re.type;e.gl.bindBuffer(35051,x.handle),p=e.gl.bindFramebuffer(36160,d.handle),e.gl.readPixels(_[0],_[1],O,k,Oe,Me,l)}finally{e.gl.bindBuffer(35051,null),p!==void 0&&e.gl.bindFramebuffer(36160,p),S&&d.destroy()}}function cs(e,t){let{source:r,destinationMipLevel:i=0,origin:s=[0,0],destinationOrigin:o=[0,0],destination:a}=t,{width:n=t.destination.width,height:_=t.destination.height}=t,{framebuffer:c,destroyFramebuffer:l}=vr(r),[T,f]=s,[d,S,p]=o,x=e.gl.bindFramebuffer(36160,c.handle),O=null,k;if(a instanceof D)O=a,n=Number.isFinite(n)?n:O.width,_=Number.isFinite(_)?_:O.height,O.bind(0),k=O.target;else throw new Error("invalid destination");switch(k){case 3553:case 34067:e.gl.copyTexSubImage2D(k,i,d,S,T,f,n,_);break;case 35866:case 32879:e.gl.copyTexSubImage3D(k,i,d,S,p,T,f,n,_);break;default:}O&&O.unbind(),e.gl.bindFramebuffer(36160,x),l&&c.destroy()}function vr(e){if(e instanceof rt.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 it=class extends Xr.CommandEncoder{device;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new tt(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}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){}};var fe=h(E(),1);var le=class extends fe.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return Bt()==="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.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=ye(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=ls(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=a||!fs(i,this.bufferValue),a){let n=(0,fe.getScratchArray)(r.constructor,o);(0,fe.fillArray)({target:n,source:i,start:0,count:o}),this.buffer.write(n),this.bufferValue=r}return this.buffer}};function ls(e){return Array.isArray(e)?new Float32Array(e):e}function fs(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=h(E(),1);var st=class extends ot.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(Ur(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 in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,ot.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(Hr(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?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 P)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(Hr(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:s}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,s,i)}}_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)}};function Hr(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var Wr=h(E(),1);var at=class extends Wr.QuerySet{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(t,r){if(super(t,r),this.device=t,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(t){return this._begin(t?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(t){this._queryPending||(this.target=t,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.device.gl.getQueryParameter(this.handle,34919);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(t=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};var Te=h(E(),1);var Ut=h(E(),1);function yt(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,Ut.assert)(!1),0}}function Vr(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return(0,Ut.assert)(!1),0}}function kr(e,t){let{sourceX:r=0,sourceY:i=0,sourceFormat:s=6408,sourceAttachment:o=36064}=t||{},{target:a=null,sourceWidth:n,sourceHeight:_,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:T}=mr(e);(0,Te.assert)(l);let{gl:f,handle:d}=l;n=n||l.width,_=_||l.height;let S=o-36064;c=c||l.colorAttachments[S]?.texture?.type||5121,a=Rs(a,c,s,n,_),c=c||Fr(a);let p=f.bindFramebuffer(36160,d);return f.readPixels(r,i,n,_,s,c,a),f.bindFramebuffer(36160,p||null),T&&l.destroy(),a}function Kr(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:T}=mr(e);(0,Te.assert)(l),n=n||l.width,_=_||l.height;let f=l;c=c||5121;let d=r;if(!d){let p=yt(o),x=Vr(c),O=a+n*_*p*x;d=f.device.createBuffer({byteLength:O})}let S=e.device.createCommandEncoder();return S.copyTextureToBuffer({source:e,width:n,height:_,origin:[i,s],destination:d,byteOffset:a}),S.destroy(),T&&l.destroy(),d}function mr(e){return e instanceof Te.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Ts(e),deleteFramebuffer:!0}}function Ts(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 Rs(e,t,r,i,s){if(e)return e;t=t||5121;let o=Ne(t,{clamped:!1}),a=yt(r);return new o(i*s*a)}var Yr=h(E(),1);var ds=256,As=1024,hs=16384;var Ss="clear: bad arguments";function zr(e,t){let{framebuffer:r=null,color:i=null,depth:s=null,stencil:o=null}=t||{},a={};r&&(a.framebuffer=r);let n=0;i&&(n|=hs,i!==!0&&(a.clearColor=i)),s&&(n|=ds,s!==!0&&(a.clearDepth=s)),o&&(n|=As,s!==!0&&(a.clearStencil=s)),(0,Yr.assert)(n!==0,Ss);let _=e.gl;W(_,a,()=>{_.clear(n)})}var ue=1,Re=class extends I.Device{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;static isSupported(){return typeof WebGL2RenderingContext<"u"}static attach(t){if(t instanceof Re)return t;if(t?.device instanceof I.Device)return t.device;if(!Es(t))throw new Error("Invalid WebGL2RenderingContext");return new Re({gl:t})}static async create(t={}){I.log.groupCollapsed(ue,"WebGLDevice created")();let r=[];t.debug&&r.push(br()),t.spector&&r.push(Sr()),typeof t.canvas=="string"&&r.push(I.CanvasContext.pageLoaded);let i=await Promise.allSettled(r);for(let a of i)a.status==="rejected"&&I.log.error(`Failed to initialize debug libraries ${a.reason}`)();if(I.log.probe(ue+1,"DOM is loaded")(),t.gl?.device)return I.log.warn("reattaching existing device")(),Re.attach(t.gl);let s=new Re(t),o=`Created ${s.type}${s.debug?" debug":""} context: ${s.info.vendor}, ${s.info.renderer} for canvas: ${s.canvasContext.id}`;return I.log.probe(ue,o)(),I.log.table(ue,s.info)(),I.log.groupEnd(ue)(),s}constructor(t){super({...t,id:t.id||(0,I.uid)("webgl-device")});let r=t.gl?.device;if(r)throw new Error(`WebGL context already attached to device ${r.id}`);let i=t.gl?.canvas||t.canvas;this.canvasContext=new je(this,{...t,canvas:i}),this.lost=new Promise(n=>{this._resolveContextLost=n});let s=t.gl||null;if(s||=Jt(this.canvasContext.canvas,{...t,onContextLost:n=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."})}),!s)throw new Error("WebGL context creation failed");this.handle=s,this.gl=s,this.gl.device=this,this.gl._version=2,this.info=Lt(this.gl,this._extensions),this.limits=new ke(this.gl),this.features=new Ve(this.gl,this._extensions,this.props.disabledFeatures),this.props.initalizeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize();let{enable:o=!0,copyState:a=!1}=t;gt(this.gl,{enable:o,copyState:a,log:(...n)=>I.log.log(1,...n)()}),t.debug&&(this.gl=Cr(this.gl,{...t,throwOnError:!0}),this.debug=!0,I.log.level=Math.max(I.log.level,1),I.log.warn("WebGL debug mode activated. Performance reduced.")()),t.spector&&(this.spectorJS=Er({...this.props,canvas:this.handle.canvas}))}destroy(){}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return We(this.gl,t,this._extensions)}isTextureFormatFilterable(t){return or(this.gl,t,this._extensions)}isTextureFormatRenderable(t){return ar(this.gl,t,this._extensions)}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new P(this,r)}_createTexture(t){return new D(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new oe(this,t)}createShader(t){return new Je(this,t)}createFramebuffer(t){return new $(this,t)}createVertexArray(t){return new le(this,t)}createTransformFeedback(t){return new st(this,t)}createQuerySet(t){return new at(this,t)}createRenderPipeline(t){return new et(this,t)}beginRenderPass(t){return new Le(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(t){return new it(this,t)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(t,r){return kr(t,r)}readPixelsToBufferWebGL(t,r){return Kr(t,r)}setParametersWebGL(t){X(this.gl,t)}getParametersWebGL(t){return Ue(this.gl,t)}withParametersWebGL(t,r){return W(this.gl,t,r)}clearWebGL(t){zr(this,t)}resetWebGL(){I.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),Qt(this.gl)}gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;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(){L(this.gl)}popState(){j(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let s in r)if(r[s]===i)return`GL.${s}`;return String(t)}_constants;setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&Cs(s,r)&&I.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:gs(this,t,r);break;case Int32Array:ps(this,t,r);break;case Uint32Array:bs(this,t,r);break;default:(0,I.assert)(!1)}}getExtension(t){return H(this.gl,t,this._extensions),this._extensions}},te=Re;De(te,"type","webgl");function Es(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function gs(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:(0,I.assert)(!1)}}function ps(e,t,r){e.gl.vertexAttribI4iv(t,r)}function bs(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function Cs(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 nt=h(Zr(),1),Qr=h(xe(),1);function _t(e){let t=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),r=new nt.Model(e,{vs:`#version 300 es
9
9
  in vec2 pos;
10
10
  out vec2 v_texcoord;
11
11
  void main(void) {
@@ -23,6 +23,6 @@ void main(void) {
23
23
  imageColor.rgb *= imageColor.a;
24
24
  fragColor = imageColor;
25
25
  }
26
- `,bindings:{deckglTexture:t},parameters:{depthWriteEnabled:!0,depthCompare:"less-equal"},geometry:new at.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6}),i=e.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[t]}),s=new Zr.Deck({viewState:{},controller:!1,device:e,parameters:{depthTest:!0},_framebuffer:i,width:null,height:null,_customRender:o=>{o==="arcgis"?s._drawLayers(o):this.redraw()}});return{deck:s,texture:t,fbo:i,model:r}}function _t(e,t){let{model:r,deck:i,fbo:s}=e,o=r.device,a=o.getParametersWebGL(36006),{width:n,height:_,...c}=t,l=window.devicePixelRatio,T=Math.round(n*l),f=Math.round(_*l);s.resize({width:T,height:f}),i.setProps({viewState:c}),i.redraw("arcgis");let d=o.beginRenderPass({framebuffer:a,parameters:{viewport:[0,0,T,f]},clearColor:[0,0,0,0],clearDepth:1});o.withParametersWebGL({blend:!0,blendFunc:[1,771]},()=>{r.draw(d)})}function ct(e){e.deck.finalize(),e.model.destroy(),e.fbo.destroy(),e.texture.destroy()}function yt(e){return e.createSubclass({properties:{resources:null},attach(){let t=this.context,r=ee.attach(t);this.resources=nt.call(this,r),this.layer.deck.on("change",i=>this.resources.deck.setProps(i)),this.resources.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){ct(this.resources),this.resources=null},render(t){let[r,i]=this.view.state.size,s=t.state;_t(this.resources,{width:r,height:i,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(s.scale),bearing:-s.rotation,pitch:0})}})}function bs(e,t){let r=Math.sqrt(1+t**2),i=e/2/180*Math.PI;return r/2/Math.tan(i)}function wt(e,t){class r{constructor(s,o){this.resources=null,this.view=s,this.deck=new e(o)}setup(s){let o=s.gl,a=ee.attach(o),n=nt.call(this,a);this.deck.on("change",_=>n.deck.setProps(_)),n.deck.setProps(this.deck.toJSON()),this.resources=n}dispose(){this.resources&&ct(this.resources)}redraw(){t.requestRender(this.view)}render(){let[s,o]=this.view.size;_t(this.resources,{width:s,height:o,latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:bs(this.view.camera.fov,s/o),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt})}}return r}var vt=S(jr(),1),de;async function Cs(e,t){let r=Array.isArray(e)?null:e;return await Is(r,t),Array.isArray(e)?(0,vt.loadModules)(e,t).then(i=>({...de,modules:i})):de}async function Is(e,t){if(de)return de;if(e){let a=e.layers.Layer,n=e.core.Accessor,_=e.views["2d"].layers.BaseLayerViewGL2D,c=e.views["3d"].externalRenderers;return qr(a,n,_,c)}let[r,i,s,o]=await(0,vt.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t);return qr(r,i,s,o)}function qr(e,t,r,i){let s=Tt(t),o=yt(r),a=Rt(s,e,o),n=wt(s,i);return de={DeckLayer:a,DeckRenderer:n},de}return ai(ue);})();
26
+ `,bindings:{deckglTexture:t},parameters:{depthWriteEnabled:!0,depthCompare:"less-equal"},geometry:new nt.Geometry({topology:"triangle-strip",attributes:{pos:{size:2,value:new Int8Array([-1,-1,1,-1,-1,1,-1,1,1,1,1,-1])}}}),vertexCount:6}),i=e.createFramebuffer({id:"deckfbo",width:1,height:1,colorAttachments:[t]}),s=new Qr.Deck({viewState:{},controller:!1,device:e,parameters:{depthTest:!0},_framebuffer:i,width:null,height:null,_customRender:o=>{o==="arcgis"?s._drawLayers(o):this.redraw()}});return{deck:s,texture:t,fbo:i,model:r}}function ct(e,t){let{model:r,deck:i,fbo:s}=e,o=r.device,a=o.getParametersWebGL(36006),{width:n,height:_,...c}=t,l=window.devicePixelRatio,T=Math.round(n*l),f=Math.round(_*l);s.resize({width:T,height:f}),i.setProps({viewState:c}),i.redraw("arcgis");let d=o.beginRenderPass({framebuffer:a,parameters:{viewport:[0,0,T,f]},clearColor:[0,0,0,0],clearDepth:1});o.withParametersWebGL({blend:!0,blendFunc:[1,771]},()=>{r.draw(d)})}function lt(e){e.deck.finalize(),e.model.destroy(),e.fbo.destroy(),e.texture.destroy()}function wt(e){return e.createSubclass({properties:{resources:null},attach(){let t=this.context,r=te.attach(t);this.resources=_t.call(this,r),this.layer.deck.on("change",i=>this.resources.deck.setProps(i)),this.resources.deck.setProps(this.layer.deck.toJSON())},redraw(){this.requestRender()},detach(){lt(this.resources),this.resources=null},render(t){let[r,i]=this.view.state.size,s=t.state;ct(this.resources,{width:r,height:i,latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(s.scale),bearing:-s.rotation,pitch:0})}})}function Is(e,t){let r=Math.sqrt(1+t**2),i=e/2/180*Math.PI;return r/2/Math.tan(i)}function vt(e,t){class r{constructor(s,o){this.resources=null,this.view=s,this.deck=new e(o)}setup(s){let o=s.gl,a=te.attach(o),n=_t.call(this,a);this.deck.on("change",_=>n.deck.setProps(_)),n.deck.setProps(this.deck.toJSON()),this.resources=n}dispose(){this.resources&&lt(this.resources)}redraw(){t.requestRender(this.view)}render(){let[s,o]=this.view.size;ct(this.resources,{width:s,height:o,latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:Is(this.view.camera.fov,s/o),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt})}}return r}var Xt=h(qr(),1),de;async function Ns(e,t){let r=Array.isArray(e)?null:e;return await us(r,t),Array.isArray(e)?(0,Xt.loadModules)(e,t).then(i=>({...de,modules:i})):de}async function us(e,t){if(de)return de;if(e){let a=e.layers.Layer,n=e.core.Accessor,_=e.views["2d"].layers.BaseLayerViewGL2D,c=e.views["3d"].externalRenderers;return Jr(a,n,_,c)}let[r,i,s,o]=await(0,Xt.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t);return Jr(r,i,s,o)}function Jr(e,t,r,i){let s=Rt(t),o=wt(r),a=dt(s,e,o),n=vt(s,i);return de={DeckLayer:a,DeckRenderer:n},de}return ni(Fe);})();
27
27
  return __exports__;
28
28
  });
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.0.0-beta.9",
6
+ "version": "9.0.0",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -36,15 +36,18 @@
36
36
  "prepublishOnly": "npm run build-bundle && npm run build-bundle -- --env=dev"
37
37
  },
38
38
  "dependencies": {
39
- "@luma.gl/constants": "^9.0.0",
40
- "@luma.gl/webgl": "^9.0.0",
39
+ "@luma.gl/constants": "^9.0.6",
40
+ "@luma.gl/webgl": "^9.0.6",
41
41
  "esri-loader": "^3.3.0"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@arcgis/core": "^4.0.0",
45
- "@deck.gl/core": "^9.0.0-beta",
45
+ "@deck.gl/core": "^9.0.0",
46
46
  "@luma.gl/core": "^9.0.0",
47
47
  "@luma.gl/engine": "^9.0.0"
48
48
  },
49
- "gitHead": "44cfc784310d1c6ac7766ff80e0df8c364f97354"
49
+ "devDependencies": {
50
+ "@arcgis/core": "^4.21.0"
51
+ },
52
+ "gitHead": "fcb5ccf0a899e651949b24986488211e278e9321"
50
53
  }