@luma.gl/webgl 9.0.0-alpha.17 → 9.0.0-alpha.19

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.
@@ -79,7 +79,7 @@ export default class WEBGLBuffer extends Buffer {
79
79
  this.gl.bindBuffer(target, this.handle);
80
80
  if (srcOffset !== 0 || byteLength !== undefined) {
81
81
  this.device.assertWebGL2();
82
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
82
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
83
83
  } else {
84
84
  this.gl.bufferSubData(target, byteOffset, data);
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-buffer.js","names":["Buffer","assert","GL","DEBUG_DATA_LENGTH","WEBGLBuffer","constructor","device","props","arguments","length","undefined","_defineProperty","gl","gl2","handle","createBuffer","setSpectorMetadata","data","target","getWebGLTarget","usage","webglUsage","getWebGLUsage","debugData","_initWithData","byteOffset","byteLength","_initWithByteLength","ArrayBuffer","isView","_getWriteTarget","bindBuffer","bufferData","bufferSubData","slice","bytesUsed","trackAllocatedMemory","Float32Array","destroy","destroyed","removeStats","trackDeallocatedMemory","deleteBuffer","write","srcOffset","isWebGL2","COPY_WRITE_BUFFER","assertWebGL2","offset","readAsync","Uint8Array","dstOffset","COPY_READ_BUFFER","getBufferSubData","_invalidateDebugData","_getReadTarget","INDEX","ELEMENT_ARRAY_BUFFER","VERTEX","ARRAY_BUFFER","UNIFORM","UNIFORM_BUFFER","STATIC_DRAW","DYNAMIC_DRAW"],"sources":["../../../src/adapter/resources/webgl-buffer.ts"],"sourcesContent":["import type {BufferProps} from '@luma.gl/api';\nimport {Buffer, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\n\nconst DEBUG_DATA_LENGTH = 10;\n\n/** WebGL Buffer interface */\nexport default class WEBGLBuffer extends Buffer {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n readonly handle: WebGLBuffer;\n readonly target: number;\n\n byteLength: number;\n bytesUsed: number;\n debugData: ArrayBuffer | null = null;\n\n webglUsage: number;\n\n // accessor: {};\n\n \n constructor(device: WebGLDevice, props: BufferProps = {}) {\n super(device, props);\n\n this.device = device;\n this.gl = this.device.gl;\n this.gl2 = this.device.gl2;\n\n const handle = typeof props === 'object' ? (props ).handle : undefined;\n this.handle = handle || this.gl.createBuffer();\n device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data});\n\n // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers\n // otherwise buffer type will lock to generic (non-element) buffer\n // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here\n // @ts-expect-error Hack - Checking for subclass prop\n this.target = this.props.target || getWebGLTarget(this.props.usage);\n // @ts-expect-error Hack - Checking for subclass prop\n this.webglUsage = this.props.webglUsage || getWebGLUsage(this.props.usage);\n this.debugData = null;\n\n // Set data: (re)initializes the buffer\n if (props.data) {\n this._initWithData(props.data, props.byteOffset, props.byteLength);\n } else {\n this._initWithByteLength(props.byteLength || 0);\n }\n\n // Deprecated: Merge main props and accessor\n // this.accessor = {...props.accessor};\n\n // Object.seal(this);\n }\n\n // PRIVATE METHODS\n\n // Allocate a new buffer and initialize to contents of typed array\n _initWithData(data, byteOffset: number = 0, byteLength: number = data.byteLength + byteOffset): this {\n assert(ArrayBuffer.isView(data));\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, byteLength, this.webglUsage);\n this.gl.bufferSubData(target, byteOffset, data);\n this.gl.bindBuffer(target, null);\n\n this.debugData = data.slice(0, DEBUG_DATA_LENGTH);\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n this.trackAllocatedMemory(byteLength);\n\n return this;\n }\n\n // Allocate a GPU buffer of specified size.\n _initWithByteLength(byteLength: number): this {\n assert(byteLength >= 0);\n\n // Workaround needed for Safari (#291):\n // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.\n let data = byteLength;\n if (byteLength === 0) {\n // @ts-expect-error\n data = new Float32Array(0);\n }\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, data, this.webglUsage);\n this.gl.bindBuffer(target, null);\n\n this.debugData = null;\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n\n return this;\n }\n\n override destroy(): void {\n if (!this.destroyed && this.handle) {\n this.removeStats();\n this.trackDeallocatedMemory();\n this.gl.deleteBuffer(this.handle);\n this.destroyed = true;\n // this.handle = null;\n }\n }\n\n override write(data: ArrayBufferView, byteOffset: number = 0): void {\n const srcOffset = 0;\n const byteLength = data.byteLength;\n\n // Create the buffer - binding it here for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n const target = this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n this.gl.bindBuffer(target, this.handle);\n // WebGL2: subData supports additional srcOffset and length parameters\n if (srcOffset !== 0 || byteLength !== undefined) {\n this.device.assertWebGL2();\n\n // @ts-expect-error\n this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);\n } else {\n this.gl.bufferSubData(target, byteOffset, data);\n }\n this.gl.bindBuffer(target, null);\n\n // TODO - update local `data` if offsets are right\n // this.debugData = data.slice(byteOffset, 40);\n }\n\n /** Read data from the buffer */\n override async readAsync(\n byteOffset: number = 0,\n byteLength?: number\n ): Promise<ArrayBuffer> {\n this.device.assertWebGL2();\n\n const data = new Uint8Array(byteLength);\n const dstOffset = 0;\n\n // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);\n this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, byteOffset, data, dstOffset, byteLength);\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);\n\n // TODO - update local `data` if offsets are 0\n // this.debugData = null;\n\n return data;\n }\n\n // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)\n\n _invalidateDebugData() {\n this.debugData = null;\n }\n\n _getWriteTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n }\n\n _getReadTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;\n }\n}\n\n// static MAP_READ = 0x01;\n// static MAP_WRITE = 0x02;\n// static COPY_SRC = 0x0004;\n// static COPY_DST = 0x0008;\n// static INDEX = 0x0010;\n// static VERTEX = 0x0020;\n// static UNIFORM = 0x0040;\n// static STORAGE = 0x0080;\n// static INDIRECT = 0x0100;\n// static QUERY_RESOLVE = 0x0200;\n\nfunction getWebGLTarget(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.ELEMENT_ARRAY_BUFFER;\n }\n if (usage & Buffer.VERTEX) {\n return GL.ARRAY_BUFFER;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.UNIFORM_BUFFER;\n }\n\n // gl.COPY_READ_BUFFER: Buffer for copying from one buffer object to another.\n // gl.COPY_WRITE_BUFFER: Buffer for copying from one buffer object to another.\n // gl.TRANSFORM_FEEDBACK_BUFFER: Buffer for transform feedback operations.\n // gl.PIXEL_PACK_BUFFER: Buffer used for pixel transfer operations.\n // gl.PIXEL_UNPACK_BUFFER: Buffer used for pixel transfer operations.\n\n // Binding a buffer for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n return GL.ARRAY_BUFFER;\n}\n\nfunction getWebGLUsage(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.VERTEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.DYNAMIC_DRAW;\n }\n return GL.DYNAMIC_DRAW;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"webgl-buffer.js","names":["Buffer","assert","GL","DEBUG_DATA_LENGTH","WEBGLBuffer","constructor","device","props","arguments","length","undefined","_defineProperty","gl","gl2","handle","createBuffer","setSpectorMetadata","data","target","getWebGLTarget","usage","webglUsage","getWebGLUsage","debugData","_initWithData","byteOffset","byteLength","_initWithByteLength","ArrayBuffer","isView","_getWriteTarget","bindBuffer","bufferData","bufferSubData","slice","bytesUsed","trackAllocatedMemory","Float32Array","destroy","destroyed","removeStats","trackDeallocatedMemory","deleteBuffer","write","srcOffset","isWebGL2","COPY_WRITE_BUFFER","assertWebGL2","readAsync","Uint8Array","dstOffset","COPY_READ_BUFFER","getBufferSubData","_invalidateDebugData","_getReadTarget","INDEX","ELEMENT_ARRAY_BUFFER","VERTEX","ARRAY_BUFFER","UNIFORM","UNIFORM_BUFFER","STATIC_DRAW","DYNAMIC_DRAW"],"sources":["../../../src/adapter/resources/webgl-buffer.ts"],"sourcesContent":["import type {BufferProps} from '@luma.gl/api';\nimport {Buffer, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\n\nconst DEBUG_DATA_LENGTH = 10;\n\n/** WebGL Buffer interface */\nexport default class WEBGLBuffer extends Buffer {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext | null;\n readonly handle: WebGLBuffer;\n readonly target: number;\n\n byteLength: number;\n bytesUsed: number;\n debugData: ArrayBuffer | null = null;\n\n webglUsage: number;\n\n // accessor: {};\n\n \n constructor(device: WebGLDevice, props: BufferProps = {}) {\n super(device, props);\n\n this.device = device;\n this.gl = this.device.gl;\n this.gl2 = this.device.gl2;\n\n const handle = typeof props === 'object' ? (props ).handle : undefined;\n this.handle = handle || this.gl.createBuffer();\n device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data});\n\n // In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers\n // otherwise buffer type will lock to generic (non-element) buffer\n // In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here\n // @ts-expect-error Hack - Checking for subclass prop\n this.target = this.props.target || getWebGLTarget(this.props.usage);\n // @ts-expect-error Hack - Checking for subclass prop\n this.webglUsage = this.props.webglUsage || getWebGLUsage(this.props.usage);\n this.debugData = null;\n\n // Set data: (re)initializes the buffer\n if (props.data) {\n this._initWithData(props.data, props.byteOffset, props.byteLength);\n } else {\n this._initWithByteLength(props.byteLength || 0);\n }\n\n // Deprecated: Merge main props and accessor\n // this.accessor = {...props.accessor};\n\n // Object.seal(this);\n }\n\n // PRIVATE METHODS\n\n // Allocate a new buffer and initialize to contents of typed array\n _initWithData(data, byteOffset: number = 0, byteLength: number = data.byteLength + byteOffset): this {\n assert(ArrayBuffer.isView(data));\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, byteLength, this.webglUsage);\n this.gl.bufferSubData(target, byteOffset, data);\n this.gl.bindBuffer(target, null);\n\n this.debugData = data.slice(0, DEBUG_DATA_LENGTH);\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n this.trackAllocatedMemory(byteLength);\n\n return this;\n }\n\n // Allocate a GPU buffer of specified size.\n _initWithByteLength(byteLength: number): this {\n assert(byteLength >= 0);\n\n // Workaround needed for Safari (#291):\n // gl.bufferData with size equal to 0 crashes. Instead create zero sized array.\n let data = byteLength;\n if (byteLength === 0) {\n // @ts-expect-error\n data = new Float32Array(0);\n }\n\n const target = this._getWriteTarget();\n\n this.gl.bindBuffer(target, this.handle);\n this.gl.bufferData(target, data, this.webglUsage);\n this.gl.bindBuffer(target, null);\n\n this.debugData = null;\n this.bytesUsed = byteLength;\n this.byteLength = byteLength;\n\n return this;\n }\n\n override destroy(): void {\n if (!this.destroyed && this.handle) {\n this.removeStats();\n this.trackDeallocatedMemory();\n this.gl.deleteBuffer(this.handle);\n this.destroyed = true;\n // this.handle = null;\n }\n }\n\n override write(data: ArrayBufferView, byteOffset: number = 0): void {\n const srcOffset = 0;\n const byteLength = data.byteLength;\n\n // Create the buffer - binding it here for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n const target = this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n this.gl.bindBuffer(target, this.handle);\n // WebGL2: subData supports additional srcOffset and length parameters\n if (srcOffset !== 0 || byteLength !== undefined) {\n this.device.assertWebGL2();\n\n // @ts-expect-error\n this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);\n } else {\n this.gl.bufferSubData(target, byteOffset, data);\n }\n this.gl.bindBuffer(target, null);\n\n // TODO - update local `data` if offsets are right\n // this.debugData = data.slice(byteOffset, 40);\n }\n\n /** Read data from the buffer */\n override async readAsync(\n byteOffset: number = 0,\n byteLength?: number\n ): Promise<ArrayBuffer> {\n this.device.assertWebGL2();\n\n const data = new Uint8Array(byteLength);\n const dstOffset = 0;\n\n // Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);\n this.gl2.getBufferSubData(GL.COPY_READ_BUFFER, byteOffset, data, dstOffset, byteLength);\n this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);\n\n // TODO - update local `data` if offsets are 0\n // this.debugData = null;\n\n return data;\n }\n\n // PROTECTED METHODS (INTENDED FOR USE BY OTHER FRAMEWORK CODE ONLY)\n\n _invalidateDebugData() {\n this.debugData = null;\n }\n\n _getWriteTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_WRITE_BUFFER : this.target;\n }\n\n _getReadTarget() {\n return this.target;\n // return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;\n }\n}\n\n// static MAP_READ = 0x01;\n// static MAP_WRITE = 0x02;\n// static COPY_SRC = 0x0004;\n// static COPY_DST = 0x0008;\n// static INDEX = 0x0010;\n// static VERTEX = 0x0020;\n// static UNIFORM = 0x0040;\n// static STORAGE = 0x0080;\n// static INDIRECT = 0x0100;\n// static QUERY_RESOLVE = 0x0200;\n\nfunction getWebGLTarget(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.ELEMENT_ARRAY_BUFFER;\n }\n if (usage & Buffer.VERTEX) {\n return GL.ARRAY_BUFFER;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.UNIFORM_BUFFER;\n }\n\n // gl.COPY_READ_BUFFER: Buffer for copying from one buffer object to another.\n // gl.COPY_WRITE_BUFFER: Buffer for copying from one buffer object to another.\n // gl.TRANSFORM_FEEDBACK_BUFFER: Buffer for transform feedback operations.\n // gl.PIXEL_PACK_BUFFER: Buffer used for pixel transfer operations.\n // gl.PIXEL_UNPACK_BUFFER: Buffer used for pixel transfer operations.\n\n // Binding a buffer for the first time locks the type\n // In WebGL2, use GL.COPY_WRITE_BUFFER to avoid locking the type\n return GL.ARRAY_BUFFER;\n}\n\nfunction getWebGLUsage(usage: number): GL {\n if (usage & Buffer.INDEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.VERTEX) {\n return GL.STATIC_DRAW;\n }\n if (usage & Buffer.UNIFORM) {\n return GL.DYNAMIC_DRAW;\n }\n return GL.DYNAMIC_DRAW;\n}\n"],"mappings":"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"}
package/dist/dist.dev.js CHANGED
@@ -2100,7 +2100,7 @@ var __exports__ = (() => {
2100
2100
  return original.getVertexAttrib.apply(this, arguments);
2101
2101
  }
2102
2102
  };
2103
- gl.vertexAttribPointer = function vertexAttribPointer(indx, size, type, normalized, stride, offset2) {
2103
+ gl.vertexAttribPointer = function vertexAttribPointer(indx, size, type, normalized, stride, offset) {
2104
2104
  const vao = self.currentVertexArrayObject;
2105
2105
  vao.maxAttrib = Math.max(vao.maxAttrib, indx);
2106
2106
  const attrib = vao.attribs[indx];
@@ -2109,7 +2109,7 @@ var __exports__ = (() => {
2109
2109
  attrib.type = type;
2110
2110
  attrib.normalized = normalized;
2111
2111
  attrib.stride = stride;
2112
- attrib.offset = offset2;
2112
+ attrib.offset = offset;
2113
2113
  attrib.recache();
2114
2114
  return original.vertexAttribPointer.apply(this, arguments);
2115
2115
  };
@@ -5533,7 +5533,7 @@ void main(void) {}`;
5533
5533
  this.gl.bindBuffer(target, this.handle);
5534
5534
  if (srcOffset !== 0 || byteLength !== void 0) {
5535
5535
  this.device.assertWebGL2();
5536
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
5536
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
5537
5537
  } else {
5538
5538
  this.gl.bufferSubData(target, byteOffset, data);
5539
5539
  }
@@ -5903,7 +5903,7 @@ void main(void) {}`;
5903
5903
  pixels = null,
5904
5904
  level = 0,
5905
5905
  format = this.format,
5906
- offset: offset2 = 0,
5906
+ offset = 0,
5907
5907
  parameters = {}
5908
5908
  } = options;
5909
5909
  let {
@@ -5963,13 +5963,13 @@ void main(void) {}`;
5963
5963
  type,
5964
5964
  data,
5965
5965
  // @ts-expect-error
5966
- offset2
5966
+ offset
5967
5967
  );
5968
5968
  break;
5969
5969
  case "buffer":
5970
5970
  gl2 = this.device.assertWebGL2();
5971
5971
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle || data);
5972
- gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset2);
5972
+ gl2.texImage2D(target, level, format, width, height, 0, dataFormat, type, offset);
5973
5973
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
5974
5974
  break;
5975
5975
  case "browser-object":
@@ -6015,7 +6015,7 @@ void main(void) {}`;
6015
6015
  type = this.type,
6016
6016
  dataFormat = this.dataFormat,
6017
6017
  compressed = false,
6018
- offset: offset2 = 0,
6018
+ offset = 0,
6019
6019
  parameters = {}
6020
6020
  }) {
6021
6021
  ({
@@ -6053,11 +6053,11 @@ void main(void) {}`;
6053
6053
  } else if (data === null) {
6054
6054
  this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
6055
6055
  } else if (ArrayBuffer.isView(data)) {
6056
- this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset2);
6056
+ this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
6057
6057
  } else if (typeof WebGLBuffer !== "undefined" && data instanceof WebGLBuffer) {
6058
6058
  const gl2 = this.device.assertWebGL2();
6059
6059
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data);
6060
- gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset2);
6060
+ gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
6061
6061
  gl2.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
6062
6062
  } else if (this.device.isWebGL2) {
6063
6063
  const gl2 = this.device.assertWebGL2();
@@ -6295,7 +6295,7 @@ void main(void) {}`;
6295
6295
  width,
6296
6296
  height,
6297
6297
  depth = 1,
6298
- offset: offset2 = 0,
6298
+ offset = 0,
6299
6299
  data,
6300
6300
  parameters = {}
6301
6301
  } = options;
@@ -6320,7 +6320,7 @@ void main(void) {}`;
6320
6320
  }
6321
6321
  if (data instanceof WEBGLBuffer) {
6322
6322
  this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
6323
- this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset2);
6323
+ this.gl.texImage3D(this.target, level, dataFormat, width, height, depth, 0, format, type, offset);
6324
6324
  }
6325
6325
  });
6326
6326
  if (data && data.byteLength) {
@@ -7650,7 +7650,7 @@ void main(void) {}`;
7650
7650
  }
7651
7651
  const {
7652
7652
  data,
7653
- offset: offset2 = 0,
7653
+ offset = 0,
7654
7654
  srcOffset = 0
7655
7655
  } = options;
7656
7656
  const byteLength = options.byteLength || options.length;
@@ -7659,9 +7659,9 @@ void main(void) {}`;
7659
7659
  this.gl.bindBuffer(target, this.handle);
7660
7660
  if (srcOffset !== 0 || byteLength !== void 0) {
7661
7661
  assertWebGL2Context(this.gl);
7662
- this.gl.bufferSubData(this.target, offset2, data, srcOffset, byteLength);
7662
+ this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
7663
7663
  } else {
7664
- this.gl.bufferSubData(target, offset2, data);
7664
+ this.gl.bufferSubData(target, offset, data);
7665
7665
  }
7666
7666
  this.gl.bindBuffer(target, null);
7667
7667
  this.debugData = null;
@@ -7742,14 +7742,14 @@ void main(void) {}`;
7742
7742
  // target for the bind operation
7743
7743
  index = this.accessor && this.accessor.index,
7744
7744
  // index = index of target (indexed bind point)
7745
- offset: offset2 = 0,
7745
+ offset = 0,
7746
7746
  size
7747
7747
  } = options || {};
7748
7748
  if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
7749
7749
  if (size !== void 0) {
7750
- this.gl2?.bindBufferRange(target, index, this.handle, offset2, size);
7750
+ this.gl2?.bindBufferRange(target, index, this.handle, offset, size);
7751
7751
  } else {
7752
- assert2(offset2 === 0);
7752
+ assert2(offset === 0);
7753
7753
  this.gl2?.bindBufferBase(target, index, this.handle);
7754
7754
  }
7755
7755
  } else {
@@ -7792,13 +7792,13 @@ void main(void) {}`;
7792
7792
  }
7793
7793
  // PRIVATE METHODS
7794
7794
  // Allocate a new buffer and initialize to contents of typed array
7795
- _setData(data, offset2 = 0, byteLength = data.byteLength + offset2) {
7795
+ _setData(data, offset = 0, byteLength = data.byteLength + offset) {
7796
7796
  assert2(ArrayBuffer.isView(data));
7797
7797
  this.trackDeallocatedMemory();
7798
7798
  const target = this._getTarget();
7799
7799
  this.gl.bindBuffer(target, this.handle);
7800
7800
  this.gl.bufferData(target, byteLength, this.webglUsage);
7801
- this.gl.bufferSubData(target, offset2, data);
7801
+ this.gl.bufferSubData(target, offset, data);
7802
7802
  this.gl.bindBuffer(target, null);
7803
7803
  this.debugData = data.slice(0, DEBUG_DATA_LENGTH2);
7804
7804
  this.bytesUsed = byteLength;
@@ -8498,7 +8498,7 @@ ${formattedLog}`)();
8498
8498
  size,
8499
8499
  type,
8500
8500
  stride,
8501
- offset: offset2,
8501
+ offset,
8502
8502
  normalized,
8503
8503
  integer,
8504
8504
  divisor
@@ -8512,9 +8512,9 @@ ${formattedLog}`)();
8512
8512
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);
8513
8513
  if (integer) {
8514
8514
  this.device.assertWebGL2();
8515
- gl2.vertexAttribIPointer(location, size, type, stride, offset2);
8515
+ gl2.vertexAttribIPointer(location, size, type, stride, offset);
8516
8516
  } else {
8517
- gl.vertexAttribPointer(location, size, type, normalized, stride, offset2);
8517
+ gl.vertexAttribPointer(location, size, type, normalized, stride, offset);
8518
8518
  }
8519
8519
  gl.enableVertexAttribArray(location);
8520
8520
  gl2.vertexAttribDivisor(location, divisor || 0);
package/dist/index.cjs CHANGED
@@ -275,7 +275,7 @@ var OESVertexArrayObject = function OESVertexArrayObject2(gl) {
275
275
  return original.getVertexAttrib.apply(this, arguments);
276
276
  }
277
277
  };
278
- gl.vertexAttribPointer = function vertexAttribPointer(indx, size, type, normalized, stride, offset2) {
278
+ gl.vertexAttribPointer = function vertexAttribPointer(indx, size, type, normalized, stride, offset) {
279
279
  const vao = self.currentVertexArrayObject;
280
280
  vao.maxAttrib = Math.max(vao.maxAttrib, indx);
281
281
  const attrib = vao.attribs[indx];
@@ -284,7 +284,7 @@ var OESVertexArrayObject = function OESVertexArrayObject2(gl) {
284
284
  attrib.type = type;
285
285
  attrib.normalized = normalized;
286
286
  attrib.stride = stride;
287
- attrib.offset = offset2;
287
+ attrib.offset = offset;
288
288
  attrib.recache();
289
289
  return original.vertexAttribPointer.apply(this, arguments);
290
290
  };
@@ -2584,7 +2584,7 @@ var WEBGLBuffer = class extends import_api7.Buffer {
2584
2584
  this.gl.bindBuffer(target, this.handle);
2585
2585
  if (srcOffset !== 0 || byteLength !== void 0) {
2586
2586
  this.device.assertWebGL2();
2587
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
2587
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
2588
2588
  } else {
2589
2589
  this.gl.bufferSubData(target, byteOffset, data);
2590
2590
  }
@@ -2918,7 +2918,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
2918
2918
  pixels = null,
2919
2919
  level = 0,
2920
2920
  format = this.format,
2921
- offset: offset2 = 0,
2921
+ offset = 0,
2922
2922
  parameters = {}
2923
2923
  } = options;
2924
2924
  let {
@@ -2964,7 +2964,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
2964
2964
  type,
2965
2965
  data,
2966
2966
  // @ts-expect-error
2967
- offset2
2967
+ offset
2968
2968
  );
2969
2969
  break;
2970
2970
  case "buffer":
@@ -2979,7 +2979,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
2979
2979
  0,
2980
2980
  dataFormat,
2981
2981
  type,
2982
- offset2
2982
+ offset
2983
2983
  );
2984
2984
  gl2.bindBuffer(import_constants11.default.PIXEL_UNPACK_BUFFER, null);
2985
2985
  break;
@@ -3044,7 +3044,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
3044
3044
  type = this.type,
3045
3045
  dataFormat = this.dataFormat,
3046
3046
  compressed = false,
3047
- offset: offset2 = 0,
3047
+ offset = 0,
3048
3048
  parameters = {}
3049
3049
  }) {
3050
3050
  ({ type, dataFormat, compressed, width, height } = this._deduceParameters({
@@ -3076,11 +3076,11 @@ var _WEBGLTexture = class extends import_api10.Texture {
3076
3076
  } else if (data === null) {
3077
3077
  this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
3078
3078
  } else if (ArrayBuffer.isView(data)) {
3079
- this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset2);
3079
+ this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, data, offset);
3080
3080
  } else if (typeof WebGLBuffer !== "undefined" && data instanceof WebGLBuffer) {
3081
3081
  const gl2 = this.device.assertWebGL2();
3082
3082
  gl2.bindBuffer(import_constants11.default.PIXEL_UNPACK_BUFFER, data);
3083
- gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset2);
3083
+ gl2.texSubImage2D(target, level, x, y, width, height, dataFormat, type, offset);
3084
3084
  gl2.bindBuffer(import_constants11.default.PIXEL_UNPACK_BUFFER, null);
3085
3085
  } else if (this.device.isWebGL2) {
3086
3086
  const gl2 = this.device.assertWebGL2();
@@ -3257,7 +3257,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
3257
3257
  width,
3258
3258
  height,
3259
3259
  depth = 1,
3260
- offset: offset2 = 0,
3260
+ offset = 0,
3261
3261
  data,
3262
3262
  parameters = {}
3263
3263
  } = options;
@@ -3292,7 +3292,7 @@ var _WEBGLTexture = class extends import_api10.Texture {
3292
3292
  0,
3293
3293
  format,
3294
3294
  type,
3295
- offset2
3295
+ offset
3296
3296
  );
3297
3297
  }
3298
3298
  });
@@ -4498,16 +4498,16 @@ var ClassicBuffer = class extends WEBGLBuffer {
4498
4498
  if (ArrayBuffer.isView(options)) {
4499
4499
  options = { data: options };
4500
4500
  }
4501
- const { data, offset: offset2 = 0, srcOffset = 0 } = options;
4501
+ const { data, offset = 0, srcOffset = 0 } = options;
4502
4502
  const byteLength = options.byteLength || options.length;
4503
4503
  (0, import_api19.assert)(data);
4504
4504
  const target = this.gl.webgl2 ? import_constants18.default.COPY_WRITE_BUFFER : this.target;
4505
4505
  this.gl.bindBuffer(target, this.handle);
4506
4506
  if (srcOffset !== 0 || byteLength !== void 0) {
4507
4507
  assertWebGL2Context(this.gl);
4508
- this.gl.bufferSubData(this.target, offset2, data, srcOffset, byteLength);
4508
+ this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
4509
4509
  } else {
4510
- this.gl.bufferSubData(target, offset2, data);
4510
+ this.gl.bufferSubData(target, offset, data);
4511
4511
  }
4512
4512
  this.gl.bindBuffer(target, null);
4513
4513
  this.debugData = null;
@@ -4577,14 +4577,14 @@ var ClassicBuffer = class extends WEBGLBuffer {
4577
4577
  // target for the bind operation
4578
4578
  index = this.accessor && this.accessor.index,
4579
4579
  // index = index of target (indexed bind point)
4580
- offset: offset2 = 0,
4580
+ offset = 0,
4581
4581
  size
4582
4582
  } = options || {};
4583
4583
  if (target === import_constants18.default.UNIFORM_BUFFER || target === import_constants18.default.TRANSFORM_FEEDBACK_BUFFER) {
4584
4584
  if (size !== void 0) {
4585
- (_a = this.gl2) == null ? void 0 : _a.bindBufferRange(target, index, this.handle, offset2, size);
4585
+ (_a = this.gl2) == null ? void 0 : _a.bindBufferRange(target, index, this.handle, offset, size);
4586
4586
  } else {
4587
- (0, import_api19.assert)(offset2 === 0);
4587
+ (0, import_api19.assert)(offset === 0);
4588
4588
  (_b = this.gl2) == null ? void 0 : _b.bindBufferBase(target, index, this.handle);
4589
4589
  }
4590
4590
  } else {
@@ -4617,13 +4617,13 @@ var ClassicBuffer = class extends WEBGLBuffer {
4617
4617
  }
4618
4618
  // PRIVATE METHODS
4619
4619
  // Allocate a new buffer and initialize to contents of typed array
4620
- _setData(data, offset2 = 0, byteLength = data.byteLength + offset2) {
4620
+ _setData(data, offset = 0, byteLength = data.byteLength + offset) {
4621
4621
  (0, import_api19.assert)(ArrayBuffer.isView(data));
4622
4622
  this.trackDeallocatedMemory();
4623
4623
  const target = this._getTarget();
4624
4624
  this.gl.bindBuffer(target, this.handle);
4625
4625
  this.gl.bufferData(target, byteLength, this.webglUsage);
4626
- this.gl.bufferSubData(target, offset2, data);
4626
+ this.gl.bufferSubData(target, offset, data);
4627
4627
  this.gl.bindBuffer(target, null);
4628
4628
  this.debugData = data.slice(0, DEBUG_DATA_LENGTH2);
4629
4629
  this.bytesUsed = byteLength;
@@ -5295,16 +5295,16 @@ var WEBGLVertexArrayObject = class extends WebGLResource {
5295
5295
  if (buffer.target === import_constants24.default.ELEMENT_ARRAY_BUFFER) {
5296
5296
  return this.setElementBuffer(buffer, accessor);
5297
5297
  }
5298
- const { size, type, stride, offset: offset2, normalized, integer, divisor } = accessor;
5298
+ const { size, type, stride, offset, normalized, integer, divisor } = accessor;
5299
5299
  const { gl, gl2 } = this;
5300
5300
  location = Number(location);
5301
5301
  this.bind(() => {
5302
5302
  gl.bindBuffer(gl.ARRAY_BUFFER, buffer.handle);
5303
5303
  if (integer) {
5304
5304
  this.device.assertWebGL2();
5305
- gl2.vertexAttribIPointer(location, size, type, stride, offset2);
5305
+ gl2.vertexAttribIPointer(location, size, type, stride, offset);
5306
5306
  } else {
5307
- gl.vertexAttribPointer(location, size, type, normalized, stride, offset2);
5307
+ gl.vertexAttribPointer(location, size, type, normalized, stride, offset);
5308
5308
  }
5309
5309
  gl.enableVertexAttribArray(location);
5310
5310
  gl2.vertexAttribDivisor(location, divisor || 0);
package/dist.min.js CHANGED
@@ -17,7 +17,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
17
17
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Z(e){return Wr(e)||bt(e)||Ke(e)||Lr()}var O,T,pe,yt=(O={},s(O,i.BLEND,!1),s(O,i.BLEND_COLOR,new Float32Array([0,0,0,0])),s(O,i.BLEND_EQUATION_RGB,i.FUNC_ADD),s(O,i.BLEND_EQUATION_ALPHA,i.FUNC_ADD),s(O,i.BLEND_SRC_RGB,i.ONE),s(O,i.BLEND_DST_RGB,i.ZERO),s(O,i.BLEND_SRC_ALPHA,i.ONE),s(O,i.BLEND_DST_ALPHA,i.ZERO),s(O,i.COLOR_CLEAR_VALUE,new Float32Array([0,0,0,0])),s(O,i.COLOR_WRITEMASK,[!0,!0,!0,!0]),s(O,i.CULL_FACE,!1),s(O,i.CULL_FACE_MODE,i.BACK),s(O,i.DEPTH_TEST,!1),s(O,i.DEPTH_CLEAR_VALUE,1),s(O,i.DEPTH_FUNC,i.LESS),s(O,i.DEPTH_RANGE,new Float32Array([0,1])),s(O,i.DEPTH_WRITEMASK,!0),s(O,i.DITHER,!0),s(O,i.CURRENT_PROGRAM,null),s(O,i.FRAMEBUFFER_BINDING,null),s(O,i.RENDERBUFFER_BINDING,null),s(O,i.VERTEX_ARRAY_BINDING,null),s(O,i.ARRAY_BUFFER_BINDING,null),s(O,i.FRONT_FACE,i.CCW),s(O,i.GENERATE_MIPMAP_HINT,i.DONT_CARE),s(O,i.LINE_WIDTH,1),s(O,i.POLYGON_OFFSET_FILL,!1),s(O,i.POLYGON_OFFSET_FACTOR,0),s(O,i.POLYGON_OFFSET_UNITS,0),s(O,i.SAMPLE_ALPHA_TO_COVERAGE,!1),s(O,i.SAMPLE_COVERAGE,!1),s(O,i.SAMPLE_COVERAGE_VALUE,1),s(O,i.SAMPLE_COVERAGE_INVERT,!1),s(O,i.SCISSOR_TEST,!1),s(O,i.SCISSOR_BOX,new Int32Array([0,0,1024,1024])),s(O,i.STENCIL_TEST,!1),s(O,i.STENCIL_CLEAR_VALUE,0),s(O,i.STENCIL_WRITEMASK,4294967295),s(O,i.STENCIL_BACK_WRITEMASK,4294967295),s(O,i.STENCIL_FUNC,i.ALWAYS),s(O,i.STENCIL_REF,0),s(O,i.STENCIL_VALUE_MASK,4294967295),s(O,i.STENCIL_BACK_FUNC,i.ALWAYS),s(O,i.STENCIL_BACK_REF,0),s(O,i.STENCIL_BACK_VALUE_MASK,4294967295),s(O,i.STENCIL_FAIL,i.KEEP),s(O,i.STENCIL_PASS_DEPTH_FAIL,i.KEEP),s(O,i.STENCIL_PASS_DEPTH_PASS,i.KEEP),s(O,i.STENCIL_BACK_FAIL,i.KEEP),s(O,i.STENCIL_BACK_PASS_DEPTH_FAIL,i.KEEP),s(O,i.STENCIL_BACK_PASS_DEPTH_PASS,i.KEEP),s(O,i.VIEWPORT,[0,0,1024,1024]),s(O,i.PACK_ALIGNMENT,4),s(O,i.UNPACK_ALIGNMENT,4),s(O,i.UNPACK_FLIP_Y_WEBGL,!1),s(O,i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s(O,i.UNPACK_COLORSPACE_CONVERSION_WEBGL,i.BROWSER_DEFAULT_WEBGL),s(O,i.TRANSFORM_FEEDBACK_BINDING,null),s(O,i.COPY_READ_BUFFER_BINDING,null),s(O,i.COPY_WRITE_BUFFER_BINDING,null),s(O,i.PIXEL_PACK_BUFFER_BINDING,null),s(O,i.PIXEL_UNPACK_BUFFER_BINDING,null),s(O,i.FRAGMENT_SHADER_DERIVATIVE_HINT,i.DONT_CARE),s(O,i.READ_FRAMEBUFFER_BINDING,null),s(O,i.RASTERIZER_DISCARD,!1),s(O,i.PACK_ROW_LENGTH,0),s(O,i.PACK_SKIP_PIXELS,0),s(O,i.PACK_SKIP_ROWS,0),s(O,i.UNPACK_ROW_LENGTH,0),s(O,i.UNPACK_IMAGE_HEIGHT,0),s(O,i.UNPACK_SKIP_PIXELS,0),s(O,i.UNPACK_SKIP_ROWS,0),s(O,i.UNPACK_SKIP_IMAGES,0),O),Ce=function(t,r,n){return r?t.enable(n):t.disable(n)},Pa=function(t,r,n){return t.hint(n,r)},Re=function(t,r,n){return t.pixelStorei(n,r)},ya=function(t,r,n){var a;return n===i.FRAMEBUFFER_BINDING?a=H(t)?i.DRAW_FRAMEBUFFER:i.FRAMEBUFFER:a=i.READ_FRAMEBUFFER,t.bindFramebuffer(a,r)},Pt=function(t,r,n){var a,o=(a={},s(a,i.ARRAY_BUFFER_BINDING,i.ARRAY_BUFFER),s(a,i.COPY_READ_BUFFER_BINDING,i.COPY_READ_BUFFER),s(a,i.COPY_WRITE_BUFFER_BINDING,i.COPY_WRITE_BUFFER),s(a,i.PIXEL_PACK_BUFFER_BINDING,i.PIXEL_PACK_BUFFER),s(a,i.PIXEL_UNPACK_BUFFER_BINDING,i.PIXEL_UNPACK_BUFFER),a),u=o[n];t.bindBuffer(u,r)};function Vr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var Fa=(T={},s(T,i.BLEND,Ce),s(T,i.BLEND_COLOR,function(e,t){return e.blendColor.apply(e,Z(t))}),s(T,i.BLEND_EQUATION_RGB,"blendEquation"),s(T,i.BLEND_EQUATION_ALPHA,"blendEquation"),s(T,i.BLEND_SRC_RGB,"blendFunc"),s(T,i.BLEND_DST_RGB,"blendFunc"),s(T,i.BLEND_SRC_ALPHA,"blendFunc"),s(T,i.BLEND_DST_ALPHA,"blendFunc"),s(T,i.COLOR_CLEAR_VALUE,function(e,t){return e.clearColor.apply(e,Z(t))}),s(T,i.COLOR_WRITEMASK,function(e,t){return e.colorMask.apply(e,Z(t))}),s(T,i.CULL_FACE,Ce),s(T,i.CULL_FACE_MODE,function(e,t){return e.cullFace(t)}),s(T,i.DEPTH_TEST,Ce),s(T,i.DEPTH_CLEAR_VALUE,function(e,t){return e.clearDepth(t)}),s(T,i.DEPTH_FUNC,function(e,t){return e.depthFunc(t)}),s(T,i.DEPTH_RANGE,function(e,t){return e.depthRange.apply(e,Z(t))}),s(T,i.DEPTH_WRITEMASK,function(e,t){return e.depthMask(t)}),s(T,i.DITHER,Ce),s(T,i.FRAGMENT_SHADER_DERIVATIVE_HINT,Pa),s(T,i.CURRENT_PROGRAM,function(e,t){return e.useProgram(t)}),s(T,i.RENDERBUFFER_BINDING,function(e,t){return e.bindRenderbuffer(i.RENDERBUFFER,t)}),s(T,i.TRANSFORM_FEEDBACK_BINDING,function(e,t){var r,n;return(r=(n=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(n,i.TRANSFORM_FEEDBACK,t)}),s(T,i.VERTEX_ARRAY_BINDING,function(e,t){return e.bindVertexArray(t)}),s(T,i.FRAMEBUFFER_BINDING,ya),s(T,i.READ_FRAMEBUFFER_BINDING,ya),s(T,i.ARRAY_BUFFER_BINDING,Pt),s(T,i.COPY_READ_BUFFER_BINDING,Pt),s(T,i.COPY_WRITE_BUFFER_BINDING,Pt),s(T,i.PIXEL_PACK_BUFFER_BINDING,Pt),s(T,i.PIXEL_UNPACK_BUFFER_BINDING,Pt),s(T,i.FRONT_FACE,function(e,t){return e.frontFace(t)}),s(T,i.GENERATE_MIPMAP_HINT,Pa),s(T,i.LINE_WIDTH,function(e,t){return e.lineWidth(t)}),s(T,i.POLYGON_OFFSET_FILL,Ce),s(T,i.POLYGON_OFFSET_FACTOR,"polygonOffset"),s(T,i.POLYGON_OFFSET_UNITS,"polygonOffset"),s(T,i.RASTERIZER_DISCARD,Ce),s(T,i.SAMPLE_ALPHA_TO_COVERAGE,Ce),s(T,i.SAMPLE_COVERAGE,Ce),s(T,i.SAMPLE_COVERAGE_VALUE,"sampleCoverage"),s(T,i.SAMPLE_COVERAGE_INVERT,"sampleCoverage"),s(T,i.SCISSOR_TEST,Ce),s(T,i.SCISSOR_BOX,function(e,t){return e.scissor.apply(e,Z(t))}),s(T,i.STENCIL_TEST,Ce),s(T,i.STENCIL_CLEAR_VALUE,function(e,t){return e.clearStencil(t)}),s(T,i.STENCIL_WRITEMASK,function(e,t){return e.stencilMaskSeparate(i.FRONT,t)}),s(T,i.STENCIL_BACK_WRITEMASK,function(e,t){return e.stencilMaskSeparate(i.BACK,t)}),s(T,i.STENCIL_FUNC,"stencilFuncFront"),s(T,i.STENCIL_REF,"stencilFuncFront"),s(T,i.STENCIL_VALUE_MASK,"stencilFuncFront"),s(T,i.STENCIL_BACK_FUNC,"stencilFuncBack"),s(T,i.STENCIL_BACK_REF,"stencilFuncBack"),s(T,i.STENCIL_BACK_VALUE_MASK,"stencilFuncBack"),s(T,i.STENCIL_FAIL,"stencilOpFront"),s(T,i.STENCIL_PASS_DEPTH_FAIL,"stencilOpFront"),s(T,i.STENCIL_PASS_DEPTH_PASS,"stencilOpFront"),s(T,i.STENCIL_BACK_FAIL,"stencilOpBack"),s(T,i.STENCIL_BACK_PASS_DEPTH_FAIL,"stencilOpBack"),s(T,i.STENCIL_BACK_PASS_DEPTH_PASS,"stencilOpBack"),s(T,i.VIEWPORT,function(e,t){return e.viewport.apply(e,Z(t))}),s(T,i.PACK_ALIGNMENT,Re),s(T,i.UNPACK_ALIGNMENT,Re),s(T,i.UNPACK_FLIP_Y_WEBGL,Re),s(T,i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Re),s(T,i.UNPACK_COLORSPACE_CONVERSION_WEBGL,Re),s(T,i.PACK_ROW_LENGTH,Re),s(T,i.PACK_SKIP_PIXELS,Re),s(T,i.PACK_SKIP_ROWS,Re),s(T,i.UNPACK_ROW_LENGTH,Re),s(T,i.UNPACK_IMAGE_HEIGHT,Re),s(T,i.UNPACK_SKIP_PIXELS,Re),s(T,i.UNPACK_SKIP_ROWS,Re),s(T,i.UNPACK_SKIP_IMAGES,Re),s(T,"framebuffer",function(t,r){var n=r&&"handle"in r?r.handle:r;return t.bindFramebuffer(i.FRAMEBUFFER,n)}),s(T,"blend",function(t,r){return r?t.enable(i.BLEND):t.disable(i.BLEND)}),s(T,"blendColor",function(t,r){return t.blendColor.apply(t,Z(r))}),s(T,"blendEquation",function(t,r){var n=typeof r=="number"?[r,r]:r;t.blendEquationSeparate.apply(t,Z(n))}),s(T,"blendFunc",function(t,r){var n=r?.length===2?[].concat(Z(r),Z(r)):r;t.blendFuncSeparate.apply(t,Z(n))}),s(T,"clearColor",function(t,r){return t.clearColor.apply(t,Z(r))}),s(T,"clearDepth",function(t,r){return t.clearDepth(r)}),s(T,"clearStencil",function(t,r){return t.clearStencil(r)}),s(T,"colorMask",function(t,r){return t.colorMask.apply(t,Z(r))}),s(T,"cull",function(t,r){return r?t.enable(i.CULL_FACE):t.disable(i.CULL_FACE)}),s(T,"cullFace",function(t,r){return t.cullFace(r)}),s(T,"depthTest",function(t,r){return r?t.enable(i.DEPTH_TEST):t.disable(i.DEPTH_TEST)}),s(T,"depthFunc",function(t,r){return t.depthFunc(r)}),s(T,"depthMask",function(t,r){return t.depthMask(r)}),s(T,"depthRange",function(t,r){return t.depthRange.apply(t,Z(r))}),s(T,"dither",function(t,r){return r?t.enable(i.DITHER):t.disable(i.DITHER)}),s(T,"derivativeHint",function(t,r){t.hint(i.FRAGMENT_SHADER_DERIVATIVE_HINT,r)}),s(T,"frontFace",function(t,r){return t.frontFace(r)}),s(T,"mipmapHint",function(t,r){return t.hint(i.GENERATE_MIPMAP_HINT,r)}),s(T,"lineWidth",function(t,r){return t.lineWidth(r)}),s(T,"polygonOffsetFill",function(t,r){return r?t.enable(i.POLYGON_OFFSET_FILL):t.disable(i.POLYGON_OFFSET_FILL)}),s(T,"polygonOffset",function(t,r){return t.polygonOffset.apply(t,Z(r))}),s(T,"sampleCoverage",function(t,r){return t.sampleCoverage.apply(t,Z(r))}),s(T,"scissorTest",function(t,r){return r?t.enable(i.SCISSOR_TEST):t.disable(i.SCISSOR_TEST)}),s(T,"scissor",function(t,r){return t.scissor.apply(t,Z(r))}),s(T,"stencilTest",function(t,r){return r?t.enable(i.STENCIL_TEST):t.disable(i.STENCIL_TEST)}),s(T,"stencilMask",function(t,r){r=Vr(r)?r:[r,r];var n=r,a=L(n,2),o=a[0],u=a[1];t.stencilMaskSeparate(i.FRONT,o),t.stencilMaskSeparate(i.BACK,u)}),s(T,"stencilFunc",function(t,r){r=Vr(r)&&r.length===3?[].concat(Z(r),Z(r)):r;var n=r,a=L(n,6),o=a[0],u=a[1],_=a[2],f=a[3],E=a[4],c=a[5];t.stencilFuncSeparate(i.FRONT,o,u,_),t.stencilFuncSeparate(i.BACK,f,E,c)}),s(T,"stencilOp",function(t,r){r=Vr(r)&&r.length===3?[].concat(Z(r),Z(r)):r;var n=r,a=L(n,6),o=a[0],u=a[1],_=a[2],f=a[3],E=a[4],c=a[5];t.stencilOpSeparate(i.FRONT,o,u,_),t.stencilOpSeparate(i.BACK,f,E,c)}),s(T,"viewport",function(t,r){return t.viewport.apply(t,Z(r))}),T);function J(e,t,r){return t[e]!==void 0?t[e]:r[e]}var Ba={blendEquation:function(t,r,n){return t.blendEquationSeparate(J(i.BLEND_EQUATION_RGB,r,n),J(i.BLEND_EQUATION_ALPHA,r,n))},blendFunc:function(t,r,n){return t.blendFuncSeparate(J(i.BLEND_SRC_RGB,r,n),J(i.BLEND_DST_RGB,r,n),J(i.BLEND_SRC_ALPHA,r,n),J(i.BLEND_DST_ALPHA,r,n))},polygonOffset:function(t,r,n){return t.polygonOffset(J(i.POLYGON_OFFSET_FACTOR,r,n),J(i.POLYGON_OFFSET_UNITS,r,n))},sampleCoverage:function(t,r,n){return t.sampleCoverage(J(i.SAMPLE_COVERAGE_VALUE,r,n),J(i.SAMPLE_COVERAGE_INVERT,r,n))},stencilFuncFront:function(t,r,n){return t.stencilFuncSeparate(i.FRONT,J(i.STENCIL_FUNC,r,n),J(i.STENCIL_REF,r,n),J(i.STENCIL_VALUE_MASK,r,n))},stencilFuncBack:function(t,r,n){return t.stencilFuncSeparate(i.BACK,J(i.STENCIL_BACK_FUNC,r,n),J(i.STENCIL_BACK_REF,r,n),J(i.STENCIL_BACK_VALUE_MASK,r,n))},stencilOpFront:function(t,r,n){return t.stencilOpSeparate(i.FRONT,J(i.STENCIL_FAIL,r,n),J(i.STENCIL_PASS_DEPTH_FAIL,r,n),J(i.STENCIL_PASS_DEPTH_PASS,r,n))},stencilOpBack:function(t,r,n){return t.stencilOpSeparate(i.BACK,J(i.STENCIL_BACK_FAIL,r,n),J(i.STENCIL_BACK_PASS_DEPTH_FAIL,r,n),J(i.STENCIL_BACK_PASS_DEPTH_PASS,r,n))}},kr={enable:function(t,r){return t(s({},r,!0))},disable:function(t,r){return t(s({},r,!1))},pixelStorei:function(t,r,n){return t(s({},r,n))},hint:function(t,r,n){return t(s({},r,n))},useProgram:function(t,r){return t(s({},i.CURRENT_PROGRAM,r))},bindRenderbuffer:function(t,r,n){return t(s({},i.RENDERBUFFER_BINDING,n))},bindTransformFeedback:function(t,r,n){return t(s({},i.TRANSFORM_FEEDBACK_BINDING,n))},bindVertexArray:function(t,r){return t(s({},i.VERTEX_ARRAY_BINDING,r))},bindFramebuffer:function(t,r,n){var a;switch(r){case i.FRAMEBUFFER:return t((a={},s(a,i.DRAW_FRAMEBUFFER_BINDING,n),s(a,i.READ_FRAMEBUFFER_BINDING,n),a));case i.DRAW_FRAMEBUFFER:return t(s({},i.DRAW_FRAMEBUFFER_BINDING,n));case i.READ_FRAMEBUFFER:return t(s({},i.READ_FRAMEBUFFER_BINDING,n));default:return null}},bindBuffer:function(t,r,n){var a,o=(a={},s(a,i.ARRAY_BUFFER,[i.ARRAY_BUFFER_BINDING]),s(a,i.COPY_READ_BUFFER,[i.COPY_READ_BUFFER_BINDING]),s(a,i.COPY_WRITE_BUFFER,[i.COPY_WRITE_BUFFER_BINDING]),s(a,i.PIXEL_PACK_BUFFER,[i.PIXEL_PACK_BUFFER_BINDING]),s(a,i.PIXEL_UNPACK_BUFFER,[i.PIXEL_UNPACK_BUFFER_BINDING]),a)[r];return o?t(s({},o,n)):{valueChanged:!0}},blendColor:function(t,r,n,a,o){return t(s({},i.BLEND_COLOR,new Float32Array([r,n,a,o])))},blendEquation:function(t,r){var n;return t((n={},s(n,i.BLEND_EQUATION_RGB,r),s(n,i.BLEND_EQUATION_ALPHA,r),n))},blendEquationSeparate:function(t,r,n){var a;return t((a={},s(a,i.BLEND_EQUATION_RGB,r),s(a,i.BLEND_EQUATION_ALPHA,n),a))},blendFunc:function(t,r,n){var a;return t((a={},s(a,i.BLEND_SRC_RGB,r),s(a,i.BLEND_DST_RGB,n),s(a,i.BLEND_SRC_ALPHA,r),s(a,i.BLEND_DST_ALPHA,n),a))},blendFuncSeparate:function(t,r,n,a,o){var u;return t((u={},s(u,i.BLEND_SRC_RGB,r),s(u,i.BLEND_DST_RGB,n),s(u,i.BLEND_SRC_ALPHA,a),s(u,i.BLEND_DST_ALPHA,o),u))},clearColor:function(t,r,n,a,o){return t(s({},i.COLOR_CLEAR_VALUE,new Float32Array([r,n,a,o])))},clearDepth:function(t,r){return t(s({},i.DEPTH_CLEAR_VALUE,r))},clearStencil:function(t,r){return t(s({},i.STENCIL_CLEAR_VALUE,r))},colorMask:function(t,r,n,a,o){return t(s({},i.COLOR_WRITEMASK,[r,n,a,o]))},cullFace:function(t,r){return t(s({},i.CULL_FACE_MODE,r))},depthFunc:function(t,r){return t(s({},i.DEPTH_FUNC,r))},depthRange:function(t,r,n){return t(s({},i.DEPTH_RANGE,new Float32Array([r,n])))},depthMask:function(t,r){return t(s({},i.DEPTH_WRITEMASK,r))},frontFace:function(t,r){return t(s({},i.FRONT_FACE,r))},lineWidth:function(t,r){return t(s({},i.LINE_WIDTH,r))},polygonOffset:function(t,r,n){var a;return t((a={},s(a,i.POLYGON_OFFSET_FACTOR,r),s(a,i.POLYGON_OFFSET_UNITS,n),a))},sampleCoverage:function(t,r,n){var a;return t((a={},s(a,i.SAMPLE_COVERAGE_VALUE,r),s(a,i.SAMPLE_COVERAGE_INVERT,n),a))},scissor:function(t,r,n,a,o){return t(s({},i.SCISSOR_BOX,new Int32Array([r,n,a,o])))},stencilMask:function(t,r){var n;return t((n={},s(n,i.STENCIL_WRITEMASK,r),s(n,i.STENCIL_BACK_WRITEMASK,r),n))},stencilMaskSeparate:function(t,r,n){return t(s({},r===i.FRONT?i.STENCIL_WRITEMASK:i.STENCIL_BACK_WRITEMASK,n))},stencilFunc:function(t,r,n,a){var o;return t((o={},s(o,i.STENCIL_FUNC,r),s(o,i.STENCIL_REF,n),s(o,i.STENCIL_VALUE_MASK,a),s(o,i.STENCIL_BACK_FUNC,r),s(o,i.STENCIL_BACK_REF,n),s(o,i.STENCIL_BACK_VALUE_MASK,a),o))},stencilFuncSeparate:function(t,r,n,a,o){var u;return t((u={},s(u,r===i.FRONT?i.STENCIL_FUNC:i.STENCIL_BACK_FUNC,n),s(u,r===i.FRONT?i.STENCIL_REF:i.STENCIL_BACK_REF,a),s(u,r===i.FRONT?i.STENCIL_VALUE_MASK:i.STENCIL_BACK_VALUE_MASK,o),u))},stencilOp:function(t,r,n,a){var o;return t((o={},s(o,i.STENCIL_FAIL,r),s(o,i.STENCIL_PASS_DEPTH_FAIL,n),s(o,i.STENCIL_PASS_DEPTH_PASS,a),s(o,i.STENCIL_BACK_FAIL,r),s(o,i.STENCIL_BACK_PASS_DEPTH_FAIL,n),s(o,i.STENCIL_BACK_PASS_DEPTH_PASS,a),o))},stencilOpSeparate:function(t,r,n,a,o){var u;return t((u={},s(u,r===i.FRONT?i.STENCIL_FAIL:i.STENCIL_BACK_FAIL,n),s(u,r===i.FRONT?i.STENCIL_PASS_DEPTH_FAIL:i.STENCIL_BACK_PASS_DEPTH_FAIL,a),s(u,r===i.FRONT?i.STENCIL_PASS_DEPTH_PASS:i.STENCIL_BACK_PASS_DEPTH_PASS,o),u))},viewport:function(t,r,n,a,o){return t(s({},i.VIEWPORT,[r,n,a,o]))}},Ie=function(t,r){return t.isEnabled(r)},Kr=(pe={},s(pe,i.BLEND,Ie),s(pe,i.CULL_FACE,Ie),s(pe,i.DEPTH_TEST,Ie),s(pe,i.DITHER,Ie),s(pe,i.POLYGON_OFFSET_FILL,Ie),s(pe,i.SAMPLE_ALPHA_TO_COVERAGE,Ie),s(pe,i.SAMPLE_COVERAGE,Ie),s(pe,i.SCISSOR_TEST,Ie),s(pe,i.STENCIL_TEST,Ie),s(pe,i.RASTERIZER_DISCARD,Ie),pe),Ma=new Set([i.ACTIVE_TEXTURE,i.TRANSFORM_FEEDBACK_ACTIVE,i.TRANSFORM_FEEDBACK_PAUSED,i.TRANSFORM_FEEDBACK_BUFFER_BINDING,i.UNIFORM_BUFFER_BINDING,i.ELEMENT_ARRAY_BUFFER_BINDING,i.IMPLEMENTATION_COLOR_READ_FORMAT,i.IMPLEMENTATION_COLOR_READ_TYPE,i.READ_BUFFER,i.DRAW_BUFFER0,i.DRAW_BUFFER1,i.DRAW_BUFFER2,i.DRAW_BUFFER3,i.DRAW_BUFFER4,i.DRAW_BUFFER5,i.DRAW_BUFFER6,i.DRAW_BUFFER7,i.DRAW_BUFFER8,i.DRAW_BUFFER9,i.DRAW_BUFFER10,i.DRAW_BUFFER11,i.DRAW_BUFFER12,i.DRAW_BUFFER13,i.DRAW_BUFFER14,i.DRAW_BUFFER15,i.SAMPLER_BINDING,i.TEXTURE_BINDING_2D,i.TEXTURE_BINDING_2D_ARRAY,i.TEXTURE_BINDING_3D,i.TEXTURE_BINDING_CUBE_MAP]);function Us(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=xs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
18
18
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,_;return{s:function(){r=r.call(e)},n:function(){var E=r.next();return o=E.done,E},e:function(E){u=!0,_=E},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw _}}}}function xs(e,t){if(e){if(typeof e=="string")return Da(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Da(e,t)}}function Da(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ue(e,t){var r=ce.attach(e),n=r.gl;if(!ws(t)){var a={};for(var o in t){var u=Number(o),_=Fa[o];_&&(typeof _=="string"?a[_]=!0:_(n,t[o],u))}var f=n.state&&n.state.cache;if(f)for(var E in a){var c=Ba[E];c(n,t,f)}}}function tr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yt,r=ce.attach(e),n=r.gl;if(typeof t=="number"){var a=t,o=Kr[a];return o?o(n,a):n.getParameter(a)}var u=Array.isArray(t)?t:Object.keys(t),_={},f=Us(u),E;try{for(f.s();!(E=f.n()).done;){var c=E.value,l=Kr[c];_[c]=l?l(n,Number(c)):n.getParameter(Number(c))}}catch(R){f.e(R)}finally{f.f()}return _}function Ua(e){Ue(e,yt)}function ws(e){for(var t in e)return!1;return!0}function xa(e,t){if(e===t)return!0;var r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(var a=0;a<e.length;++a)if(e[a]!==t[a])return!1;return!0}return!1}var Xs=function(){function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=r.copyState,a=n===void 0?!1:n,o=r.log,u=o===void 0?function(){}:o;I(this,e),s(this,"gl",void 0),s(this,"program",null),s(this,"stateStack",[]),s(this,"enable",!0),s(this,"cache",void 0),s(this,"log",void 0),this.gl=t,this.cache=a?tr(t):Object.assign({},yt),this.log=u,this._updateCache=this._updateCache.bind(this),Object.seal(this)}return b(e,[{key:"push",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}},{key:"pop",value:function(){U(this.stateStack.length>0);var r=this.stateStack[this.stateStack.length-1];Ue(this.gl,r),this.stateStack.pop()}},{key:"_updateCache",value:function(r){var n=!1,a,o=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(var u in r){U(u!==void 0);var _=r[u],f=this.cache[u];xa(_,f)||(n=!0,a=f,o&&!(u in o)&&(o[u]=f),this.cache[u]=_)}return{valueChanged:n,oldValue:a}}}]),e}();function ze(e){return e.state}function Ft(e,t){var r=t.enable,n=r===void 0?!0:r,a=t.copyState;if(U(a!==void 0),!e.state){e.state=new Xs(e,{copyState:a}),Ws(e);for(var o in kr){var u=kr[o];Hs(e,o,u)}wa(e,"getParameter"),wa(e,"isEnabled")}var _=ze(e);return _.enable=n,e}function xe(e){var t=ze(e);t||(Ft(e,{copyState:!1}),t=ze(e)),t.push()}function be(e){var t=ze(e);U(t),t.pop()}function wa(e,t){var r=e[t].bind(e);e[t]=function(a){if(a===void 0||Ma.has(a))return r(a);var o=ze(e);return a in o.cache||(o.cache[a]=r(a)),o.enable?o.cache[a]:r(a)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function Hs(e,t,r){if(e[t]){var n=e[t].bind(e);e[t]=function(){for(var o=ze(e),u=arguments.length,_=new Array(u),f=0;f<u;f++)_[f]=arguments[f];var E=r.apply(void 0,[o._updateCache].concat(_)),c=E.valueChanged,l=E.oldValue;return c&&n.apply(void 0,_),l},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}}function Ws(e){var t=e.useProgram.bind(e);e.useProgram=function(n){var a=ze(e);a.program!==n&&(t(n),a.program=n)}}function Xa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ft(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xa(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xa(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Ls={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:function(){return console.error("WebGL context lost")},onContextRestored:function(){return console.info("WebGL context restored")}};function Ha(e,t){t=ft(ft({},Ls),t);var r=null,n=function(c){return r=c.statusMessage||r};e.addEventListener("webglcontextcreationerror",n,!1);var a=null;if(t.type==="webgl2"&&(t=ft(ft({},t),{},{webgl1:!1})),t.type==="webgl1"&&(t=ft(ft({},t),{},{webgl2:!1})),t.webgl2&&(a=a||e.getContext("webgl2",t)),t.webgl1&&(a=a||e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",n,!1),!a)throw new Error("Failed to create ".concat(t.webgl2&&!t.webgl1?"WebGL2":"WebGL"," context: ").concat(r||"Unknown error"));if(t.onContextLost){var o=t,u=o.onContextLost;e.addEventListener("webglcontextlost",function(E){return u(E)},!1)}if(t.onContextRestored){var _=t,f=_.onContextRestored;e.addEventListener("webglcontextrestored",function(E){return f(E)},!1)}return a}function Wa(e){var t=e.getParameter(i.VENDOR),r=e.getParameter(i.RENDERER),n=e.getExtension("WEBGL_debug_renderer_info"),a=e.getParameter(n?n.UNMASKED_VENDOR_WEBGL:i.VENDOR),o=e.getParameter(n?n.UNMASKED_RENDERER_WEBGL:i.RENDERER),u=a||t,_=o||r,f=Vs(u,_);return{type:H(e)?"webgl2":"webgl",gpu:f,vendor:a||t,renderer:o||r,version:e.getParameter(i.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(i.SHADING_LANGUAGE_VERSION)}}}function Vs(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 La(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",n=r.indexOf("MSIE ")!==-1,a=r.indexOf("Trident/")!==-1;return n||a}var Ee,Pe,ue="texture-compression-bc",Y="texture-compression-astc",ye="texture-compression-etc2",ks="texture-compression-etc1-webgl",rr="texture-compression-pvrtc-webgl",jr="texture-compression-atc-webgl",Bt="WEBGL_compressed_texture_s3tc",Mt="WEBGL_compressed_texture_s3tc_srgb",Et="EXT_texture_compression_rgtc",Dt="EXT_texture_compression_bptc",Ks="WEBGL_compressed_texture_etc",js="WEBGL_compressed_texture_astc",Ys="WEBGL_compressed_texture_etc1",zs="WEBGL_compressed_texture_pvrtc",Gs="WEBGL_compressed_texture_atc",Va="EXT_sRGB",Zs="EXT_texture_norm16",$s="WEBGL_color_buffer_float",Qs="EXT_color_buffer_float",Oe=function(t,r){return t.getExtension(r)},Ge=function(t,r){return r.every(function(n){return t.getExtension(n)})},Yr={"texture-blend-float-webgl1":function(t){return H(t)?!0:Oe(t,"EXT_float_blend")},"texture-formats-srgb-webgl1":function(t){return H(t)?!0:Oe(t,Va)},"texture-formats-depth-webgl1":function(t){return H(t)?!0:Oe(t,"WEBGL_depth_texture")},"texture-formats-float32-webgl1":function(t){return H(t)?!0:Oe(t,"OES_texture_float")},"texture-formats-float16-webgl1":function(t){return H(t)?!0:Oe(t,"OES_texture_half_float")},"texture-formats-norm16-webgl":function(t){return H(t)?Oe(t,Zs):!1},"texture-filter-linear-float32-webgl":function(t){return Oe(t,"OES_texture_float_linear")},"texture-filter-linear-float16-webgl":function(t){return Oe(t,"OES_texture_half_float_linear")},"texture-filter-anisotropic-webgl":function(t){return Oe(t,"EXT_texture_filter_anisotropic")},"texture-renderable-float32-webgl":function(t){return Oe(t,"EXT_color_buffer_float")},"texture-renderable-float16-webgl":function(t){return Oe(t,"EXT_color_buffer_half_float")},"texture-compression-bc":function(t){return Ge(t,[Bt,Mt,Et,Dt])},"texture-compression-bc5-webgl":function(t){return Ge(t,[Et])},"texture-compression-etc2":function(t){return Ge(t,[Ks])},"texture-compression-astc":function(t){return Ge(t,[js])},"texture-compression-etc1-webgl":function(t){return Ge(t,[Ys])},"texture-compression-pvrtc-webgl":function(t){return Ge(t,[zs])},"texture-compression-atc-webgl":function(t){return Ge(t,[Gs])}};function qs(e,t){var r;return((r=Yr[t])===null||r===void 0?void 0:r.call(Yr,e))||!1}function ka(e){var t=Object.keys(Yr);return t.filter(function(r){return qs(e,r)})}var nr={"rgb8unorm-unsized":{gl:i.RGB,gl1:i.RGB,b:4,c:2,bpp:4,dataFormat:i.RGB,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:i.RGBA,gl1:i.RGBA,b:4,c:2,bpp:4,dataFormat:i.RGBA,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_4_4_4_4,i.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:i.R8,b:1,c:1},r8snorm:{gl:i.R8_SNORM,b:1,c:1},r8uint:{gl:i.R8UI,b:1,c:1},r8sint:{gl:i.R8I,b:1,c:1},rg8unorm:{gl:i.RG8,b:2,c:2},rg8snorm:{gl:i.RG8_SNORM,b:2,c:2},rg8uint:{gl:i.RG8UI,b:2,c:2},rg8sint:{gl:i.RG8I,b:2,c:2},r16uint:{gl:i.R16UI,b:2,c:1},r16sint:{gl:i.R16I,b:2,c:1},r16float:{gl:i.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"r16unorm-webgl":{gl:i.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl"},"r16snorm-webgl":{gl:i.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl"},"rgba4unorm-webgl":{gl:i.RGBA4,b:2,c:4,wgpu:!1},"rgb565unorm-webgl":{gl:i.RGB565,b:2,c:4,wgpu:!1},"rgb5a1unorm-webgl":{gl:i.RGB5_A1,b:2,c:4,wgpu:!1},"rbg8unorm-webgl":{gl:i.RGB8,b:3,c:3,wgpu:!1},"rbg8snorm-webgl":{gl:i.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:i.RGBA8,gl1:i.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:i.SRGB8_ALPHA8,gl1:i.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:Va,bpp:4},rgba8snorm:{gl:i.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:i.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:i.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:i.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:i.RG16I,b:4,c:2,bpp:4},rg16float:{gl:i.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rg16unorm-webgl":{gl:i.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl"},"rg16snorm-webgl":{gl:i.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl"},r32uint:{gl:i.R32UI,b:4,c:1,bpp:4},r32sint:{gl:i.R32I,b:4,c:1,bpp:4},r32float:{gl:i.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:i.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:i.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl"},rgb10a2unorm:{gl:i.RGB10_A2,b:4,c:4,p:1},"rgb10a2unorm-webgl":{b:4,c:4,gl:i.RGB10_A2UI,p:1,wgpu:!1,bpp:4},"rgb16unorm-webgl":{gl:i.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl"},"rgb16snorm-webgl":{gl:i.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl"},rg32uint:{gl:i.RG32UI,b:8,c:2},rg32sint:{gl:i.RG32I,b:8,c:2},rg32float:{gl:i.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgba16uint:{gl:i.RGBA16UI,b:8,c:4},rgba16sint:{gl:i.RGBA16I,b:8,c:4},rgba16float:{gl:i.RGBA16F,gl1:i.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:i.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl"},"rgba16snorm-webgl":{gl:i.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl"},"rgb32float-webgl":{gl:i.RGB32F,gl1:i.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:Qs,gl1ext:$s,dataFormat:i.RGB,types:[i.FLOAT]},rgba32uint:{gl:i.RGBA32UI,b:16,c:4},rgba32sint:{gl:i.RGBA32I,b:16,c:4},rgba32float:{gl:i.RGBA32F,gl1:i.RGBA,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},stencil8:{gl:i.STENCIL_INDEX8,b:1,c:1,attachment:i.STENCIL_ATTACHMENT},depth16unorm:{gl:i.DEPTH_COMPONENT16,gl1:i.DEPTH_COMPONENT16,b:2,c:1,attachment:i.DEPTH_ATTACHMENT},depth24plus:{gl:i.DEPTH_COMPONENT24,b:3,c:1,attachment:i.DEPTH_ATTACHMENT},depth32float:{gl:i.DEPTH_COMPONENT32F,b:4,c:1,attachment:i.DEPTH_ATTACHMENT},"depth24plus-stencil8":{b:4,gl:i.UNSIGNED_INT_24_8,gl1:i.DEPTH_STENCIL,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT},"depth24unorm-stencil8":{gl:i.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT},"depth32float-stencil8":{gl:i.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT},"bc1-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_S3TC_DXT1_EXT,x:Bt,f:ue},"bc1-rgb-unorm-srgb-webgl":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Mt,f:ue},"bc1-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:Bt,f:ue},"bc1-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Mt,f:ue},"bc2-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:Bt,f:ue},"bc2-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:Mt,f:ue},"bc3-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:Bt,f:ue},"bc3-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:Mt,f:ue},"bc4-r-unorm":{gl:i.COMPRESSED_RED_RGTC1_EXT,x:Et,f:ue},"bc4-r-snorm":{gl:i.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Et,f:ue},"bc5-rg-unorm":{gl:i.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Et,f:ue},"bc5-rg-snorm":{gl:i.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Et,f:ue},"bc6h-rgb-ufloat":{gl:i.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:Dt,f:ue},"bc6h-rgb-float":{gl:i.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:Dt,f:ue},"bc7-rgba-unorm":{gl:i.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:Dt,f:ue},"bc7-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:Dt,f:ue},"etc2-rgb8unorm":{gl:i.COMPRESSED_RGB8_ETC2,f:ye},"etc2-rgb8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ETC2,f:ye},"etc2-rgb8a1unorm":{gl:i.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:ye},"etc2-rgb8a1unorm-srgb":{gl:i.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:ye},"etc2-rgba8unorm":{gl:i.COMPRESSED_RGBA8_ETC2_EAC,f:ye},"etc2-rgba8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:ye},"eac-r11unorm":{gl:i.COMPRESSED_R11_EAC,f:ye},"eac-r11snorm":{gl:i.COMPRESSED_SIGNED_R11_EAC,f:ye},"eac-rg11unorm":{gl:i.COMPRESSED_RG11_EAC,f:ye},"eac-rg11snorm":{gl:i.COMPRESSED_SIGNED_RG11_EAC,f:ye},"astc-4x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_4x4_KHR,f:Y},"astc-4x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:Y},"astc-5x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x4_KHR,f:Y},"astc-5x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:Y},"astc-5x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x5_KHR,f:Y},"astc-5x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:Y},"astc-6x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x5_KHR,f:Y},"astc-6x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:Y},"astc-6x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x6_KHR,f:Y},"astc-6x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:Y},"astc-8x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x5_KHR,f:Y},"astc-8x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:Y},"astc-8x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x6_KHR,f:Y},"astc-8x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:Y},"astc-8x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x8_KHR,f:Y},"astc-8x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:Y},"astc-10x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:Y},"astc-10x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:Y},"astc-10x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x6_KHR,f:Y},"astc-10x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:Y},"astc-10x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x8_KHR,f:Y},"astc-10x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:Y},"astc-10x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:Y},"astc-10x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:Y},"astc-12x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x10_KHR,f:Y},"astc-12x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:Y},"astc-12x12-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x12_KHR,f:Y},"astc-12x12-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:Y},"pvrtc-rgb4unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:rr},"pvrtc-rgba4unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:rr},"pvrtc-rbg2unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:rr},"pvrtc-rgba2unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:rr},"etc1-rbg-unorm-webgl":{gl:i.COMPRESSED_RGB_ETC1_WEBGL,f:ks},"atc-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_ATC_WEBGL,f:jr},"atc-rgba-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:jr},"atc-rgbai-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:jr}};function Ze(e){if(typeof e=="string")return e;var t=Object.entries(nr).find(function(r){var n=L(r,2),a=n[1];return a.gl===e||a.gl1===e});if(!t)throw new Error("Unknown texture format ".concat(e));return t[0]}function ar(e,t){var r=Ze(t),n=nr[r];if(!n||(H(e)?n.gl===void 0:n.gl1===void 0))return!1;var a=n.x||H(e)&&n.gl2ext||n.gl1ext;return a?Boolean(e.getExtension(a)):!0}function Ka(e,t){var r=Ze(t);if(!ar(e,r))return!1;try{var n=Qt(r);if(n.signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function ja(e,t){var r=Ze(t);return!(!ar(e,r)||typeof r=="number")}function Ut(e,t){var r=Ze(t),n=nr[r],a=H(e)?n?.gl:n?.gl1;if(typeof r=="number")return a||r;if(a===void 0)throw new Error("Unsupported texture format ".concat(r));return a}function ir(e,t){var r=Ze(t),n=Ut(e,r),a=Qt(r);return{format:n,dataFormat:tu(a.format,a.integer,a.normalized,n),type:Gr(a.dataType),compressed:a.compressed}}function Ya(e){var t=Ze(e);if(typeof t=="number")throw new Error("unsupported depth stencil format");var r=nr[t],n=r.attachment;if(!n)throw new Error("not a depth stencil format");return n}function or(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.RGBA,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:i.UNSIGNED_BYTE,a=null,o=null;try{a=e.createTexture(),e.bindTexture(i.TEXTURE_2D,a);var u=0,_=1,f=1,E=0,c=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,u,t,_,f,E,r,n,c),o=e.createFramebuffer(),e.bindFramebuffer(i.FRAMEBUFFER,o),e.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,a,0);var l=e.checkFramebufferStatus(i.FRAMEBUFFER)===i.FRAMEBUFFER_COMPLETE;return e.bindTexture(i.TEXTURE_2D,null),l}finally{e.deleteTexture(a),e.deleteFramebuffer(o)}}var Js=(Ee={},s(Ee,i.RED,1),s(Ee,i.RED_INTEGER,1),s(Ee,i.RG,2),s(Ee,i.RG_INTEGER,2),s(Ee,i.RGB,3),s(Ee,i.RGB_INTEGER,3),s(Ee,i.RGBA,4),s(Ee,i.RGBA_INTEGER,4),s(Ee,i.DEPTH_COMPONENT,1),s(Ee,i.DEPTH_STENCIL,1),s(Ee,i.ALPHA,1),s(Ee,i.LUMINANCE,1),s(Ee,i.LUMINANCE_ALPHA,2),Ee),eu=(Pe={},s(Pe,i.FLOAT,4),s(Pe,i.UNSIGNED_INT,4),s(Pe,i.INT,4),s(Pe,i.UNSIGNED_SHORT,2),s(Pe,i.SHORT,2),s(Pe,i.HALF_FLOAT,2),s(Pe,i.BYTE,1),s(Pe,i.UNSIGNED_BYTE,1),Pe);function zr(e,t){var r=Ze(t),n=ir(e,r),a=Js[n.dataFormat]||4,o=eu[n.type]||1;return a*o}function tu(e,t,r,n){if(n===i.RGBA||n===i.RGB)return n;switch(e){case"r":return t&&!r?i.RED_INTEGER:i.RED;case"rg":return t&&!r?i.RG_INTEGER:i.RG;case"rgb":return t&&!r?i.RGB_INTEGER:i.RGB;case"rgba":return t&&!r?i.RGBA_INTEGER:i.RGBA;default:return i.RGBA}}function Gr(e){switch(e){case"uint8":return i.UNSIGNED_BYTE;case"sint8":return i.BYTE;case"uint16":return i.UNSIGNED_SHORT;case"sint16":return i.SHORT;case"uint32":return i.UNSIGNED_INT;case"sint32":return i.INT;case"float16":return i.HALF_FLOAT;case"float32":return i.FLOAT;default:return i.UNSIGNED_BYTE}}function ru(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=nu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
19
19
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,_;return{s:function(){r=r.call(e)},n:function(){var E=r.next();return o=E.done,E},e:function(E){u=!0,_=E},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw _}}}}function nu(e,t){if(e){if(typeof e=="string")return za(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return za(e,t)}}function za(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ga(e){var t=au(e),r=ru(ka(e)),n;try{for(r.s();!(n=r.n()).done;){var a=n.value;t.add(a)}}catch(o){r.e(o)}finally{r.f()}return t}function au(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");for(var t=new Set,r=0,n=Object.keys(Za);r<n.length;r++){var a=n[r];iu(e,a)&&t.add(a)}return t}function iu(e,t){var r=Za[t];if(!r)return!1;var n=r||[],a=L(n,2),o=a[0],u=a[1],_=H(e)?u:o;if(typeof _=="boolean")return _;switch(t){case"texture-renderable-rgba32float-webgl":return H(e)?Boolean(e.getExtension(_)):or(e);case"glsl-derivatives":return $r(e,_);case"glsl-frag-data":return $r(e,_,{behavior:"require"});case"glsl-frag-depth":return $r(e,_);default:return Boolean(e.getExtension(_))}}var Zr={};function $r(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!La(r))return!0;if(t in Zr)return Zr[t];var n=r.behavior||"enable",a="#extension GL_".concat(t," : ").concat(n,`
20
- void main(void) {}`),o=e.createShader(e.VERTEX_SHADER);if(!o)throw new Error("shader");e.shaderSource(o,a),e.compileShader(o);var u=e.getShaderParameter(o,e.COMPILE_STATUS);return e.deleteShader(o),Zr[t]=u,u}var Za={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function $a(e){var t=It(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(i.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(i.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(i.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(i.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(i.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(i.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Qa(e){var t,r=It(e);function n(o){return e.getParameter(o)}function a(o,u){return r?r.getParameter(o):u||0}return t={},s(t,i.ALIASED_LINE_WIDTH_RANGE,n(i.ALIASED_LINE_WIDTH_RANGE)),s(t,i.ALIASED_POINT_SIZE_RANGE,n(i.ALIASED_POINT_SIZE_RANGE)),s(t,i.MAX_TEXTURE_SIZE,n(i.MAX_TEXTURE_SIZE)),s(t,i.MAX_CUBE_MAP_TEXTURE_SIZE,n(i.MAX_CUBE_MAP_TEXTURE_SIZE)),s(t,i.MAX_TEXTURE_IMAGE_UNITS,n(i.MAX_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_COMBINED_TEXTURE_IMAGE_UNITS,n(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_VERTEX_TEXTURE_IMAGE_UNITS,n(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_RENDERBUFFER_SIZE,n(i.MAX_RENDERBUFFER_SIZE)),s(t,i.MAX_VARYING_VECTORS,n(i.MAX_VARYING_VECTORS)),s(t,i.MAX_VERTEX_ATTRIBS,n(i.MAX_VERTEX_ATTRIBS)),s(t,i.MAX_VERTEX_UNIFORM_VECTORS,n(i.MAX_VERTEX_UNIFORM_VECTORS)),s(t,i.MAX_FRAGMENT_UNIFORM_VECTORS,n(i.MAX_FRAGMENT_UNIFORM_VECTORS)),s(t,i.MAX_VIEWPORT_DIMS,n(i.MAX_VIEWPORT_DIMS)),s(t,i.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),s(t,i.MAX_3D_TEXTURE_SIZE,a(i.MAX_3D_TEXTURE_SIZE)),s(t,i.MAX_ARRAY_TEXTURE_LAYERS,a(i.MAX_ARRAY_TEXTURE_LAYERS)),s(t,i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,a(i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)),s(t,i.MAX_COLOR_ATTACHMENTS,a(i.MAX_COLOR_ATTACHMENTS)),s(t,i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,a(i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)),s(t,i.MAX_COMBINED_UNIFORM_BLOCKS,a(i.MAX_COMBINED_UNIFORM_BLOCKS)),s(t,i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,a(i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)),s(t,i.MAX_DRAW_BUFFERS,a(i.MAX_DRAW_BUFFERS)),s(t,i.MAX_ELEMENT_INDEX,a(i.MAX_ELEMENT_INDEX)),s(t,i.MAX_ELEMENTS_INDICES,a(i.MAX_ELEMENTS_INDICES)),s(t,i.MAX_ELEMENTS_VERTICES,a(i.MAX_ELEMENTS_VERTICES)),s(t,i.MAX_FRAGMENT_INPUT_COMPONENTS,a(i.MAX_FRAGMENT_INPUT_COMPONENTS)),s(t,i.MAX_FRAGMENT_UNIFORM_BLOCKS,a(i.MAX_FRAGMENT_UNIFORM_BLOCKS)),s(t,i.MAX_FRAGMENT_UNIFORM_COMPONENTS,a(i.MAX_FRAGMENT_UNIFORM_COMPONENTS)),s(t,i.MAX_SAMPLES,a(i.MAX_SAMPLES)),s(t,i.MAX_SERVER_WAIT_TIMEOUT,a(i.MAX_SERVER_WAIT_TIMEOUT)),s(t,i.MAX_TEXTURE_LOD_BIAS,a(i.MAX_TEXTURE_LOD_BIAS)),s(t,i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,a(i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)),s(t,i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,a(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)),s(t,i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,a(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)),s(t,i.MAX_UNIFORM_BLOCK_SIZE,a(i.MAX_UNIFORM_BLOCK_SIZE)),s(t,i.MAX_UNIFORM_BUFFER_BINDINGS,a(i.MAX_UNIFORM_BUFFER_BINDINGS)),s(t,i.MAX_VARYING_COMPONENTS,a(i.MAX_VARYING_COMPONENTS)),s(t,i.MAX_VERTEX_OUTPUT_COMPONENTS,a(i.MAX_VERTEX_OUTPUT_COMPONENTS)),s(t,i.MAX_VERTEX_UNIFORM_BLOCKS,a(i.MAX_VERTEX_UNIFORM_BLOCKS)),s(t,i.MAX_VERTEX_UNIFORM_COMPONENTS,a(i.MAX_VERTEX_UNIFORM_COMPONENTS)),s(t,i.MIN_PROGRAM_TEXEL_OFFSET,a(i.MIN_PROGRAM_TEXEL_OFFSET)),s(t,i.MAX_PROGRAM_TEXEL_OFFSET,a(i.MAX_PROGRAM_TEXEL_OFFSET)),s(t,i.UNIFORM_BUFFER_OFFSET_ALIGNMENT,a(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT)),t}var nn=He(we(),1);function $e(e,t,r){var n=ce.attach(e),a=n.gl;if(ou(t))return r(e);var o=t.nocatch,u=o===void 0?!0:o;xe(a),Ue(a,t);var _;if(u)_=r(a),be(a);else try{_=r(a)}finally{be(a)}return _}function ou(e){for(var t in e)return!1;return!0}function qa(e,t,r){if(at(t))return r(e);xe(e.gl);try{return Ue(e,t),r(e)}finally{be(e.gl)}}function ur(e,t,r){if(at(t))return r(e);xe(e.gl);try{return qr(e,t),r(e)}finally{be(e.gl)}}function qr(e,t){var r=ce.attach(e),n=r.gl;if(t.cullMode)switch(t.cullMode){case"none":n.disable(i.CULL_FACE);break;case"front":n.enable(i.CULL_FACE),n.cullFace(i.FRONT);break;case"back":n.enable(i.CULL_FACE),n.cullFace(i.BACK);break}if(t.frontFace&&n.frontFace(Jr("frontFace",t.frontFace,{ccw:i.CCW,cw:i.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(uu("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(i.DEPTH_TEST):n.disable(i.DEPTH_TEST),n.depthFunc(sr("depthCompare",t.depthCompare))),t.stencilWriteMask){var a=t.stencilWriteMask;n.stencilMaskSeparate(i.FRONT,a),n.stencilMaskSeparate(i.BACK,a)}if(t.stencilReadMask&&P.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){var o=t.stencilReadMask||4294967295,u=sr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(i.STENCIL_TEST):n.disable(i.STENCIL_TEST),n.stencilFuncSeparate(i.FRONT,u,0,o),n.stencilFuncSeparate(i.BACK,u,0,o)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){var _=Qr("stencilPassOperation",t.stencilPassOperation),f=Qr("stencilFailOperation",t.stencilFailOperation),E=Qr("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(i.FRONT,f,E,_),n.stencilOpSeparate(i.BACK,f,E,_)}}function sr(e,t){return Jr(e,t,{never:i.NEVER,less:i.LESS,equal:i.EQUAL,"less-equal":i.LEQUAL,greater:i.GREATER,"not-equal":i.NOTEQUAL,"greater-equal":i.GEQUAL,always:i.ALWAYS})}function Qr(e,t){return Jr(e,t,{keep:i.KEEP,zero:i.ZERO,replace:i.REPLACE,invert:i.INVERT,"increment-clamp":i.INCR,"decrement-clamp":i.DECR,"increment-wrap":i.INCR_WRAP,"decrement-wrap":i.DECR_WRAP})}function su(e,t){return"Illegal parameter ".concat(t," for ").concat(e)}function Jr(e,t,r){if(!(t in r))throw new Error(su(e,t));return r[t]}function uu(e,t){return t}function Ja(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _u(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ja(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ja(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _r(e){var t={};return e.addressModeU&&(t[i.TEXTURE_WRAP_S]=en(e.addressModeU)),e.addressModeV&&(t[i.TEXTURE_WRAP_T]=en(e.addressModeV)),e.addressModeW&&(t[i.TEXTURE_WRAP_R]=en(e.addressModeW)),e.magFilter&&(t[i.TEXTURE_MAG_FILTER]=ei(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[i.TEXTURE_MIN_FILTER]=fu(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[i.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[i.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[i.TEXTURE_COMPARE_MODE]=i.COMPARE_REF_TO_TEXTURE),e.compare&&(t[i.TEXTURE_COMPARE_FUNC]=sr("compare",e.compare)),e.maxAnisotropy&&(t[i.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function en(e){switch(e){case"clamp-to-edge":return i.CLAMP_TO_EDGE;case"repeat":return i.REPEAT;case"mirror-repeat":return i.MIRRORED_REPEAT}}function ei(e){switch(e){case"nearest":return i.NEAREST;case"linear":return i.LINEAR}}function fu(e,t){if(!t)return ei(e);switch(e){case"nearest":return t==="nearest"?i.NEAREST_MIPMAP_NEAREST:i.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?i.LINEAR_MIPMAP_NEAREST:i.LINEAR_MIPMAP_LINEAR}}function ti(e){var t=_u({},e);return e[i.TEXTURE_MIN_FILTER]!==i.NEAREST&&(t[i.TEXTURE_MIN_FILTER]=i.LINEAR),t[i.TEXTURE_WRAP_S]=i.CLAMP_TO_EDGE,t[i.TEXTURE_WRAP_T]=i.CLAMP_TO_EDGE,t}var tn=He(we(),1);function ri(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ni(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ri(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ri(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Eu(e){var t=cu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function cu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var lu=10,me=function(e){x(r,e);var t=Eu(r);function r(n){var a,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};I(this,r),a=t.call(this,n,o),s(A(a),"device",void 0),s(A(a),"gl",void 0),s(A(a),"gl2",void 0),s(A(a),"handle",void 0),s(A(a),"target",void 0),s(A(a),"byteLength",void 0),s(A(a),"bytesUsed",void 0),s(A(a),"debugData",null),s(A(a),"webglUsage",void 0),a.device=n,a.gl=a.device.gl,a.gl2=a.device.gl2;var u=fe(o)==="object"?o.handle:void 0;return a.handle=u||a.gl.createBuffer(),n.setSpectorMetadata(a.handle,ni(ni({},a.props),{},{data:fe(a.props.data)})),a.target=a.props.target||Ru(a.props.usage),a.webglUsage=a.props.webglUsage||Au(a.props.usage),a.debugData=null,o.data?a._initWithData(o.data,o.byteOffset,o.byteLength):a._initWithByteLength(o.byteLength||0),a}return b(r,[{key:"_initWithData",value:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.byteLength+o;U(ArrayBuffer.isView(a));var _=this._getWriteTarget();return this.gl.bindBuffer(_,this.handle),this.gl.bufferData(_,u,this.webglUsage),this.gl.bufferSubData(_,o,a),this.gl.bindBuffer(_,null),this.debugData=a.slice(0,lu),this.bytesUsed=u,this.byteLength=u,this.trackAllocatedMemory(u),this}},{key:"_initWithByteLength",value:function(a){U(a>=0);var o=a;a===0&&(o=new Float32Array(0));var u=this._getWriteTarget();return this.gl.bindBuffer(u,this.handle),this.gl.bufferData(u,o,this.webglUsage),this.gl.bindBuffer(u,null),this.debugData=null,this.bytesUsed=a,this.byteLength=a,this}},{key:"destroy",value:function(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0)}},{key:"write",value:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=0,_=a.byteLength,f=this.device.isWebGL2?i.COPY_WRITE_BUFFER:this.target;this.gl.bindBuffer(f,this.handle),u!==0||_!==void 0?(this.device.assertWebGL2(),this.gl.bufferSubData(this.target,offset,a,u,_)):this.gl.bufferSubData(f,o,a),this.gl.bindBuffer(f,null)}},{key:"readAsync",value:function(){var n=oe(tn.default.mark(function o(){var u,_,f,E,c=arguments;return tn.default.wrap(function(R){for(;;)switch(R.prev=R.next){case 0:return u=c.length>0&&c[0]!==void 0?c[0]:0,_=c.length>1?c[1]:void 0,this.device.assertWebGL2(),f=new Uint8Array(_),E=0,this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(i.COPY_READ_BUFFER,u,f,E,_),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),R.abrupt("return",f);case 9:case"end":return R.stop()}},o,this)}));function a(){return n.apply(this,arguments)}return a}()},{key:"_invalidateDebugData",value:function(){this.debugData=null}},{key:"_getWriteTarget",value:function(){return this.target}},{key:"_getReadTarget",value:function(){return this.target}}]),r}(ne);function Ru(e){return e&ne.INDEX?i.ELEMENT_ARRAY_BUFFER:e&ne.VERTEX?i.ARRAY_BUFFER:e&ne.UNIFORM?i.UNIFORM_BUFFER:i.ARRAY_BUFFER}function Au(e){return e&ne.INDEX?i.STATIC_DRAW:e&ne.VERTEX?i.STATIC_DRAW:e&ne.UNIFORM?i.DYNAMIC_DRAW:i.DYNAMIC_DRAW}function Tu(e){var t=du();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function du(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Qe=function(e){x(r,e);var t=Tu(r);function r(n,a){var o;return I(this,r),o=t.call(this,n,a),s(A(o),"device",void 0),s(A(o),"handle",void 0),s(A(o),"parameters",void 0),o.device=n,o.parameters=_r(a),o.device.isWebGL2&&(o.handle=o.handle||o.device.gl2.createSampler(),o._setSamplerParameters(o.parameters)),o}return b(r,[{key:"destroy",value:function(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}},{key:"toString",value:function(){return"Sampler(".concat(this.id,",").concat(JSON.stringify(this.props),")")}},{key:"_setSamplerParameters",value:function(a){for(var o=0,u=Object.entries(a);o<u.length;o++){var _=L(u[o],2),f=_[0],E=_[1],c=Number(f);switch(c){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,c,E);break;default:this.device.gl2.samplerParameteri(this.handle,c,E);break}}}}]),r}(br);function mu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=hu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
20
+ void main(void) {}`),o=e.createShader(e.VERTEX_SHADER);if(!o)throw new Error("shader");e.shaderSource(o,a),e.compileShader(o);var u=e.getShaderParameter(o,e.COMPILE_STATUS);return e.deleteShader(o),Zr[t]=u,u}var Za={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function $a(e){var t=It(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(i.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(i.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(i.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(i.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(i.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(i.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Qa(e){var t,r=It(e);function n(o){return e.getParameter(o)}function a(o,u){return r?r.getParameter(o):u||0}return t={},s(t,i.ALIASED_LINE_WIDTH_RANGE,n(i.ALIASED_LINE_WIDTH_RANGE)),s(t,i.ALIASED_POINT_SIZE_RANGE,n(i.ALIASED_POINT_SIZE_RANGE)),s(t,i.MAX_TEXTURE_SIZE,n(i.MAX_TEXTURE_SIZE)),s(t,i.MAX_CUBE_MAP_TEXTURE_SIZE,n(i.MAX_CUBE_MAP_TEXTURE_SIZE)),s(t,i.MAX_TEXTURE_IMAGE_UNITS,n(i.MAX_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_COMBINED_TEXTURE_IMAGE_UNITS,n(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_VERTEX_TEXTURE_IMAGE_UNITS,n(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),s(t,i.MAX_RENDERBUFFER_SIZE,n(i.MAX_RENDERBUFFER_SIZE)),s(t,i.MAX_VARYING_VECTORS,n(i.MAX_VARYING_VECTORS)),s(t,i.MAX_VERTEX_ATTRIBS,n(i.MAX_VERTEX_ATTRIBS)),s(t,i.MAX_VERTEX_UNIFORM_VECTORS,n(i.MAX_VERTEX_UNIFORM_VECTORS)),s(t,i.MAX_FRAGMENT_UNIFORM_VECTORS,n(i.MAX_FRAGMENT_UNIFORM_VECTORS)),s(t,i.MAX_VIEWPORT_DIMS,n(i.MAX_VIEWPORT_DIMS)),s(t,i.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),s(t,i.MAX_3D_TEXTURE_SIZE,a(i.MAX_3D_TEXTURE_SIZE)),s(t,i.MAX_ARRAY_TEXTURE_LAYERS,a(i.MAX_ARRAY_TEXTURE_LAYERS)),s(t,i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,a(i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)),s(t,i.MAX_COLOR_ATTACHMENTS,a(i.MAX_COLOR_ATTACHMENTS)),s(t,i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,a(i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)),s(t,i.MAX_COMBINED_UNIFORM_BLOCKS,a(i.MAX_COMBINED_UNIFORM_BLOCKS)),s(t,i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,a(i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)),s(t,i.MAX_DRAW_BUFFERS,a(i.MAX_DRAW_BUFFERS)),s(t,i.MAX_ELEMENT_INDEX,a(i.MAX_ELEMENT_INDEX)),s(t,i.MAX_ELEMENTS_INDICES,a(i.MAX_ELEMENTS_INDICES)),s(t,i.MAX_ELEMENTS_VERTICES,a(i.MAX_ELEMENTS_VERTICES)),s(t,i.MAX_FRAGMENT_INPUT_COMPONENTS,a(i.MAX_FRAGMENT_INPUT_COMPONENTS)),s(t,i.MAX_FRAGMENT_UNIFORM_BLOCKS,a(i.MAX_FRAGMENT_UNIFORM_BLOCKS)),s(t,i.MAX_FRAGMENT_UNIFORM_COMPONENTS,a(i.MAX_FRAGMENT_UNIFORM_COMPONENTS)),s(t,i.MAX_SAMPLES,a(i.MAX_SAMPLES)),s(t,i.MAX_SERVER_WAIT_TIMEOUT,a(i.MAX_SERVER_WAIT_TIMEOUT)),s(t,i.MAX_TEXTURE_LOD_BIAS,a(i.MAX_TEXTURE_LOD_BIAS)),s(t,i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,a(i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)),s(t,i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,a(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)),s(t,i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,a(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)),s(t,i.MAX_UNIFORM_BLOCK_SIZE,a(i.MAX_UNIFORM_BLOCK_SIZE)),s(t,i.MAX_UNIFORM_BUFFER_BINDINGS,a(i.MAX_UNIFORM_BUFFER_BINDINGS)),s(t,i.MAX_VARYING_COMPONENTS,a(i.MAX_VARYING_COMPONENTS)),s(t,i.MAX_VERTEX_OUTPUT_COMPONENTS,a(i.MAX_VERTEX_OUTPUT_COMPONENTS)),s(t,i.MAX_VERTEX_UNIFORM_BLOCKS,a(i.MAX_VERTEX_UNIFORM_BLOCKS)),s(t,i.MAX_VERTEX_UNIFORM_COMPONENTS,a(i.MAX_VERTEX_UNIFORM_COMPONENTS)),s(t,i.MIN_PROGRAM_TEXEL_OFFSET,a(i.MIN_PROGRAM_TEXEL_OFFSET)),s(t,i.MAX_PROGRAM_TEXEL_OFFSET,a(i.MAX_PROGRAM_TEXEL_OFFSET)),s(t,i.UNIFORM_BUFFER_OFFSET_ALIGNMENT,a(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT)),t}var nn=He(we(),1);function $e(e,t,r){var n=ce.attach(e),a=n.gl;if(ou(t))return r(e);var o=t.nocatch,u=o===void 0?!0:o;xe(a),Ue(a,t);var _;if(u)_=r(a),be(a);else try{_=r(a)}finally{be(a)}return _}function ou(e){for(var t in e)return!1;return!0}function qa(e,t,r){if(at(t))return r(e);xe(e.gl);try{return Ue(e,t),r(e)}finally{be(e.gl)}}function ur(e,t,r){if(at(t))return r(e);xe(e.gl);try{return qr(e,t),r(e)}finally{be(e.gl)}}function qr(e,t){var r=ce.attach(e),n=r.gl;if(t.cullMode)switch(t.cullMode){case"none":n.disable(i.CULL_FACE);break;case"front":n.enable(i.CULL_FACE),n.cullFace(i.FRONT);break;case"back":n.enable(i.CULL_FACE),n.cullFace(i.BACK);break}if(t.frontFace&&n.frontFace(Jr("frontFace",t.frontFace,{ccw:i.CCW,cw:i.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(uu("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(i.DEPTH_TEST):n.disable(i.DEPTH_TEST),n.depthFunc(sr("depthCompare",t.depthCompare))),t.stencilWriteMask){var a=t.stencilWriteMask;n.stencilMaskSeparate(i.FRONT,a),n.stencilMaskSeparate(i.BACK,a)}if(t.stencilReadMask&&P.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){var o=t.stencilReadMask||4294967295,u=sr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(i.STENCIL_TEST):n.disable(i.STENCIL_TEST),n.stencilFuncSeparate(i.FRONT,u,0,o),n.stencilFuncSeparate(i.BACK,u,0,o)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){var _=Qr("stencilPassOperation",t.stencilPassOperation),f=Qr("stencilFailOperation",t.stencilFailOperation),E=Qr("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(i.FRONT,f,E,_),n.stencilOpSeparate(i.BACK,f,E,_)}}function sr(e,t){return Jr(e,t,{never:i.NEVER,less:i.LESS,equal:i.EQUAL,"less-equal":i.LEQUAL,greater:i.GREATER,"not-equal":i.NOTEQUAL,"greater-equal":i.GEQUAL,always:i.ALWAYS})}function Qr(e,t){return Jr(e,t,{keep:i.KEEP,zero:i.ZERO,replace:i.REPLACE,invert:i.INVERT,"increment-clamp":i.INCR,"decrement-clamp":i.DECR,"increment-wrap":i.INCR_WRAP,"decrement-wrap":i.DECR_WRAP})}function su(e,t){return"Illegal parameter ".concat(t," for ").concat(e)}function Jr(e,t,r){if(!(t in r))throw new Error(su(e,t));return r[t]}function uu(e,t){return t}function Ja(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function _u(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ja(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ja(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _r(e){var t={};return e.addressModeU&&(t[i.TEXTURE_WRAP_S]=en(e.addressModeU)),e.addressModeV&&(t[i.TEXTURE_WRAP_T]=en(e.addressModeV)),e.addressModeW&&(t[i.TEXTURE_WRAP_R]=en(e.addressModeW)),e.magFilter&&(t[i.TEXTURE_MAG_FILTER]=ei(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[i.TEXTURE_MIN_FILTER]=fu(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[i.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[i.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[i.TEXTURE_COMPARE_MODE]=i.COMPARE_REF_TO_TEXTURE),e.compare&&(t[i.TEXTURE_COMPARE_FUNC]=sr("compare",e.compare)),e.maxAnisotropy&&(t[i.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function en(e){switch(e){case"clamp-to-edge":return i.CLAMP_TO_EDGE;case"repeat":return i.REPEAT;case"mirror-repeat":return i.MIRRORED_REPEAT}}function ei(e){switch(e){case"nearest":return i.NEAREST;case"linear":return i.LINEAR}}function fu(e,t){if(!t)return ei(e);switch(e){case"nearest":return t==="nearest"?i.NEAREST_MIPMAP_NEAREST:i.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?i.LINEAR_MIPMAP_NEAREST:i.LINEAR_MIPMAP_LINEAR}}function ti(e){var t=_u({},e);return e[i.TEXTURE_MIN_FILTER]!==i.NEAREST&&(t[i.TEXTURE_MIN_FILTER]=i.LINEAR),t[i.TEXTURE_WRAP_S]=i.CLAMP_TO_EDGE,t[i.TEXTURE_WRAP_T]=i.CLAMP_TO_EDGE,t}var tn=He(we(),1);function ri(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function ni(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ri(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ri(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Eu(e){var t=cu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function cu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var lu=10,me=function(e){x(r,e);var t=Eu(r);function r(n){var a,o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};I(this,r),a=t.call(this,n,o),s(A(a),"device",void 0),s(A(a),"gl",void 0),s(A(a),"gl2",void 0),s(A(a),"handle",void 0),s(A(a),"target",void 0),s(A(a),"byteLength",void 0),s(A(a),"bytesUsed",void 0),s(A(a),"debugData",null),s(A(a),"webglUsage",void 0),a.device=n,a.gl=a.device.gl,a.gl2=a.device.gl2;var u=fe(o)==="object"?o.handle:void 0;return a.handle=u||a.gl.createBuffer(),n.setSpectorMetadata(a.handle,ni(ni({},a.props),{},{data:fe(a.props.data)})),a.target=a.props.target||Ru(a.props.usage),a.webglUsage=a.props.webglUsage||Au(a.props.usage),a.debugData=null,o.data?a._initWithData(o.data,o.byteOffset,o.byteLength):a._initWithByteLength(o.byteLength||0),a}return b(r,[{key:"_initWithData",value:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.byteLength+o;U(ArrayBuffer.isView(a));var _=this._getWriteTarget();return this.gl.bindBuffer(_,this.handle),this.gl.bufferData(_,u,this.webglUsage),this.gl.bufferSubData(_,o,a),this.gl.bindBuffer(_,null),this.debugData=a.slice(0,lu),this.bytesUsed=u,this.byteLength=u,this.trackAllocatedMemory(u),this}},{key:"_initWithByteLength",value:function(a){U(a>=0);var o=a;a===0&&(o=new Float32Array(0));var u=this._getWriteTarget();return this.gl.bindBuffer(u,this.handle),this.gl.bufferData(u,o,this.webglUsage),this.gl.bindBuffer(u,null),this.debugData=null,this.bytesUsed=a,this.byteLength=a,this}},{key:"destroy",value:function(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0)}},{key:"write",value:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=0,_=a.byteLength,f=this.device.isWebGL2?i.COPY_WRITE_BUFFER:this.target;this.gl.bindBuffer(f,this.handle),u!==0||_!==void 0?(this.device.assertWebGL2(),this.gl.bufferSubData(this.target,o,a,u,_)):this.gl.bufferSubData(f,o,a),this.gl.bindBuffer(f,null)}},{key:"readAsync",value:function(){var n=oe(tn.default.mark(function o(){var u,_,f,E,c=arguments;return tn.default.wrap(function(R){for(;;)switch(R.prev=R.next){case 0:return u=c.length>0&&c[0]!==void 0?c[0]:0,_=c.length>1?c[1]:void 0,this.device.assertWebGL2(),f=new Uint8Array(_),E=0,this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(i.COPY_READ_BUFFER,u,f,E,_),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),R.abrupt("return",f);case 9:case"end":return R.stop()}},o,this)}));function a(){return n.apply(this,arguments)}return a}()},{key:"_invalidateDebugData",value:function(){this.debugData=null}},{key:"_getWriteTarget",value:function(){return this.target}},{key:"_getReadTarget",value:function(){return this.target}}]),r}(ne);function Ru(e){return e&ne.INDEX?i.ELEMENT_ARRAY_BUFFER:e&ne.VERTEX?i.ARRAY_BUFFER:e&ne.UNIFORM?i.UNIFORM_BUFFER:i.ARRAY_BUFFER}function Au(e){return e&ne.INDEX?i.STATIC_DRAW:e&ne.VERTEX?i.STATIC_DRAW:e&ne.UNIFORM?i.DYNAMIC_DRAW:i.DYNAMIC_DRAW}function Tu(e){var t=du();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function du(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Qe=function(e){x(r,e);var t=Tu(r);function r(n,a){var o;return I(this,r),o=t.call(this,n,a),s(A(o),"device",void 0),s(A(o),"handle",void 0),s(A(o),"parameters",void 0),o.device=n,o.parameters=_r(a),o.device.isWebGL2&&(o.handle=o.handle||o.device.gl2.createSampler(),o._setSamplerParameters(o.parameters)),o}return b(r,[{key:"destroy",value:function(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}},{key:"toString",value:function(){return"Sampler(".concat(this.id,",").concat(JSON.stringify(this.props),")")}},{key:"_setSamplerParameters",value:function(a){for(var o=0,u=Object.entries(a);o<u.length;o++){var _=L(u[o],2),f=_[0],E=_[1],c=Number(f);switch(c){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,c,E);break;default:this.device.gl2.samplerParameteri(this.handle,c,E);break}}}}]),r}(br);function mu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=hu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
21
21
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,_;return{s:function(){r=r.call(e)},n:function(){var E=r.next();return o=E.done,E},e:function(E){u=!0,_=E},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw _}}}}function hu(e,t){if(e){if(typeof e=="string")return ai(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return ai(e,t)}}function ai(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ii(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function rn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ii(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ii(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Su(e){var t=gu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function gu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ve=function(e){x(r,e);var t=Su(r);function r(n,a){var o,u;return I(this,r),u=t.call(this,n,rn({format:i.RGBA},a)),s(A(u),"MAX_ATTRIBUTES",void 0),s(A(u),"device",void 0),s(A(u),"gl",void 0),s(A(u),"gl2",void 0),s(A(u),"handle",void 0),s(A(u),"data",void 0),s(A(u),"width",void 0),s(A(u),"height",void 0),s(A(u),"depth",void 0),s(A(u),"format",void 0),s(A(u),"type",void 0),s(A(u),"dataFormat",void 0),s(A(u),"mipmaps",void 0),s(A(u),"target",void 0),s(A(u),"textureUnit",void 0),s(A(u),"sampler",void 0),s(A(u),"loaded",!1),s(A(u),"_video",void 0),u.device=n,u.gl=u.device.gl,u.gl2=u.device.gl2,u.handle=u.props.handle||u.gl.createTexture(),u.device.setSpectorMetadata(u.handle,rn(rn({},u.props),{},{data:fe(u.props.data)})),u.target=Ou(u.props),u.loaded=!1,typeof((o=u.props)===null||o===void 0?void 0:o.data)=="string"&&Object.assign(u.props,{data:xr(u.props.data)}),u.initialize(u.props),Object.seal(A(u)),u}return b(r,[{key:"destroy",value:function(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}},{key:"toString",value:function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")}},{key:"initialize",value:function(){var a=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(o);var u=o.data;if(u instanceof Promise)return u.then(function(m){return a.initialize(Object.assign({},o,{pixels:m,data:m}))}),this;var _=typeof HTMLVideoElement<"u"&&u instanceof HTMLVideoElement;if(_&&u.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,u.addEventListener("loadeddata",function(){return a.initialize(o)}),this;var f=o.parameters,E=f===void 0?{}:f,c=o.pixels,l=c===void 0?null:c,R=o.recreate,d=R===void 0?!1:R,h=o.pixelStore,g=h===void 0?{}:h,N=o.textureUnit,C=N===void 0?void 0:N;u||(u=l);var F=o.width,B=o.height,V=o.dataFormat,k=o.type,ee=o.compressed,j=ee===void 0?!1:ee,_e=o.mipmaps,$=_e===void 0?!0:_e,Ae=o.depth,te=Ae===void 0?0:Ae,S=this._deduceParameters({format:o.format,type:k,dataFormat:V,compressed:j,data:u,width:F,height:B});F=S.width,B=S.height,j=S.compressed,V=S.dataFormat,k=S.type;var p=Ut(this.gl,o.format);return this.width=F,this.height=B,this.depth=te,this.format=p,this.type=k,this.dataFormat=V,this.textureUnit=C,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(i.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),$&&this.device.isWebGL1&&fr(this.width,this.height)&&(P.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaps"))(),$=!1),this.mipmaps=$,this.setImageData({data:u,width:F,height:B,depth:te,format:p,type:k,dataFormat:V,parameters:g,compressed:j}),this.setSampler(o.sampler),this._setSamplerParameters(E),$&&this.generateMipmap(),d&&(this.data=u),_&&(this._video={video:u,parameters:E,lastTime:u.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?u.currentTime:-1}),this}},{key:"initializeCube",value:function(a){var o=this,u=a.mipmaps,_=u===void 0?!0:u,f=a.parameters,E=f===void 0?{}:f;return this.setCubeMapImageData(a).then(function(){o.loaded=!0,_&&o.generateMipmap(a),o.setSampler(a.sampler),o._setSamplerParameters(E)}),this}},{key:"setSampler",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o;a instanceof Qe?(this.sampler=a,o=a.props):(this.sampler=new Qe(this.device,a),o=a);var u=_r(o);return this._setSamplerParameters(u),this}},{key:"resize",value:function(a){var o=a.height,u=a.width,_=a.mipmaps,f=_===void 0?!1:_;return u!==this.width||o!==this.height?this.initialize({width:u,height:o,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:f}):this}},{key:"update",value:function(){if(this._video){var a=this._video,o=a.video,u=a.parameters,_=a.lastTime;if(_===o.currentTime||o.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:o,parameters:u}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=o.currentTime}}},{key:"generateMipmap",value:function(){var a=this,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&fr(this.width,this.height)?(P.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),$e(this.gl,o,function(){a.gl.generateMipmap(a.target)}),this.gl.bindTexture(this.target,null),this)}},{key:"setImageData",value:function(a){var o=this;if(this.props.dimension==="3d")return this.setImageData3D(a);this.trackDeallocatedMemory("Texture");var u=a.target,_=u===void 0?this.target:u,f=a.pixels,E=f===void 0?null:f,c=a.level,l=c===void 0?0:c,R=a.format,d=R===void 0?this.format:R,h=a.offset,g=h===void 0?0:h,N=a.parameters,C=N===void 0?{}:N,F=a.data,B=F===void 0?null:F,V=a.type,k=V===void 0?this.type:V,ee=a.width,j=ee===void 0?this.width:ee,_e=a.height,$=_e===void 0?this.height:_e,Ae=a.dataFormat,te=Ae===void 0?this.dataFormat:Ae,S=a.compressed,p=S===void 0?!1:S;B||(B=E);var m=this._deduceParameters({format:this.props.format,type:k,dataFormat:te,compressed:p,data:B,width:j,height:$});k=m.type,te=m.dataFormat,p=m.compressed,j=m.width,$=m.height;var y=this.gl;y.bindTexture(this.target,this.handle);var D=null,M=this._getDataType({data:B,compressed:p});B=M.data,D=M.dataType;var K;if($e(this.gl,C,function(){switch(D){case"null":y.texImage2D(_,l,d,j,$,0,te,k,B);break;case"typed-array":y.texImage2D(_,l,d,j,$,0,te,k,B,g);break;case"buffer":K=o.device.assertWebGL2(),K.bindBuffer(i.PIXEL_UNPACK_BUFFER,B.handle||B),K.texImage2D(_,l,d,j,$,0,te,k,g),K.bindBuffer(i.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":o.device.isWebGL2?y.texImage2D(_,l,d,j,$,0,te,k,B):y.texImage2D(_,l,d,te,k,B);break;case"compressed":var Q=mu(B.entries()),Te;try{for(Q.s();!(Te=Q.n()).done;){var Se=L(Te.value,2),Be=Se[0],wt=Se[1];y.compressedTexImage2D(_,Be,wt.format,wt.width,wt.height,0,wt.data)}}catch(ji){Q.e(ji)}finally{Q.f()}break;default:U(!1,"Unknown image data type")}}),B&&B.byteLength)this.trackAllocatedMemory(B.byteLength,"Texture");else{var re=zr(this.gl,this.props.format);this.trackAllocatedMemory(this.width*this.height*re,"Texture")}return this.loaded=!0,this}},{key:"setSubImageData",value:function(a){var o=this,u=a.target,_=u===void 0?this.target:u,f=a.pixels,E=f===void 0?null:f,c=a.data,l=c===void 0?null:c,R=a.x,d=R===void 0?0:R,h=a.y,g=h===void 0?0:h,N=a.width,C=N===void 0?this.width:N,F=a.height,B=F===void 0?this.height:F,V=a.level,k=V===void 0?0:V,ee=a.format,j=ee===void 0?this.format:ee,_e=a.type,$=_e===void 0?this.type:_e,Ae=a.dataFormat,te=Ae===void 0?this.dataFormat:Ae,S=a.compressed,p=S===void 0?!1:S,m=a.offset,y=m===void 0?0:m,D=a.parameters,M=D===void 0?{}:D,K=this._deduceParameters({format:this.props.format,type:$,dataFormat:te,compressed:p,data:l,width:C,height:B});if($=K.type,te=K.dataFormat,p=K.compressed,C=K.width,B=K.height,U(this.depth===1,"texSubImage not supported for 3D textures"),l||(l=E),l&&l.data){var re=l;l=re.data,C=re.shape[0],B=re.shape[1]}l instanceof me&&(l=l.handle),this.gl.bindTexture(this.target,this.handle),$e(this.gl,M,function(){if(p)o.gl.compressedTexSubImage2D(_,k,d,g,C,B,j,l);else if(l===null)o.gl.texSubImage2D(_,k,d,g,C,B,te,$,null);else if(ArrayBuffer.isView(l))o.gl.texSubImage2D(_,k,d,g,C,B,te,$,l,y);else if(typeof WebGLBuffer<"u"&&l instanceof WebGLBuffer){var Q=o.device.assertWebGL2();Q.bindBuffer(i.PIXEL_UNPACK_BUFFER,l),Q.texSubImage2D(_,k,d,g,C,B,te,$,y),Q.bindBuffer(i.PIXEL_UNPACK_BUFFER,null)}else if(o.device.isWebGL2){var Te=o.device.assertWebGL2();Te.texSubImage2D(_,k,d,g,C,B,te,$,l)}else o.gl.texSubImage2D(_,k,d,g,te,$,l)}),this.gl.bindTexture(this.target,null)}},{key:"copyFramebuffer",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return P.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}},{key:"getActiveUnit",value:function(){return this.gl.getParameter(i.ACTIVE_TEXTURE)-i.TEXTURE0}},{key:"bind",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,o=this.gl;return a!==void 0&&(this.textureUnit=a,o.activeTexture(o.TEXTURE0+a)),o.bindTexture(this.target,this.handle),a}},{key:"unbind",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,o=this.gl;return a!==void 0&&(this.textureUnit=a,o.activeTexture(o.TEXTURE0+a)),o.bindTexture(this.target,null),a}},{key:"_getDataType",value:function(a){var o=a.data,u=a.compressed,_=u===void 0?!1:u;return _?{data:o,dataType:"compressed"}:o===null?{data:o,dataType:"null"}:ArrayBuffer.isView(o)?{data:o,dataType:"typed-array"}:o instanceof me?{data:o.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&o instanceof WebGLBuffer?{data:o,dataType:"buffer"}:{data:o,dataType:"browser-object"}}},{key:"_deduceParameters",value:function(a){var o=a.format,u=a.data,_=a.width,f=a.height,E=a.dataFormat,c=a.type,l=a.compressed,R=ir(this.gl,o);E=E||R.dataFormat,c=c||R.type,l=l||R.compressed;var d=this._deduceImageSize(u,_,f);return _=d.width,f=d.height,{dataFormat:E,type:c,compressed:l,width:_,height:f,format:o,data:u}}},{key:"_deduceImageSize",value:function(a,o,u){var _;return typeof ImageData<"u"&&a instanceof ImageData?_={width:a.width,height:a.height}:typeof HTMLImageElement<"u"&&a instanceof HTMLImageElement?_={width:a.naturalWidth,height:a.naturalHeight}:typeof HTMLCanvasElement<"u"&&a instanceof HTMLCanvasElement?_={width:a.width,height:a.height}:typeof ImageBitmap<"u"&&a instanceof ImageBitmap?_={width:a.width,height:a.height}:typeof HTMLVideoElement<"u"&&a instanceof HTMLVideoElement?_={width:a.videoWidth,height:a.videoHeight}:a?_={width:o,height:u}:_={width:o>=0?o:1,height:u>=0?u:1},U(_,"Could not deduced texture size"),U(o===void 0||_.width===o,"Deduced texture width does not match supplied width"),U(u===void 0||_.height===u,"Deduced texture height does not match supplied height"),_}},{key:"setCubeMapImageData",value:function(){var n=oe(nn.default.mark(function o(u){var _=this,f,E,c,l,R,d,h,g,N,C,F;return nn.default.wrap(function(V){for(;;)switch(V.prev=V.next){case 0:return f=this.gl,E=u.width,c=u.height,l=u.pixels,R=u.data,d=u.format,h=d===void 0?i.RGBA:d,g=u.type,N=g===void 0?i.UNSIGNED_BYTE:g,C=l||R,V.next=5,Promise.all(r.FACES.map(function(k){var ee=C[k];return Promise.all(Array.isArray(ee)?ee:[ee])}));case 5:F=V.sent,this.bind(),r.FACES.forEach(function(k,ee){F[ee].length>1&&_.props.mipmaps!==!1&&P.warn("".concat(_.id," has mipmap and multiple LODs."))(),F[ee].forEach(function(j,_e){E&&c?f.texImage2D(k,_e,h,E,c,0,h,N,j):f.texImage2D(k,_e,h,h,N,j)})}),this.unbind();case 9:case"end":return V.stop()}},o,this)}));function a(o){return n.apply(this,arguments)}return a}()},{key:"setImageDataForFace",value:function(a){var o=this,u=a.face,_=a.width,f=a.height,E=a.pixels,c=a.data,l=a.format,R=l===void 0?i.RGBA:l,d=a.type,h=d===void 0?i.UNSIGNED_BYTE:d,g=this.gl,N=E||c;return this.bind(),N instanceof Promise?N.then(function(C){return o.setImageDataForFace(Object.assign({},a,{face:u,data:C,pixels:C}))}):this.width||this.height?g.texImage2D(u,0,R,_,f,0,R,h,N):g.texImage2D(u,0,R,R,h,N),this}},{key:"setImageData3D",value:function(a){var o=this,u=a.level,_=u===void 0?0:u,f=a.dataFormat,E=a.format,c=a.type,l=a.width,R=a.height,d=a.depth,h=d===void 0?1:d,g=a.offset,N=g===void 0?0:g,C=a.data,F=a.parameters,B=F===void 0?{}:F;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);var V=ir(this.gl,E);if($e(this.gl,B,function(){ArrayBuffer.isView(C)&&o.gl.texImage3D(o.target,_,V.format,l,R,h,0,V.dataFormat,V.type,C),C instanceof me&&(o.gl.bindBuffer(i.PIXEL_UNPACK_BUFFER,C.handle),o.gl.texImage3D(o.target,_,f,l,R,h,0,E,c,N))}),C&&C.byteLength)this.trackAllocatedMemory(C.byteLength,"Texture");else{var k=zr(this.gl,this.props.format);this.trackAllocatedMemory(this.width*this.height*this.depth*k,"Texture")}return this.loaded=!0,this}},{key:"_setSamplerParameters",value:function(a){if(this.device.isWebGL1&&fr(this.width,this.height)&&(a=ti(a)),!at(a)){vu(a),this.gl.bindTexture(this.target,this.handle);for(var o=0,u=Object.entries(a);o<u.length;o++){var _=L(u[o],2),f=_[0],E=_[1],c=Number(f),l=E;switch(c){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,c,l);break;default:this.gl.texParameteri(this.target,c,l);break}}this.gl.bindTexture(this.target,null)}}},{key:"_getWebGL1NPOTParameterOverride",value:function(a,o){var u=this.device.isWebGL1&&fr(this.width,this.height);if(u)switch(a){case i.TEXTURE_MIN_FILTER:if(o!==i.LINEAR&&o!==i.NEAREST)return i.LINEAR;break;case i.TEXTURE_WRAP_S:case i.TEXTURE_WRAP_T:return i.CLAMP_TO_EDGE;default:break}return o}}]),r}(Ne);s(ve,"FACES",[i.TEXTURE_CUBE_MAP_POSITIVE_X,i.TEXTURE_CUBE_MAP_NEGATIVE_X,i.TEXTURE_CUBE_MAP_POSITIVE_Y,i.TEXTURE_CUBE_MAP_NEGATIVE_Y,i.TEXTURE_CUBE_MAP_POSITIVE_Z,i.TEXTURE_CUBE_MAP_NEGATIVE_Z]);function Ou(e){switch(e.dimension){case"2d":return i.TEXTURE_2D;case"cube":return i.TEXTURE_CUBE_MAP;case"2d-array":return i.TEXTURE_2D_ARRAY;case"3d":return i.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function fr(e,t){return!e||!t?!1:!zt(e)||!zt(t)}function vu(e){P.log(1,"texture sampler parameters",e)()}function Er(e,t){if(typeof t!="string")return t;var r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");var n=e[t];return U(n!==void 0,"Accessing undefined constant GL.".concat(t)),n}function an(e,t){e=e.gl||e,t=Number(t);for(var r in e)if(e[r]===t)return"GL.".concat(r);return String(t)}function Nu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Cu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
22
22
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,_;return{s:function(){r=r.call(e)},n:function(){var E=r.next();return o=E.done,E},e:function(E){u=!0,_=E},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw _}}}}function Cu(e,t){if(e){if(typeof e=="string")return oi(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return oi(e,t)}}function oi(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Iu(e){var t=bu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function bu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ct="Resource subclass must define virtual methods",qe=function(e){x(r,e);var t=Iu(r);function r(n,a,o){var u;I(this,r),u=t.call(this,n,a,o),s(A(u),"device",void 0),s(A(u),"gl",void 0),s(A(u),"gl2",void 0),s(A(u),"_handle",void 0),s(A(u),"_bound",!1),s(A(u),"byteLength",0),u.device=ce.attach(n);var _=u.device.gl;qt(_);var f=a||{},E=f.id;return u.gl=_,u.gl2=_,u.id=E||ge(u.constructor.name),u._handle=a?.handle,u._handle===void 0&&(u._handle=u._createHandle()),u.byteLength=0,u}return b(r,[{key:"toString",value:function(){return"".concat(this.constructor.name,"(").concat(this.id,")")}},{key:"handle",get:function(){return this._handle}},{key:"destroy",value:function(){this.delete()}},{key:"delete",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=a.deleteChildren,u=o===void 0?!1:o,_=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,_&&u&&_.filter(Boolean).forEach(function(f){return f.delete()}),this}},{key:"bind",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof a!="function")return this._bindHandle(a),this;var o;return this._bound?o=a():(this._bindHandle(this.handle),this._bound=!0,o=a(),this._bound=!1,this._bindHandle(null)),o}},{key:"unbind",value:function(){this.bind(null)}},{key:"getParameter",value:function(a){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};a=Er(this.gl,a),U(a);var u=this.constructor.PARAMETERS||{},_=u[a];if(_){var f=H(this.gl),E=(!("webgl2"in _)||f)&&(!("extension"in _)||this.gl.getExtension(_.extension));if(!E){var c=_.webgl1,l="webgl2"in _?_.webgl2:_.webgl1,R=f?l:c;return R}}return this._getParameter(a,o)}},{key:"getParameters",value:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=a.parameters,u=a.keys,_=this.constructor.PARAMETERS||{},f=H(this.gl),E={},c=o||Object.keys(_),l=Nu(c),R;try{for(l.s();!(R=l.n()).done;){var d=R.value,h=_[d],g=h&&(!("webgl2"in h)||f)&&(!("extension"in h)||this.gl.getExtension(h.extension));if(g){var N=u?an(this.gl,d):d;E[N]=this.getParameter(d,a),u&&h.type==="GLenum"&&(E[N]=an(this.gl,E[N]))}}}catch(C){l.e(C)}finally{l.f()}return E}},{key:"setParameter",value:function(a,o){a=Er(this.gl,a),U(a);var u=this.constructor.PARAMETERS||{},_=u[a];if(_){var f=H(this.gl),E=(!("webgl2"in _)||f)&&(!("extension"in _)||this.gl.getExtension(_.extension));if(!E)throw new Error("Parameter not available on this platform");_.type==="GLenum"&&(o=Er(o))}return this._setParameter(a,o),this}},{key:"setParameters",value:function(a){for(var o in a)this.setParameter(o,a[o]);return this}},{key:"stubRemovedMethods",value:function(a,o,u){return Mr(this,a,o,u)}},{key:"initialize",value:function(a){}},{key:"_createHandle",value:function(){throw new Error(ct)}},{key:"_deleteHandle",value:function(){throw new Error(ct)}},{key:"_bindHandle",value:function(a){throw new Error(ct)}},{key:"_getOptsFromHandle",value:function(){throw new Error(ct)}},{key:"_getParameter",value:function(a,o){throw new Error(ct)}},{key:"_setParameter",value:function(a,o){throw new Error(ct)}}]),r}(ae);var X;function si(e,t){var r=_i[t];return r?r.ext?Boolean(e.getExtension(r.ext)):r.gl2?H(e):!0:!1}function ui(e){return _i[e].bpp}var Je="EXT_color_buffer_float",_i=(X={},s(X,i.DEPTH_COMPONENT16,{bpp:2}),s(X,i.DEPTH_COMPONENT24,{gl2:!0,bpp:3}),s(X,i.DEPTH_COMPONENT32F,{gl2:!0,bpp:4}),s(X,i.STENCIL_INDEX8,{bpp:1}),s(X,i.DEPTH_STENCIL,{bpp:4}),s(X,i.DEPTH24_STENCIL8,{gl2:!0,bpp:4}),s(X,i.DEPTH32F_STENCIL8,{gl2:!0,bpp:5}),s(X,i.RGBA4,{bpp:2}),s(X,i.RGB565,{bpp:2}),s(X,i.RGB5_A1,{bpp:2}),s(X,i.R8,{gl2:!0,bpp:1}),s(X,i.R8UI,{gl2:!0,bpp:1}),s(X,i.R8I,{gl2:!0,bpp:1}),s(X,i.R16UI,{gl2:!0,bpp:2}),s(X,i.R16I,{gl2:!0,bpp:2}),s(X,i.R32UI,{gl2:!0,bpp:4}),s(X,i.R32I,{gl2:!0,bpp:4}),s(X,i.RG8,{gl2:!0,bpp:2}),s(X,i.RG8UI,{gl2:!0,bpp:2}),s(X,i.RG8I,{gl2:!0,bpp:2}),s(X,i.RG16UI,{gl2:!0,bpp:4}),s(X,i.RG16I,{gl2:!0,bpp:4}),s(X,i.RG32UI,{gl2:!0,bpp:8}),s(X,i.RG32I,{gl2:!0,bpp:8}),s(X,i.RGB8,{gl2:!0,bpp:3}),s(X,i.RGBA8,{gl2:!0,bpp:4}),s(X,i.RGB10_A2,{gl2:!0,bpp:4}),s(X,i.RGBA8UI,{gl2:!0,bpp:4}),s(X,i.RGBA8I,{gl2:!0,bpp:4}),s(X,i.RGB10_A2UI,{gl2:!0,bpp:4}),s(X,i.RGBA16UI,{gl2:!0,bpp:8}),s(X,i.RGBA16I,{gl2:!0,bpp:8}),s(X,i.RGBA32I,{gl2:!0,bpp:16}),s(X,i.RGBA32UI,{gl2:!0,bpp:16}),s(X,i.R16F,{ext:Je,bpp:2}),s(X,i.RG16F,{ext:Je,bpp:4}),s(X,i.RGBA16F,{ext:Je,bpp:8}),s(X,i.R32F,{ext:Je,bpp:4}),s(X,i.RG32F,{ext:Je,bpp:8}),s(X,i.RGBA32F,{ext:Je,bpp:16}),s(X,i.R11F_G11F_B10F,{ext:Je,bpp:4}),X);function fi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ei(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?fi(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Pu(e){var t=yu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function yu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Fu={id:void 0,handle:void 0,userData:void 0,format:0,width:1,height:1,samples:0},lt=function(e,t){x(n,e);var r=Pu(n);function n(a,o){var u;return I(this,n),u=r.call(this,a,o,Fu),u._initialize(u.props),u}return b(n,[{key:t,get:function(){return"Renderbuffer"}},{key:"width",get:function(){return this.props.width}},{key:"height",get:function(){return this.props.height}},{key:"format",get:function(){return this.props.format}},{key:"samples",get:function(){return this.props.samples}},{key:"resize",value:function(o){return(o.width!==this.width||o.height!==this.height)&&(Object.assign(this.props,Ei(Ei({},o),{},{format:this.format,samples:this.samples})),this._initialize(this.props)),this}},{key:"_initialize",value:function(o){var u=o.format,_=o.width,f=o.height,E=o.samples;return U(u,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(i.RENDERBUFFER,this.handle),E!==0&&this.device.isWebGL2?this.gl.renderbufferStorageMultisample(i.RENDERBUFFER,E,u,_,f):this.gl.renderbufferStorage(i.RENDERBUFFER,u,_,f),this.gl.bindRenderbuffer(i.RENDERBUFFER,null),this.trackAllocatedMemory(_*f*(E||1)*ui(u)),this}},{key:"_createHandle",value:function(){return this.gl.createRenderbuffer()}},{key:"_deleteHandle",value:function(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}},{key:"_bindHandle",value:function(o){this.gl.bindRenderbuffer(i.RENDERBUFFER,o)}}],[{key:"isSupported",value:function(o,u){return!(u!=null&&u.format)||si(o,u.format)}}]),n}(qe,Symbol.toStringTag);function ci(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Bu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
23
23
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,_;return{s:function(){r=r.call(e)},n:function(){var E=r.next();return o=E.done,E},e:function(E){u=!0,_=E},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw _}}}}function Bu(e,t){if(e){if(typeof e=="string")return li(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return li(e,t)}}function li(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Mu(e){var t=Du();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function Du(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Rt=function(e){x(r,e);var t=Mu(r);function r(n,a){var o;I(this,r),o=t.call(this,n,a),s(A(o),"device",void 0),s(A(o),"gl",void 0),s(A(o),"handle",void 0),s(A(o),"colorAttachments",[]),s(A(o),"depthStencilAttachment",null),s(A(o),"_ownResources",[]),o.device=n,o.gl=n.gl,o.handle=o.props.handle!==void 0?o.props.handle:o.gl.createFramebuffer(),o.handle&&n.setSpectorMetadata(o.handle,{id:o.props.id,props:o.props}),o.colorAttachments=o._createColorAttachments(),o.depthStencilAttachment=o._createDepthStencilAttachment();for(var u=o.gl.bindFramebuffer(i.FRAMEBUFFER,o.handle),_=0;_<o.colorAttachments.length;++_){var f=o.colorAttachments[_],E=i.COLOR_ATTACHMENT0+_;f&&o._attachOne(E,f)}return o.props.depthStencilAttachment&&o._attachOne(Ya(o.depthStencilAttachment.format),o.depthStencilAttachment),o.gl.bindFramebuffer(i.FRAMEBUFFER,u||null),a.check!==!1&&o._checkStatus(),o}return b(r,[{key:"texture",get:function(){return this.colorAttachments[0]}},{key:"destroy",value:function(){if(this.handle!==null){var a=ci(this._ownResources),o;try{for(a.s();!(o=a.n()).done;){var u=o.value;u.destroy()}}catch(_){a.e(_)}finally{a.f()}this.gl.deleteFramebuffer(this.handle),this.destroyed=!0}}},{key:"_checkStatus",value:function(){var a=this.gl,o=a.bindFramebuffer(i.FRAMEBUFFER,this.handle),u=a.checkFramebufferStatus(i.FRAMEBUFFER);if(a.bindFramebuffer(i.FRAMEBUFFER,o||null),u!==a.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer ".concat(xu(u)))}},{key:"_createColorAttachments",value:function(){var a=this;return this.props.colorAttachments.map(function(o){if(o)return o instanceof ve?o:a._createColorAttachment(o,a.width,a.height)})}},{key:"_createColorAttachment",value:function(a,o,u){var _=this.device._createTexture({id:"".concat(this.id,"-color"),data:null,format:a,width:o,height:u,mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}});return this._ownResources.push(_),_}},{key:"_createDepthStencilAttachment",value:function(){if(this.props.depthStencilAttachment){if(this.props.depthStencilAttachment instanceof lt)return this.props.depthStencilAttachment;if(this.props.depthStencilAttachment instanceof Ne)return this.props.depthStencilAttachment;var a=this.props.depthStencilAttachment,o=Ut(this.gl,a),u=new lt(this.device,{id:"".concat(this.id,"-depth-stencil"),format:o,width:this.width,height:this.height});return this._ownResources.push(u),u}}},{key:"_resizeAttachments",value:function(a,o){var u;if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;a===void 0&&(a=this.gl.drawingBufferWidth),o===void 0&&(o=this.gl.drawingBufferHeight),a!==this.width&&o!==this.height&&P.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(a,"x").concat(o))();var _=ci(this.colorAttachments),f;try{for(_.s();!(f=_.n()).done;){var E=f.value;E.resize({width:a,height:o})}}catch(c){_.e(c)}finally{_.f()}return(u=this.depthStencilAttachment)===null||u===void 0||u.resize({width:a,height:o}),this}},{key:"_attachOne",value:function(a,o){if(o instanceof lt)return this._attachRenderbuffer(a,o),o;if(Array.isArray(o)){var u=L(o,3),_=u[0],f=u[1],E=f===void 0?0:f,c=u[2],l=c===void 0?0:c;return this._attachTexture(a,_,E,l),_}else if(o instanceof ve)return this._attachTexture(a,o,0,0),o;throw new Error("attach")}},{key:"_attachRenderbuffer",value:function(a,o){this.gl.framebufferRenderbuffer(i.FRAMEBUFFER,a,i.RENDERBUFFER,o.handle)}},{key:"_attachTexture",value:function(a,o,u,_){var f=this.device,E=f.gl,c=f.gl2;switch(E.bindTexture(o.target,o.handle),o.target){case i.TEXTURE_2D_ARRAY:case i.TEXTURE_3D:this.device.assertWebGL2(),c?.framebufferTextureLayer(i.FRAMEBUFFER,a,o.target,_,u);break;case i.TEXTURE_CUBE_MAP:var l=Uu(u);E.framebufferTexture2D(i.FRAMEBUFFER,a,l,o.handle,_);break;case i.TEXTURE_2D:E.framebufferTexture2D(i.FRAMEBUFFER,a,i.TEXTURE_2D,o.handle,_);break;default:U(!1,"Illegal texture type")}E.bindTexture(o.target,null)}}]),r}(Pr);function Uu(e){return e<i.TEXTURE_CUBE_MAP_POSITIVE_X?e+i.TEXTURE_CUBE_MAP_POSITIVE_X:e}function xu(e){switch(e){case i.FRAMEBUFFER_COMPLETE:return"success";case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case i.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case i.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return"".concat(e)}}function wu(e){var t=Xu();return function(){var n=v(e),a;if(t){var o=v(this).constructor;a=Reflect.construct(n,arguments,o)}else a=n.apply(this,arguments);return w(this,a)}}function Xu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var cr=function(e){x(r,e);var t=wu(r);function r(n,a){var o;return I(this,r),o=t.call(this,a),s(A(o),"device",void 0),s(A(o),"presentationSize",void 0),s(A(o),"_framebuffer",null),o.device=n,o.presentationSize=[-1,-1],o._setAutoCreatedCanvasId("".concat(o.device.id,"-canvas")),o.update(),o}return b(r,[{key:"getCurrentFramebuffer",value:function(){return this.update(),this._framebuffer=this._framebuffer||new Rt(this.device,{handle:null}),this._framebuffer}},{key:"update",value:function(){var a=this.getPixelSize(),o=a[0]!==this.presentationSize[0]||a[1]!==this.presentationSize[1];o&&(this.presentationSize=a)}},{key:"resize",value:function(a){if(this.canvas){this.setDevicePixelRatio(devicePixelRatio,a);return}var o=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");o&&a&&"width"in a&&"height"in a&&o.resize(a.width,a.height)}},{key:"commit",value:function(){}}]),r}(ot);var on=He(we(),1);function Ri(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(e,a).enumerable})),r.push.apply(r,n)}return r}function Ai(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ri(Object(r),!0).forEach(function(n){s(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ri(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Hu={spector:P.get("spector")||P.get("inspect")},Wu="https://spectorcdn.babylonjs.com/spector.bundle.js",Lu=1,le=null,Ti=!1;function di(e){return sn.apply(this,arguments)}function sn(){return sn=oe(on.default.mark(function e(t){return on.default.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(globalThis.SPECTOR){n.next=9;break}return n.prev=1,n.next=4,vt(Wu);case 4:n.next=9;break;case 6:n.prev=6,n.t0=n.catch(1),P.warn(String(n.t0));case 9:case"end":return n.stop()}},e,null,[[1,6]])})),sn.apply(this,arguments)}function pi(e){var t,r;if(e=Ai(Ai({},Hu),e),!((t=e)!==null&&t!==void 0&&t.spector)||(!le&&globalThis.SPECTOR&&(P.probe(Lu,"SPECTOR found and initialized")(),le=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=le)),!le))return null;if(!Ti){var n,a;Ti=!0,le.spyCanvases(),(n=le)===null||n===void 0||n.onCaptureStarted.add(function(_){return P.info("Spector capture started:",_)()}),(a=le)===null||a===void 0||a.onCapture.add(function(_){var f,E,c;P.info("Spector capture complete:",_)(),(f=le)===null||f===void 0||f.getResultUI(),(E=le)===null||E===void 0||E.resultView.display(),(c=le)===null||c===void 0||c.resultView.addCapture(_)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,u;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return le;(o=le)===null||o===void 0||o.startCapture((u=e)===null||u===void 0?void 0:u.canvas,500),new Promise(function(_){return setTimeout(_,2e3)}).then(function(_){var f;P.info("Spector capture stopped after 2 seconds")(),(f=le)===null||f===void 0||f.stopCapture()})}return le}var _n=He(we(),1);function Vu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ku(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,a=function(){};return{s:a,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(E){throw E},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/webgl",
3
- "version": "9.0.0-alpha.17",
3
+ "version": "9.0.0-alpha.19",
4
4
  "description": "WebGL2 adapter for the luma.gl API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -44,9 +44,9 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@babel/runtime": "^7.0.0",
47
- "@luma.gl/api": "9.0.0-alpha.17",
48
- "@luma.gl/constants": "9.0.0-alpha.17",
47
+ "@luma.gl/api": "9.0.0-alpha.19",
48
+ "@luma.gl/constants": "9.0.0-alpha.19",
49
49
  "@probe.gl/env": "^4.0.2"
50
50
  },
51
- "gitHead": "9385b56a95f5f53ee5f11d2ccef5b6114a527d94"
51
+ "gitHead": "d57e5fd81825ae4c7c23040ba63f54ad4ea7e972"
52
52
  }
@@ -124,7 +124,7 @@ export default class WEBGLBuffer extends Buffer {
124
124
  this.device.assertWebGL2();
125
125
 
126
126
  // @ts-expect-error
127
- this.gl.bufferSubData(this.target, offset, data, srcOffset, byteLength);
127
+ this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
128
128
  } else {
129
129
  this.gl.bufferSubData(target, byteOffset, data);
130
130
  }
package/src/.DS_Store DELETED
Binary file
Binary file
Binary file