@luma.gl/webgl 9.0.0-alpha.43 → 9.0.0-alpha.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +0 -2
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +2 -7
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/dist.dev.js +2 -7
- package/dist/index.cjs +2 -7
- package/dist.min.js +7 -7
- package/package.json +5 -5
- package/src/adapter/resources/webgl-render-pipeline.ts +2 -11
|
@@ -22,8 +22,6 @@ export declare class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
22
22
|
bindings: Record<string, Binding>;
|
|
23
23
|
/** WebGL varyings */
|
|
24
24
|
varyings: string[] | null;
|
|
25
|
-
_textureUniforms: Record<string, any>;
|
|
26
|
-
_textureIndexCounter: number;
|
|
27
25
|
_uniformCount: number;
|
|
28
26
|
_uniformSetters: Record<string, Function>;
|
|
29
27
|
constructor(device: WebGLDevice, props: RenderPipelineProps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAQ3C,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,
|
|
1
|
+
{"version":3,"file":"webgl-render-pipeline.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAC9E,OAAO,KAAK,EAAC,YAAY,EAAoB,MAAM,eAAe,CAAC;AACnE,OAAO,KAAK,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAsC,MAAM,eAAe,CAAC;AAUlF,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAQ3C,oCAAoC;AACpC,qBAAa,mBAAoB,SAAQ,cAAc;IACrD,yDAAyD;IACzD,MAAM,EAAE,WAAW,CAAC;IACpB,yCAAyC;IACzC,MAAM,EAAE,YAAY,CAAC;IACrB,oBAAoB;IACpB,EAAE,EAAE,WAAW,CAAC;IAChB,sBAAsB;IACtB,EAAE,EAAE,WAAW,CAAC;IAChB,mEAAmE;IACnE,kBAAkB,EAAE,YAAY,CAAC;IAEjC,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAM;IAC5C,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IACvC,qBAAqB;IACrB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IAEjC,aAAa,EAAE,MAAM,CAAK;IAC1B,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAM;gBAEnC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB;IA+BlD,OAAO,IAAI,IAAI;IAyCxB;;;OAGG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAiDpD,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAWlD;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE;QACZ,UAAU,EAAE,UAAU,CAAC;QACvB,wBAAwB;QACxB,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO;IAgHX,SAAS,CAAC,eAAe;IA4BzB;;;;OAIG;IACH,sBAAsB;IAatB;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF,iDAAiD;IACjD,cAAc;IA+Ed;;;OAGG;IACH,cAAc;CASf"}
|
|
@@ -19,8 +19,6 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
19
19
|
this.uniforms = {};
|
|
20
20
|
this.bindings = {};
|
|
21
21
|
this.varyings = null;
|
|
22
|
-
this._textureUniforms = {};
|
|
23
|
-
this._textureIndexCounter = 0;
|
|
24
22
|
this._uniformCount = 0;
|
|
25
23
|
this._uniformSetters = {};
|
|
26
24
|
this.device = device;
|
|
@@ -157,12 +155,9 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
157
155
|
}
|
|
158
156
|
_areTexturesRenderable() {
|
|
159
157
|
let texturesRenderable = true;
|
|
160
|
-
for (const [, texture] of Object.entries(this._textureUniforms)) {
|
|
161
|
-
texture.update();
|
|
162
|
-
texturesRenderable = texturesRenderable && texture.loaded;
|
|
163
|
-
}
|
|
164
158
|
for (const [, texture] of Object.entries(this.bindings)) {
|
|
165
|
-
if (texture
|
|
159
|
+
if (texture instanceof WEBGLTexture) {
|
|
160
|
+
texture.update();
|
|
166
161
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
167
162
|
}
|
|
168
163
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pipeline.js","names":["RenderPipeline","cast","splitUniformsAndBindings","log","mergeShaderLayout","GL","getShaderLayout","withDeviceAndGLParameters","setUniform","WEBGLBuffer","WEBGLFramebuffer","WEBGLTexture","LOG_PROGRAM_PERF_PRIORITY","WEBGLRenderPipeline","constructor","device","props","handle","vs","fs","introspectedLayout","uniforms","bindings","varyings","_textureUniforms","_textureIndexCounter","_uniformCount","_uniformSetters","gl","createProgram","setSpectorMetadata","id","bufferMode","SEPARATE_ATTRIBS","length","_this$device$gl","assertWebGL2","gl2","transformFeedbackVaryings","_compileAndLink","shaderLayout","destroy","deleteProgram","destroyed","setBindings","name","value","Object","entries","binding","find","validBindings","map","join","warn","type","buffer","Error","setUniforms","keys","forEach","assign","draw","options","_vertexArray$indexBuf","renderPass","vertexArray","vertexCount","instanceCount","firstVertex","glDrawMode","getGLDrawMode","topology","isIndexed","Boolean","indexBuffer","glIndexType","isInstanced","Number","_areTexturesRenderable","useProgram","bindBeforeRender","primitiveMode","getGLPrimitive","transformFeedback","begin","_applyBindings","_applyUniforms","webglRenderPass","parameters","glParameters","_this$device$gl2","drawElementsInstanced","drawElements","_this$device$gl3","drawArraysInstanced","drawArrays","end","unbindAfterRender","attachShader","time","linkProgram","timeEnd","debug","level","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","validateProgram","validated","VALIDATE_STATUS","texturesRenderable","texture","update","loaded","undefined","textureUnit","uniformBufferIndex","replace","location","getUniformBlockIndex","INVALID_INDEX","uniformBlockBinding","bindBufferBase","UNIFORM_BUFFER","bindBufferRange","offset","size","byteLength","colorAttachments","activeTexture","TEXTURE0","bindTexture","target","uniformLayout","_this$uniforms$name","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN"],"sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {UniformValue, RenderPipelineProps, Binding} from '@luma.gl/core';\nimport type {ShaderLayout, PrimitiveTopology} from '@luma.gl/core';\nimport type {RenderPass, VertexArray} from '@luma.gl/core';\nimport {RenderPipeline, cast, splitUniformsAndBindings, log} from '@luma.gl/core';\nimport {mergeShaderLayout} from '@luma.gl/core';\n// import {mergeShaderLayout, getAttributeInfosFromLayouts} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nimport {getShaderLayout} from '../helpers/get-shader-layout';\nimport {withDeviceAndGLParameters} from '../converters/device-parameters';\nimport {setUniform} from '../helpers/set-uniform';\n// import {copyUniform, checkUniformValues} from '../../classes/uniforms';\n\nimport {WebGLDevice} from '../webgl-device';\nimport {WEBGLBuffer} from './webgl-buffer';\nimport {WEBGLShader} from './webgl-shader';\nimport {WEBGLFramebuffer} from './webgl-framebuffer';\nimport {WEBGLTexture} from './webgl-texture';\n// import {WEBGLVertexArray} from './webgl-vertex-array';\nimport {WEBGLRenderPass} from './webgl-render-pass';\n\nconst LOG_PROGRAM_PERF_PRIORITY = 4;\n\n/** Creates a new render pipeline */\nexport class WEBGLRenderPipeline extends RenderPipeline {\n /** The WebGL device that created this render pipeline */\n device: WebGLDevice;\n /** Handle to underlying WebGL program */\n handle: WebGLProgram;\n /** vertex shader */\n vs: WEBGLShader;\n /** fragment shader */\n fs: WEBGLShader;\n /** The layout extracted from shader by WebGL introspection APIs */\n introspectedLayout: ShaderLayout;\n\n /** Uniforms set on this model */\n uniforms: Record<string, UniformValue> = {};\n /** Bindings set on this model */\n bindings: Record<string, Binding> = {};\n /** WebGL varyings */\n varyings: string[] | null = null;\n\n _textureUniforms: Record<string, any> = {};\n _textureIndexCounter: number = 0;\n _uniformCount: number = 0;\n _uniformSetters: Record<string, Function> = {}; // TODO are these used?\n\n constructor(device: WebGLDevice, props: RenderPipelineProps) {\n super(device, props);\n this.device = device;\n this.handle = this.props.handle || this.device.gl.createProgram();\n this.device.setSpectorMetadata(this.handle, {id: this.props.id});\n\n // Create shaders if needed\n this.vs = cast<WEBGLShader>(props.vs);\n this.fs = cast<WEBGLShader>(props.fs);\n // assert(this.vs.stage === 'vertex');\n // assert(this.fs.stage === 'fragment');\n\n // Setup varyings if supplied\n // @ts-expect-error WebGL only\n const {varyings, bufferMode = GL.SEPARATE_ATTRIBS} = props;\n if (varyings && varyings.length > 0) {\n this.device.assertWebGL2();\n this.varyings = varyings;\n this.device.gl2?.transformFeedbackVaryings(this.handle, varyings, bufferMode);\n }\n\n this._compileAndLink();\n\n this.introspectedLayout = getShaderLayout(this.device.gl, this.handle);\n // Merge provided layout with introspected layout\n this.shaderLayout = mergeShaderLayout(this.introspectedLayout, props.shaderLayout);\n // Merge layout with any buffer map overrides\n // this.bufferLayout = props.bufferLayout || [];\n // this.shaderLayout = mergeBufferMap(this.shaderLayout, this.bufferLayout);\n }\n\n override destroy(): void {\n if (this.handle) {\n this.device.gl.deleteProgram(this.handle);\n // this.handle = null;\n this.destroyed = true;\n }\n }\n\n // setIndexBuffer(indexBuffer: Buffer): void {\n // const webglBuffer = cast<WEBGLBuffer>(indexBuffer);\n // this.vertexArrayObject.setElementBuffer(webglBuffer);\n // this._indexBuffer = indexBuffer;\n // }\n\n // /** @todo needed for portable model */\n // setAttributes(attributes: Record<string, Buffer>): void {\n // for (const [name, buffer] of Object.entries(attributes)) {\n // const webglBuffer = cast<WEBGLBuffer>(buffer);\n // const attribute = getAttributeLayout(this.layout, name);\n // if (!attribute) {\n // log.warn(\n // `Ignoring buffer supplied for unknown attribute \"${name}\" in pipeline \"${this.id}\" (buffer \"${buffer.id}\")`\n // )();\n // continue;\n // }\n // const decoded = decodeVertexFormat(attribute.format);\n // const {type: typeString, components: size, byteLength: stride, normalized, integer} = decoded;\n // const divisor = attribute.stepMode === 'instance' ? 1 : 0;\n // const type = getWebGLDataType(typeString);\n // this.vertexArrayObject.setBuffer(attribute.location, webglBuffer, {\n // size,\n // type,\n // stride,\n // offset: 0,\n // normalized,\n // integer,\n // divisor\n // });\n // }\n // }\n\n /**\n * Bindings include: textures, samplers and uniform buffers\n * @todo needed for portable model\n */\n setBindings(bindings: Record<string, Binding>): void {\n // if (log.priority >= 2) {\n // checkUniformValues(uniforms, this.id, this._uniformSetters);\n // }\n\n for (const [name, value] of Object.entries(bindings)) {\n // Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block\n // This convention allows shaders to name uniform blocks as `uniform appUniforms {} app;`\n // and reference them as `app` from both GLSL and JS.\n // TODO - this is rather hacky - we could also remap the name directly in the shader layout.\n const binding = \n this.shaderLayout.bindings.find(binding => binding.name === name) ||\n this.shaderLayout.bindings.find(binding => binding.name === `${name}Uniforms`);\n\n if (!binding) {\n const validBindings = this.shaderLayout.bindings\n .map(binding => `\"${binding.name}\"`)\n .join(', ');\n log.warn(\n `Unknown binding \"${name}\" in render pipeline \"${this.id}\", expected one of ${validBindings}`\n )();\n continue; // eslint-disable-line no-continue\n }\n if (!value) {\n log.warn(`Unsetting binding \"${name}\" in render pipeline \"${this.id}\"`)();\n }\n switch (binding.type) {\n case 'uniform':\n // @ts-expect-error\n if (!(value instanceof WEBGLBuffer) && !(value.buffer instanceof WEBGLBuffer)) {\n throw new Error('buffer value');\n }\n break;\n case 'texture':\n if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {\n throw new Error('texture value');\n }\n break;\n case 'sampler':\n log.warn(`Ignoring sampler ${name}`)();\n break;\n default:\n throw new Error(binding.type);\n }\n\n this.bindings[name] = value;\n }\n }\n\n setUniforms(uniforms: Record<string, UniformValue>) {\n const {bindings} = splitUniformsAndBindings(uniforms);\n Object.keys(bindings).forEach(name => {\n log.warn(\n `Unsupported value \"${bindings[name]}\" used in setUniforms() for key ${name}. Use setBindings() instead?`\n )();\n });\n // TODO - check against layout\n Object.assign(this.uniforms, uniforms);\n }\n\n /** @todo needed for portable model\n * @note The WebGL API is offers many ways to draw things\n * This function unifies those ways into a single call using common parameters with sane defaults\n */\n draw(options: {\n renderPass: RenderPass;\n /** vertex attributes */\n vertexArray: VertexArray;\n vertexCount?: number;\n indexCount?: number;\n instanceCount?: number;\n firstVertex?: number;\n firstIndex?: number;\n firstInstance?: number;\n baseVertex?: number;\n }): boolean {\n const {\n renderPass,\n vertexArray,\n vertexCount,\n // indexCount,\n instanceCount,\n firstVertex = 0\n // firstIndex,\n // firstInstance,\n // baseVertex\n } = options;\n\n const glDrawMode = getGLDrawMode(this.props.topology);\n const isIndexed: boolean = Boolean(vertexArray.indexBuffer);\n const glIndexType = (vertexArray.indexBuffer as WEBGLBuffer)?.glIndexType;\n const isInstanced: boolean = Number(instanceCount) > 0;\n\n // Avoid WebGL draw call when not rendering any data or values are incomplete\n // Note: async textures set as uniforms might still be loading.\n // Now that all uniforms have been updated, check if any texture\n // in the uniforms is not yet initialized, then we don't draw\n if (!this._areTexturesRenderable() || vertexCount === 0) {\n // (isInstanced && instanceCount === 0)\n return false;\n }\n\n this.device.gl.useProgram(this.handle);\n\n // Note: Rebinds constant attributes before each draw call\n vertexArray.bindBeforeRender(renderPass);\n\n const primitiveMode = getGLPrimitive(this.props.topology);\n const transformFeedback: any = null;\n if (transformFeedback) {\n transformFeedback.begin(primitiveMode);\n }\n\n // We have to apply bindings before every draw call since other draw calls will overwrite\n this._applyBindings();\n this._applyUniforms();\n\n const webglRenderPass = renderPass as WEBGLRenderPass;\n // // TODO - Use polyfilled WebGL2RenderingContext instead of ANGLE extension\n // if (isIndexed && isInstanced) {\n // // ANGLE_instanced_arrays extension\n // this.device.gl2?.drawElementsInstanced(\n // drawMode,\n // vertexCount || 0, // indexCount?\n // indexType,\n // firstVertex,\n // instanceCount || 0\n // );\n // // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {\n // // this.device.gl2.drawRangeElements(drawMode, start, end, vertexCount, indexType, offset);\n // } else if (isIndexed) {\n // this.device.gl.drawElements(drawMode, vertexCount || 0, indexType, firstVertex); // indexCount?\n // } else if (isInstanced) {\n // this.device.gl2?.drawArraysInstanced(\n // drawMode,\n // firstVertex,\n // vertexCount || 0,\n // instanceCount || 0\n // );\n // } else {\n // this.device.gl.drawArrays(drawMode, firstVertex, vertexCount || 0);\n // }\n // });\n\n withDeviceAndGLParameters(\n this.device,\n this.props.parameters,\n webglRenderPass.glParameters,\n () => {\n if (isIndexed && isInstanced) {\n // ANGLE_instanced_arrays extension\n this.device.gl2?.drawElementsInstanced(\n glDrawMode,\n vertexCount || 0, // indexCount?\n glIndexType,\n firstVertex,\n instanceCount || 0\n );\n // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {\n // this.device.gl2.drawRangeElements(glDrawMode, start, end, vertexCount, glIndexType, offset);\n } else if (isIndexed) {\n this.device.gl.drawElements(glDrawMode, vertexCount || 0, glIndexType, firstVertex); // indexCount?\n } else if (isInstanced) {\n this.device.gl2?.drawArraysInstanced(\n glDrawMode,\n firstVertex,\n vertexCount || 0,\n instanceCount || 0\n );\n } else {\n this.device.gl.drawArrays(glDrawMode, firstVertex, vertexCount || 0);\n }\n\n if (transformFeedback) {\n transformFeedback.end();\n }\n }\n );\n\n vertexArray.unbindAfterRender(renderPass);\n\n return true;\n }\n\n // setAttributes(attributes: Record<string, Buffer>): void {}\n // setBindings(bindings: Record<string, Binding>): void {}\n\n protected _compileAndLink() {\n const {gl} = this.device;\n gl.attachShader(this.handle, this.vs.handle);\n gl.attachShader(this.handle, this.fs.handle);\n log.time(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();\n gl.linkProgram(this.handle);\n log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();\n\n // Avoid checking program linking error in production\n // @ts-expect-error\n if (!gl.debug && log.level === 0) {\n // return;\n }\n\n const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);\n if (!linked) {\n throw new Error(`Error linking: ${gl.getProgramInfoLog(this.handle)}`);\n }\n\n gl.validateProgram(this.handle);\n const validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);\n if (!validated) {\n throw new Error(`Error validating: ${gl.getProgramInfoLog(this.handle)}`);\n }\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks if all texture-values uniforms are renderable (i.e. loaded)\n * Update a texture if needed (e.g. from video)\n * Note: This is currently done before every draw call\n */\n _areTexturesRenderable() {\n let texturesRenderable = true;\n\n for (const [, texture] of Object.entries(this._textureUniforms)) {\n texture.update();\n texturesRenderable = texturesRenderable && texture.loaded;\n }\n\n for (const [, texture] of Object.entries(this.bindings)) {\n // texture.update();\n // @ts-expect-error\n if (texture.loaded !== undefined) {\n // @ts-expect-error\n texturesRenderable = texturesRenderable && texture.loaded;\n }\n }\n\n return texturesRenderable;\n }\n\n /**\n * Constant attributes need to be reset before every draw call\n * Any attribute that is disabled in the current vertex array object\n * is read from the context's global constant value for that attribute location.\n * @note Constant attributes are only supported in WebGL, not in WebGPU\n *\n _applyConstantAttributes(vertexArray: WEBGLVertexArray): void {\n const attributeInfos = getAttributeInfosFromLayouts(this.shaderLayout, this.bufferLayout);\n for (const [name, value] of Object.entries(this.)) {\n const attributeInfo = attributeInfos[name];\n if (!attributeInfo) {\n log.warn(\n `Ignoring constant value supplied for unknown attribute \"${name}\" in pipeline \"${this.id}\"`\n )();\n continue; // eslint-disable-line no-continue\n }\n vertexArray.setConstant(attributeInfo.location, value);\n vertexArray.enable(attributeInfo.location, false);\n }\n }\n */\n\n /** Apply any bindings (before each draw call) */\n _applyBindings() {\n this.device.gl.useProgram(this.handle);\n\n const {gl2} = this.device;\n if (!gl2) {\n throw new Error('bindings');\n }\n\n let textureUnit = 0;\n let uniformBufferIndex = 0;\n for (const binding of this.shaderLayout.bindings) {\n // Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block\n const value = this.bindings[binding.name] || this.bindings[binding.name.replace(/Uniforms$/, '')];\n if (!value) {\n throw new Error(`No value for binding ${binding.name} in ${this.id}`);\n }\n switch (binding.type) {\n case 'uniform':\n // Set buffer\n const {name} = binding;\n const location = gl2.getUniformBlockIndex(this.handle, name);\n if (location === GL.INVALID_INDEX) {\n throw new Error(`Invalid uniform block name ${name}`);\n }\n gl2.uniformBlockBinding(this.handle, uniformBufferIndex, location);\n // console.debug(binding, location);\n if (value instanceof WEBGLBuffer) {\n gl2.bindBufferBase(GL.UNIFORM_BUFFER, uniformBufferIndex, value.handle);\n } else {\n gl2.bindBufferRange(\n GL.UNIFORM_BUFFER,\n uniformBufferIndex,\n // @ts-expect-error\n value.buffer.handle,\n // @ts-expect-error\n value.offset || 0,\n // @ts-expect-error\n value.size || value.buffer.byteLength - value.offset\n );\n }\n uniformBufferIndex += 1;\n break;\n\n case 'texture':\n if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {\n throw new Error('texture');\n }\n let texture: WEBGLTexture;\n if (value instanceof WEBGLTexture) {\n texture = value;\n } else if (\n value instanceof WEBGLFramebuffer &&\n value.colorAttachments[0] instanceof WEBGLTexture\n ) {\n log.warn(\n 'Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead'\n )();\n texture = value.colorAttachments[0];\n } else {\n throw new Error('No texture');\n }\n\n gl2.activeTexture(GL.TEXTURE0 + textureUnit);\n gl2.bindTexture(texture.target, texture.handle);\n // gl2.bindSampler(textureUnit, sampler.handle);\n textureUnit += 1;\n break;\n\n case 'sampler':\n // ignore\n break;\n\n case 'storage':\n case 'read-only-storage':\n throw new Error(`binding type '${binding.type}' not supported in WebGL`);\n }\n }\n }\n\n /**\n * Due to program sharing, uniforms need to be reset before every draw call\n * (though caching will avoid redundant WebGL calls)\n */\n _applyUniforms() {\n for (const uniformLayout of this.shaderLayout.uniforms || []) {\n const {name, location, type, textureUnit} = uniformLayout;\n const value = this.uniforms[name] ?? textureUnit;\n if (value !== undefined) {\n setUniform(this.device.gl, location, type, value);\n }\n }\n }\n}\n\n/** Get the primitive type for draw */\nfunction getGLDrawMode(\n topology: PrimitiveTopology\n):\n | GL.POINTS\n | GL.LINES\n | GL.LINE_STRIP\n | GL.LINE_LOOP\n | GL.TRIANGLES\n | GL.TRIANGLE_STRIP\n | GL.TRIANGLE_FAN {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINE_STRIP;\n case 'line-loop-webgl': return GL.LINE_LOOP;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLE_STRIP;\n case 'triangle-fan-webgl': return GL.TRIANGLE_FAN;\n default: throw new Error(topology);\n }\n}\n\n/** Get the primitive type for transform feedback */\nfunction getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINES;\n case 'line-loop-webgl': return GL.LINES;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLES;\n case 'triangle-fan-webgl': return GL.TRIANGLES;\n default: throw new Error(topology);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"webgl-render-pipeline.js","names":["RenderPipeline","cast","splitUniformsAndBindings","log","mergeShaderLayout","GL","getShaderLayout","withDeviceAndGLParameters","setUniform","WEBGLBuffer","WEBGLFramebuffer","WEBGLTexture","LOG_PROGRAM_PERF_PRIORITY","WEBGLRenderPipeline","constructor","device","props","handle","vs","fs","introspectedLayout","uniforms","bindings","varyings","_uniformCount","_uniformSetters","gl","createProgram","setSpectorMetadata","id","bufferMode","SEPARATE_ATTRIBS","length","_this$device$gl","assertWebGL2","gl2","transformFeedbackVaryings","_compileAndLink","shaderLayout","destroy","deleteProgram","destroyed","setBindings","name","value","Object","entries","binding","find","validBindings","map","join","warn","type","buffer","Error","setUniforms","keys","forEach","assign","draw","options","_vertexArray$indexBuf","renderPass","vertexArray","vertexCount","instanceCount","firstVertex","glDrawMode","getGLDrawMode","topology","isIndexed","Boolean","indexBuffer","glIndexType","isInstanced","Number","_areTexturesRenderable","useProgram","bindBeforeRender","primitiveMode","getGLPrimitive","transformFeedback","begin","_applyBindings","_applyUniforms","webglRenderPass","parameters","glParameters","_this$device$gl2","drawElementsInstanced","drawElements","_this$device$gl3","drawArraysInstanced","drawArrays","end","unbindAfterRender","attachShader","time","linkProgram","timeEnd","debug","level","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","validateProgram","validated","VALIDATE_STATUS","texturesRenderable","texture","update","loaded","textureUnit","uniformBufferIndex","replace","location","getUniformBlockIndex","INVALID_INDEX","uniformBlockBinding","bindBufferBase","UNIFORM_BUFFER","bindBufferRange","offset","size","byteLength","colorAttachments","activeTexture","TEXTURE0","bindTexture","target","uniformLayout","_this$uniforms$name","undefined","POINTS","LINES","LINE_STRIP","LINE_LOOP","TRIANGLES","TRIANGLE_STRIP","TRIANGLE_FAN"],"sources":["../../../src/adapter/resources/webgl-render-pipeline.ts"],"sourcesContent":["// luma.gl, MIT license\n// Copyright (c) vis.gl contributors\n\nimport type {UniformValue, RenderPipelineProps, Binding} from '@luma.gl/core';\nimport type {ShaderLayout, PrimitiveTopology} from '@luma.gl/core';\nimport type {RenderPass, VertexArray} from '@luma.gl/core';\nimport {RenderPipeline, cast, splitUniformsAndBindings, log} from '@luma.gl/core';\nimport {mergeShaderLayout} from '@luma.gl/core';\n// import {mergeShaderLayout, getAttributeInfosFromLayouts} from '@luma.gl/core';\nimport {GL} from '@luma.gl/constants';\n\nimport {getShaderLayout} from '../helpers/get-shader-layout';\nimport {withDeviceAndGLParameters} from '../converters/device-parameters';\nimport {setUniform} from '../helpers/set-uniform';\n// import {copyUniform, checkUniformValues} from '../../classes/uniforms';\n\nimport {WebGLDevice} from '../webgl-device';\nimport {WEBGLBuffer} from './webgl-buffer';\nimport {WEBGLShader} from './webgl-shader';\nimport {WEBGLFramebuffer} from './webgl-framebuffer';\nimport {WEBGLTexture} from './webgl-texture';\n// import {WEBGLVertexArray} from './webgl-vertex-array';\nimport {WEBGLRenderPass} from './webgl-render-pass';\n\nconst LOG_PROGRAM_PERF_PRIORITY = 4;\n\n/** Creates a new render pipeline */\nexport class WEBGLRenderPipeline extends RenderPipeline {\n /** The WebGL device that created this render pipeline */\n device: WebGLDevice;\n /** Handle to underlying WebGL program */\n handle: WebGLProgram;\n /** vertex shader */\n vs: WEBGLShader;\n /** fragment shader */\n fs: WEBGLShader;\n /** The layout extracted from shader by WebGL introspection APIs */\n introspectedLayout: ShaderLayout;\n\n /** Uniforms set on this model */\n uniforms: Record<string, UniformValue> = {};\n /** Bindings set on this model */\n bindings: Record<string, Binding> = {};\n /** WebGL varyings */\n varyings: string[] | null = null;\n\n _uniformCount: number = 0;\n _uniformSetters: Record<string, Function> = {}; // TODO are these used?\n\n constructor(device: WebGLDevice, props: RenderPipelineProps) {\n super(device, props);\n this.device = device;\n this.handle = this.props.handle || this.device.gl.createProgram();\n this.device.setSpectorMetadata(this.handle, {id: this.props.id});\n\n // Create shaders if needed\n this.vs = cast<WEBGLShader>(props.vs);\n this.fs = cast<WEBGLShader>(props.fs);\n // assert(this.vs.stage === 'vertex');\n // assert(this.fs.stage === 'fragment');\n\n // Setup varyings if supplied\n // @ts-expect-error WebGL only\n const {varyings, bufferMode = GL.SEPARATE_ATTRIBS} = props;\n if (varyings && varyings.length > 0) {\n this.device.assertWebGL2();\n this.varyings = varyings;\n this.device.gl2?.transformFeedbackVaryings(this.handle, varyings, bufferMode);\n }\n\n this._compileAndLink();\n\n this.introspectedLayout = getShaderLayout(this.device.gl, this.handle);\n // Merge provided layout with introspected layout\n this.shaderLayout = mergeShaderLayout(this.introspectedLayout, props.shaderLayout);\n // Merge layout with any buffer map overrides\n // this.bufferLayout = props.bufferLayout || [];\n // this.shaderLayout = mergeBufferMap(this.shaderLayout, this.bufferLayout);\n }\n\n override destroy(): void {\n if (this.handle) {\n this.device.gl.deleteProgram(this.handle);\n // this.handle = null;\n this.destroyed = true;\n }\n }\n\n // setIndexBuffer(indexBuffer: Buffer): void {\n // const webglBuffer = cast<WEBGLBuffer>(indexBuffer);\n // this.vertexArrayObject.setElementBuffer(webglBuffer);\n // this._indexBuffer = indexBuffer;\n // }\n\n // /** @todo needed for portable model */\n // setAttributes(attributes: Record<string, Buffer>): void {\n // for (const [name, buffer] of Object.entries(attributes)) {\n // const webglBuffer = cast<WEBGLBuffer>(buffer);\n // const attribute = getAttributeLayout(this.layout, name);\n // if (!attribute) {\n // log.warn(\n // `Ignoring buffer supplied for unknown attribute \"${name}\" in pipeline \"${this.id}\" (buffer \"${buffer.id}\")`\n // )();\n // continue;\n // }\n // const decoded = decodeVertexFormat(attribute.format);\n // const {type: typeString, components: size, byteLength: stride, normalized, integer} = decoded;\n // const divisor = attribute.stepMode === 'instance' ? 1 : 0;\n // const type = getWebGLDataType(typeString);\n // this.vertexArrayObject.setBuffer(attribute.location, webglBuffer, {\n // size,\n // type,\n // stride,\n // offset: 0,\n // normalized,\n // integer,\n // divisor\n // });\n // }\n // }\n\n /**\n * Bindings include: textures, samplers and uniform buffers\n * @todo needed for portable model\n */\n setBindings(bindings: Record<string, Binding>): void {\n // if (log.priority >= 2) {\n // checkUniformValues(uniforms, this.id, this._uniformSetters);\n // }\n\n for (const [name, value] of Object.entries(bindings)) {\n // Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block\n // This convention allows shaders to name uniform blocks as `uniform appUniforms {} app;`\n // and reference them as `app` from both GLSL and JS.\n // TODO - this is rather hacky - we could also remap the name directly in the shader layout.\n const binding = \n this.shaderLayout.bindings.find(binding => binding.name === name) ||\n this.shaderLayout.bindings.find(binding => binding.name === `${name}Uniforms`);\n\n if (!binding) {\n const validBindings = this.shaderLayout.bindings\n .map(binding => `\"${binding.name}\"`)\n .join(', ');\n log.warn(\n `Unknown binding \"${name}\" in render pipeline \"${this.id}\", expected one of ${validBindings}`\n )();\n continue; // eslint-disable-line no-continue\n }\n if (!value) {\n log.warn(`Unsetting binding \"${name}\" in render pipeline \"${this.id}\"`)();\n }\n switch (binding.type) {\n case 'uniform':\n // @ts-expect-error\n if (!(value instanceof WEBGLBuffer) && !(value.buffer instanceof WEBGLBuffer)) {\n throw new Error('buffer value');\n }\n break;\n case 'texture':\n if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {\n throw new Error('texture value');\n }\n break;\n case 'sampler':\n log.warn(`Ignoring sampler ${name}`)();\n break;\n default:\n throw new Error(binding.type);\n }\n\n this.bindings[name] = value;\n }\n }\n\n setUniforms(uniforms: Record<string, UniformValue>) {\n const {bindings} = splitUniformsAndBindings(uniforms);\n Object.keys(bindings).forEach(name => {\n log.warn(\n `Unsupported value \"${bindings[name]}\" used in setUniforms() for key ${name}. Use setBindings() instead?`\n )();\n });\n // TODO - check against layout\n Object.assign(this.uniforms, uniforms);\n }\n\n /** @todo needed for portable model\n * @note The WebGL API is offers many ways to draw things\n * This function unifies those ways into a single call using common parameters with sane defaults\n */\n draw(options: {\n renderPass: RenderPass;\n /** vertex attributes */\n vertexArray: VertexArray;\n vertexCount?: number;\n indexCount?: number;\n instanceCount?: number;\n firstVertex?: number;\n firstIndex?: number;\n firstInstance?: number;\n baseVertex?: number;\n }): boolean {\n const {\n renderPass,\n vertexArray,\n vertexCount,\n // indexCount,\n instanceCount,\n firstVertex = 0\n // firstIndex,\n // firstInstance,\n // baseVertex\n } = options;\n\n const glDrawMode = getGLDrawMode(this.props.topology);\n const isIndexed: boolean = Boolean(vertexArray.indexBuffer);\n const glIndexType = (vertexArray.indexBuffer as WEBGLBuffer)?.glIndexType;\n const isInstanced: boolean = Number(instanceCount) > 0;\n\n // Avoid WebGL draw call when not rendering any data or values are incomplete\n // Note: async textures set as uniforms might still be loading.\n // Now that all uniforms have been updated, check if any texture\n // in the uniforms is not yet initialized, then we don't draw\n if (!this._areTexturesRenderable() || vertexCount === 0) {\n // (isInstanced && instanceCount === 0)\n return false;\n }\n\n this.device.gl.useProgram(this.handle);\n\n // Note: Rebinds constant attributes before each draw call\n vertexArray.bindBeforeRender(renderPass);\n\n const primitiveMode = getGLPrimitive(this.props.topology);\n const transformFeedback: any = null;\n if (transformFeedback) {\n transformFeedback.begin(primitiveMode);\n }\n\n // We have to apply bindings before every draw call since other draw calls will overwrite\n this._applyBindings();\n this._applyUniforms();\n\n const webglRenderPass = renderPass as WEBGLRenderPass;\n // // TODO - Use polyfilled WebGL2RenderingContext instead of ANGLE extension\n // if (isIndexed && isInstanced) {\n // // ANGLE_instanced_arrays extension\n // this.device.gl2?.drawElementsInstanced(\n // drawMode,\n // vertexCount || 0, // indexCount?\n // indexType,\n // firstVertex,\n // instanceCount || 0\n // );\n // // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {\n // // this.device.gl2.drawRangeElements(drawMode, start, end, vertexCount, indexType, offset);\n // } else if (isIndexed) {\n // this.device.gl.drawElements(drawMode, vertexCount || 0, indexType, firstVertex); // indexCount?\n // } else if (isInstanced) {\n // this.device.gl2?.drawArraysInstanced(\n // drawMode,\n // firstVertex,\n // vertexCount || 0,\n // instanceCount || 0\n // );\n // } else {\n // this.device.gl.drawArrays(drawMode, firstVertex, vertexCount || 0);\n // }\n // });\n\n withDeviceAndGLParameters(\n this.device,\n this.props.parameters,\n webglRenderPass.glParameters,\n () => {\n if (isIndexed && isInstanced) {\n // ANGLE_instanced_arrays extension\n this.device.gl2?.drawElementsInstanced(\n glDrawMode,\n vertexCount || 0, // indexCount?\n glIndexType,\n firstVertex,\n instanceCount || 0\n );\n // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {\n // this.device.gl2.drawRangeElements(glDrawMode, start, end, vertexCount, glIndexType, offset);\n } else if (isIndexed) {\n this.device.gl.drawElements(glDrawMode, vertexCount || 0, glIndexType, firstVertex); // indexCount?\n } else if (isInstanced) {\n this.device.gl2?.drawArraysInstanced(\n glDrawMode,\n firstVertex,\n vertexCount || 0,\n instanceCount || 0\n );\n } else {\n this.device.gl.drawArrays(glDrawMode, firstVertex, vertexCount || 0);\n }\n\n if (transformFeedback) {\n transformFeedback.end();\n }\n }\n );\n\n vertexArray.unbindAfterRender(renderPass);\n\n return true;\n }\n\n // setAttributes(attributes: Record<string, Buffer>): void {}\n // setBindings(bindings: Record<string, Binding>): void {}\n\n protected _compileAndLink() {\n const {gl} = this.device;\n gl.attachShader(this.handle, this.vs.handle);\n gl.attachShader(this.handle, this.fs.handle);\n log.time(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();\n gl.linkProgram(this.handle);\n log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();\n\n // Avoid checking program linking error in production\n // @ts-expect-error\n if (!gl.debug && log.level === 0) {\n // return;\n }\n\n const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);\n if (!linked) {\n throw new Error(`Error linking: ${gl.getProgramInfoLog(this.handle)}`);\n }\n\n gl.validateProgram(this.handle);\n const validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);\n if (!validated) {\n throw new Error(`Error validating: ${gl.getProgramInfoLog(this.handle)}`);\n }\n }\n\n // PRIVATE METHODS\n\n /**\n * Checks if all texture-values uniforms are renderable (i.e. loaded)\n * Update a texture if needed (e.g. from video)\n * Note: This is currently done before every draw call\n */\n _areTexturesRenderable() {\n let texturesRenderable = true;\n\n for (const [, texture] of Object.entries(this.bindings)) {\n if (texture instanceof WEBGLTexture) {\n texture.update();\n texturesRenderable = texturesRenderable && texture.loaded;\n }\n }\n\n return texturesRenderable;\n }\n\n /**\n * Constant attributes need to be reset before every draw call\n * Any attribute that is disabled in the current vertex array object\n * is read from the context's global constant value for that attribute location.\n * @note Constant attributes are only supported in WebGL, not in WebGPU\n *\n _applyConstantAttributes(vertexArray: WEBGLVertexArray): void {\n const attributeInfos = getAttributeInfosFromLayouts(this.shaderLayout, this.bufferLayout);\n for (const [name, value] of Object.entries(this.)) {\n const attributeInfo = attributeInfos[name];\n if (!attributeInfo) {\n log.warn(\n `Ignoring constant value supplied for unknown attribute \"${name}\" in pipeline \"${this.id}\"`\n )();\n continue; // eslint-disable-line no-continue\n }\n vertexArray.setConstant(attributeInfo.location, value);\n vertexArray.enable(attributeInfo.location, false);\n }\n }\n */\n\n /** Apply any bindings (before each draw call) */\n _applyBindings() {\n this.device.gl.useProgram(this.handle);\n\n const {gl2} = this.device;\n if (!gl2) {\n throw new Error('bindings');\n }\n\n let textureUnit = 0;\n let uniformBufferIndex = 0;\n for (const binding of this.shaderLayout.bindings) {\n // Accept both `xyz` and `xyzUniforms` as valid names for `xyzUniforms` uniform block\n const value = this.bindings[binding.name] || this.bindings[binding.name.replace(/Uniforms$/, '')];\n if (!value) {\n throw new Error(`No value for binding ${binding.name} in ${this.id}`);\n }\n switch (binding.type) {\n case 'uniform':\n // Set buffer\n const {name} = binding;\n const location = gl2.getUniformBlockIndex(this.handle, name);\n if (location === GL.INVALID_INDEX) {\n throw new Error(`Invalid uniform block name ${name}`);\n }\n gl2.uniformBlockBinding(this.handle, uniformBufferIndex, location);\n // console.debug(binding, location);\n if (value instanceof WEBGLBuffer) {\n gl2.bindBufferBase(GL.UNIFORM_BUFFER, uniformBufferIndex, value.handle);\n } else {\n gl2.bindBufferRange(\n GL.UNIFORM_BUFFER,\n uniformBufferIndex,\n // @ts-expect-error\n value.buffer.handle,\n // @ts-expect-error\n value.offset || 0,\n // @ts-expect-error\n value.size || value.buffer.byteLength - value.offset\n );\n }\n uniformBufferIndex += 1;\n break;\n\n case 'texture':\n if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {\n throw new Error('texture');\n }\n let texture: WEBGLTexture;\n if (value instanceof WEBGLTexture) {\n texture = value;\n } else if (\n value instanceof WEBGLFramebuffer &&\n value.colorAttachments[0] instanceof WEBGLTexture\n ) {\n log.warn(\n 'Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead'\n )();\n texture = value.colorAttachments[0];\n } else {\n throw new Error('No texture');\n }\n\n gl2.activeTexture(GL.TEXTURE0 + textureUnit);\n gl2.bindTexture(texture.target, texture.handle);\n // gl2.bindSampler(textureUnit, sampler.handle);\n textureUnit += 1;\n break;\n\n case 'sampler':\n // ignore\n break;\n\n case 'storage':\n case 'read-only-storage':\n throw new Error(`binding type '${binding.type}' not supported in WebGL`);\n }\n }\n }\n\n /**\n * Due to program sharing, uniforms need to be reset before every draw call\n * (though caching will avoid redundant WebGL calls)\n */\n _applyUniforms() {\n for (const uniformLayout of this.shaderLayout.uniforms || []) {\n const {name, location, type, textureUnit} = uniformLayout;\n const value = this.uniforms[name] ?? textureUnit;\n if (value !== undefined) {\n setUniform(this.device.gl, location, type, value);\n }\n }\n }\n}\n\n/** Get the primitive type for draw */\nfunction getGLDrawMode(\n topology: PrimitiveTopology\n):\n | GL.POINTS\n | GL.LINES\n | GL.LINE_STRIP\n | GL.LINE_LOOP\n | GL.TRIANGLES\n | GL.TRIANGLE_STRIP\n | GL.TRIANGLE_FAN {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINE_STRIP;\n case 'line-loop-webgl': return GL.LINE_LOOP;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLE_STRIP;\n case 'triangle-fan-webgl': return GL.TRIANGLE_FAN;\n default: throw new Error(topology);\n }\n}\n\n/** Get the primitive type for transform feedback */\nfunction getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {\n // prettier-ignore\n switch (topology) {\n case 'point-list': return GL.POINTS;\n case 'line-list': return GL.LINES;\n case 'line-strip': return GL.LINES;\n case 'line-loop-webgl': return GL.LINES;\n case 'triangle-list': return GL.TRIANGLES;\n case 'triangle-strip': return GL.TRIANGLES;\n case 'triangle-fan-webgl': return GL.TRIANGLES;\n default: throw new Error(topology);\n }\n}\n"],"mappings":"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"}
|
package/dist/dist.dev.js
CHANGED
|
@@ -8951,8 +8951,6 @@ ${formattedLog}`)();
|
|
|
8951
8951
|
bindings = {};
|
|
8952
8952
|
/** WebGL varyings */
|
|
8953
8953
|
varyings = null;
|
|
8954
|
-
_textureUniforms = {};
|
|
8955
|
-
_textureIndexCounter = 0;
|
|
8956
8954
|
_uniformCount = 0;
|
|
8957
8955
|
_uniformSetters = {};
|
|
8958
8956
|
// TODO are these used?
|
|
@@ -9147,12 +9145,9 @@ ${formattedLog}`)();
|
|
|
9147
9145
|
*/
|
|
9148
9146
|
_areTexturesRenderable() {
|
|
9149
9147
|
let texturesRenderable = true;
|
|
9150
|
-
for (const [, texture] of Object.entries(this._textureUniforms)) {
|
|
9151
|
-
texture.update();
|
|
9152
|
-
texturesRenderable = texturesRenderable && texture.loaded;
|
|
9153
|
-
}
|
|
9154
9148
|
for (const [, texture] of Object.entries(this.bindings)) {
|
|
9155
|
-
if (texture
|
|
9149
|
+
if (texture instanceof WEBGLTexture) {
|
|
9150
|
+
texture.update();
|
|
9156
9151
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
9157
9152
|
}
|
|
9158
9153
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -5223,8 +5223,6 @@ var WEBGLRenderPipeline = class extends import_core22.RenderPipeline {
|
|
|
5223
5223
|
this.bindings = {};
|
|
5224
5224
|
/** WebGL varyings */
|
|
5225
5225
|
this.varyings = null;
|
|
5226
|
-
this._textureUniforms = {};
|
|
5227
|
-
this._textureIndexCounter = 0;
|
|
5228
5226
|
this._uniformCount = 0;
|
|
5229
5227
|
this._uniformSetters = {};
|
|
5230
5228
|
this.device = device;
|
|
@@ -5423,12 +5421,9 @@ var WEBGLRenderPipeline = class extends import_core22.RenderPipeline {
|
|
|
5423
5421
|
*/
|
|
5424
5422
|
_areTexturesRenderable() {
|
|
5425
5423
|
let texturesRenderable = true;
|
|
5426
|
-
for (const [, texture] of Object.entries(this._textureUniforms)) {
|
|
5427
|
-
texture.update();
|
|
5428
|
-
texturesRenderable = texturesRenderable && texture.loaded;
|
|
5429
|
-
}
|
|
5430
5424
|
for (const [, texture] of Object.entries(this.bindings)) {
|
|
5431
|
-
if (texture
|
|
5425
|
+
if (texture instanceof WEBGLTexture) {
|
|
5426
|
+
texture.update();
|
|
5432
5427
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
5433
5428
|
}
|
|
5434
5429
|
}
|
package/dist.min.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
6
|
else root['luma'] = factory();})(globalThis, function () {
|
|
7
|
-
var __exports__=(()=>{var Co=Object.create;var jt=Object.defineProperty;var Io=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var Po=Object.getPrototypeOf,Fo=Object.prototype.hasOwnProperty;var Br=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bo=(e,t)=>{for(var r in t)jt(e,r,{get:t[r],enumerable:!0})},Fn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of yo(t))!Fo.call(e,o)&&o!==r&&jt(e,o,{get:()=>t[o],enumerable:!(n=Io(t,o))||n.enumerable});return e};var We=(e,t,r)=>(r=e!=null?Co(Po(e)):{},Fn(t||!e||!e.__esModule?jt(r,"default",{value:e,enumerable:!0}):r,e)),Mo=e=>Fn(jt({},"__esModule",{value:!0}),e);var Ln=Br((mc,De)=>{function Dr(e){return De.exports=Dr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},De.exports.__esModule=!0,De.exports.default=De.exports,Dr(e)}De.exports=Dr,De.exports.__esModule=!0,De.exports.default=De.exports});var Vn=Br((hc,xe)=>{var Hn=Ln().default;function Wn(){"use strict";xe.exports=Wn=function(){return e},xe.exports.__esModule=!0,xe.exports.default=xe.exports;var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(h,T,S){h[T]=S.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function f(h,T,S){return Object.defineProperty(h,T,{value:S,enumerable:!0,configurable:!0,writable:!0}),h[T]}try{f({},"")}catch{f=function(S,M,U){return S[M]=U}}function c(h,T,S,M){var U=T&&T.prototype instanceof R?T:R,D=Object.create(U.prototype),k=new re(M||[]);return n(D,"_invoke",{value:H(h,S,k)}),D}function E(h,T,S){try{return{type:"normal",arg:h.call(T,S)}}catch(M){return{type:"throw",arg:M}}}e.wrap=c;var l={};function R(){}function d(){}function A(){}var m={};f(m,i,function(){return this});var O=Object.getPrototypeOf,g=O&&O(O(K([])));g&&g!==t&&r.call(g,i)&&(m=g);var N=A.prototype=R.prototype=Object.create(m);function P(h){["next","throw","return"].forEach(function(T){f(h,T,function(S){return this._invoke(T,S)})})}function F(h,T){function S(U,D,k,ne){var Q=E(h[U],h,D);if(Q.type!=="throw"){var de=Q.arg,ae=de.value;return ae&&Hn(ae)=="object"&&r.call(ae,"__await")?T.resolve(ae.__await).then(function(Te){S("next",Te,k,ne)},function(Te){S("throw",Te,k,ne)}):T.resolve(ae).then(function(Te){de.value=Te,k(de)},function(Te){return S("throw",Te,k,ne)})}ne(Q.arg)}var M;n(this,"_invoke",{value:function(D,k){function ne(){return new T(function(Q,de){S(D,k,Q,de)})}return M=M?M.then(ne,ne):ne()}})}function H(h,T,S){var M="suspendedStart";return function(U,D){if(M==="executing")throw new Error("Generator is already running");if(M==="completed"){if(U==="throw")throw D;return{value:void 0,done:!0}}for(S.method=U,S.arg=D;;){var k=S.delegate;if(k){var ne=x(k,S);if(ne){if(ne===l)continue;return ne}}if(S.method==="next")S.sent=S._sent=S.arg;else if(S.method==="throw"){if(M==="suspendedStart")throw M="completed",S.arg;S.dispatchException(S.arg)}else S.method==="return"&&S.abrupt("return",S.arg);M="executing";var Q=E(h,T,S);if(Q.type==="normal"){if(M=S.done?"completed":"suspendedYield",Q.arg===l)continue;return{value:Q.arg,done:S.done}}Q.type==="throw"&&(M="completed",S.method="throw",S.arg=Q.arg)}}}function x(h,T){var S=T.method,M=h.iterator[S];if(M===void 0)return T.delegate=null,S==="throw"&&h.iterator.return&&(T.method="return",T.arg=void 0,x(h,T),T.method==="throw")||S!=="return"&&(T.method="throw",T.arg=new TypeError("The iterator does not provide a '"+S+"' method")),l;var U=E(M,h.iterator,T.arg);if(U.type==="throw")return T.method="throw",T.arg=U.arg,T.delegate=null,l;var D=U.arg;return D?D.done?(T[h.resultName]=D.value,T.next=h.nextLoc,T.method!=="return"&&(T.method="next",T.arg=void 0),T.delegate=null,l):D:(T.method="throw",T.arg=new TypeError("iterator result is not an object"),T.delegate=null,l)}function Z(h){var T={tryLoc:h[0]};1 in h&&(T.catchLoc=h[1]),2 in h&&(T.finallyLoc=h[2],T.afterLoc=h[3]),this.tryEntries.push(T)}function z(h){var T=h.completion||{};T.type="normal",delete T.arg,h.completion=T}function re(h){this.tryEntries=[{tryLoc:"root"}],h.forEach(Z,this),this.reset(!0)}function K(h){if(h||h===""){var T=h[i];if(T)return T.call(h);if(typeof h.next=="function")return h;if(!isNaN(h.length)){var S=-1,M=function U(){for(;++S<h.length;)if(r.call(h,S))return U.value=h[S],U.done=!1,U;return U.value=void 0,U.done=!0,U};return M.next=M}}throw new TypeError(Hn(h)+" is not iterable")}return d.prototype=A,n(N,"constructor",{value:A,configurable:!0}),n(A,"constructor",{value:d,configurable:!0}),d.displayName=f(A,u,"GeneratorFunction"),e.isGeneratorFunction=function(h){var T=typeof h=="function"&&h.constructor;return!!T&&(T===d||(T.displayName||T.name)==="GeneratorFunction")},e.mark=function(h){return Object.setPrototypeOf?Object.setPrototypeOf(h,A):(h.__proto__=A,f(h,u,"GeneratorFunction")),h.prototype=Object.create(N),h},e.awrap=function(h){return{__await:h}},P(F.prototype),f(F.prototype,s,function(){return this}),e.AsyncIterator=F,e.async=function(h,T,S,M,U){U===void 0&&(U=Promise);var D=new F(c(h,T,S,M),U);return e.isGeneratorFunction(T)?D:D.next().then(function(k){return k.done?k.value:D.next()})},P(N),f(N,u,"Generator"),f(N,i,function(){return this}),f(N,"toString",function(){return"[object Generator]"}),e.keys=function(h){var T=Object(h),S=[];for(var M in T)S.push(M);return S.reverse(),function U(){for(;S.length;){var D=S.pop();if(D in T)return U.value=D,U.done=!1,U}return U.done=!0,U}},e.values=K,re.prototype={constructor:re,reset:function(T){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(z),!T)for(var S in this)S.charAt(0)==="t"&&r.call(this,S)&&!isNaN(+S.slice(1))&&(this[S]=void 0)},stop:function(){this.done=!0;var T=this.tryEntries[0].completion;if(T.type==="throw")throw T.arg;return this.rval},dispatchException:function(T){if(this.done)throw T;var S=this;function M(de,ae){return k.type="throw",k.arg=T,S.next=de,ae&&(S.method="next",S.arg=void 0),!!ae}for(var U=this.tryEntries.length-1;U>=0;--U){var D=this.tryEntries[U],k=D.completion;if(D.tryLoc==="root")return M("end");if(D.tryLoc<=this.prev){var ne=r.call(D,"catchLoc"),Q=r.call(D,"finallyLoc");if(ne&&Q){if(this.prev<D.catchLoc)return M(D.catchLoc,!0);if(this.prev<D.finallyLoc)return M(D.finallyLoc)}else if(ne){if(this.prev<D.catchLoc)return M(D.catchLoc,!0)}else{if(!Q)throw new Error("try statement without catch or finally");if(this.prev<D.finallyLoc)return M(D.finallyLoc)}}}},abrupt:function(T,S){for(var M=this.tryEntries.length-1;M>=0;--M){var U=this.tryEntries[M];if(U.tryLoc<=this.prev&&r.call(U,"finallyLoc")&&this.prev<U.finallyLoc){var D=U;break}}D&&(T==="break"||T==="continue")&&D.tryLoc<=S&&S<=D.finallyLoc&&(D=null);var k=D?D.completion:{};return k.type=T,k.arg=S,D?(this.method="next",this.next=D.finallyLoc,l):this.complete(k)},complete:function(T,S){if(T.type==="throw")throw T.arg;return T.type==="break"||T.type==="continue"?this.next=T.arg:T.type==="return"?(this.rval=this.arg=T.arg,this.method="return",this.next="end"):T.type==="normal"&&S&&(this.next=S),l},finish:function(T){for(var S=this.tryEntries.length-1;S>=0;--S){var M=this.tryEntries[S];if(M.finallyLoc===T)return this.complete(M.completion,M.afterLoc),z(M),l}},catch:function(T){for(var S=this.tryEntries.length-1;S>=0;--S){var M=this.tryEntries[S];if(M.tryLoc===T){var U=M.completion;if(U.type==="throw"){var D=U.arg;z(M)}return D}}throw new Error("illegal catch attempt")},delegateYield:function(T,S,M){return this.delegate={iterator:K(T),resultName:S,nextLoc:M},this.method==="next"&&(this.arg=void 0),l}},e}xe.exports=Wn,xe.exports.__esModule=!0,xe.exports.default=xe.exports});var we=Br((Sc,jn)=>{var Yt=Vn()();jn.exports=Yt;try{regeneratorRuntime=Yt}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Yt:Function("r","regeneratorRuntime = r")(Yt)}});var $_={};Bo($_,{Accessor:()=>Ne,BufferWithAccessor:()=>mt,WEBGLBuffer:()=>ge,WEBGLCommandEncoder:()=>yr,WEBGLFramebuffer:()=>Be,WEBGLRenderPass:()=>Nr,WEBGLRenderPipeline:()=>Ir,WEBGLRenderbuffer:()=>At,WEBGLResource:()=>Wt,WEBGLSampler:()=>Je,WEBGLShader:()=>br,WEBGLTexture:()=>le,WEBGLVertexArray:()=>Pr,WebGLCanvasContext:()=>vr,WebGLDevice:()=>ue,WebGLResource:()=>Wt,_TEXTURE_FORMATS:()=>Qe,_checkFloat32ColorAttachment:()=>Tr,assertWebGL2Context:()=>_t,assertWebGLContext:()=>_r,clear:()=>po,convertGLToTextureFormat:()=>qe,copyToTexture:()=>vo,getGLParameters:()=>lr,getShaderLayout:()=>Cr,getWebGL2Context:()=>Pt,isWebGL:()=>Qr,isWebGL2:()=>W,polyfillContext:()=>Er,popContextState:()=>Se,pushContextState:()=>ve,readPixelsToArray:()=>go,readPixelsToBuffer:()=>Oo,registerHeadlessGL:()=>Dn,resetGLParameters:()=>si,setDeviceParameters:()=>mr,setGLParameters:()=>he,trackContextState:()=>Dt,withDeviceParameters:()=>Ni,withGLParameters:()=>Ee});function _e(e){return _e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_e(e)}function Mr(e,t){if(_e(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(_e(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ht(e){var t=Mr(e,"string");return _e(t)==="symbol"?t:String(t)}function _(e,t,r){return t=ht(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Mn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Bn(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bn(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Do="Failed to create WebGL context in Node.js, headless gl returned null",xo=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Uo={width:1,height:1,debug:!0,throwOnError:!1},Kt=null;function Dn(e){Kt=e}function xn(){return Kt!==null}function Un(e){e=Mn(Mn({},Uo),e);var t=e,r=t.width,n=t.height,o=t.webgl1,i=t.webgl2;if(i&&!o)throw new Error("headless-gl does not support WebGL2");if(!Kt)throw new Error(xo);var s=Kt(r,n,e);if(!s)throw new Error(Do);return s}function wn(e,t,r,n,o,i,s){try{var u=e[i](s),f=u.value}catch(c){r(c);return}u.done?t(f):Promise.resolve(f).then(n,o)}function oe(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function s(f){wn(i,n,o,s,u,"next",f)}function u(f){wn(i,n,o,s,u,"throw",f)}s(void 0)})}}function I(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Xn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ht(n.key),n)}}function y(e,t,r){return t&&Xn(e.prototype,t),r&&Xn(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ce(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ve(e,t){return Ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ve(e,t)}function w(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ve(e,t)}function X(e,t){if(t&&(_e(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ce(e)}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},v(e)}var Cn=We(we(),1);function St(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function q(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||St()}var wo=globalThis.self||globalThis.window||globalThis.global,et=globalThis.window||globalThis.self||globalThis.global,Xo=globalThis.document||{},je=globalThis.process||{},Lo=globalThis.console,Kn=globalThis.navigator||{};var kt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Cc=q();var xr=globalThis;function Gt(e){if(!e&&!q())return"Node";if(St(e))return"Electron";let t=e||Kn.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":xr.chrome?"Chrome":xr.safari?"Safari":xr.mozInnerScreenX?"Firefox":"Unknown"}function Ho(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var zt=class{constructor(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=Ho(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function Yn(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function kn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function $t(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));let i=e.width*r,s=e.height*r,u=["font-size:1px;","padding:".concat(Math.floor(s/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(s,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(s,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),u]}var Zt;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Zt||(Zt={}));var Wo=10;function Gn(e){return typeof e!="string"?e:(e=e.toUpperCase(),Zt[e]||Zt.WHITE)}function zn(e,t,r){if(!q&&typeof e=="string"){if(t){let n=Gn(t);e="\x1B[".concat(n,"m").concat(e,"\x1B[39m")}if(r){let n=Gn(r);e="\x1B[".concat(n+Wo,"m").concat(e,"\x1B[49m")}}return e}function $n(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),o=e;for(let i of n){let s=o[i];typeof s=="function"&&(t.find(u=>i===u)||(o[i]=s.bind(e)))}}function tt(e,t){if(!e)throw new Error(t||"Assertion failed")}function Ke(){let e;if(q()&&et.performance){var t,r;e=et===null||et===void 0||(t=et.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in je){var n;let o=je===null||je===void 0||(n=je.hrtime)===null||n===void 0?void 0:n.call(je);e=o[0]*1e3+o[1]/1e6}else e=Date.now();return e}var rt={debug:q()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Vo={enabled:!0,level:0};function pe(){}var Zn={},Qn={once:!0},Xe=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=kt,this._startTs=Ke(),this._deltaTs=Ke(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new zt("__probe-".concat(this.id,"__"),Vo),this.timeStamp("".concat(this.id," started")),$n(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Ke()-this._startTs).toPrecision(10))}getDelta(){return Number((Ke()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){tt(t,r)}warn(t){return this._getLogFunction(0,t,rt.warn,arguments,Qn)}error(t){return this._getLogFunction(0,t,rt.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,rt.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,rt.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,rt.debug||rt.info,arguments,Qn)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||pe,n&&[n],{tag:ko(r)}):pe}image(t){let{logLevel:r,priority:n,image:o,message:i="",scale:s=1}=t;return this._shouldLog(r||n)?q()?Yo({image:o,message:i,scale:s}):Ko({image:o,message:i,scale:s}):pe}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||pe)}group(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=qn({logLevel:t,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||pe)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=Jn(t)}_getLogFunction(t,r,n,o,i){if(this._shouldLog(t)){i=qn({logLevel:t,message:r,args:o,opts:i}),n=n||i.method,tt(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=Ke();let s=i.tag||i.message;if(i.once&&s)if(!Zn[s])Zn[s]=Ke();else return pe;return r=jo(this.id,i.message,i),n.bind(console,r,...i.args)}return pe}};Xe.VERSION=kt;function Jn(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return tt(Number.isFinite(t)&&t>=0),t}function qn(e){let{logLevel:t,message:r}=e;e.logLevel=Jn(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return tt(o==="string"||o==="object"),Object.assign(e,{args:n},e.opts)}function jo(e,t,r){if(typeof t=="string"){let n=r.time?kn(Yn(r.total)):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=zn(t,r.color,r.background)}return t}function Ko(e){let{image:t,message:r="",scale:n=1}=e;return console.warn("removed"),pe}function Yo(e){let{image:t,message:r="",scale:n=1}=e;if(typeof t=="string"){let i=new Image;return i.onload=()=>{let s=$t(i,r,n);console.log(...s)},i.src=t,pe}let o=t.nodeName||"";if(o.toLowerCase()==="img")return console.log(...$t(t,r,n)),pe;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...$t(i,r,n)),i.src=t.toDataURL(),pe}return pe}function ko(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var aE=new Xe({id:"@probe.gl/log"});var C=new Xe({id:"luma.gl"});function gt(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var Ye=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=gt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(gt()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var nt=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,o=this.stats[r];return o||(t instanceof Ye?o=t:o=new Ye(r,n),this.stats[r]=o),o}};var Go=function(){function e(){I(this,e),this.stats=new Map}var t=e.prototype;return t.getStats=function(n){return this.get(n)},t.get=function(n){return this.stats.has(n)||this.stats.set(n,new nt({id:n})),this.stats.get(n)},y(e)}(),Qt=new Go;function zo(){var e=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==e)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(e));return globalThis.luma||(q()&&C.log(1,"luma.gl ".concat(e," - ").concat(t))(),globalThis.luma=globalThis.luma||{VERSION:e,version:e,log:C,stats:Qt}),e}var ea=zo();function $o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)?e:null}function ta(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number"?e:null:$o(e)}var Ur={};function Oe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Ur[e]=Ur[e]||1;var t=Ur[e]++;return"".concat(e,"-").concat(t)}function qt(e){return e>0&&(e&e-1)===0}function at(e){var t=!0;for(var r in e){t=!1;break}return t}function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Zo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ra(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var j=function(){function e(r,n,o){if(I(this,e),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!r)throw new Error("no device");this._device=r,this.props=Qo(n,o);var i=this.props.id!=="undefined"?this.props.id:Oe(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var t=e.prototype;return t.destroy=function(){this.destroyResource()},t.delete=function(){return this.destroy(),this},t.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},t.getProps=function(){return this.props},t.attachResource=function(n){this._attachedResources.add(n)},t.detachResource=function(n){this._attachedResources.delete(n)},t.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},t.destroyAttachedResources=function(){for(var n=0,o=Object.values(this._attachedResources);n<o.length;n++){var i=o[n];i.destroy()}this._attachedResources=new Set},t.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},t.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},t.trackAllocatedMemory=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=this._device.statsManager.getStats("Resource Counts");i.get("GPU Memory").addCount(n),i.get("".concat(o," Memory")).addCount(n),this.allocatedBytes=n},t.trackDeallocatedMemory=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").subtractCount(this.allocatedBytes),o.get("".concat(n," Memory")).subtractCount(this.allocatedBytes),this.allocatedBytes=0},t.addStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("Resources Created").incrementCount(),n.get("".concat(o,"s Created")).incrementCount(),n.get("".concat(o,"s Active")).incrementCount()},y(e)}();j.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Qo(e,t){var r=Zo({},t);for(var n in e)e[n]!==void 0&&(r[n]=e[n]);return r}var aa;function na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function wr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?na(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):na(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function qo(e){var t=Jo();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Jo(){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}}aa=Symbol.toStringTag;var ee=function(e){w(r,e);var t=qo(r);function r(o,i){var s;I(this,r);var u=wr({},i);return(i.usage||0)&r.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?u.indexType="uint32":i.data instanceof Uint16Array&&(u.indexType="uint16")),s=t.call(this,o,u,r.defaultProps),s.usage=void 0,s.indexType=void 0,s.byteLength=void 0,s.usage=i.usage||0,s.indexType=u.indexType,s}var n=r.prototype;return n.write=function(i,s){throw new Error("not implemented")},n.readAsync=function(i,s){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},y(r,[{key:aa,get:function(){return"Buffer"}}]),r}(j);ee.defaultProps=wr(wr({},j.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});ee.MAP_READ=1;ee.MAP_WRITE=2;ee.COPY_SRC=4;ee.COPY_DST=8;ee.INDEX=16;ee.VERTEX=32;ee.UNIFORM=64;ee.STORAGE=128;ee.INDIRECT=256;ee.QUERY_RESOLVE=512;var oa;function ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ia(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ia(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var es={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(C.get("debug")),break:[],gl:null};oa=Symbol.toStringTag;var Ot=function(){function e(r){I(this,e),this.id=void 0,this.statsManager=Qt,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Xr(Xr({},es),r),this.id=this.props.id||Oe(this[Symbol.toStringTag].toLowerCase())}var t=e.prototype;return t.loseDevice=function(){return!1},t.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},t.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},t.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},t._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Xr({},n);return(n.usage||0)&ee.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":C.warn("indices buffer content must be of integer type")()),o},y(e,[{key:oa,get:function(){return"Device"}}]),e}();Ot.VERSION=ea;function vt(e){if(Array.isArray(e))return e}function Lr(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,s,u=[],f=!0,c=!1;try{if(i=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;f=!1}else for(;!(f=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);f=!0);}catch(E){c=!0,o=E}finally{try{if(!f&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw o}}return u}}function it(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 ke(e,t){if(e){if(typeof e=="string")return it(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 it(e,t)}}function bt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
7
|
+
var __exports__=(()=>{var Co=Object.create;var jt=Object.defineProperty;var Io=Object.getOwnPropertyDescriptor;var yo=Object.getOwnPropertyNames;var Po=Object.getPrototypeOf,Fo=Object.prototype.hasOwnProperty;var Br=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Bo=(e,t)=>{for(var r in t)jt(e,r,{get:t[r],enumerable:!0})},Fn=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of yo(t))!Fo.call(e,o)&&o!==r&&jt(e,o,{get:()=>t[o],enumerable:!(n=Io(t,o))||n.enumerable});return e};var We=(e,t,r)=>(r=e!=null?Co(Po(e)):{},Fn(t||!e||!e.__esModule?jt(r,"default",{value:e,enumerable:!0}):r,e)),Mo=e=>Fn(jt({},"__esModule",{value:!0}),e);var Ln=Br((mc,De)=>{function Dr(e){return De.exports=Dr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},De.exports.__esModule=!0,De.exports.default=De.exports,Dr(e)}De.exports=Dr,De.exports.__esModule=!0,De.exports.default=De.exports});var Vn=Br((hc,xe)=>{var Hn=Ln().default;function Wn(){"use strict";xe.exports=Wn=function(){return e},xe.exports.__esModule=!0,xe.exports.default=xe.exports;var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(h,T,S){h[T]=S.value},o=typeof Symbol=="function"?Symbol:{},i=o.iterator||"@@iterator",s=o.asyncIterator||"@@asyncIterator",u=o.toStringTag||"@@toStringTag";function f(h,T,S){return Object.defineProperty(h,T,{value:S,enumerable:!0,configurable:!0,writable:!0}),h[T]}try{f({},"")}catch{f=function(S,M,U){return S[M]=U}}function c(h,T,S,M){var U=T&&T.prototype instanceof R?T:R,D=Object.create(U.prototype),k=new re(M||[]);return n(D,"_invoke",{value:H(h,S,k)}),D}function E(h,T,S){try{return{type:"normal",arg:h.call(T,S)}}catch(M){return{type:"throw",arg:M}}}e.wrap=c;var l={};function R(){}function d(){}function A(){}var m={};f(m,i,function(){return this});var O=Object.getPrototypeOf,g=O&&O(O(K([])));g&&g!==t&&r.call(g,i)&&(m=g);var N=A.prototype=R.prototype=Object.create(m);function P(h){["next","throw","return"].forEach(function(T){f(h,T,function(S){return this._invoke(T,S)})})}function F(h,T){function S(U,D,k,ne){var Q=E(h[U],h,D);if(Q.type!=="throw"){var de=Q.arg,ae=de.value;return ae&&Hn(ae)=="object"&&r.call(ae,"__await")?T.resolve(ae.__await).then(function(Te){S("next",Te,k,ne)},function(Te){S("throw",Te,k,ne)}):T.resolve(ae).then(function(Te){de.value=Te,k(de)},function(Te){return S("throw",Te,k,ne)})}ne(Q.arg)}var M;n(this,"_invoke",{value:function(D,k){function ne(){return new T(function(Q,de){S(D,k,Q,de)})}return M=M?M.then(ne,ne):ne()}})}function H(h,T,S){var M="suspendedStart";return function(U,D){if(M==="executing")throw new Error("Generator is already running");if(M==="completed"){if(U==="throw")throw D;return{value:void 0,done:!0}}for(S.method=U,S.arg=D;;){var k=S.delegate;if(k){var ne=x(k,S);if(ne){if(ne===l)continue;return ne}}if(S.method==="next")S.sent=S._sent=S.arg;else if(S.method==="throw"){if(M==="suspendedStart")throw M="completed",S.arg;S.dispatchException(S.arg)}else S.method==="return"&&S.abrupt("return",S.arg);M="executing";var Q=E(h,T,S);if(Q.type==="normal"){if(M=S.done?"completed":"suspendedYield",Q.arg===l)continue;return{value:Q.arg,done:S.done}}Q.type==="throw"&&(M="completed",S.method="throw",S.arg=Q.arg)}}}function x(h,T){var S=T.method,M=h.iterator[S];if(M===void 0)return T.delegate=null,S==="throw"&&h.iterator.return&&(T.method="return",T.arg=void 0,x(h,T),T.method==="throw")||S!=="return"&&(T.method="throw",T.arg=new TypeError("The iterator does not provide a '"+S+"' method")),l;var U=E(M,h.iterator,T.arg);if(U.type==="throw")return T.method="throw",T.arg=U.arg,T.delegate=null,l;var D=U.arg;return D?D.done?(T[h.resultName]=D.value,T.next=h.nextLoc,T.method!=="return"&&(T.method="next",T.arg=void 0),T.delegate=null,l):D:(T.method="throw",T.arg=new TypeError("iterator result is not an object"),T.delegate=null,l)}function Z(h){var T={tryLoc:h[0]};1 in h&&(T.catchLoc=h[1]),2 in h&&(T.finallyLoc=h[2],T.afterLoc=h[3]),this.tryEntries.push(T)}function z(h){var T=h.completion||{};T.type="normal",delete T.arg,h.completion=T}function re(h){this.tryEntries=[{tryLoc:"root"}],h.forEach(Z,this),this.reset(!0)}function K(h){if(h||h===""){var T=h[i];if(T)return T.call(h);if(typeof h.next=="function")return h;if(!isNaN(h.length)){var S=-1,M=function U(){for(;++S<h.length;)if(r.call(h,S))return U.value=h[S],U.done=!1,U;return U.value=void 0,U.done=!0,U};return M.next=M}}throw new TypeError(Hn(h)+" is not iterable")}return d.prototype=A,n(N,"constructor",{value:A,configurable:!0}),n(A,"constructor",{value:d,configurable:!0}),d.displayName=f(A,u,"GeneratorFunction"),e.isGeneratorFunction=function(h){var T=typeof h=="function"&&h.constructor;return!!T&&(T===d||(T.displayName||T.name)==="GeneratorFunction")},e.mark=function(h){return Object.setPrototypeOf?Object.setPrototypeOf(h,A):(h.__proto__=A,f(h,u,"GeneratorFunction")),h.prototype=Object.create(N),h},e.awrap=function(h){return{__await:h}},P(F.prototype),f(F.prototype,s,function(){return this}),e.AsyncIterator=F,e.async=function(h,T,S,M,U){U===void 0&&(U=Promise);var D=new F(c(h,T,S,M),U);return e.isGeneratorFunction(T)?D:D.next().then(function(k){return k.done?k.value:D.next()})},P(N),f(N,u,"Generator"),f(N,i,function(){return this}),f(N,"toString",function(){return"[object Generator]"}),e.keys=function(h){var T=Object(h),S=[];for(var M in T)S.push(M);return S.reverse(),function U(){for(;S.length;){var D=S.pop();if(D in T)return U.value=D,U.done=!1,U}return U.done=!0,U}},e.values=K,re.prototype={constructor:re,reset:function(T){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(z),!T)for(var S in this)S.charAt(0)==="t"&&r.call(this,S)&&!isNaN(+S.slice(1))&&(this[S]=void 0)},stop:function(){this.done=!0;var T=this.tryEntries[0].completion;if(T.type==="throw")throw T.arg;return this.rval},dispatchException:function(T){if(this.done)throw T;var S=this;function M(de,ae){return k.type="throw",k.arg=T,S.next=de,ae&&(S.method="next",S.arg=void 0),!!ae}for(var U=this.tryEntries.length-1;U>=0;--U){var D=this.tryEntries[U],k=D.completion;if(D.tryLoc==="root")return M("end");if(D.tryLoc<=this.prev){var ne=r.call(D,"catchLoc"),Q=r.call(D,"finallyLoc");if(ne&&Q){if(this.prev<D.catchLoc)return M(D.catchLoc,!0);if(this.prev<D.finallyLoc)return M(D.finallyLoc)}else if(ne){if(this.prev<D.catchLoc)return M(D.catchLoc,!0)}else{if(!Q)throw new Error("try statement without catch or finally");if(this.prev<D.finallyLoc)return M(D.finallyLoc)}}}},abrupt:function(T,S){for(var M=this.tryEntries.length-1;M>=0;--M){var U=this.tryEntries[M];if(U.tryLoc<=this.prev&&r.call(U,"finallyLoc")&&this.prev<U.finallyLoc){var D=U;break}}D&&(T==="break"||T==="continue")&&D.tryLoc<=S&&S<=D.finallyLoc&&(D=null);var k=D?D.completion:{};return k.type=T,k.arg=S,D?(this.method="next",this.next=D.finallyLoc,l):this.complete(k)},complete:function(T,S){if(T.type==="throw")throw T.arg;return T.type==="break"||T.type==="continue"?this.next=T.arg:T.type==="return"?(this.rval=this.arg=T.arg,this.method="return",this.next="end"):T.type==="normal"&&S&&(this.next=S),l},finish:function(T){for(var S=this.tryEntries.length-1;S>=0;--S){var M=this.tryEntries[S];if(M.finallyLoc===T)return this.complete(M.completion,M.afterLoc),z(M),l}},catch:function(T){for(var S=this.tryEntries.length-1;S>=0;--S){var M=this.tryEntries[S];if(M.tryLoc===T){var U=M.completion;if(U.type==="throw"){var D=U.arg;z(M)}return D}}throw new Error("illegal catch attempt")},delegateYield:function(T,S,M){return this.delegate={iterator:K(T),resultName:S,nextLoc:M},this.method==="next"&&(this.arg=void 0),l}},e}xe.exports=Wn,xe.exports.__esModule=!0,xe.exports.default=xe.exports});var we=Br((Sc,jn)=>{var Yt=Vn()();jn.exports=Yt;try{regeneratorRuntime=Yt}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Yt:Function("r","regeneratorRuntime = r")(Yt)}});var $_={};Bo($_,{Accessor:()=>Ne,BufferWithAccessor:()=>mt,WEBGLBuffer:()=>ge,WEBGLCommandEncoder:()=>yr,WEBGLFramebuffer:()=>Be,WEBGLRenderPass:()=>Nr,WEBGLRenderPipeline:()=>Ir,WEBGLRenderbuffer:()=>At,WEBGLResource:()=>Wt,WEBGLSampler:()=>Je,WEBGLShader:()=>br,WEBGLTexture:()=>Ee,WEBGLVertexArray:()=>Pr,WebGLCanvasContext:()=>vr,WebGLDevice:()=>ue,WebGLResource:()=>Wt,_TEXTURE_FORMATS:()=>Qe,_checkFloat32ColorAttachment:()=>Tr,assertWebGL2Context:()=>_t,assertWebGLContext:()=>_r,clear:()=>po,convertGLToTextureFormat:()=>qe,copyToTexture:()=>vo,getGLParameters:()=>lr,getShaderLayout:()=>Cr,getWebGL2Context:()=>Pt,isWebGL:()=>Qr,isWebGL2:()=>W,polyfillContext:()=>Er,popContextState:()=>Se,pushContextState:()=>ve,readPixelsToArray:()=>go,readPixelsToBuffer:()=>Oo,registerHeadlessGL:()=>Dn,resetGLParameters:()=>si,setDeviceParameters:()=>mr,setGLParameters:()=>he,trackContextState:()=>Dt,withDeviceParameters:()=>Ni,withGLParameters:()=>le});function _e(e){return _e=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_e(e)}function Mr(e,t){if(_e(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(_e(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ht(e){var t=Mr(e,"string");return _e(t)==="symbol"?t:String(t)}function _(e,t,r){return t=ht(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bn(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Mn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Bn(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Bn(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Do="Failed to create WebGL context in Node.js, headless gl returned null",xo=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Uo={width:1,height:1,debug:!0,throwOnError:!1},Kt=null;function Dn(e){Kt=e}function xn(){return Kt!==null}function Un(e){e=Mn(Mn({},Uo),e);var t=e,r=t.width,n=t.height,o=t.webgl1,i=t.webgl2;if(i&&!o)throw new Error("headless-gl does not support WebGL2");if(!Kt)throw new Error(xo);var s=Kt(r,n,e);if(!s)throw new Error(Do);return s}function wn(e,t,r,n,o,i,s){try{var u=e[i](s),f=u.value}catch(c){r(c);return}u.done?t(f):Promise.resolve(f).then(n,o)}function oe(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var i=e.apply(t,r);function s(f){wn(i,n,o,s,u,"next",f)}function u(f){wn(i,n,o,s,u,"throw",f)}s(void 0)})}}function I(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Xn(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,ht(n.key),n)}}function y(e,t,r){return t&&Xn(e.prototype,t),r&&Xn(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Ce(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ve(e,t){return Ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,o){return n.__proto__=o,n},Ve(e,t)}function w(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ve(e,t)}function X(e,t){if(t&&(_e(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ce(e)}function v(e){return v=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},v(e)}var Cn=We(we(),1);function St(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function q(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||St()}var wo=globalThis.self||globalThis.window||globalThis.global,et=globalThis.window||globalThis.self||globalThis.global,Xo=globalThis.document||{},je=globalThis.process||{},Lo=globalThis.console,Kn=globalThis.navigator||{};var kt=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",Cc=q();var xr=globalThis;function Gt(e){if(!e&&!q())return"Node";if(St(e))return"Electron";let t=e||Kn.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":xr.chrome?"Chrome":xr.safari?"Safari":xr.mozInnerScreenX?"Firefox":"Unknown"}function Ho(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var zt=class{constructor(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=Ho(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function Yn(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function kn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function $t(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,o=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));let i=e.width*r,s=e.height*r,u=["font-size:1px;","padding:".concat(Math.floor(s/2),"px ").concat(Math.floor(i/2),"px;"),"line-height:".concat(s,"px;"),"background:url(".concat(o,");"),"background-size:".concat(i,"px ").concat(s,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),u]}var Zt;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Zt||(Zt={}));var Wo=10;function Gn(e){return typeof e!="string"?e:(e=e.toUpperCase(),Zt[e]||Zt.WHITE)}function zn(e,t,r){if(!q&&typeof e=="string"){if(t){let n=Gn(t);e="\x1B[".concat(n,"m").concat(e,"\x1B[39m")}if(r){let n=Gn(r);e="\x1B[".concat(n+Wo,"m").concat(e,"\x1B[49m")}}return e}function $n(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),o=e;for(let i of n){let s=o[i];typeof s=="function"&&(t.find(u=>i===u)||(o[i]=s.bind(e)))}}function tt(e,t){if(!e)throw new Error(t||"Assertion failed")}function Ke(){let e;if(q()&&et.performance){var t,r;e=et===null||et===void 0||(t=et.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in je){var n;let o=je===null||je===void 0||(n=je.hrtime)===null||n===void 0?void 0:n.call(je);e=o[0]*1e3+o[1]/1e6}else e=Date.now();return e}var rt={debug:q()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Vo={enabled:!0,level:0};function pe(){}var Zn={},Qn={once:!0},Xe=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=kt,this._startTs=Ke(),this._deltaTs=Ke(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new zt("__probe-".concat(this.id,"__"),Vo),this.timeStamp("".concat(this.id," started")),$n(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Ke()-this._startTs).toPrecision(10))}getDelta(){return Number((Ke()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){tt(t,r)}warn(t){return this._getLogFunction(0,t,rt.warn,arguments,Qn)}error(t){return this._getLogFunction(0,t,rt.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,rt.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,rt.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,rt.debug||rt.info,arguments,Qn)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||pe,n&&[n],{tag:ko(r)}):pe}image(t){let{logLevel:r,priority:n,image:o,message:i="",scale:s=1}=t;return this._shouldLog(r||n)?q()?Yo({image:o,message:i,scale:s}):Ko({image:o,message:i,scale:s}):pe}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||pe)}group(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},o=qn({logLevel:t,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||pe)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=Jn(t)}_getLogFunction(t,r,n,o,i){if(this._shouldLog(t)){i=qn({logLevel:t,message:r,args:o,opts:i}),n=n||i.method,tt(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=Ke();let s=i.tag||i.message;if(i.once&&s)if(!Zn[s])Zn[s]=Ke();else return pe;return r=jo(this.id,i.message,i),n.bind(console,r,...i.args)}return pe}};Xe.VERSION=kt;function Jn(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return tt(Number.isFinite(t)&&t>=0),t}function qn(e){let{logLevel:t,message:r}=e;e.logLevel=Jn(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return tt(o==="string"||o==="object"),Object.assign(e,{args:n},e.opts)}function jo(e,t,r){if(typeof t=="string"){let n=r.time?kn(Yn(r.total)):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=zn(t,r.color,r.background)}return t}function Ko(e){let{image:t,message:r="",scale:n=1}=e;return console.warn("removed"),pe}function Yo(e){let{image:t,message:r="",scale:n=1}=e;if(typeof t=="string"){let i=new Image;return i.onload=()=>{let s=$t(i,r,n);console.log(...s)},i.src=t,pe}let o=t.nodeName||"";if(o.toLowerCase()==="img")return console.log(...$t(t,r,n)),pe;if(o.toLowerCase()==="canvas"){let i=new Image;return i.onload=()=>console.log(...$t(i,r,n)),i.src=t.toDataURL(),pe}return pe}function ko(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var aE=new Xe({id:"@probe.gl/log"});var C=new Xe({id:"luma.gl"});function gt(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var Ye=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=gt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(gt()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var nt=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,o=this.stats[r];return o||(t instanceof Ye?o=t:o=new Ye(r,n),this.stats[r]=o),o}};var Go=function(){function e(){I(this,e),this.stats=new Map}var t=e.prototype;return t.getStats=function(n){return this.get(n)},t.get=function(n){return this.stats.has(n)||this.stats.set(n,new nt({id:n})),this.stats.get(n)},y(e)}(),Qt=new Go;function zo(){var e=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==e)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(e));return globalThis.luma||(q()&&C.log(1,"luma.gl ".concat(e," - ").concat(t))(),globalThis.luma=globalThis.luma||{VERSION:e,version:e,log:C,stats:Qt}),e}var ea=zo();function $o(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)?e:null}function ta(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number"?e:null:$o(e)}var Ur={};function Oe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";Ur[e]=Ur[e]||1;var t=Ur[e]++;return"".concat(e,"-").concat(t)}function qt(e){return e>0&&(e&e-1)===0}function at(e){var t=!0;for(var r in e){t=!1;break}return t}function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Zo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ra(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var j=function(){function e(r,n,o){if(I(this,e),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!r)throw new Error("no device");this._device=r,this.props=Qo(n,o);var i=this.props.id!=="undefined"?this.props.id:Oe(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}var t=e.prototype;return t.destroy=function(){this.destroyResource()},t.delete=function(){return this.destroy(),this},t.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},t.getProps=function(){return this.props},t.attachResource=function(n){this._attachedResources.add(n)},t.detachResource=function(n){this._attachedResources.delete(n)},t.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},t.destroyAttachedResources=function(){for(var n=0,o=Object.values(this._attachedResources);n<o.length;n++){var i=o[n];i.destroy()}this._attachedResources=new Set},t.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},t.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("".concat(o,"s Active")).decrementCount()},t.trackAllocatedMemory=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],i=this._device.statsManager.getStats("Resource Counts");i.get("GPU Memory").addCount(n),i.get("".concat(o," Memory")).addCount(n),this.allocatedBytes=n},t.trackDeallocatedMemory=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").subtractCount(this.allocatedBytes),o.get("".concat(n," Memory")).subtractCount(this.allocatedBytes),this.allocatedBytes=0},t.addStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),o=this[Symbol.toStringTag];n.get("Resources Created").incrementCount(),n.get("".concat(o,"s Created")).incrementCount(),n.get("".concat(o,"s Active")).incrementCount()},y(e)}();j.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Qo(e,t){var r=Zo({},t);for(var n in e)e[n]!==void 0&&(r[n]=e[n]);return r}var aa;function na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function wr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?na(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):na(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function qo(e){var t=Jo();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Jo(){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}}aa=Symbol.toStringTag;var ee=function(e){w(r,e);var t=qo(r);function r(o,i){var s;I(this,r);var u=wr({},i);return(i.usage||0)&r.INDEX&&!i.indexType&&(i.data instanceof Uint32Array?u.indexType="uint32":i.data instanceof Uint16Array&&(u.indexType="uint16")),s=t.call(this,o,u,r.defaultProps),s.usage=void 0,s.indexType=void 0,s.byteLength=void 0,s.usage=i.usage||0,s.indexType=u.indexType,s}var n=r.prototype;return n.write=function(i,s){throw new Error("not implemented")},n.readAsync=function(i,s){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},y(r,[{key:aa,get:function(){return"Buffer"}}]),r}(j);ee.defaultProps=wr(wr({},j.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});ee.MAP_READ=1;ee.MAP_WRITE=2;ee.COPY_SRC=4;ee.COPY_DST=8;ee.INDEX=16;ee.VERTEX=32;ee.UNIFORM=64;ee.STORAGE=128;ee.INDIRECT=256;ee.QUERY_RESOLVE=512;var oa;function ia(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ia(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ia(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var es={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(C.get("debug")),break:[],gl:null};oa=Symbol.toStringTag;var Ot=function(){function e(r){I(this,e),this.id=void 0,this.statsManager=Qt,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Xr(Xr({},es),r),this.id=this.props.id||Oe(this[Symbol.toStringTag].toLowerCase())}var t=e.prototype;return t.loseDevice=function(){return!1},t.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},t.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},t.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},t._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var o=Xr({},n);return(n.usage||0)&ee.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?o.indexType="uint32":n.data instanceof Uint16Array?o.indexType="uint16":C.warn("indices buffer content must be of integer type")()),o},y(e,[{key:oa,get:function(){return"Device"}}]),e}();Ot.VERSION=ea;function vt(e){if(Array.isArray(e))return e}function Lr(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,o,i,s,u=[],f=!0,c=!1;try{if(i=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;f=!1}else for(;!(f=(n=i.call(r)).done)&&(u.push(n.value),u.length!==t);f=!0);}catch(E){c=!0,o=E}finally{try{if(!f&&r.return!=null&&(s=r.return(),Object(s)!==s))return}finally{if(c)throw o}}return u}}function it(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 ke(e,t){if(e){if(typeof e=="string")return it(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 it(e,t)}}function bt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
8
8
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function L(e,t){return vt(e)||Lr(e,t)||ke(e,t)||bt()}function ts(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=rs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
9
9
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function rs(e,t){if(e){if(typeof e=="string")return sa(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 sa(e,t)}}function sa(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 ua(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function fa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ua(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ua(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var ns=q()&&typeof document<"u",Jt=function(){return ns&&document.readyState==="complete"},as={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},ot=function(){function e(r){var n=this;if(I(this,e),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=fa(fa({},as),r),r=this.props,!q()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(r.canvas)typeof r.canvas=="string"?this.canvas=ss(r.canvas):this.canvas=r.canvas;else{var o,i,s=us(r),u=os(((o=r)===null||o===void 0?void 0:o.container)||null);u.insertBefore(s,u.firstChild),this.canvas=s,(i=r)!==null&&i!==void 0&&i.visible||(this.canvas.style.visibility="hidden")}this.canvas instanceof HTMLCanvasElement?(this.id=this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):(this.id="offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas),this.canvas instanceof HTMLCanvasElement&&r.autoResize&&(this.resizeObserver=new ResizeObserver(function(f){var c=ts(f),E;try{for(c.s();!(E=c.n()).done;){var l=E.value;l.target===n.canvas&&n.update()}}catch(R){c.e(R)}finally{c.f()}}),this.resizeObserver.observe(this.canvas))}var t=e.prototype;return t.getDevicePixelRatio=function(n){if(typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(n=n===void 0?this.props.useDevicePixels:n,!n||n<=0))return 1;if(n===!0){var o=typeof window<"u"&&window.devicePixelRatio;return o||1}return n},t.getPixelSize=function(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":var n=this.getDevicePixelRatio(),o=this.canvas;return o.parentElement?[o.clientWidth*n,o.clientHeight*n]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}},t.getAspect=function(){var n=this.getPixelSize(),o=L(n,2),i=o[0],s=o[1];return i/s},t.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),o=L(n,1),i=o[0],s=this._canvasSizeInfo.clientWidth;return s?i/s:1}catch{return 1}},t.cssToDevicePixels=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=this.cssToDeviceRatio(),s=this.getDrawingBufferSize(),u=L(s,2),f=u[0],c=u[1];return fs(n,i,f,c,o)},t.setDevicePixelRatio=function(n){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.htmlCanvas){var i="width"in o?o.width:this.htmlCanvas.clientWidth,s="height"in o?o.height:this.htmlCanvas.clientHeight;(!i||!s)&&(C.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,i=this.htmlCanvas.width||1,s=this.htmlCanvas.height||1);var u=this._canvasSizeInfo;if(u.clientWidth!==i||u.clientHeight!==s||u.devicePixelRatio!==n){var f=n,c=Math.floor(i*f),E=Math.floor(s*f);this.htmlCanvas.width=c,this.htmlCanvas.height=E;var l=this.getDrawingBufferSize(),R=L(l,2),d=R[0],A=R[1];(d!==c||A!==E)&&(f=Math.min(d/i,A/s),this.htmlCanvas.width=Math.floor(i*f),this.htmlCanvas.height=Math.floor(s*f),C.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=i,this._canvasSizeInfo.clientHeight=s,this._canvasSizeInfo.devicePixelRatio=n}}},t.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},t._setAutoCreatedCanvasId=function(n){var o;((o=this.htmlCanvas)===null||o===void 0?void 0:o.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},y(e,null,[{key:"isPageLoaded",get:function(){return Jt()}}]),e}();ot.pageLoaded=is();function is(){return Jt()||typeof window>"u"?Promise.resolve():new Promise(function(e){window.addEventListener("load",function(){return e()})})}function os(e){if(typeof e=="string"){var t=document.getElementById(e);if(!t&&!Jt())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!t)throw new Error("".concat(e," is not an HTML element"));return t}else if(e)return e;return document.body}function ss(e){var t=document.getElementById(e);if(!t&&!Jt())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!(t instanceof HTMLCanvasElement))throw new Error("'".concat(t,"' is not a canvas element"));return t}function us(e){var t=e.width,r=e.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=t||1,n.height=r||1,n.style.width=Number.isFinite(t)?"".concat(t,"px"):"100%",n.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",n}function fs(e,t,r,n,o){var i=e,s=_a(i[0],t,r),u=ca(i[1],t,n,o),f=_a(i[0]+1,t,r),c=f===r-1?f:f-1;f=ca(i[1]+1,t,n,o);var E;return o?(f=f===0?f:f+1,E=u,u=f):E=f===n-1?f:f-1,{x:s,y:u,width:Math.max(c-s+1,1),height:Math.max(E-u+1,1)}}function _a(e,t,r){var n=Math.min(Math.round(e*t),r-1);return n}function ca(e,t,r,n){return n?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}var Ra;function Ea(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function la(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ea(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ea(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _s(e){var t=cs();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function cs(){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}}Ra=Symbol.toStringTag;var se=function(e){w(r,e);var t=_s(r);function r(n,o){var i,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.defaultProps;return I(this,r),i=t.call(this,n,o,s),i.dimension=void 0,i.format=void 0,i.width=void 0,i.height=void 0,i.depth=void 0,i.sampler=void 0,i.dimension=i.props.dimension,i.format=i.props.format,i.width=i.props.width,i.height=i.props.height,i.depth=i.props.depth,i}return y(r,[{key:Ra,get:function(){return"Texture"}}]),r}(j);se.defaultProps=la(la({},j.defaultProps),{},{data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,sampler:{},compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0});se.COPY_SRC=1;se.COPY_DST=2;se.TEXTURE_BINDING=4;se.STORAGE_BINDING=8;se.RENDER_ATTACHMENT=16;var Ta;function da(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Aa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?da(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):da(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Es(e){var t=ls();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function ls(){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}}Ta=Symbol.toStringTag;var er=function(e){w(r,e);var t=Es(r);function r(n,o){var i;return I(this,r),i=t.call(this,n,o,r.defaultProps),i.stage=void 0,i.source=void 0,i.stage=i.props.stage,i.source=i.props.source,i}return y(r,[{key:Ta,get:function(){return"Shader"}}]),r}(j);er.defaultProps=Aa(Aa({},j.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});var ha;function pa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ma(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?pa(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pa(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Rs(e){var t=ds();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function ds(){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}}ha=Symbol.toStringTag;var tr=function(e){w(r,e);var t=Rs(r);function r(n,o){return I(this,r),t.call(this,n,o,r.defaultProps)}return y(r,[{key:ha,get:function(){return"Sampler"}}]),r}(j);tr.defaultProps=ma(ma({},j.defaultProps),{},{type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var ga;function Sa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function st(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Sa(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Sa(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function As(e){var t=Ts();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Ts(){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}}ga=Symbol.toStringTag;var ut=function(e){w(r,e);var t=As(r);function r(o){var i,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return I(this,r),i=t.call(this,o,s,r.defaultProps),i.width=void 0,i.height=void 0,i.colorAttachments=[],i.depthStencilAttachment=null,i.width=i.props.width,i.height=i.props.height,i}var n=r.prototype;return n.resize=function(i){var s=!i;if(i){var u=Array.isArray(i)?i:[i.width,i.height],f=L(u,2),c=f[0],E=f[1];s=s||E!==this.height||c!==this.width,this.width=c,this.height=E}s&&(C.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},n.autoCreateAttachmentTextures=function(){var i=this;if(this.colorAttachments=this.props.colorAttachments.map(function(u){if(typeof u=="string"){var f=i.createColorTexture(u);return i.attachResource(f),f}return u}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var s=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(s),this.depthStencilAttachment=s}else this.depthStencilAttachment=this.props.depthStencilAttachment},n.createColorTexture=function(i){return this.device.createTexture({id:"color-attachment",usage:se.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.createDepthStencilTexture=function(i){return this.device.createTexture({id:"depth-stencil-attachment",usage:se.RENDER_ATTACHMENT,format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,s){for(var u=0;u<this.colorAttachments.length;++u)if(this.colorAttachments[u]){var f=this.device._createTexture(st(st({},this.colorAttachments[u].props),{},{width:i,height:s}));this.destroyAttachedResource(this.colorAttachments[u]),this.colorAttachments[u]=f,this.attachResource(f)}if(this.depthStencilAttachment){var c=this.device._createTexture(st(st({},this.depthStencilAttachment.props),{},{width:i,height:s}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=c,this.attachResource(c)}},y(r,[{key:ga,get:function(){return"Framebuffer"}}]),r}(j);ut.defaultProps=st(st({},j.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var ba;function Oa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function va(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Oa(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Oa(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ps(e){var t=ms();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function ms(){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}}ba=Symbol.toStringTag;var rr=function(e){w(r,e);var t=ps(r);function r(n,o){var i;return I(this,r),i=t.call(this,n,o,r.defaultProps),i.hash="",i.vs=void 0,i.fs=void 0,i.shaderLayout=void 0,i.bufferLayout=void 0,i.shaderLayout=i.props.shaderLayout,i.bufferLayout=i.props.bufferLayout||[],i}return y(r,[{key:ba,get:function(){return"RenderPipeline"}}]),r}(j);rr.defaultProps=va(va({},j.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var Ia;function Na(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ca(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Na(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Na(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function hs(e){var t=Ss();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Ss(){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}}Ia=Symbol.toStringTag;var nr=function(e){w(r,e);var t=hs(r);function r(n,o){return I(this,r),t.call(this,n,o,r.defaultProps)}return y(r,[{key:Ia,get:function(){return"RenderPass"}}]),r}(j);nr.defaultProps=Ca(Ca({},j.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});var Fa;function ya(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Pa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ya(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ya(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function gs(e){var t=Os();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Os(){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}}Fa=Symbol.toStringTag;var ar=function(e){w(r,e);var t=gs(r);function r(o,i){return I(this,r),t.call(this,o,i,r.defaultProps)}var n=r.prototype;return n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},y(r,[{key:Fa,get:function(){return"CommandEncoder"}}]),r}(j);ar.defaultProps=Pa(Pa({},j.defaultProps),{},{measureExecutionTime:void 0});var Ma;function Ba(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function vs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ba(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ba(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function bs(e){var t=Ns();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Ns(){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}}Ma=Symbol.toStringTag;var ir=function(e){w(r,e);var t=bs(r);function r(n){return I(this,r),t.call(this,n,r.defaultProps)}return y(r,[{key:Ma,get:function(){return"CommandBuffer"}}]),r}(j);ir.defaultProps=vs({},j.defaultProps);function Da(e){var t=L(Is[e],2),r=t[0],n=t[1],o=r==="i32"||r==="u32",i=r!=="u32",s=ys[r]*n,u=Cs(r,n);return{dataType:r,components:n,defaultVertexFormat:u,byteLength:s,integer:o,signed:i}}function Cs(e,t){var r;switch(e){case"f32":r="float32";break;case"i32":r="sint32";break;case"u32":r="uint32";break;case"f16":return t<=2?"float16x2":"float16x4"}return t===1?r:"".concat(r,"x").concat(t)}var Is={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},ys={f32:4,f16:2,i32:4,u32:4};function or(e){var t=xa[e],r=Ps(t),n=e.includes("norm"),o=!n&&!e.startsWith("float"),i=e.startsWith("s");return{dataType:xa[e],byteLength:r,integer:o,signed:i,normalized:n}}function Ps(e){var t=Fs[e];return t}var xa={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},Fs={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function Hr(e){var t;e.endsWith("-webgl")&&(e.replace("-webgl",""),t=!0);var r=e.split("x"),n=L(r,2),o=n[0],i=n[1],s=o,u=i?parseInt(i):1,f=or(s),c={type:s,components:u,byteLength:f.byteLength*u,integer:f.integer,signed:f.signed,normalized:f.normalized};return t&&(c.webglOnly=!0),c}function Ua(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Wr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ua(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ua(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ft(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Bs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
10
10
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function Bs(e,t){if(e){if(typeof e=="string")return wa(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 wa(e,t)}}function wa(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 Xa(e,t){var r={},n=ft(e.attributes),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;r[i.name]=Ms(e,t,i.name)}}catch(s){n.e(s)}finally{n.f()}return r}function La(e,t){for(var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,n=Xa(e,t),o=new Array(r).fill(null),i=0,s=Object.values(n);i<s.length;i++){var u=s[i];o[u.location]=u}return o}function Ms(e,t,r){var n=Ds(e,r),o=xs(t,r);if(!n)return null;var i=Da(n.type),s=o?.vertexFormat||i.defaultVertexFormat,u=Hr(s);return{attributeName:o?.attributeName||n.name,bufferName:o?.bufferName||n.name,location:n.location,shaderType:n.type,shaderDataType:i.dataType,shaderComponents:i.components,vertexFormat:s,bufferDataType:u.type,bufferComponents:u.components,normalized:u.normalized,integer:i.integer,stepMode:o?.stepMode||n.stepMode,byteOffset:o?.byteOffset||0,byteStride:o?.byteStride||0}}function Ds(e,t){var r=e.attributes.find(function(n){return n.name===t});return r||C.warn('shader layout attribute "'.concat(t,'" not present in shader')),r||null}function xs(e,t){Us(e);var r=ws(e,t);return r||(r=Xs(e,t),r)?r:(C.warn('layout for attribute "'.concat(t,'" not present in buffer layout')),null)}function Us(e){var t=ft(e),r;try{for(t.s();!(r=t.n()).done;){var n=r.value;(n.attributes&&n.format||!n.attributes&&!n.format)&&C.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(o){t.e(o)}finally{t.f()}}function ws(e,t){var r=ft(e),n;try{for(r.s();!(n=r.n()).done;){var o=n.value;if(o.format&&o.name===t)return{attributeName:o.name,bufferName:t,stepMode:o.stepMode,vertexFormat:o.format,byteOffset:0,byteStride:o.byteStride||0}}}catch(i){r.e(i)}finally{r.f()}return null}function Xs(e,t){var r=ft(e),n;try{for(r.s();!(n=r.n()).done;){var o,i=n.value,s=i.byteStride;if(typeof i.byteStride!="number"){var u=ft(i.attributes||[]),f;try{for(u.s();!(f=u.n()).done;){var c=f.value,E=Hr(c.format);s+=E.byteLength}}catch(R){u.e(R)}finally{u.f()}}var l=(o=i.attributes)===null||o===void 0?void 0:o.find(function(R){return R.attribute===t});if(l)return{attributeName:l.attribute,bufferName:i.name,stepMode:i.stepMode,vertexFormat:l.format,byteOffset:l.byteOffset,byteStride:s}}}catch(R){r.e(R)}finally{r.f()}return null}function Vr(e,t){var r=Wr(Wr({},e),{},{attributes:e.attributes.map(function(s){return Wr({},s)})}),n=ft(t?.attributes||[]),o;try{var i=function(){var u=o.value,f=r.attributes.find(function(c){return c.name===u.name});f?(f.type=u.type||f.type,f.stepMode=u.stepMode||f.stepMode):C.warn("shader layout attribute ".concat(u.name," not present in shader"))};for(n.s();!(o=n.n()).done;)i()}catch(s){n.e(s)}finally{n.f()}return r}var Va;function Ha(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Wa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ha(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ha(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ls(e){var t=Hs();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function Hs(){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}}Va=Symbol.toStringTag;var sr=function(e){w(r,e);var t=Ls(r);function r(n,o){var i;return I(this,r),i=t.call(this,n,o,r.defaultProps),i.maxVertexAttributes=void 0,i.attributeInfos=void 0,i.indexBuffer=null,i.attributes=void 0,i.maxVertexAttributes=n.limits.maxVertexAttributes,i.attributes=new Array(i.maxVertexAttributes).fill(null),i.attributeInfos=La(o.renderPipeline.shaderLayout,o.renderPipeline.bufferLayout,i.maxVertexAttributes),i}return y(r,[{key:Va,get:function(){return"VertexArray"}}]),r}(j);sr.defaultProps=Wa(Wa({},j.defaultProps),{},{renderPipeline:null});function B(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}var ur;function ja(e){return(!ur||ur.byteLength<e)&&(ur=new ArrayBuffer(e)),ur}function jr(e,t){var r=ja(e.BYTES_PER_ELEMENT*t);return new e(r,0,t)}function Kr(e){for(var t=e.target,r=e.source,n=e.start,o=n===void 0?0:n,i=e.count,s=i===void 0?1:i,u=r.length,f=s*u,c=0,E=o;c<u;c++)t[E++]=r[c];for(;c<f;)c<f-c?(t.copyWithin(o+c,o,o+c),c*=2):(t.copyWithin(o+c,o,o+f-c),c=f);return e.target}function Ka(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ws(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ka(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ka(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Vs=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function fr(e){var t=Vs.exec(e);if(t){var r=L(t,6),n=r[1],o=r[2],i=r[3],s=r[4],u=r[5];if(n){var f="".concat(i).concat(o),c=or(f);return Ws({format:n,components:0,srgb:s==="-srgb",unsized:u==="-unsized",webgl:u==="-webgl"},c)}}return Ks(e)}var js={"rgba4unorm-webgl":{format:"rgba",bpp:2},"rgb565unorm-webgl":{format:"rgb",bpp:2},"rgb5a1unorm-webgl":{format:"rgba",bbp:2},rgb9e5ufloat:{format:"rgb",bbp:4},rg11b10ufloat:{format:"rgb",bbp:4},rgb10a2unorm:{format:"rgba",bbp:4},"rgb10a2unorm-webgl":{format:"rgba",bbp:4},stencil8:{components:1,bpp:1,a:"stencil"},depth16unorm:{components:1,bpp:2,a:"depth"},depth24plus:{components:1,bpp:3,a:"depth"},depth32float:{components:1,bpp:4,a:"depth"},"depth24plus-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth24unorm-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth32float-stencil8":{components:2,bpp:4,a:"depth-stencil"}};function Ks(e){var t=js[e];if(!t)throw new Error("Unknown format ".concat(e));return{format:t.format||"",components:t.components||1,byteLength:t.bpp||1,srgb:!1,unsized:!1}}function Ys(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ks(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
@@ -18,16 +18,16 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
18
18
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function J(e){return Jr(e)||Ft(e)||ke(e)||en()}var b,p,me,Mt=(b={},_(b,a.BLEND,!1),_(b,a.BLEND_COLOR,new Float32Array([0,0,0,0])),_(b,a.BLEND_EQUATION_RGB,a.FUNC_ADD),_(b,a.BLEND_EQUATION_ALPHA,a.FUNC_ADD),_(b,a.BLEND_SRC_RGB,a.ONE),_(b,a.BLEND_DST_RGB,a.ZERO),_(b,a.BLEND_SRC_ALPHA,a.ONE),_(b,a.BLEND_DST_ALPHA,a.ZERO),_(b,a.COLOR_CLEAR_VALUE,new Float32Array([0,0,0,0])),_(b,a.COLOR_WRITEMASK,[!0,!0,!0,!0]),_(b,a.CULL_FACE,!1),_(b,a.CULL_FACE_MODE,a.BACK),_(b,a.DEPTH_TEST,!1),_(b,a.DEPTH_CLEAR_VALUE,1),_(b,a.DEPTH_FUNC,a.LESS),_(b,a.DEPTH_RANGE,new Float32Array([0,1])),_(b,a.DEPTH_WRITEMASK,!0),_(b,a.DITHER,!0),_(b,a.CURRENT_PROGRAM,null),_(b,a.FRAMEBUFFER_BINDING,null),_(b,a.RENDERBUFFER_BINDING,null),_(b,a.VERTEX_ARRAY_BINDING,null),_(b,a.ARRAY_BUFFER_BINDING,null),_(b,a.FRONT_FACE,a.CCW),_(b,a.GENERATE_MIPMAP_HINT,a.DONT_CARE),_(b,a.LINE_WIDTH,1),_(b,a.POLYGON_OFFSET_FILL,!1),_(b,a.POLYGON_OFFSET_FACTOR,0),_(b,a.POLYGON_OFFSET_UNITS,0),_(b,a.SAMPLE_ALPHA_TO_COVERAGE,!1),_(b,a.SAMPLE_COVERAGE,!1),_(b,a.SAMPLE_COVERAGE_VALUE,1),_(b,a.SAMPLE_COVERAGE_INVERT,!1),_(b,a.SCISSOR_TEST,!1),_(b,a.SCISSOR_BOX,new Int32Array([0,0,1024,1024])),_(b,a.STENCIL_TEST,!1),_(b,a.STENCIL_CLEAR_VALUE,0),_(b,a.STENCIL_WRITEMASK,4294967295),_(b,a.STENCIL_BACK_WRITEMASK,4294967295),_(b,a.STENCIL_FUNC,a.ALWAYS),_(b,a.STENCIL_REF,0),_(b,a.STENCIL_VALUE_MASK,4294967295),_(b,a.STENCIL_BACK_FUNC,a.ALWAYS),_(b,a.STENCIL_BACK_REF,0),_(b,a.STENCIL_BACK_VALUE_MASK,4294967295),_(b,a.STENCIL_FAIL,a.KEEP),_(b,a.STENCIL_PASS_DEPTH_FAIL,a.KEEP),_(b,a.STENCIL_PASS_DEPTH_PASS,a.KEEP),_(b,a.STENCIL_BACK_FAIL,a.KEEP),_(b,a.STENCIL_BACK_PASS_DEPTH_FAIL,a.KEEP),_(b,a.STENCIL_BACK_PASS_DEPTH_PASS,a.KEEP),_(b,a.VIEWPORT,[0,0,1024,1024]),_(b,a.PACK_ALIGNMENT,4),_(b,a.UNPACK_ALIGNMENT,4),_(b,a.UNPACK_FLIP_Y_WEBGL,!1),_(b,a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),_(b,a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.BROWSER_DEFAULT_WEBGL),_(b,a.TRANSFORM_FEEDBACK_BINDING,null),_(b,a.COPY_READ_BUFFER_BINDING,null),_(b,a.COPY_WRITE_BUFFER_BINDING,null),_(b,a.PIXEL_PACK_BUFFER_BINDING,null),_(b,a.PIXEL_UNPACK_BUFFER_BINDING,null),_(b,a.FRAGMENT_SHADER_DERIVATIVE_HINT,a.DONT_CARE),_(b,a.READ_FRAMEBUFFER_BINDING,null),_(b,a.RASTERIZER_DISCARD,!1),_(b,a.PACK_ROW_LENGTH,0),_(b,a.PACK_SKIP_PIXELS,0),_(b,a.PACK_SKIP_ROWS,0),_(b,a.UNPACK_ROW_LENGTH,0),_(b,a.UNPACK_IMAGE_HEIGHT,0),_(b,a.UNPACK_SKIP_PIXELS,0),_(b,a.UNPACK_SKIP_ROWS,0),_(b,a.UNPACK_SKIP_IMAGES,0),b),Ie=function(t,r,n){return r?t.enable(n):t.disable(n)},ti=function(t,r,n){return t.hint(n,r)},Ae=function(t,r,n){return t.pixelStorei(n,r)},ri=function(t,r,n){var o;return n===a.FRAMEBUFFER_BINDING?o=W(t)?a.DRAW_FRAMEBUFFER:a.FRAMEBUFFER:o=a.READ_FRAMEBUFFER,t.bindFramebuffer(o,r)},Bt=function(t,r,n){var o,i=(o={},_(o,a.ARRAY_BUFFER_BINDING,a.ARRAY_BUFFER),_(o,a.COPY_READ_BUFFER_BINDING,a.COPY_READ_BUFFER),_(o,a.COPY_WRITE_BUFFER_BINDING,a.COPY_WRITE_BUFFER),_(o,a.PIXEL_PACK_BUFFER_BINDING,a.PIXEL_PACK_BUFFER),_(o,a.PIXEL_UNPACK_BUFFER_BINDING,a.PIXEL_UNPACK_BUFFER),o),s=i[n];t.bindBuffer(s,r)};function tn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var ni=(p={},_(p,a.BLEND,Ie),_(p,a.BLEND_COLOR,function(e,t){return e.blendColor.apply(e,J(t))}),_(p,a.BLEND_EQUATION_RGB,"blendEquation"),_(p,a.BLEND_EQUATION_ALPHA,"blendEquation"),_(p,a.BLEND_SRC_RGB,"blendFunc"),_(p,a.BLEND_DST_RGB,"blendFunc"),_(p,a.BLEND_SRC_ALPHA,"blendFunc"),_(p,a.BLEND_DST_ALPHA,"blendFunc"),_(p,a.COLOR_CLEAR_VALUE,function(e,t){return e.clearColor.apply(e,J(t))}),_(p,a.COLOR_WRITEMASK,function(e,t){return e.colorMask.apply(e,J(t))}),_(p,a.CULL_FACE,Ie),_(p,a.CULL_FACE_MODE,function(e,t){return e.cullFace(t)}),_(p,a.DEPTH_TEST,Ie),_(p,a.DEPTH_CLEAR_VALUE,function(e,t){return e.clearDepth(t)}),_(p,a.DEPTH_FUNC,function(e,t){return e.depthFunc(t)}),_(p,a.DEPTH_RANGE,function(e,t){return e.depthRange.apply(e,J(t))}),_(p,a.DEPTH_WRITEMASK,function(e,t){return e.depthMask(t)}),_(p,a.DITHER,Ie),_(p,a.FRAGMENT_SHADER_DERIVATIVE_HINT,ti),_(p,a.CURRENT_PROGRAM,function(e,t){return e.useProgram(t)}),_(p,a.RENDERBUFFER_BINDING,function(e,t){return e.bindRenderbuffer(a.RENDERBUFFER,t)}),_(p,a.TRANSFORM_FEEDBACK_BINDING,function(e,t){var r,n;return(r=(n=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(n,a.TRANSFORM_FEEDBACK,t)}),_(p,a.VERTEX_ARRAY_BINDING,function(e,t){return e.bindVertexArray(t)}),_(p,a.FRAMEBUFFER_BINDING,ri),_(p,a.READ_FRAMEBUFFER_BINDING,ri),_(p,a.ARRAY_BUFFER_BINDING,Bt),_(p,a.COPY_READ_BUFFER_BINDING,Bt),_(p,a.COPY_WRITE_BUFFER_BINDING,Bt),_(p,a.PIXEL_PACK_BUFFER_BINDING,Bt),_(p,a.PIXEL_UNPACK_BUFFER_BINDING,Bt),_(p,a.FRONT_FACE,function(e,t){return e.frontFace(t)}),_(p,a.GENERATE_MIPMAP_HINT,ti),_(p,a.LINE_WIDTH,function(e,t){return e.lineWidth(t)}),_(p,a.POLYGON_OFFSET_FILL,Ie),_(p,a.POLYGON_OFFSET_FACTOR,"polygonOffset"),_(p,a.POLYGON_OFFSET_UNITS,"polygonOffset"),_(p,a.RASTERIZER_DISCARD,Ie),_(p,a.SAMPLE_ALPHA_TO_COVERAGE,Ie),_(p,a.SAMPLE_COVERAGE,Ie),_(p,a.SAMPLE_COVERAGE_VALUE,"sampleCoverage"),_(p,a.SAMPLE_COVERAGE_INVERT,"sampleCoverage"),_(p,a.SCISSOR_TEST,Ie),_(p,a.SCISSOR_BOX,function(e,t){return e.scissor.apply(e,J(t))}),_(p,a.STENCIL_TEST,Ie),_(p,a.STENCIL_CLEAR_VALUE,function(e,t){return e.clearStencil(t)}),_(p,a.STENCIL_WRITEMASK,function(e,t){return e.stencilMaskSeparate(a.FRONT,t)}),_(p,a.STENCIL_BACK_WRITEMASK,function(e,t){return e.stencilMaskSeparate(a.BACK,t)}),_(p,a.STENCIL_FUNC,"stencilFuncFront"),_(p,a.STENCIL_REF,"stencilFuncFront"),_(p,a.STENCIL_VALUE_MASK,"stencilFuncFront"),_(p,a.STENCIL_BACK_FUNC,"stencilFuncBack"),_(p,a.STENCIL_BACK_REF,"stencilFuncBack"),_(p,a.STENCIL_BACK_VALUE_MASK,"stencilFuncBack"),_(p,a.STENCIL_FAIL,"stencilOpFront"),_(p,a.STENCIL_PASS_DEPTH_FAIL,"stencilOpFront"),_(p,a.STENCIL_PASS_DEPTH_PASS,"stencilOpFront"),_(p,a.STENCIL_BACK_FAIL,"stencilOpBack"),_(p,a.STENCIL_BACK_PASS_DEPTH_FAIL,"stencilOpBack"),_(p,a.STENCIL_BACK_PASS_DEPTH_PASS,"stencilOpBack"),_(p,a.VIEWPORT,function(e,t){return e.viewport.apply(e,J(t))}),_(p,a.PACK_ALIGNMENT,Ae),_(p,a.UNPACK_ALIGNMENT,Ae),_(p,a.UNPACK_FLIP_Y_WEBGL,Ae),_(p,a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,Ae),_(p,a.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ae),_(p,a.PACK_ROW_LENGTH,Ae),_(p,a.PACK_SKIP_PIXELS,Ae),_(p,a.PACK_SKIP_ROWS,Ae),_(p,a.UNPACK_ROW_LENGTH,Ae),_(p,a.UNPACK_IMAGE_HEIGHT,Ae),_(p,a.UNPACK_SKIP_PIXELS,Ae),_(p,a.UNPACK_SKIP_ROWS,Ae),_(p,a.UNPACK_SKIP_IMAGES,Ae),_(p,"framebuffer",function(t,r){var n=r&&"handle"in r?r.handle:r;return t.bindFramebuffer(a.FRAMEBUFFER,n)}),_(p,"blend",function(t,r){return r?t.enable(a.BLEND):t.disable(a.BLEND)}),_(p,"blendColor",function(t,r){return t.blendColor.apply(t,J(r))}),_(p,"blendEquation",function(t,r){var n=typeof r=="number"?[r,r]:r;t.blendEquationSeparate.apply(t,J(n))}),_(p,"blendFunc",function(t,r){var n=r?.length===2?[].concat(J(r),J(r)):r;t.blendFuncSeparate.apply(t,J(n))}),_(p,"clearColor",function(t,r){return t.clearColor.apply(t,J(r))}),_(p,"clearDepth",function(t,r){return t.clearDepth(r)}),_(p,"clearStencil",function(t,r){return t.clearStencil(r)}),_(p,"colorMask",function(t,r){return t.colorMask.apply(t,J(r))}),_(p,"cull",function(t,r){return r?t.enable(a.CULL_FACE):t.disable(a.CULL_FACE)}),_(p,"cullFace",function(t,r){return t.cullFace(r)}),_(p,"depthTest",function(t,r){return r?t.enable(a.DEPTH_TEST):t.disable(a.DEPTH_TEST)}),_(p,"depthFunc",function(t,r){return t.depthFunc(r)}),_(p,"depthMask",function(t,r){return t.depthMask(r)}),_(p,"depthRange",function(t,r){return t.depthRange.apply(t,J(r))}),_(p,"dither",function(t,r){return r?t.enable(a.DITHER):t.disable(a.DITHER)}),_(p,"derivativeHint",function(t,r){t.hint(a.FRAGMENT_SHADER_DERIVATIVE_HINT,r)}),_(p,"frontFace",function(t,r){return t.frontFace(r)}),_(p,"mipmapHint",function(t,r){return t.hint(a.GENERATE_MIPMAP_HINT,r)}),_(p,"lineWidth",function(t,r){return t.lineWidth(r)}),_(p,"polygonOffsetFill",function(t,r){return r?t.enable(a.POLYGON_OFFSET_FILL):t.disable(a.POLYGON_OFFSET_FILL)}),_(p,"polygonOffset",function(t,r){return t.polygonOffset.apply(t,J(r))}),_(p,"sampleCoverage",function(t,r){return t.sampleCoverage.apply(t,J(r))}),_(p,"scissorTest",function(t,r){return r?t.enable(a.SCISSOR_TEST):t.disable(a.SCISSOR_TEST)}),_(p,"scissor",function(t,r){return t.scissor.apply(t,J(r))}),_(p,"stencilTest",function(t,r){return r?t.enable(a.STENCIL_TEST):t.disable(a.STENCIL_TEST)}),_(p,"stencilMask",function(t,r){r=tn(r)?r:[r,r];var n=r,o=L(n,2),i=o[0],s=o[1];t.stencilMaskSeparate(a.FRONT,i),t.stencilMaskSeparate(a.BACK,s)}),_(p,"stencilFunc",function(t,r){r=tn(r)&&r.length===3?[].concat(J(r),J(r)):r;var n=r,o=L(n,6),i=o[0],s=o[1],u=o[2],f=o[3],c=o[4],E=o[5];t.stencilFuncSeparate(a.FRONT,i,s,u),t.stencilFuncSeparate(a.BACK,f,c,E)}),_(p,"stencilOp",function(t,r){r=tn(r)&&r.length===3?[].concat(J(r),J(r)):r;var n=r,o=L(n,6),i=o[0],s=o[1],u=o[2],f=o[3],c=o[4],E=o[5];t.stencilOpSeparate(a.FRONT,i,s,u),t.stencilOpSeparate(a.BACK,f,c,E)}),_(p,"viewport",function(t,r){return t.viewport.apply(t,J(r))}),p);function te(e,t,r){return t[e]!==void 0?t[e]:r[e]}var ai={blendEquation:function(t,r,n){return t.blendEquationSeparate(te(a.BLEND_EQUATION_RGB,r,n),te(a.BLEND_EQUATION_ALPHA,r,n))},blendFunc:function(t,r,n){return t.blendFuncSeparate(te(a.BLEND_SRC_RGB,r,n),te(a.BLEND_DST_RGB,r,n),te(a.BLEND_SRC_ALPHA,r,n),te(a.BLEND_DST_ALPHA,r,n))},polygonOffset:function(t,r,n){return t.polygonOffset(te(a.POLYGON_OFFSET_FACTOR,r,n),te(a.POLYGON_OFFSET_UNITS,r,n))},sampleCoverage:function(t,r,n){return t.sampleCoverage(te(a.SAMPLE_COVERAGE_VALUE,r,n),te(a.SAMPLE_COVERAGE_INVERT,r,n))},stencilFuncFront:function(t,r,n){return t.stencilFuncSeparate(a.FRONT,te(a.STENCIL_FUNC,r,n),te(a.STENCIL_REF,r,n),te(a.STENCIL_VALUE_MASK,r,n))},stencilFuncBack:function(t,r,n){return t.stencilFuncSeparate(a.BACK,te(a.STENCIL_BACK_FUNC,r,n),te(a.STENCIL_BACK_REF,r,n),te(a.STENCIL_BACK_VALUE_MASK,r,n))},stencilOpFront:function(t,r,n){return t.stencilOpSeparate(a.FRONT,te(a.STENCIL_FAIL,r,n),te(a.STENCIL_PASS_DEPTH_FAIL,r,n),te(a.STENCIL_PASS_DEPTH_PASS,r,n))},stencilOpBack:function(t,r,n){return t.stencilOpSeparate(a.BACK,te(a.STENCIL_BACK_FAIL,r,n),te(a.STENCIL_BACK_PASS_DEPTH_FAIL,r,n),te(a.STENCIL_BACK_PASS_DEPTH_PASS,r,n))}},rn={enable:function(t,r){return t(_({},r,!0))},disable:function(t,r){return t(_({},r,!1))},pixelStorei:function(t,r,n){return t(_({},r,n))},hint:function(t,r,n){return t(_({},r,n))},useProgram:function(t,r){return t(_({},a.CURRENT_PROGRAM,r))},bindRenderbuffer:function(t,r,n){return t(_({},a.RENDERBUFFER_BINDING,n))},bindTransformFeedback:function(t,r,n){return t(_({},a.TRANSFORM_FEEDBACK_BINDING,n))},bindVertexArray:function(t,r){return t(_({},a.VERTEX_ARRAY_BINDING,r))},bindFramebuffer:function(t,r,n){var o;switch(r){case a.FRAMEBUFFER:return t((o={},_(o,a.DRAW_FRAMEBUFFER_BINDING,n),_(o,a.READ_FRAMEBUFFER_BINDING,n),o));case a.DRAW_FRAMEBUFFER:return t(_({},a.DRAW_FRAMEBUFFER_BINDING,n));case a.READ_FRAMEBUFFER:return t(_({},a.READ_FRAMEBUFFER_BINDING,n));default:return null}},bindBuffer:function(t,r,n){var o,i=(o={},_(o,a.ARRAY_BUFFER,[a.ARRAY_BUFFER_BINDING]),_(o,a.COPY_READ_BUFFER,[a.COPY_READ_BUFFER_BINDING]),_(o,a.COPY_WRITE_BUFFER,[a.COPY_WRITE_BUFFER_BINDING]),_(o,a.PIXEL_PACK_BUFFER,[a.PIXEL_PACK_BUFFER_BINDING]),_(o,a.PIXEL_UNPACK_BUFFER,[a.PIXEL_UNPACK_BUFFER_BINDING]),o)[r];return i?t(_({},i,n)):{valueChanged:!0}},blendColor:function(t,r,n,o,i){return t(_({},a.BLEND_COLOR,new Float32Array([r,n,o,i])))},blendEquation:function(t,r){var n;return t((n={},_(n,a.BLEND_EQUATION_RGB,r),_(n,a.BLEND_EQUATION_ALPHA,r),n))},blendEquationSeparate:function(t,r,n){var o;return t((o={},_(o,a.BLEND_EQUATION_RGB,r),_(o,a.BLEND_EQUATION_ALPHA,n),o))},blendFunc:function(t,r,n){var o;return t((o={},_(o,a.BLEND_SRC_RGB,r),_(o,a.BLEND_DST_RGB,n),_(o,a.BLEND_SRC_ALPHA,r),_(o,a.BLEND_DST_ALPHA,n),o))},blendFuncSeparate:function(t,r,n,o,i){var s;return t((s={},_(s,a.BLEND_SRC_RGB,r),_(s,a.BLEND_DST_RGB,n),_(s,a.BLEND_SRC_ALPHA,o),_(s,a.BLEND_DST_ALPHA,i),s))},clearColor:function(t,r,n,o,i){return t(_({},a.COLOR_CLEAR_VALUE,new Float32Array([r,n,o,i])))},clearDepth:function(t,r){return t(_({},a.DEPTH_CLEAR_VALUE,r))},clearStencil:function(t,r){return t(_({},a.STENCIL_CLEAR_VALUE,r))},colorMask:function(t,r,n,o,i){return t(_({},a.COLOR_WRITEMASK,[r,n,o,i]))},cullFace:function(t,r){return t(_({},a.CULL_FACE_MODE,r))},depthFunc:function(t,r){return t(_({},a.DEPTH_FUNC,r))},depthRange:function(t,r,n){return t(_({},a.DEPTH_RANGE,new Float32Array([r,n])))},depthMask:function(t,r){return t(_({},a.DEPTH_WRITEMASK,r))},frontFace:function(t,r){return t(_({},a.FRONT_FACE,r))},lineWidth:function(t,r){return t(_({},a.LINE_WIDTH,r))},polygonOffset:function(t,r,n){var o;return t((o={},_(o,a.POLYGON_OFFSET_FACTOR,r),_(o,a.POLYGON_OFFSET_UNITS,n),o))},sampleCoverage:function(t,r,n){var o;return t((o={},_(o,a.SAMPLE_COVERAGE_VALUE,r),_(o,a.SAMPLE_COVERAGE_INVERT,n),o))},scissor:function(t,r,n,o,i){return t(_({},a.SCISSOR_BOX,new Int32Array([r,n,o,i])))},stencilMask:function(t,r){var n;return t((n={},_(n,a.STENCIL_WRITEMASK,r),_(n,a.STENCIL_BACK_WRITEMASK,r),n))},stencilMaskSeparate:function(t,r,n){return t(_({},r===a.FRONT?a.STENCIL_WRITEMASK:a.STENCIL_BACK_WRITEMASK,n))},stencilFunc:function(t,r,n,o){var i;return t((i={},_(i,a.STENCIL_FUNC,r),_(i,a.STENCIL_REF,n),_(i,a.STENCIL_VALUE_MASK,o),_(i,a.STENCIL_BACK_FUNC,r),_(i,a.STENCIL_BACK_REF,n),_(i,a.STENCIL_BACK_VALUE_MASK,o),i))},stencilFuncSeparate:function(t,r,n,o,i){var s;return t((s={},_(s,r===a.FRONT?a.STENCIL_FUNC:a.STENCIL_BACK_FUNC,n),_(s,r===a.FRONT?a.STENCIL_REF:a.STENCIL_BACK_REF,o),_(s,r===a.FRONT?a.STENCIL_VALUE_MASK:a.STENCIL_BACK_VALUE_MASK,i),s))},stencilOp:function(t,r,n,o){var i;return t((i={},_(i,a.STENCIL_FAIL,r),_(i,a.STENCIL_PASS_DEPTH_FAIL,n),_(i,a.STENCIL_PASS_DEPTH_PASS,o),_(i,a.STENCIL_BACK_FAIL,r),_(i,a.STENCIL_BACK_PASS_DEPTH_FAIL,n),_(i,a.STENCIL_BACK_PASS_DEPTH_PASS,o),i))},stencilOpSeparate:function(t,r,n,o,i){var s;return t((s={},_(s,r===a.FRONT?a.STENCIL_FAIL:a.STENCIL_BACK_FAIL,n),_(s,r===a.FRONT?a.STENCIL_PASS_DEPTH_FAIL:a.STENCIL_BACK_PASS_DEPTH_FAIL,o),_(s,r===a.FRONT?a.STENCIL_PASS_DEPTH_PASS:a.STENCIL_BACK_PASS_DEPTH_PASS,i),s))},viewport:function(t,r,n,o,i){return t(_({},a.VIEWPORT,[r,n,o,i]))}},ye=function(t,r){return t.isEnabled(r)},nn=(me={},_(me,a.BLEND,ye),_(me,a.CULL_FACE,ye),_(me,a.DEPTH_TEST,ye),_(me,a.DITHER,ye),_(me,a.POLYGON_OFFSET_FILL,ye),_(me,a.SAMPLE_ALPHA_TO_COVERAGE,ye),_(me,a.SAMPLE_COVERAGE,ye),_(me,a.SCISSOR_TEST,ye),_(me,a.STENCIL_TEST,ye),_(me,a.RASTERIZER_DISCARD,ye),me),ii=new Set([a.ACTIVE_TEXTURE,a.TRANSFORM_FEEDBACK_ACTIVE,a.TRANSFORM_FEEDBACK_PAUSED,a.TRANSFORM_FEEDBACK_BUFFER_BINDING,a.UNIFORM_BUFFER_BINDING,a.ELEMENT_ARRAY_BUFFER_BINDING,a.IMPLEMENTATION_COLOR_READ_FORMAT,a.IMPLEMENTATION_COLOR_READ_TYPE,a.READ_BUFFER,a.DRAW_BUFFER0,a.DRAW_BUFFER1,a.DRAW_BUFFER2,a.DRAW_BUFFER3,a.DRAW_BUFFER4,a.DRAW_BUFFER5,a.DRAW_BUFFER6,a.DRAW_BUFFER7,a.DRAW_BUFFER8,a.DRAW_BUFFER9,a.DRAW_BUFFER10,a.DRAW_BUFFER11,a.DRAW_BUFFER12,a.DRAW_BUFFER13,a.DRAW_BUFFER14,a.DRAW_BUFFER15,a.SAMPLER_BINDING,a.TEXTURE_BINDING_2D,a.TEXTURE_BINDING_2D_ARRAY,a.TEXTURE_BINDING_3D,a.TEXTURE_BINDING_CUBE_MAP]);function vu(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,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}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 i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function bu(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 he(e,t){var r=ue.attach(e),n=r.gl;if(!Nu(t)){var o={};for(var i in t){var s=Number(i),u=ni[i];u&&(typeof u=="string"?o[u]=!0:u(n,t[i],s))}var f=n.state&&n.state.cache;if(f)for(var c in o){var E=ai[c];E(n,t,f)}}}function lr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Mt,r=ue.attach(e),n=r.gl;if(typeof t=="number"){var o=t,i=nn[o];return i?i(n,o):n.getParameter(o)}var s=Array.isArray(t)?t:Object.keys(t),u={},f=vu(s),c;try{for(f.s();!(c=f.n()).done;){var E=c.value,l=nn[E];u[E]=l?l(n,Number(E)):n.getParameter(Number(E))}}catch(R){f.e(R)}finally{f.f()}return u}function si(e){he(e,Mt)}function Nu(e){for(var t in e)return!1;return!0}function ui(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 o=0;o<e.length;++o)if(e[o]!==t[o])return!1;return!0}return!1}var Cu=function(){function e(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=n.copyState,i=o===void 0?!1:o,s=n.log,u=s===void 0?function(){}:s;I(this,e),this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=r,this.cache=i?lr(r):Object.assign({},Mt),this.log=u,this._updateCache=this._updateCache.bind(this),Object.seal(this)}var t=e.prototype;return t.push=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})},t.pop=function(){B(this.stateStack.length>0);var n=this.stateStack[this.stateStack.length-1];he(this.gl,n),this.stateStack.pop()},t._updateCache=function(n){var o=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(var u in n){B(u!==void 0);var f=n[u],c=this.cache[u];ui(f,c)||(o=!0,i=c,s&&!(u in s)&&(s[u]=c),this.cache[u]=f)}return{valueChanged:o,oldValue:i}},y(e)}();function $e(e){return e.state}function Dt(e,t){var r=t.enable,n=r===void 0?!0:r,o=t.copyState;if(B(o!==void 0),!e.state){e.state=new Cu(e,{copyState:o}),yu(e);for(var i in rn){var s=rn[i];Iu(e,i,s)}fi(e,"getParameter"),fi(e,"isEnabled")}var u=$e(e);return u.enable=n,e}function ve(e){var t=$e(e);t||(Dt(e,{copyState:!1}),t=$e(e)),t.push()}function Se(e){var t=$e(e);B(t),t.pop()}function fi(e,t){var r=e[t].bind(e);e[t]=function(o){if(o===void 0||ii.has(o))return r(o);var i=$e(e);return o in i.cache||(i.cache[o]=r(o)),i.enable?i.cache[o]:r(o)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function Iu(e,t,r){if(e[t]){var n=e[t].bind(e);e[t]=function(){for(var i=$e(e),s=arguments.length,u=new Array(s),f=0;f<s;f++)u[f]=arguments[f];var c=r.apply(void 0,[i._updateCache].concat(u)),E=c.valueChanged,l=c.oldValue;return E&&n.apply(void 0,u),l},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}}function yu(e){var t=e.useProgram.bind(e);e.useProgram=function(n){var o=$e(e);o.program!==n&&(t(n),o.program=n)}}function _i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function lt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_i(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_i(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Pu={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:function(){return console.error("WebGL context lost")},onContextRestored:function(){return console.info("WebGL context restored")}};function ci(e,t){t=lt(lt({},Pu),t);var r=null,n=function(E){return r=E.statusMessage||r};e.addEventListener("webglcontextcreationerror",n,!1);var o=null;if(t.type==="webgl2"&&(t=lt(lt({},t),{},{webgl1:!1})),t.type==="webgl1"&&(t=lt(lt({},t),{},{webgl2:!1})),!o&&t.webgl2&&(o=e.getContext("webgl2",t)),!o&&t.webgl1&&(o=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",n,!1),!o)throw new Error("Failed to create ".concat(t.webgl2&&!t.webgl1?"WebGL2":"WebGL"," context: ").concat(r||"Unknown error"));if(t.onContextLost){var i=t,s=i.onContextLost;e.addEventListener("webglcontextlost",function(c){return s(c)},!1)}if(t.onContextRestored){var u=t,f=u.onContextRestored;e.addEventListener("webglcontextrestored",function(c){return f(c)},!1)}return o}function Ei(e){var t=e.getParameter(a.VENDOR),r=e.getParameter(a.RENDERER),n=e.getExtension("WEBGL_debug_renderer_info"),o=e.getParameter(n?n.UNMASKED_VENDOR_WEBGL:a.VENDOR),i=e.getParameter(n?n.UNMASKED_RENDERER_WEBGL:a.RENDERER),s=o||t,u=i||r,f=Fu(s,u);return{type:W(e)?"webgl2":"webgl",gpu:f,vendor:o||t,renderer:i||r,version:e.getParameter(a.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(a.SHADING_LANGUAGE_VERSION)}}}function Fu(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 li(){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,o=r.indexOf("Trident/")!==-1;return n||o}function Rr(e){switch(e){case"uint8":return a.UNSIGNED_BYTE;case"sint8":return a.BYTE;case"unorm8":return a.UNSIGNED_BYTE;case"snorm8":return a.BYTE;case"uint16":return a.UNSIGNED_SHORT;case"sint16":return a.SHORT;case"unorm16":return a.UNSIGNED_SHORT;case"snorm16":return a.SHORT;case"uint32":return a.UNSIGNED_INT;case"sint32":return a.INT;case"float16":return a.HALF_FLOAT;case"float32":return a.FLOAT}throw new Error(String(e))}var ce,Pe,fe="texture-compression-bc",Y="texture-compression-astc",Fe="texture-compression-etc2",Bu="texture-compression-etc1-webgl",dr="texture-compression-pvrtc-webgl",an="texture-compression-atc-webgl",xt="WEBGL_compressed_texture_s3tc",Ut="WEBGL_compressed_texture_s3tc_srgb",Rt="EXT_texture_compression_rgtc",wt="EXT_texture_compression_bptc",Mu="WEBGL_compressed_texture_etc",Du="WEBGL_compressed_texture_astc",xu="WEBGL_compressed_texture_etc1",Uu="WEBGL_compressed_texture_pvrtc",wu="WEBGL_compressed_texture_atc",Ri="EXT_sRGB",Ue="EXT_texture_norm16",Xu="WEBGL_color_buffer_float",Lu="EXT_color_buffer_float",be=function(t,r){return t.getExtension(r)},Ze=function(t,r){return r.every(function(n){return t.getExtension(n)})},on={"texture-blend-float-webgl1":function(t){return W(t)?!0:be(t,"EXT_float_blend")},"texture-formats-srgb-webgl1":function(t){return W(t)?!0:be(t,Ri)},"texture-formats-depth-webgl1":function(t){return W(t)?!0:be(t,"WEBGL_depth_texture")},"texture-formats-float32-webgl1":function(t){return W(t)?!0:be(t,"OES_texture_float")},"texture-formats-float16-webgl1":function(t){return W(t)?!0:be(t,"OES_texture_half_float")},"texture-formats-norm16-webgl":function(t){return W(t)?be(t,Ue):!1},"texture-filter-linear-float32-webgl":function(t){return be(t,"OES_texture_float_linear")},"texture-filter-linear-float16-webgl":function(t){return be(t,"OES_texture_half_float_linear")},"texture-filter-anisotropic-webgl":function(t){return be(t,"EXT_texture_filter_anisotropic")},"texture-renderable-float32-webgl":function(t){return be(t,"EXT_color_buffer_float")},"texture-renderable-float16-webgl":function(t){return be(t,"EXT_color_buffer_half_float")},"texture-compression-bc":function(t){return Ze(t,[xt,Ut,Rt,wt])},"texture-compression-bc5-webgl":function(t){return Ze(t,[Rt])},"texture-compression-etc2":function(t){return Ze(t,[Mu])},"texture-compression-astc":function(t){return Ze(t,[Du])},"texture-compression-etc1-webgl":function(t){return Ze(t,[xu])},"texture-compression-pvrtc-webgl":function(t){return Ze(t,[Uu])},"texture-compression-atc-webgl":function(t){return Ze(t,[wu])}};function Hu(e,t){var r;return((r=on[t])===null||r===void 0?void 0:r.call(on,e))||!1}function di(e){var t=Object.keys(on);return t.filter(function(r){return Hu(e,r)})}var Qe={"rgb8unorm-unsized":{gl:a.RGB,gl1:a.RGB,b:4,c:2,bpp:4,dataFormat:a.RGB,types:[a.UNSIGNED_BYTE,a.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:a.RGBA,gl1:a.RGBA,b:4,c:2,bpp:4,dataFormat:a.RGBA,types:[a.UNSIGNED_BYTE,a.UNSIGNED_SHORT_4_4_4_4,a.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:a.R8,b:1,c:1,renderbuffer:!0},r8snorm:{gl:a.R8_SNORM,b:1,c:1},r8uint:{gl:a.R8UI,b:1,c:1,renderbuffer:!0},r8sint:{gl:a.R8I,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:a.RG8,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:a.RG8_SNORM,b:2,c:2},rg8uint:{gl:a.RG8UI,b:2,c:2,renderbuffer:!0},rg8sint:{gl:a.RG8I,b:2,c:2,renderbuffer:!0},r16uint:{gl:a.R16UI,b:2,c:1,renderbuffer:!0},r16sint:{gl:a.R16I,b:2,c:1,renderbuffer:!0},r16float:{gl:a.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:a.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ue},"r16snorm-webgl":{gl:a.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",x:Ue},"rgba4unorm-webgl":{gl:a.RGBA4,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:a.RGB565,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:a.RGB5_A1,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:a.RGB8,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:a.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:a.RGBA8,gl1:a.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:a.SRGB8_ALPHA8,gl1:a.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:Ri,bpp:4},rgba8snorm:{gl:a.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:a.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:a.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:a.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:a.RG16I,b:4,c:2,bpp:4},rg16float:{gl:a.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:a.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ue},"rg16snorm-webgl":{gl:a.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ue},r32uint:{gl:a.R32UI,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:a.R32I,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:a.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:a.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:a.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:a.RGB10_A2,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:a.RGB10_A2UI,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:a.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ue},"rgb16snorm-webgl":{gl:a.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ue},rg32uint:{gl:a.RG32UI,b:8,c:2,renderbuffer:!0},rg32sint:{gl:a.RG32I,b:8,c:2,renderbuffer:!0},rg32float:{gl:a.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:a.RGBA16UI,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:a.RGBA16I,b:8,c:4,renderbuffer:!0},rgba16float:{gl:a.RGBA16F,gl1:a.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:a.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ue},"rgba16snorm-webgl":{gl:a.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",x:Ue},"rgb32float-webgl":{gl:a.RGB32F,gl1:a.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:Lu,gl1ext:Xu,dataFormat:a.RGB,types:[a.FLOAT]},rgba32uint:{gl:a.RGBA32UI,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:a.RGBA32I,b:16,c:4,renderbuffer:!0},rgba32float:{gl:a.RGBA32F,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:a.STENCIL_INDEX8,gl1:a.STENCIL_INDEX8,b:1,c:1,attachment:a.STENCIL_ATTACHMENT,renderbuffer:!0},depth16unorm:{gl:a.DEPTH_COMPONENT16,gl1:a.DEPTH_COMPONENT16,b:2,c:1,attachment:a.DEPTH_ATTACHMENT,renderbuffer:!0},depth24plus:{gl:a.DEPTH_COMPONENT24,b:3,c:1,attachment:a.DEPTH_ATTACHMENT},depth32float:{gl:a.DEPTH_COMPONENT32F,b:4,c:1,attachment:a.DEPTH_ATTACHMENT,renderbuffer:!0},"depth24plus-stencil8":{gl:a.DEPTH_STENCIL,gl1:a.DEPTH_STENCIL,b:4,c:2,p:1,attachment:a.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:a.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:a.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"depth32float-stencil8":{gl:a.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:a.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:a.COMPRESSED_RGB_S3TC_DXT1_EXT,x:xt,f:fe},"bc1-rgb-unorm-srgb-webgl":{gl:a.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Ut,f:fe},"bc1-rgba-unorm":{gl:a.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:xt,f:fe},"bc1-rgba-unorm-srgb":{gl:a.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Ut,f:fe},"bc2-rgba-unorm":{gl:a.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:xt,f:fe},"bc2-rgba-unorm-srgb":{gl:a.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:Ut,f:fe},"bc3-rgba-unorm":{gl:a.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:xt,f:fe},"bc3-rgba-unorm-srgb":{gl:a.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:Ut,f:fe},"bc4-r-unorm":{gl:a.COMPRESSED_RED_RGTC1_EXT,x:Rt,f:fe},"bc4-r-snorm":{gl:a.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Rt,f:fe},"bc5-rg-unorm":{gl:a.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Rt,f:fe},"bc5-rg-snorm":{gl:a.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Rt,f:fe},"bc6h-rgb-ufloat":{gl:a.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:wt,f:fe},"bc6h-rgb-float":{gl:a.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:wt,f:fe},"bc7-rgba-unorm":{gl:a.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:wt,f:fe},"bc7-rgba-unorm-srgb":{gl:a.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:wt,f:fe},"etc2-rgb8unorm":{gl:a.COMPRESSED_RGB8_ETC2,f:Fe},"etc2-rgb8unorm-srgb":{gl:a.COMPRESSED_SRGB8_ETC2,f:Fe},"etc2-rgb8a1unorm":{gl:a.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:Fe},"etc2-rgb8a1unorm-srgb":{gl:a.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:Fe},"etc2-rgba8unorm":{gl:a.COMPRESSED_RGBA8_ETC2_EAC,f:Fe},"etc2-rgba8unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:Fe},"eac-r11unorm":{gl:a.COMPRESSED_R11_EAC,f:Fe},"eac-r11snorm":{gl:a.COMPRESSED_SIGNED_R11_EAC,f:Fe},"eac-rg11unorm":{gl:a.COMPRESSED_RG11_EAC,f:Fe},"eac-rg11snorm":{gl:a.COMPRESSED_SIGNED_RG11_EAC,f:Fe},"astc-4x4-unorm":{gl:a.COMPRESSED_RGBA_ASTC_4x4_KHR,f:Y},"astc-4x4-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:Y},"astc-5x4-unorm":{gl:a.COMPRESSED_RGBA_ASTC_5x4_KHR,f:Y},"astc-5x4-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:Y},"astc-5x5-unorm":{gl:a.COMPRESSED_RGBA_ASTC_5x5_KHR,f:Y},"astc-5x5-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:Y},"astc-6x5-unorm":{gl:a.COMPRESSED_RGBA_ASTC_6x5_KHR,f:Y},"astc-6x5-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:Y},"astc-6x6-unorm":{gl:a.COMPRESSED_RGBA_ASTC_6x6_KHR,f:Y},"astc-6x6-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:Y},"astc-8x5-unorm":{gl:a.COMPRESSED_RGBA_ASTC_8x5_KHR,f:Y},"astc-8x5-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:Y},"astc-8x6-unorm":{gl:a.COMPRESSED_RGBA_ASTC_8x6_KHR,f:Y},"astc-8x6-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:Y},"astc-8x8-unorm":{gl:a.COMPRESSED_RGBA_ASTC_8x8_KHR,f:Y},"astc-8x8-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:Y},"astc-10x5-unorm":{gl:a.COMPRESSED_RGBA_ASTC_10x10_KHR,f:Y},"astc-10x5-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:Y},"astc-10x6-unorm":{gl:a.COMPRESSED_RGBA_ASTC_10x6_KHR,f:Y},"astc-10x6-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:Y},"astc-10x8-unorm":{gl:a.COMPRESSED_RGBA_ASTC_10x8_KHR,f:Y},"astc-10x8-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:Y},"astc-10x10-unorm":{gl:a.COMPRESSED_RGBA_ASTC_10x10_KHR,f:Y},"astc-10x10-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:Y},"astc-12x10-unorm":{gl:a.COMPRESSED_RGBA_ASTC_12x10_KHR,f:Y},"astc-12x10-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:Y},"astc-12x12-unorm":{gl:a.COMPRESSED_RGBA_ASTC_12x12_KHR,f:Y},"astc-12x12-unorm-srgb":{gl:a.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:Y},"pvrtc-rgb4unorm-webgl":{gl:a.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:dr},"pvrtc-rgba4unorm-webgl":{gl:a.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:dr},"pvrtc-rbg2unorm-webgl":{gl:a.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:dr},"pvrtc-rgba2unorm-webgl":{gl:a.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:dr},"etc1-rbg-unorm-webgl":{gl:a.COMPRESSED_RGB_ETC1_WEBGL,f:Bu},"atc-rgb-unorm-webgl":{gl:a.COMPRESSED_RGB_ATC_WEBGL,f:an},"atc-rgba-unorm-webgl":{gl:a.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:an},"atc-rgbai-unorm-webgl":{gl:a.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:an}},Wu=(ce={},_(ce,a.RED,1),_(ce,a.RED_INTEGER,1),_(ce,a.RG,2),_(ce,a.RG_INTEGER,2),_(ce,a.RGB,3),_(ce,a.RGB_INTEGER,3),_(ce,a.RGBA,4),_(ce,a.RGBA_INTEGER,4),_(ce,a.DEPTH_COMPONENT,1),_(ce,a.DEPTH_STENCIL,1),_(ce,a.ALPHA,1),_(ce,a.LUMINANCE,1),_(ce,a.LUMINANCE_ALPHA,2),ce),Vu=(Pe={},_(Pe,a.FLOAT,4),_(Pe,a.UNSIGNED_INT,4),_(Pe,a.INT,4),_(Pe,a.UNSIGNED_SHORT,2),_(Pe,a.SHORT,2),_(Pe,a.HALF_FLOAT,2),_(Pe,a.BYTE,1),_(Pe,a.UNSIGNED_BYTE,1),Pe);function Xt(e,t){var r=qe(t),n=Qe[r];if(!n||(W(e)?n.gl===void 0:n.gl1===void 0))return!1;var o=n.x||W(e)&&n.gl2ext||n.gl1ext;return o?Boolean(e.getExtension(o)):!0}function Ai(e,t){var r;return Xt(e,t)&&((r=Qe[t])===null||r===void 0?void 0:r.renderbuffer)}function qe(e){if(typeof e=="string")return e;var t=Object.entries(Qe).find(function(r){var n=L(r,2),o=n[1];return o.gl===e||o.gl1===e});if(!t)throw new Error("Unknown texture format ".concat(e));return t[0]}function Lt(e,t){var r=Qe[e],n=t?r?.gl:r?.gl1;if(n===void 0)throw new Error("Unsupported texture format ".concat(e));return n}function Ti(e,t){var r=qe(t);if(!Xt(e,r))return!1;try{var n=fr(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 pi(e,t){var r=qe(t);return!(!Xt(e,r)||typeof r=="number")}function Ar(e,t){var r=qe(e),n=Lt(r,t),o=fr(r);return{format:n,dataFormat:ju(o.format,o.integer,o.normalized,n),type:o.dataType?Rr(o.dataType):a.UNSIGNED_BYTE,compressed:o.compressed}}function mi(e){var t=Qe[e];if(!(t!=null&&t.attachment))throw new Error("".concat(e," is not a depth stencil format"));return t.attachment}function Tr(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:a.RGBA,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:a.UNSIGNED_BYTE,o=null,i=null;try{o=e.createTexture(),e.bindTexture(a.TEXTURE_2D,o);var s=0,u=1,f=1,c=0,E=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,s,t,u,f,c,r,n,E),i=e.createFramebuffer(),e.bindFramebuffer(a.FRAMEBUFFER,i),e.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,o,0);var l=e.checkFramebufferStatus(a.FRAMEBUFFER)===a.FRAMEBUFFER_COMPLETE;return e.bindTexture(a.TEXTURE_2D,null),l}finally{e.deleteTexture(o),e.deleteFramebuffer(i)}}function Ht(e,t){var r=qe(e),n=Ar(r,t),o=Wu[n.dataFormat]||4,i=Vu[n.type]||1;return o*i}function ju(e,t,r,n){if(n===a.RGBA||n===a.RGB)return n;switch(e){case"r":return t&&!r?a.RED_INTEGER:a.RED;case"rg":return t&&!r?a.RG_INTEGER:a.RG;case"rgb":return t&&!r?a.RGB_INTEGER:a.RGB;case"rgba":return t&&!r?a.RGBA_INTEGER:a.RGBA;default:return a.RGBA}}function Ku(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Yu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
20
20
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function Yu(e,t){if(e){if(typeof e=="string")return hi(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 hi(e,t)}}function hi(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 Si(e){var t=ku(e),r=Ku(di(e)),n;try{for(r.s();!(n=r.n()).done;){var o=n.value;t.add(o)}}catch(i){r.e(i)}finally{r.f()}return t}function ku(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(gi);r<n.length;r++){var o=n[r];Gu(e,o)&&t.add(o)}return t}function Gu(e,t){var r=gi[t];if(!r)return!1;var n=r||[],o=L(n,2),i=o[0],s=o[1],u=W(e)?s:i;if(typeof u=="boolean")return u;switch(t){case"texture-renderable-rgba32float-webgl":return W(e)?Boolean(e.getExtension(u)):Tr(e);case"glsl-derivatives":return un(e,u);case"glsl-frag-data":return un(e,u,{behavior:"require"});case"glsl-frag-depth":return un(e,u);default:return Boolean(e.getExtension(u))}}var sn={};function un(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!li(r))return!0;if(t in sn)return sn[t];var n=r.behavior||"enable",o="#extension GL_".concat(t," : ").concat(n,`
|
|
21
|
-
void main(void) {}`),i=e.createShader(e.VERTEX_SHADER);if(!i)throw new Error("shader");e.shaderSource(i,o),e.compileShader(i);var s=e.getShaderParameter(i,e.COMPILE_STATUS);return e.deleteShader(i),sn[t]=s,s}var gi={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 Oi(e){var t=Pt(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(a.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(a.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(a.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(a.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(a.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(a.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(a.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(a.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function vi(e){var t,r=Pt(e);function n(i){return e.getParameter(i)}function o(i,s){return r?r.getParameter(i):s||0}return t={},_(t,a.ALIASED_LINE_WIDTH_RANGE,n(a.ALIASED_LINE_WIDTH_RANGE)),_(t,a.ALIASED_POINT_SIZE_RANGE,n(a.ALIASED_POINT_SIZE_RANGE)),_(t,a.MAX_TEXTURE_SIZE,n(a.MAX_TEXTURE_SIZE)),_(t,a.MAX_CUBE_MAP_TEXTURE_SIZE,n(a.MAX_CUBE_MAP_TEXTURE_SIZE)),_(t,a.MAX_TEXTURE_IMAGE_UNITS,n(a.MAX_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_COMBINED_TEXTURE_IMAGE_UNITS,n(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_VERTEX_TEXTURE_IMAGE_UNITS,n(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_RENDERBUFFER_SIZE,n(a.MAX_RENDERBUFFER_SIZE)),_(t,a.MAX_VARYING_VECTORS,n(a.MAX_VARYING_VECTORS)),_(t,a.MAX_VERTEX_ATTRIBS,n(a.MAX_VERTEX_ATTRIBS)),_(t,a.MAX_VERTEX_UNIFORM_VECTORS,n(a.MAX_VERTEX_UNIFORM_VECTORS)),_(t,a.MAX_FRAGMENT_UNIFORM_VECTORS,n(a.MAX_FRAGMENT_UNIFORM_VECTORS)),_(t,a.MAX_VIEWPORT_DIMS,n(a.MAX_VIEWPORT_DIMS)),_(t,a.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n(a.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),_(t,a.MAX_3D_TEXTURE_SIZE,o(a.MAX_3D_TEXTURE_SIZE)),_(t,a.MAX_ARRAY_TEXTURE_LAYERS,o(a.MAX_ARRAY_TEXTURE_LAYERS)),_(t,a.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,o(a.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)),_(t,a.MAX_COLOR_ATTACHMENTS,o(a.MAX_COLOR_ATTACHMENTS)),_(t,a.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,o(a.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)),_(t,a.MAX_COMBINED_UNIFORM_BLOCKS,o(a.MAX_COMBINED_UNIFORM_BLOCKS)),_(t,a.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,o(a.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)),_(t,a.MAX_DRAW_BUFFERS,o(a.MAX_DRAW_BUFFERS)),_(t,a.MAX_ELEMENT_INDEX,o(a.MAX_ELEMENT_INDEX)),_(t,a.MAX_ELEMENTS_INDICES,o(a.MAX_ELEMENTS_INDICES)),_(t,a.MAX_ELEMENTS_VERTICES,o(a.MAX_ELEMENTS_VERTICES)),_(t,a.MAX_FRAGMENT_INPUT_COMPONENTS,o(a.MAX_FRAGMENT_INPUT_COMPONENTS)),_(t,a.MAX_FRAGMENT_UNIFORM_BLOCKS,o(a.MAX_FRAGMENT_UNIFORM_BLOCKS)),_(t,a.MAX_FRAGMENT_UNIFORM_COMPONENTS,o(a.MAX_FRAGMENT_UNIFORM_COMPONENTS)),_(t,a.MAX_SAMPLES,o(a.MAX_SAMPLES)),_(t,a.MAX_SERVER_WAIT_TIMEOUT,o(a.MAX_SERVER_WAIT_TIMEOUT)),_(t,a.MAX_TEXTURE_LOD_BIAS,o(a.MAX_TEXTURE_LOD_BIAS)),_(t,a.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,o(a.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)),_(t,a.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,o(a.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)),_(t,a.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,o(a.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)),_(t,a.MAX_UNIFORM_BLOCK_SIZE,o(a.MAX_UNIFORM_BLOCK_SIZE)),_(t,a.MAX_UNIFORM_BUFFER_BINDINGS,o(a.MAX_UNIFORM_BUFFER_BINDINGS)),_(t,a.MAX_VARYING_COMPONENTS,o(a.MAX_VARYING_COMPONENTS)),_(t,a.MAX_VERTEX_OUTPUT_COMPONENTS,o(a.MAX_VERTEX_OUTPUT_COMPONENTS)),_(t,a.MAX_VERTEX_UNIFORM_BLOCKS,o(a.MAX_VERTEX_UNIFORM_BLOCKS)),_(t,a.MAX_VERTEX_UNIFORM_COMPONENTS,o(a.MAX_VERTEX_UNIFORM_COMPONENTS)),_(t,a.MIN_PROGRAM_TEXEL_OFFSET,o(a.MIN_PROGRAM_TEXEL_OFFSET)),_(t,a.MAX_PROGRAM_TEXEL_OFFSET,o(a.MAX_PROGRAM_TEXEL_OFFSET)),_(t,a.UNIFORM_BUFFER_OFFSET_ALIGNMENT,o(a.UNIFORM_BUFFER_OFFSET_ALIGNMENT)),t}function fn(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=v(e),e!==null););return e}function Le(){return typeof Reflect<"u"&&Reflect.get?Le=Reflect.get.bind():Le=function(t,r,n){var o=fn(t,r);if(o){var i=Object.getOwnPropertyDescriptor(o,r);return i.get?i.get.call(arguments.length<3?t:n):i.value}},Le.apply(this,arguments)}var Rn=We(we(),1);function Ee(e,t,r){var n=ue.attach(e),o=n.gl;if(zu(t))return r(e);var i=t.nocatch,s=i===void 0?!0:i;ve(o),he(o,t);var u;if(s)u=r(o),Se(o);else try{u=r(o)}finally{Se(o)}return u}function zu(e){for(var t in e)return!1;return!0}function bi(e,t,r,n){if(at(t))return n(e);ve(e.gl);try{return mr(e,t),he(e,r),n(e)}finally{Se(e.gl)}}function Ni(e,t,r){if(at(t))return r(e);ve(e.gl);try{return mr(e,t),r(e)}finally{Se(e.gl)}}function mr(e,t){var r=ue.attach(e),n=r.gl;if(t.cullMode)switch(t.cullMode){case"none":n.disable(a.CULL_FACE);break;case"front":n.enable(a.CULL_FACE),n.cullFace(a.FRONT);break;case"back":n.enable(a.CULL_FACE),n.cullFace(a.BACK);break}if(t.frontFace&&n.frontFace(cn("frontFace",t.frontFace,{ccw:a.CCW,cw:a.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(Zu("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(a.DEPTH_TEST):n.disable(a.DEPTH_TEST),n.depthFunc(pr("depthCompare",t.depthCompare))),t.stencilWriteMask){var o=t.stencilWriteMask;n.stencilMaskSeparate(a.FRONT,o),n.stencilMaskSeparate(a.BACK,o)}if(t.stencilReadMask&&C.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){var i=t.stencilReadMask||4294967295,s=pr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(a.STENCIL_TEST):n.disable(a.STENCIL_TEST),n.stencilFuncSeparate(a.FRONT,s,0,i),n.stencilFuncSeparate(a.BACK,s,0,i)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){var u=_n("stencilPassOperation",t.stencilPassOperation),f=_n("stencilFailOperation",t.stencilFailOperation),c=_n("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(a.FRONT,f,c,u),n.stencilOpSeparate(a.BACK,f,c,u)}}function pr(e,t){return cn(e,t,{never:a.NEVER,less:a.LESS,equal:a.EQUAL,"less-equal":a.LEQUAL,greater:a.GREATER,"not-equal":a.NOTEQUAL,"greater-equal":a.GEQUAL,always:a.ALWAYS})}function _n(e,t){return cn(e,t,{keep:a.KEEP,zero:a.ZERO,replace:a.REPLACE,invert:a.INVERT,"increment-clamp":a.INCR,"decrement-clamp":a.DECR,"increment-wrap":a.INCR_WRAP,"decrement-wrap":a.DECR_WRAP})}function $u(e,t){return"Illegal parameter ".concat(t," for ").concat(e)}function cn(e,t,r){if(!(t in r))throw new Error($u(e,t));return r[t]}function Zu(e,t){return t}function Ci(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Qu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ci(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ci(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function hr(e){var t={};return e.addressModeU&&(t[a.TEXTURE_WRAP_S]=En(e.addressModeU)),e.addressModeV&&(t[a.TEXTURE_WRAP_T]=En(e.addressModeV)),e.addressModeW&&(t[a.TEXTURE_WRAP_R]=En(e.addressModeW)),e.magFilter&&(t[a.TEXTURE_MAG_FILTER]=Ii(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[a.TEXTURE_MIN_FILTER]=qu(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[a.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[a.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[a.TEXTURE_COMPARE_MODE]=a.COMPARE_REF_TO_TEXTURE),e.compare&&(t[a.TEXTURE_COMPARE_FUNC]=pr("compare",e.compare)),e.maxAnisotropy&&(t[a.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function En(e){switch(e){case"clamp-to-edge":return a.CLAMP_TO_EDGE;case"repeat":return a.REPEAT;case"mirror-repeat":return a.MIRRORED_REPEAT}}function Ii(e){switch(e){case"nearest":return a.NEAREST;case"linear":return a.LINEAR}}function qu(e,t){if(!t)return Ii(e);switch(e){case"nearest":return t==="nearest"?a.NEAREST_MIPMAP_NEAREST:a.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?a.LINEAR_MIPMAP_NEAREST:a.LINEAR_MIPMAP_LINEAR}}function yi(e){var t=Qu({},e);return e[a.TEXTURE_MIN_FILTER]!==a.NEAREST&&(t[a.TEXTURE_MIN_FILTER]=a.LINEAR),t[a.TEXTURE_WRAP_S]=a.CLAMP_TO_EDGE,t[a.TEXTURE_WRAP_T]=a.CLAMP_TO_EDGE,t}var ln=We(we(),1);function Pi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Fi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ju(e){var t=ef();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function ef(){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 tf=10,ge=function(e){w(r,e);var t=Ju(r);function r(o){var i,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};I(this,r),i=t.call(this,o,s),i.device=void 0,i.gl=void 0,i.gl2=void 0,i.handle=void 0,i.glTarget=void 0,i.glUsage=void 0,i.glIndexType=a.UNSIGNED_SHORT,i.byteLength=void 0,i.bytesUsed=void 0,i.debugData=null,i.device=o,i.gl=i.device.gl,i.gl2=i.device.gl2;var u=_e(s)==="object"?s.handle:void 0;return i.handle=u||i.gl.createBuffer(),o.setSpectorMetadata(i.handle,Fi(Fi({},i.props),{},{data:_e(i.props.data)})),i.glTarget=rf(i.props.usage),i.glUsage=nf(i.props.usage),i.glIndexType=i.props.indexType==="uint32"?a.UNSIGNED_INT:a.UNSIGNED_SHORT,i.debugData=null,s.data?i._initWithData(s.data,s.byteOffset,s.byteLength):i._initWithByteLength(s.byteLength||0),i}var n=r.prototype;return n._initWithData=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.byteLength+s;B(ArrayBuffer.isView(i));var f=this._getWriteTarget();return this.gl.bindBuffer(f,this.handle),this.gl.bufferData(f,u,this.glUsage),this.gl.bufferSubData(f,s,i),this.gl.bindBuffer(f,null),this.debugData=i.slice(0,tf),this.bytesUsed=u,this.byteLength=u,this.trackAllocatedMemory(u),this},n._initWithByteLength=function(i){B(i>=0);var s=i;i===0&&(s=new Float32Array(0));var u=this._getWriteTarget();return this.gl.bindBuffer(u,this.handle),this.gl.bufferData(u,s,this.glUsage),this.gl.bindBuffer(u,null),this.debugData=null,this.bytesUsed=i,this.byteLength=i,this},n.destroy=function(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)},n.write=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=0,f=void 0,c=this.device.isWebGL2?a.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(c,this.handle),u!==0||f!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(c,s,i,u,f)):this.gl.bufferSubData(c,s,i),this.gl.bindBuffer(c,null)},n.readAsync=function(){var o=oe(ln.default.mark(function s(){var u,f,c,E,l=arguments;return ln.default.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return u=l.length>0&&l[0]!==void 0?l[0]:0,f=l.length>1?l[1]:void 0,this.device.assertWebGL2(),c=new Uint8Array(f),E=0,this.gl.bindBuffer(a.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(a.COPY_READ_BUFFER,u,c,E,f),this.gl.bindBuffer(a.COPY_READ_BUFFER,null),d.abrupt("return",c);case 9:case"end":return d.stop()}},s,this)}));function i(){return o.apply(this,arguments)}return i}(),n._invalidateDebugData=function(){this.debugData=null},n._getWriteTarget=function(){return this.glTarget},n._getReadTarget=function(){return this.glTarget},y(r)}(ee);function rf(e){return e&ee.INDEX?a.ELEMENT_ARRAY_BUFFER:e&ee.VERTEX?a.ARRAY_BUFFER:e&ee.UNIFORM?a.UNIFORM_BUFFER:a.ARRAY_BUFFER}function nf(e){return e&ee.INDEX?a.STATIC_DRAW:e&ee.VERTEX?a.STATIC_DRAW:e&ee.UNIFORM?a.DYNAMIC_DRAW:a.STATIC_DRAW}function af(e){var t=of();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function of(){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 Je=function(e){w(r,e);var t=af(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.parameters=void 0,s.device=o,s.parameters=hr(i),s.device.isWebGL2&&(s.handle=s.handle||s.device.gl2.createSampler(),s._setSamplerParameters(s.parameters)),s}var n=r.prototype;return n.destroy=function(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)},n.toString=function(){return"Sampler(".concat(this.id,",").concat(JSON.stringify(this.props),")")},n._setSamplerParameters=function(i){for(var s=0,u=Object.entries(i);s<u.length;s++){var f=L(u[s],2),c=f[0],E=f[1],l=Number(c);switch(l){case a.TEXTURE_MIN_LOD:case a.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,l,E);break;default:this.device.gl2.samplerParameteri(this.handle,l,E);break}}},y(r)}(tr);function uf(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ff(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
22
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function ff(e,t){if(e){if(typeof e=="string")return Bi(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 Bi(e,t)}}function Bi(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 Mi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Sr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Mi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _f(e){var t=cf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function cf(){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 Ef={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},le=function(e){w(r,e);var t=_f(r);function r(o,i){var s,u;return I(this,r),u=t.call(this,o,Sr(Sr({},Ef),{},{format:"rgba8unorm"},i)),u.MAX_ATTRIBUTES=void 0,u.device=void 0,u.gl=void 0,u.gl2=void 0,u.handle=void 0,u.sampler=void 0,u.glFormat=void 0,u.type=void 0,u.dataFormat=void 0,u.mipmaps=void 0,u.target=void 0,u.textureUnit=void 0,u.loaded=!1,u._video=void 0,u.device=o,u.gl=u.device.gl,u.gl2=u.device.gl2,u.handle=u.props.handle||u.gl.createTexture(),u.device.setSpectorMetadata(u.handle,Sr(Sr({},u.props),{},{data:_e(u.props.data)})),u.glFormat=a.RGBA,u.target=lf(u.props),u.loaded=!1,typeof((s=u.props)===null||s===void 0?void 0:s.data)=="string"&&Object.assign(u.props,{data:Zr(u.props.data)}),u.initialize(u.props),Object.seal(Ce(u)),u}var n=r.prototype;return n.destroy=function(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)},n.toString=function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")},n.initialize=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(s);var u=s.data;if(u instanceof Promise)return u.then(function(S){return i.initialize(Object.assign({},s,{pixels:S,data:S}))}),this;var f=typeof HTMLVideoElement<"u"&&u instanceof HTMLVideoElement;if(f&&u.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,u.addEventListener("loadeddata",function(){return i.initialize(s)}),this;var c=s.parameters,E=c===void 0?{}:c,l=s.pixels,R=l===void 0?null:l,d=s.pixelStore,A=d===void 0?{}:d,m=s.textureUnit,O=m===void 0?void 0:m;u||(u=R);var g=s.width,N=s.height,P=s.dataFormat,F=s.type,H=s.compressed,x=H===void 0?!1:H,Z=s.mipmaps,z=Z===void 0?!0:Z,re=s.depth,K=re===void 0?0:re,h=Lt(s.format,this.device.isWebGL2),T=this._deduceParameters({format:s.format,type:F,dataFormat:P,compressed:x,data:u,width:g,height:N});return g=T.width,N=T.height,x=T.compressed,P=T.dataFormat,F=T.type,this.width=g,this.height=N,this.glFormat=h,this.type=F,this.dataFormat=P,this.textureUnit=O,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(a.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),z&&this.device.isWebGL1&&gr(this.width,this.height)&&(C.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaps"))(),z=!1),this.mipmaps=z,this.setImageData({data:u,width:g,height:N,depth:K,format:h,type:F,dataFormat:P,parameters:A,compressed:x}),this.setSampler(s.sampler),this._setSamplerParameters(E),z&&this.generateMipmap(),f&&(this._video={video:u,parameters:E,lastTime:u.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?u.currentTime:-1}),this},n.initializeCube=function(i){var s=this,u=i.mipmaps,f=u===void 0?!0:u,c=i.parameters,E=c===void 0?{}:c;return this.setCubeMapImageData(i).then(function(){s.loaded=!0,f&&s.generateMipmap(i),s.setSampler(i.sampler),s._setSamplerParameters(E)}),this},n.setSampler=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s;i instanceof Je?(this.sampler=i,s=i.props):(this.sampler=new Je(this.device,i),s=i);var u=hr(s);return this._setSamplerParameters(u),this},n.resize=function(i){var s=i.height,u=i.width,f=i.mipmaps,c=f===void 0?!1:f;return u!==this.width||s!==this.height?this.initialize({width:u,height:s,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:c}):this},n.update=function(){if(this._video){var i=this._video,s=i.video,u=i.parameters,f=i.lastTime;if(f===s.currentTime||s.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:s,parameters:u}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=s.currentTime}},n.generateMipmap=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&gr(this.width,this.height)?(C.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Ee(this.gl,s,function(){i.gl.generateMipmap(i.target)}),this.gl.bindTexture(this.target,null),this)},n.setImageData=function(i){var s=this;if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(i);this.trackDeallocatedMemory("Texture");var u=i.target,f=u===void 0?this.target:u,c=i.pixels,E=c===void 0?null:c,l=i.level,R=l===void 0?0:l,d=i.glFormat,A=d===void 0?this.glFormat:d,m=i.offset,O=m===void 0?0:m,g=i.parameters,N=g===void 0?{}:g,P=i.data,F=P===void 0?null:P,H=i.type,x=H===void 0?this.type:H,Z=i.width,z=Z===void 0?this.width:Z,re=i.height,K=re===void 0?this.height:re,h=i.dataFormat,T=h===void 0?this.dataFormat:h,S=i.compressed,M=S===void 0?!1:S;F||(F=E);var U=this._deduceParameters({format:this.props.format,type:x,dataFormat:T,compressed:M,data:F,width:z,height:K});x=U.type,T=U.dataFormat,M=U.compressed,z=U.width,K=U.height;var D=this.gl;D.bindTexture(this.target,this.handle);var k=null,ne=this._getDataType({data:F,compressed:M});F=ne.data,k=ne.dataType;var Q;if(Ee(this.gl,N,function(){switch(k){case"null":D.texImage2D(f,R,A,z,K,0,T,x,F);break;case"typed-array":D.texImage2D(f,R,A,z,K,0,T,x,F,O);break;case"buffer":Q=s.device.assertWebGL2(),Q.bindBuffer(a.PIXEL_UNPACK_BUFFER,F.handle||F),Q.texImage2D(f,R,A,z,K,0,T,x,O),Q.bindBuffer(a.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":s.device.isWebGL2?D.texImage2D(f,R,A,z,K,0,T,x,F):D.texImage2D(f,R,A,T,x,F);break;case"compressed":var ae=uf(F.entries()),Te;try{for(ae.s();!(Te=ae.n()).done;){var Pn=L(Te.value,2),bo=Pn[0],Vt=Pn[1];D.compressedTexImage2D(f,bo,Vt.format,Vt.width,Vt.height,0,Vt.data)}}catch(No){ae.e(No)}finally{ae.f()}break;default:B(!1,"Unknown image data type")}}),F&&F.byteLength)this.trackAllocatedMemory(F.byteLength,"Texture");else{var de=Ht(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*de,"Texture")}return this.loaded=!0,this},n.setSubImageData=function(i){var s=this,u=i.target,f=u===void 0?this.target:u,c=i.pixels,E=c===void 0?null:c,l=i.data,R=l===void 0?null:l,d=i.x,A=d===void 0?0:d,m=i.y,O=m===void 0?0:m,g=i.width,N=g===void 0?this.width:g,P=i.height,F=P===void 0?this.height:P,H=i.level,x=H===void 0?0:H,Z=i.glFormat,z=Z===void 0?this.glFormat:Z,re=i.type,K=re===void 0?this.type:re,h=i.dataFormat,T=h===void 0?this.dataFormat:h,S=i.compressed,M=S===void 0?!1:S,U=i.offset,D=U===void 0?0:U,k=i.parameters,ne=k===void 0?{}:k,Q=this._deduceParameters({format:this.props.format,type:K,dataFormat:T,compressed:M,data:R,width:N,height:F});if(K=Q.type,T=Q.dataFormat,M=Q.compressed,N=Q.width,F=Q.height,B(this.depth===1,"texSubImage not supported for 3D textures"),R||(R=E),R&&R.data){var de=R;R=de.data,N=de.shape[0],F=de.shape[1]}R instanceof ge&&(R=R.handle),this.gl.bindTexture(this.target,this.handle),Ee(this.gl,ne,function(){if(M)s.gl.compressedTexSubImage2D(f,x,A,O,N,F,z,R);else if(R===null)s.gl.texSubImage2D(f,x,A,O,N,F,T,K,null);else if(ArrayBuffer.isView(R))s.gl.texSubImage2D(f,x,A,O,N,F,T,K,R,D);else if(typeof WebGLBuffer<"u"&&R instanceof WebGLBuffer){var ae=s.device.assertWebGL2();ae.bindBuffer(a.PIXEL_UNPACK_BUFFER,R),ae.texSubImage2D(f,x,A,O,N,F,T,K,D),ae.bindBuffer(a.PIXEL_UNPACK_BUFFER,null)}else if(s.device.isWebGL2){var Te=s.device.assertWebGL2();Te.texSubImage2D(f,x,A,O,N,F,T,K,R)}else s.gl.texSubImage2D(f,x,A,O,T,K,R)}),this.gl.bindTexture(this.target,null)},n.copyFramebuffer=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return C.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null},n.getActiveUnit=function(){return this.gl.getParameter(a.ACTIVE_TEXTURE)-a.TEXTURE0},n.bind=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,s=this.gl;return i!==void 0&&(this.textureUnit=i,s.activeTexture(s.TEXTURE0+i)),s.bindTexture(this.target,this.handle),i},n.unbind=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,s=this.gl;return i!==void 0&&(this.textureUnit=i,s.activeTexture(s.TEXTURE0+i)),s.bindTexture(this.target,null),i},n._getDataType=function(i){var s=i.data,u=i.compressed,f=u===void 0?!1:u;return f?{data:s,dataType:"compressed"}:s===null?{data:s,dataType:"null"}:ArrayBuffer.isView(s)?{data:s,dataType:"typed-array"}:s instanceof ge?{data:s.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&s instanceof WebGLBuffer?{data:s,dataType:"buffer"}:{data:s,dataType:"browser-object"}},n._deduceParameters=function(i){var s=i.format,u=i.data,f=i.width,c=i.height,E=i.dataFormat,l=i.type,R=i.compressed,d=Ar(s,this.device.isWebGL2);E=E||d.dataFormat,l=l||d.type,R=R||d.compressed;var A=this._deduceImageSize(u,f,c);return f=A.width,c=A.height,{dataFormat:E,type:l,compressed:R,width:f,height:c,format:s,data:u}},n._deduceImageSize=function(i,s,u){var f;return typeof ImageData<"u"&&i instanceof ImageData?f={width:i.width,height:i.height}:typeof HTMLImageElement<"u"&&i instanceof HTMLImageElement?f={width:i.naturalWidth,height:i.naturalHeight}:typeof HTMLCanvasElement<"u"&&i instanceof HTMLCanvasElement?f={width:i.width,height:i.height}:typeof ImageBitmap<"u"&&i instanceof ImageBitmap?f={width:i.width,height:i.height}:typeof HTMLVideoElement<"u"&&i instanceof HTMLVideoElement?f={width:i.videoWidth,height:i.videoHeight}:i?f={width:s,height:u}:f={width:s>=0?s:1,height:u>=0?u:1},B(f,"Could not deduced texture size"),B(s===void 0||f.width===s,"Deduced texture width does not match supplied width"),B(u===void 0||f.height===u,"Deduced texture height does not match supplied height"),f},n.setCubeMapImageData=function(){var o=oe(Rn.default.mark(function s(u){var f=this,c,E,l,R,d,A,m,O,g,N,P;return Rn.default.wrap(function(H){for(;;)switch(H.prev=H.next){case 0:return c=this.gl,E=u.width,l=u.height,R=u.pixels,d=u.data,A=u.format,m=A===void 0?a.RGBA:A,O=u.type,g=O===void 0?a.UNSIGNED_BYTE:O,N=R||d,H.next=5,Promise.all(r.FACES.map(function(x){var Z=N[x];return Promise.all(Array.isArray(Z)?Z:[Z])}));case 5:P=H.sent,this.bind(),r.FACES.forEach(function(x,Z){P[Z].length>1&&f.props.mipmaps!==!1&&C.warn("".concat(f.id," has mipmap and multiple LODs."))(),P[Z].forEach(function(z,re){E&&l?c.texImage2D(x,re,m,E,l,0,m,g,z):c.texImage2D(x,re,m,m,g,z)})}),this.unbind();case 9:case"end":return H.stop()}},s,this)}));function i(s){return o.apply(this,arguments)}return i}(),n.setImageDataForFace=function(i){var s=this,u=i.face,f=i.width,c=i.height,E=i.pixels,l=i.data,R=i.format,d=R===void 0?a.RGBA:R,A=i.type,m=A===void 0?a.UNSIGNED_BYTE:A,O=this.gl,g=E||l;return this.bind(),g instanceof Promise?g.then(function(N){return s.setImageDataForFace(Object.assign({},i,{face:u,data:N,pixels:N}))}):this.width||this.height?O.texImage2D(u,0,d,f,c,0,d,m,g):O.texImage2D(u,0,d,d,m,g),this},n.setImageData3D=function(i){var s=this,u=i.level,f=u===void 0?0:u,c=i.dataFormat,E=i.format,l=i.type,R=i.width,d=i.height,A=i.depth,m=A===void 0?1:A,O=i.offset,g=O===void 0?0:O,N=i.data,P=i.parameters,F=P===void 0?{}:P;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);var H=Ar(E,this.device.isWebGL2);if(Ee(this.gl,F,function(){ArrayBuffer.isView(N)&&s.gl.texImage3D(s.target,f,H.format,R,d,m,0,H.dataFormat,H.type,N),N instanceof ge&&(s.gl.bindBuffer(a.PIXEL_UNPACK_BUFFER,N.handle),s.gl.texImage3D(s.target,f,c,R,d,m,0,E,l,g))}),N&&N.byteLength)this.trackAllocatedMemory(N.byteLength,"Texture");else{var x=Ht(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*x,"Texture")}return this.loaded=!0,this},n._setSamplerParameters=function(i){if(this.device.isWebGL1&&gr(this.width,this.height)&&(i=yi(i)),!at(i)){Rf(i),this.gl.bindTexture(this.target,this.handle);for(var s=0,u=Object.entries(i);s<u.length;s++){var f=L(u[s],2),c=f[0],E=f[1],l=Number(c),R=E;switch(l){case a.TEXTURE_MIN_LOD:case a.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,l,R);break;default:this.gl.texParameteri(this.target,l,R);break}}this.gl.bindTexture(this.target,null)}},n._getWebGL1NPOTParameterOverride=function(i,s){var u=this.device.isWebGL1&&gr(this.width,this.height);if(u)switch(i){case a.TEXTURE_MIN_FILTER:if(s!==a.LINEAR&&s!==a.NEAREST)return a.LINEAR;break;case a.TEXTURE_WRAP_S:case a.TEXTURE_WRAP_T:return a.CLAMP_TO_EDGE;default:break}return s},y(r)}(se);le.FACES=[a.TEXTURE_CUBE_MAP_POSITIVE_X,a.TEXTURE_CUBE_MAP_NEGATIVE_X,a.TEXTURE_CUBE_MAP_POSITIVE_Y,a.TEXTURE_CUBE_MAP_NEGATIVE_Y,a.TEXTURE_CUBE_MAP_POSITIVE_Z,a.TEXTURE_CUBE_MAP_NEGATIVE_Z];function lf(e){switch(e.dimension){case"2d":return a.TEXTURE_2D;case"cube":return a.TEXTURE_CUBE_MAP;case"2d-array":return a.TEXTURE_2D_ARRAY;case"3d":return a.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function gr(e,t){return!e||!t?!1:!qt(e)||!qt(t)}function Rf(e){C.log(1,"texture sampler parameters",e)()}function Or(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 B(n!==void 0,"Accessing undefined constant GL.".concat(t)),n}function df(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Af(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
21
|
+
void main(void) {}`),i=e.createShader(e.VERTEX_SHADER);if(!i)throw new Error("shader");e.shaderSource(i,o),e.compileShader(i);var s=e.getShaderParameter(i,e.COMPILE_STATUS);return e.deleteShader(i),sn[t]=s,s}var gi={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 Oi(e){var t=Pt(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(a.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(a.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(a.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(a.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(a.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(a.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(a.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(a.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function vi(e){var t,r=Pt(e);function n(i){return e.getParameter(i)}function o(i,s){return r?r.getParameter(i):s||0}return t={},_(t,a.ALIASED_LINE_WIDTH_RANGE,n(a.ALIASED_LINE_WIDTH_RANGE)),_(t,a.ALIASED_POINT_SIZE_RANGE,n(a.ALIASED_POINT_SIZE_RANGE)),_(t,a.MAX_TEXTURE_SIZE,n(a.MAX_TEXTURE_SIZE)),_(t,a.MAX_CUBE_MAP_TEXTURE_SIZE,n(a.MAX_CUBE_MAP_TEXTURE_SIZE)),_(t,a.MAX_TEXTURE_IMAGE_UNITS,n(a.MAX_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_COMBINED_TEXTURE_IMAGE_UNITS,n(a.MAX_COMBINED_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_VERTEX_TEXTURE_IMAGE_UNITS,n(a.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),_(t,a.MAX_RENDERBUFFER_SIZE,n(a.MAX_RENDERBUFFER_SIZE)),_(t,a.MAX_VARYING_VECTORS,n(a.MAX_VARYING_VECTORS)),_(t,a.MAX_VERTEX_ATTRIBS,n(a.MAX_VERTEX_ATTRIBS)),_(t,a.MAX_VERTEX_UNIFORM_VECTORS,n(a.MAX_VERTEX_UNIFORM_VECTORS)),_(t,a.MAX_FRAGMENT_UNIFORM_VECTORS,n(a.MAX_FRAGMENT_UNIFORM_VECTORS)),_(t,a.MAX_VIEWPORT_DIMS,n(a.MAX_VIEWPORT_DIMS)),_(t,a.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n(a.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),_(t,a.MAX_3D_TEXTURE_SIZE,o(a.MAX_3D_TEXTURE_SIZE)),_(t,a.MAX_ARRAY_TEXTURE_LAYERS,o(a.MAX_ARRAY_TEXTURE_LAYERS)),_(t,a.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,o(a.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)),_(t,a.MAX_COLOR_ATTACHMENTS,o(a.MAX_COLOR_ATTACHMENTS)),_(t,a.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,o(a.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)),_(t,a.MAX_COMBINED_UNIFORM_BLOCKS,o(a.MAX_COMBINED_UNIFORM_BLOCKS)),_(t,a.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,o(a.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)),_(t,a.MAX_DRAW_BUFFERS,o(a.MAX_DRAW_BUFFERS)),_(t,a.MAX_ELEMENT_INDEX,o(a.MAX_ELEMENT_INDEX)),_(t,a.MAX_ELEMENTS_INDICES,o(a.MAX_ELEMENTS_INDICES)),_(t,a.MAX_ELEMENTS_VERTICES,o(a.MAX_ELEMENTS_VERTICES)),_(t,a.MAX_FRAGMENT_INPUT_COMPONENTS,o(a.MAX_FRAGMENT_INPUT_COMPONENTS)),_(t,a.MAX_FRAGMENT_UNIFORM_BLOCKS,o(a.MAX_FRAGMENT_UNIFORM_BLOCKS)),_(t,a.MAX_FRAGMENT_UNIFORM_COMPONENTS,o(a.MAX_FRAGMENT_UNIFORM_COMPONENTS)),_(t,a.MAX_SAMPLES,o(a.MAX_SAMPLES)),_(t,a.MAX_SERVER_WAIT_TIMEOUT,o(a.MAX_SERVER_WAIT_TIMEOUT)),_(t,a.MAX_TEXTURE_LOD_BIAS,o(a.MAX_TEXTURE_LOD_BIAS)),_(t,a.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,o(a.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)),_(t,a.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,o(a.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)),_(t,a.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,o(a.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)),_(t,a.MAX_UNIFORM_BLOCK_SIZE,o(a.MAX_UNIFORM_BLOCK_SIZE)),_(t,a.MAX_UNIFORM_BUFFER_BINDINGS,o(a.MAX_UNIFORM_BUFFER_BINDINGS)),_(t,a.MAX_VARYING_COMPONENTS,o(a.MAX_VARYING_COMPONENTS)),_(t,a.MAX_VERTEX_OUTPUT_COMPONENTS,o(a.MAX_VERTEX_OUTPUT_COMPONENTS)),_(t,a.MAX_VERTEX_UNIFORM_BLOCKS,o(a.MAX_VERTEX_UNIFORM_BLOCKS)),_(t,a.MAX_VERTEX_UNIFORM_COMPONENTS,o(a.MAX_VERTEX_UNIFORM_COMPONENTS)),_(t,a.MIN_PROGRAM_TEXEL_OFFSET,o(a.MIN_PROGRAM_TEXEL_OFFSET)),_(t,a.MAX_PROGRAM_TEXEL_OFFSET,o(a.MAX_PROGRAM_TEXEL_OFFSET)),_(t,a.UNIFORM_BUFFER_OFFSET_ALIGNMENT,o(a.UNIFORM_BUFFER_OFFSET_ALIGNMENT)),t}function fn(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=v(e),e!==null););return e}function Le(){return typeof Reflect<"u"&&Reflect.get?Le=Reflect.get.bind():Le=function(t,r,n){var o=fn(t,r);if(o){var i=Object.getOwnPropertyDescriptor(o,r);return i.get?i.get.call(arguments.length<3?t:n):i.value}},Le.apply(this,arguments)}var Rn=We(we(),1);function le(e,t,r){var n=ue.attach(e),o=n.gl;if(zu(t))return r(e);var i=t.nocatch,s=i===void 0?!0:i;ve(o),he(o,t);var u;if(s)u=r(o),Se(o);else try{u=r(o)}finally{Se(o)}return u}function zu(e){for(var t in e)return!1;return!0}function bi(e,t,r,n){if(at(t))return n(e);ve(e.gl);try{return mr(e,t),he(e,r),n(e)}finally{Se(e.gl)}}function Ni(e,t,r){if(at(t))return r(e);ve(e.gl);try{return mr(e,t),r(e)}finally{Se(e.gl)}}function mr(e,t){var r=ue.attach(e),n=r.gl;if(t.cullMode)switch(t.cullMode){case"none":n.disable(a.CULL_FACE);break;case"front":n.enable(a.CULL_FACE),n.cullFace(a.FRONT);break;case"back":n.enable(a.CULL_FACE),n.cullFace(a.BACK);break}if(t.frontFace&&n.frontFace(cn("frontFace",t.frontFace,{ccw:a.CCW,cw:a.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(Zu("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(a.DEPTH_TEST):n.disable(a.DEPTH_TEST),n.depthFunc(pr("depthCompare",t.depthCompare))),t.stencilWriteMask){var o=t.stencilWriteMask;n.stencilMaskSeparate(a.FRONT,o),n.stencilMaskSeparate(a.BACK,o)}if(t.stencilReadMask&&C.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){var i=t.stencilReadMask||4294967295,s=pr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(a.STENCIL_TEST):n.disable(a.STENCIL_TEST),n.stencilFuncSeparate(a.FRONT,s,0,i),n.stencilFuncSeparate(a.BACK,s,0,i)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){var u=_n("stencilPassOperation",t.stencilPassOperation),f=_n("stencilFailOperation",t.stencilFailOperation),c=_n("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(a.FRONT,f,c,u),n.stencilOpSeparate(a.BACK,f,c,u)}}function pr(e,t){return cn(e,t,{never:a.NEVER,less:a.LESS,equal:a.EQUAL,"less-equal":a.LEQUAL,greater:a.GREATER,"not-equal":a.NOTEQUAL,"greater-equal":a.GEQUAL,always:a.ALWAYS})}function _n(e,t){return cn(e,t,{keep:a.KEEP,zero:a.ZERO,replace:a.REPLACE,invert:a.INVERT,"increment-clamp":a.INCR,"decrement-clamp":a.DECR,"increment-wrap":a.INCR_WRAP,"decrement-wrap":a.DECR_WRAP})}function $u(e,t){return"Illegal parameter ".concat(t," for ").concat(e)}function cn(e,t,r){if(!(t in r))throw new Error($u(e,t));return r[t]}function Zu(e,t){return t}function Ci(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Qu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ci(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ci(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function hr(e){var t={};return e.addressModeU&&(t[a.TEXTURE_WRAP_S]=En(e.addressModeU)),e.addressModeV&&(t[a.TEXTURE_WRAP_T]=En(e.addressModeV)),e.addressModeW&&(t[a.TEXTURE_WRAP_R]=En(e.addressModeW)),e.magFilter&&(t[a.TEXTURE_MAG_FILTER]=Ii(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[a.TEXTURE_MIN_FILTER]=qu(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[a.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[a.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[a.TEXTURE_COMPARE_MODE]=a.COMPARE_REF_TO_TEXTURE),e.compare&&(t[a.TEXTURE_COMPARE_FUNC]=pr("compare",e.compare)),e.maxAnisotropy&&(t[a.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function En(e){switch(e){case"clamp-to-edge":return a.CLAMP_TO_EDGE;case"repeat":return a.REPEAT;case"mirror-repeat":return a.MIRRORED_REPEAT}}function Ii(e){switch(e){case"nearest":return a.NEAREST;case"linear":return a.LINEAR}}function qu(e,t){if(!t)return Ii(e);switch(e){case"nearest":return t==="nearest"?a.NEAREST_MIPMAP_NEAREST:a.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?a.LINEAR_MIPMAP_NEAREST:a.LINEAR_MIPMAP_LINEAR}}function yi(e){var t=Qu({},e);return e[a.TEXTURE_MIN_FILTER]!==a.NEAREST&&(t[a.TEXTURE_MIN_FILTER]=a.LINEAR),t[a.TEXTURE_WRAP_S]=a.CLAMP_TO_EDGE,t[a.TEXTURE_WRAP_T]=a.CLAMP_TO_EDGE,t}var ln=We(we(),1);function Pi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Fi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Pi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Pi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ju(e){var t=ef();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function ef(){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 tf=10,ge=function(e){w(r,e);var t=Ju(r);function r(o){var i,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};I(this,r),i=t.call(this,o,s),i.device=void 0,i.gl=void 0,i.gl2=void 0,i.handle=void 0,i.glTarget=void 0,i.glUsage=void 0,i.glIndexType=a.UNSIGNED_SHORT,i.byteLength=void 0,i.bytesUsed=void 0,i.debugData=null,i.device=o,i.gl=i.device.gl,i.gl2=i.device.gl2;var u=_e(s)==="object"?s.handle:void 0;return i.handle=u||i.gl.createBuffer(),o.setSpectorMetadata(i.handle,Fi(Fi({},i.props),{},{data:_e(i.props.data)})),i.glTarget=rf(i.props.usage),i.glUsage=nf(i.props.usage),i.glIndexType=i.props.indexType==="uint32"?a.UNSIGNED_INT:a.UNSIGNED_SHORT,i.debugData=null,s.data?i._initWithData(s.data,s.byteOffset,s.byteLength):i._initWithByteLength(s.byteLength||0),i}var n=r.prototype;return n._initWithData=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.byteLength+s;B(ArrayBuffer.isView(i));var f=this._getWriteTarget();return this.gl.bindBuffer(f,this.handle),this.gl.bufferData(f,u,this.glUsage),this.gl.bufferSubData(f,s,i),this.gl.bindBuffer(f,null),this.debugData=i.slice(0,tf),this.bytesUsed=u,this.byteLength=u,this.trackAllocatedMemory(u),this},n._initWithByteLength=function(i){B(i>=0);var s=i;i===0&&(s=new Float32Array(0));var u=this._getWriteTarget();return this.gl.bindBuffer(u,this.handle),this.gl.bufferData(u,s,this.glUsage),this.gl.bindBuffer(u,null),this.debugData=null,this.bytesUsed=i,this.byteLength=i,this},n.destroy=function(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)},n.write=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=0,f=void 0,c=this.device.isWebGL2?a.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(c,this.handle),u!==0||f!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(c,s,i,u,f)):this.gl.bufferSubData(c,s,i),this.gl.bindBuffer(c,null)},n.readAsync=function(){var o=oe(ln.default.mark(function s(){var u,f,c,E,l=arguments;return ln.default.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return u=l.length>0&&l[0]!==void 0?l[0]:0,f=l.length>1?l[1]:void 0,this.device.assertWebGL2(),c=new Uint8Array(f),E=0,this.gl.bindBuffer(a.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(a.COPY_READ_BUFFER,u,c,E,f),this.gl.bindBuffer(a.COPY_READ_BUFFER,null),d.abrupt("return",c);case 9:case"end":return d.stop()}},s,this)}));function i(){return o.apply(this,arguments)}return i}(),n._invalidateDebugData=function(){this.debugData=null},n._getWriteTarget=function(){return this.glTarget},n._getReadTarget=function(){return this.glTarget},y(r)}(ee);function rf(e){return e&ee.INDEX?a.ELEMENT_ARRAY_BUFFER:e&ee.VERTEX?a.ARRAY_BUFFER:e&ee.UNIFORM?a.UNIFORM_BUFFER:a.ARRAY_BUFFER}function nf(e){return e&ee.INDEX?a.STATIC_DRAW:e&ee.VERTEX?a.STATIC_DRAW:e&ee.UNIFORM?a.DYNAMIC_DRAW:a.STATIC_DRAW}function af(e){var t=of();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function of(){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 Je=function(e){w(r,e);var t=af(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.parameters=void 0,s.device=o,s.parameters=hr(i),s.device.isWebGL2&&(s.handle=s.handle||s.device.gl2.createSampler(),s._setSamplerParameters(s.parameters)),s}var n=r.prototype;return n.destroy=function(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)},n.toString=function(){return"Sampler(".concat(this.id,",").concat(JSON.stringify(this.props),")")},n._setSamplerParameters=function(i){for(var s=0,u=Object.entries(i);s<u.length;s++){var f=L(u[s],2),c=f[0],E=f[1],l=Number(c);switch(l){case a.TEXTURE_MIN_LOD:case a.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,l,E);break;default:this.device.gl2.samplerParameteri(this.handle,l,E);break}}},y(r)}(tr);function uf(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ff(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
22
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function ff(e,t){if(e){if(typeof e=="string")return Bi(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 Bi(e,t)}}function Bi(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 Mi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Sr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Mi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Mi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _f(e){var t=cf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function cf(){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 Ef={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},Ee=function(e){w(r,e);var t=_f(r);function r(o,i){var s,u;return I(this,r),u=t.call(this,o,Sr(Sr({},Ef),{},{format:"rgba8unorm"},i)),u.MAX_ATTRIBUTES=void 0,u.device=void 0,u.gl=void 0,u.gl2=void 0,u.handle=void 0,u.sampler=void 0,u.glFormat=void 0,u.type=void 0,u.dataFormat=void 0,u.mipmaps=void 0,u.target=void 0,u.textureUnit=void 0,u.loaded=!1,u._video=void 0,u.device=o,u.gl=u.device.gl,u.gl2=u.device.gl2,u.handle=u.props.handle||u.gl.createTexture(),u.device.setSpectorMetadata(u.handle,Sr(Sr({},u.props),{},{data:_e(u.props.data)})),u.glFormat=a.RGBA,u.target=lf(u.props),u.loaded=!1,typeof((s=u.props)===null||s===void 0?void 0:s.data)=="string"&&Object.assign(u.props,{data:Zr(u.props.data)}),u.initialize(u.props),Object.seal(Ce(u)),u}var n=r.prototype;return n.destroy=function(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)},n.toString=function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")},n.initialize=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(s);var u=s.data;if(u instanceof Promise)return u.then(function(S){return i.initialize(Object.assign({},s,{pixels:S,data:S}))}),this;var f=typeof HTMLVideoElement<"u"&&u instanceof HTMLVideoElement;if(f&&u.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,u.addEventListener("loadeddata",function(){return i.initialize(s)}),this;var c=s.parameters,E=c===void 0?{}:c,l=s.pixels,R=l===void 0?null:l,d=s.pixelStore,A=d===void 0?{}:d,m=s.textureUnit,O=m===void 0?void 0:m;u||(u=R);var g=s.width,N=s.height,P=s.dataFormat,F=s.type,H=s.compressed,x=H===void 0?!1:H,Z=s.mipmaps,z=Z===void 0?!0:Z,re=s.depth,K=re===void 0?0:re,h=Lt(s.format,this.device.isWebGL2),T=this._deduceParameters({format:s.format,type:F,dataFormat:P,compressed:x,data:u,width:g,height:N});return g=T.width,N=T.height,x=T.compressed,P=T.dataFormat,F=T.type,this.width=g,this.height=N,this.glFormat=h,this.type=F,this.dataFormat=P,this.textureUnit=O,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(a.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),z&&this.device.isWebGL1&&gr(this.width,this.height)&&(C.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaps"))(),z=!1),this.mipmaps=z,this.setImageData({data:u,width:g,height:N,depth:K,format:h,type:F,dataFormat:P,parameters:A,compressed:x}),this.setSampler(s.sampler),this._setSamplerParameters(E),z&&this.generateMipmap(),f&&(this._video={video:u,parameters:E,lastTime:u.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?u.currentTime:-1}),this},n.initializeCube=function(i){var s=this,u=i.mipmaps,f=u===void 0?!0:u,c=i.parameters,E=c===void 0?{}:c;return this.setCubeMapImageData(i).then(function(){s.loaded=!0,f&&s.generateMipmap(i),s.setSampler(i.sampler),s._setSamplerParameters(E)}),this},n.setSampler=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s;i instanceof Je?(this.sampler=i,s=i.props):(this.sampler=new Je(this.device,i),s=i);var u=hr(s);return this._setSamplerParameters(u),this},n.resize=function(i){var s=i.height,u=i.width,f=i.mipmaps,c=f===void 0?!1:f;return u!==this.width||s!==this.height?this.initialize({width:u,height:s,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:c}):this},n.update=function(){if(this._video){var i=this._video,s=i.video,u=i.parameters,f=i.lastTime;if(f===s.currentTime||s.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:s,parameters:u}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=s.currentTime}},n.generateMipmap=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&gr(this.width,this.height)?(C.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),le(this.gl,s,function(){i.gl.generateMipmap(i.target)}),this.gl.bindTexture(this.target,null),this)},n.setImageData=function(i){var s=this;if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(i);this.trackDeallocatedMemory("Texture");var u=i.target,f=u===void 0?this.target:u,c=i.pixels,E=c===void 0?null:c,l=i.level,R=l===void 0?0:l,d=i.glFormat,A=d===void 0?this.glFormat:d,m=i.offset,O=m===void 0?0:m,g=i.parameters,N=g===void 0?{}:g,P=i.data,F=P===void 0?null:P,H=i.type,x=H===void 0?this.type:H,Z=i.width,z=Z===void 0?this.width:Z,re=i.height,K=re===void 0?this.height:re,h=i.dataFormat,T=h===void 0?this.dataFormat:h,S=i.compressed,M=S===void 0?!1:S;F||(F=E);var U=this._deduceParameters({format:this.props.format,type:x,dataFormat:T,compressed:M,data:F,width:z,height:K});x=U.type,T=U.dataFormat,M=U.compressed,z=U.width,K=U.height;var D=this.gl;D.bindTexture(this.target,this.handle);var k=null,ne=this._getDataType({data:F,compressed:M});F=ne.data,k=ne.dataType;var Q;if(le(this.gl,N,function(){switch(k){case"null":D.texImage2D(f,R,A,z,K,0,T,x,F);break;case"typed-array":D.texImage2D(f,R,A,z,K,0,T,x,F,O);break;case"buffer":Q=s.device.assertWebGL2(),Q.bindBuffer(a.PIXEL_UNPACK_BUFFER,F.handle||F),Q.texImage2D(f,R,A,z,K,0,T,x,O),Q.bindBuffer(a.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":s.device.isWebGL2?D.texImage2D(f,R,A,z,K,0,T,x,F):D.texImage2D(f,R,A,T,x,F);break;case"compressed":var ae=uf(F.entries()),Te;try{for(ae.s();!(Te=ae.n()).done;){var Pn=L(Te.value,2),bo=Pn[0],Vt=Pn[1];D.compressedTexImage2D(f,bo,Vt.format,Vt.width,Vt.height,0,Vt.data)}}catch(No){ae.e(No)}finally{ae.f()}break;default:B(!1,"Unknown image data type")}}),F&&F.byteLength)this.trackAllocatedMemory(F.byteLength,"Texture");else{var de=Ht(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*de,"Texture")}return this.loaded=!0,this},n.setSubImageData=function(i){var s=this,u=i.target,f=u===void 0?this.target:u,c=i.pixels,E=c===void 0?null:c,l=i.data,R=l===void 0?null:l,d=i.x,A=d===void 0?0:d,m=i.y,O=m===void 0?0:m,g=i.width,N=g===void 0?this.width:g,P=i.height,F=P===void 0?this.height:P,H=i.level,x=H===void 0?0:H,Z=i.glFormat,z=Z===void 0?this.glFormat:Z,re=i.type,K=re===void 0?this.type:re,h=i.dataFormat,T=h===void 0?this.dataFormat:h,S=i.compressed,M=S===void 0?!1:S,U=i.offset,D=U===void 0?0:U,k=i.parameters,ne=k===void 0?{}:k,Q=this._deduceParameters({format:this.props.format,type:K,dataFormat:T,compressed:M,data:R,width:N,height:F});if(K=Q.type,T=Q.dataFormat,M=Q.compressed,N=Q.width,F=Q.height,B(this.depth===1,"texSubImage not supported for 3D textures"),R||(R=E),R&&R.data){var de=R;R=de.data,N=de.shape[0],F=de.shape[1]}R instanceof ge&&(R=R.handle),this.gl.bindTexture(this.target,this.handle),le(this.gl,ne,function(){if(M)s.gl.compressedTexSubImage2D(f,x,A,O,N,F,z,R);else if(R===null)s.gl.texSubImage2D(f,x,A,O,N,F,T,K,null);else if(ArrayBuffer.isView(R))s.gl.texSubImage2D(f,x,A,O,N,F,T,K,R,D);else if(typeof WebGLBuffer<"u"&&R instanceof WebGLBuffer){var ae=s.device.assertWebGL2();ae.bindBuffer(a.PIXEL_UNPACK_BUFFER,R),ae.texSubImage2D(f,x,A,O,N,F,T,K,D),ae.bindBuffer(a.PIXEL_UNPACK_BUFFER,null)}else if(s.device.isWebGL2){var Te=s.device.assertWebGL2();Te.texSubImage2D(f,x,A,O,N,F,T,K,R)}else s.gl.texSubImage2D(f,x,A,O,T,K,R)}),this.gl.bindTexture(this.target,null)},n.copyFramebuffer=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return C.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null},n.getActiveUnit=function(){return this.gl.getParameter(a.ACTIVE_TEXTURE)-a.TEXTURE0},n.bind=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,s=this.gl;return i!==void 0&&(this.textureUnit=i,s.activeTexture(s.TEXTURE0+i)),s.bindTexture(this.target,this.handle),i},n.unbind=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,s=this.gl;return i!==void 0&&(this.textureUnit=i,s.activeTexture(s.TEXTURE0+i)),s.bindTexture(this.target,null),i},n._getDataType=function(i){var s=i.data,u=i.compressed,f=u===void 0?!1:u;return f?{data:s,dataType:"compressed"}:s===null?{data:s,dataType:"null"}:ArrayBuffer.isView(s)?{data:s,dataType:"typed-array"}:s instanceof ge?{data:s.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&s instanceof WebGLBuffer?{data:s,dataType:"buffer"}:{data:s,dataType:"browser-object"}},n._deduceParameters=function(i){var s=i.format,u=i.data,f=i.width,c=i.height,E=i.dataFormat,l=i.type,R=i.compressed,d=Ar(s,this.device.isWebGL2);E=E||d.dataFormat,l=l||d.type,R=R||d.compressed;var A=this._deduceImageSize(u,f,c);return f=A.width,c=A.height,{dataFormat:E,type:l,compressed:R,width:f,height:c,format:s,data:u}},n._deduceImageSize=function(i,s,u){var f;return typeof ImageData<"u"&&i instanceof ImageData?f={width:i.width,height:i.height}:typeof HTMLImageElement<"u"&&i instanceof HTMLImageElement?f={width:i.naturalWidth,height:i.naturalHeight}:typeof HTMLCanvasElement<"u"&&i instanceof HTMLCanvasElement?f={width:i.width,height:i.height}:typeof ImageBitmap<"u"&&i instanceof ImageBitmap?f={width:i.width,height:i.height}:typeof HTMLVideoElement<"u"&&i instanceof HTMLVideoElement?f={width:i.videoWidth,height:i.videoHeight}:i?f={width:s,height:u}:f={width:s>=0?s:1,height:u>=0?u:1},B(f,"Could not deduced texture size"),B(s===void 0||f.width===s,"Deduced texture width does not match supplied width"),B(u===void 0||f.height===u,"Deduced texture height does not match supplied height"),f},n.setCubeMapImageData=function(){var o=oe(Rn.default.mark(function s(u){var f=this,c,E,l,R,d,A,m,O,g,N,P;return Rn.default.wrap(function(H){for(;;)switch(H.prev=H.next){case 0:return c=this.gl,E=u.width,l=u.height,R=u.pixels,d=u.data,A=u.format,m=A===void 0?a.RGBA:A,O=u.type,g=O===void 0?a.UNSIGNED_BYTE:O,N=R||d,H.next=5,Promise.all(r.FACES.map(function(x){var Z=N[x];return Promise.all(Array.isArray(Z)?Z:[Z])}));case 5:P=H.sent,this.bind(),r.FACES.forEach(function(x,Z){P[Z].length>1&&f.props.mipmaps!==!1&&C.warn("".concat(f.id," has mipmap and multiple LODs."))(),P[Z].forEach(function(z,re){E&&l?c.texImage2D(x,re,m,E,l,0,m,g,z):c.texImage2D(x,re,m,m,g,z)})}),this.unbind();case 9:case"end":return H.stop()}},s,this)}));function i(s){return o.apply(this,arguments)}return i}(),n.setImageDataForFace=function(i){var s=this,u=i.face,f=i.width,c=i.height,E=i.pixels,l=i.data,R=i.format,d=R===void 0?a.RGBA:R,A=i.type,m=A===void 0?a.UNSIGNED_BYTE:A,O=this.gl,g=E||l;return this.bind(),g instanceof Promise?g.then(function(N){return s.setImageDataForFace(Object.assign({},i,{face:u,data:N,pixels:N}))}):this.width||this.height?O.texImage2D(u,0,d,f,c,0,d,m,g):O.texImage2D(u,0,d,d,m,g),this},n.setImageData3D=function(i){var s=this,u=i.level,f=u===void 0?0:u,c=i.dataFormat,E=i.format,l=i.type,R=i.width,d=i.height,A=i.depth,m=A===void 0?1:A,O=i.offset,g=O===void 0?0:O,N=i.data,P=i.parameters,F=P===void 0?{}:P;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);var H=Ar(E,this.device.isWebGL2);if(le(this.gl,F,function(){ArrayBuffer.isView(N)&&s.gl.texImage3D(s.target,f,H.format,R,d,m,0,H.dataFormat,H.type,N),N instanceof ge&&(s.gl.bindBuffer(a.PIXEL_UNPACK_BUFFER,N.handle),s.gl.texImage3D(s.target,f,c,R,d,m,0,E,l,g))}),N&&N.byteLength)this.trackAllocatedMemory(N.byteLength,"Texture");else{var x=Ht(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*x,"Texture")}return this.loaded=!0,this},n._setSamplerParameters=function(i){if(this.device.isWebGL1&&gr(this.width,this.height)&&(i=yi(i)),!at(i)){Rf(i),this.gl.bindTexture(this.target,this.handle);for(var s=0,u=Object.entries(i);s<u.length;s++){var f=L(u[s],2),c=f[0],E=f[1],l=Number(c),R=E;switch(l){case a.TEXTURE_MIN_LOD:case a.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,l,R);break;default:this.gl.texParameteri(this.target,l,R);break}}this.gl.bindTexture(this.target,null)}},n._getWebGL1NPOTParameterOverride=function(i,s){var u=this.device.isWebGL1&&gr(this.width,this.height);if(u)switch(i){case a.TEXTURE_MIN_FILTER:if(s!==a.LINEAR&&s!==a.NEAREST)return a.LINEAR;break;case a.TEXTURE_WRAP_S:case a.TEXTURE_WRAP_T:return a.CLAMP_TO_EDGE;default:break}return s},y(r)}(se);Ee.FACES=[a.TEXTURE_CUBE_MAP_POSITIVE_X,a.TEXTURE_CUBE_MAP_NEGATIVE_X,a.TEXTURE_CUBE_MAP_POSITIVE_Y,a.TEXTURE_CUBE_MAP_NEGATIVE_Y,a.TEXTURE_CUBE_MAP_POSITIVE_Z,a.TEXTURE_CUBE_MAP_NEGATIVE_Z];function lf(e){switch(e.dimension){case"2d":return a.TEXTURE_2D;case"cube":return a.TEXTURE_CUBE_MAP;case"2d-array":return a.TEXTURE_2D_ARRAY;case"3d":return a.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function gr(e,t){return!e||!t?!1:!qt(e)||!qt(t)}function Rf(e){C.log(1,"texture sampler parameters",e)()}function Or(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 B(n!==void 0,"Accessing undefined constant GL.".concat(t)),n}function df(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Af(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}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 i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function Af(e,t){if(e){if(typeof e=="string")return Di(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 Di(e,t)}}function Di(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 Tf(e){var t=pf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function pf(){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 dt="Resource subclass must define virtual methods",Wt=function(e){w(r,e);var t=Tf(r);function r(o,i,s){var u;I(this,r),u=t.call(this,o,i,s),u.device=void 0,u.gl=void 0,u.gl2=void 0,u._handle=void 0,u._bound=!1,u.byteLength=0,u.device=ue.attach(o);var f=u.device.gl;_r(f);var c=i||{},E=c.id;return u.gl=f,u.gl2=f,u.id=E||Oe(u.constructor.name),u._handle=i?.handle,u._handle===void 0&&(u._handle=u._createHandle()),u.byteLength=0,u}var n=r.prototype;return n.toString=function(){return"".concat(this.constructor.name,"(").concat(this.id,")")},n.delete=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=i.deleteChildren,u=s===void 0?!1:s,f=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,f&&u&&f.filter(Boolean).forEach(function(c){return c.destroy()}),this},n.bind=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof i!="function")return this._bindHandle(i),this;var s;return this._bound?s=i():(this._bindHandle(this.handle),this._bound=!0,s=i(),this._bound=!1,this._bindHandle(null)),s},n.unbind=function(){this.bind(null)},n.getParameter=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};i=Or(this.gl,i),B(i);var u=this.constructor.PARAMETERS||{},f=u[i];if(f){var c=W(this.gl),E=(!("webgl2"in f)||c)&&(!("extension"in f)||this.gl.getExtension(f.extension));if(!E){var l=f.webgl1,R="webgl2"in f?f.webgl2:f.webgl1,d=c?R:l;return d}}return this._getParameter(i,s)},n.getParameters=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=i.parameters,u=i.keys,f=this.constructor.PARAMETERS||{},c=W(this.gl),E={},l=s||Object.keys(f),R=df(l),d;try{for(R.s();!(d=R.n()).done;){var A=d.value,m=f[A],O=m&&(!("webgl2"in m)||c)&&(!("extension"in m)||this.gl.getExtension(m.extension));if(O){var g=u?this.device.getGLKey(A):A;E[g]=this.getParameter(A,i),u&&m.type==="GLenum"&&(E[g]=this.device.getGLKey(E[g]))}}}catch(N){R.e(N)}finally{R.f()}return E},n.setParameter=function(i,s){i=Or(this.gl,i),B(i);var u=this.constructor.PARAMETERS||{},f=u[i];if(f){var c=W(this.gl),E=(!("webgl2"in f)||c)&&(!("extension"in f)||this.gl.getExtension(f.extension));if(!E)throw new Error("Parameter not available on this platform");f.type==="GLenum"&&(s=Or(s))}return this._setParameter(i,s),this},n.setParameters=function(i){for(var s in i)this.setParameter(s,i[s]);return this},n.stubRemovedMethods=function(i,s,u){return Gr(this,i,s,u)},n.initialize=function(i){},n._createHandle=function(){throw new Error(dt)},n._deleteHandle=function(){throw new Error(dt)},n._bindHandle=function(i){throw new Error(dt)},n._getOptsFromHandle=function(){throw new Error(dt)},n._getParameter=function(i,s){throw new Error(dt)},n._setParameter=function(i,s){throw new Error(dt)},y(r,[{key:"handle",get:function(){return this._handle}}]),r}(j);var wi;function xi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ui(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?xi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function mf(e){var t=hf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function hf(){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}}wi=Symbol.toStringTag;var At=function(e){w(r,e);var t=mf(r);r.isTextureFormatSupported=function(i,s){return Ai(i.gl,s)};function r(o,i){var s;if(I(this,r),typeof i.format=="number")throw new Error("Renderbuffer");return s=t.call(this,o,i,r.defaultProps),s.glFormat=void 0,s.glFormat=Lt(s.props.format,o.isWebGL2),s._initialize(s.props),s}var n=r.prototype;return n.resize=function(i){(i.width!==this.width||i.height!==this.height)&&(Object.assign(this.props,Ui(Ui({},i),{},{format:this.format,samples:this.samples})),this._initialize(this.props))},n._initialize=function(i){var s=i.format,u=i.width,f=i.height,c=i.samples;B(s,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(a.RENDERBUFFER,this.handle),c!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(a.RENDERBUFFER,c,this.glFormat,u,f):this.gl.renderbufferStorage(a.RENDERBUFFER,this.glFormat,u,f),this.gl.bindRenderbuffer(a.RENDERBUFFER,null),this.trackAllocatedMemory(u*f*(c||1)*Ht(this.glFormat,this.device.isWebGL2))},n._createHandle=function(){return this.gl.createRenderbuffer()},n._deleteHandle=function(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()},n._bindHandle=function(i){this.gl.bindRenderbuffer(a.RENDERBUFFER,i)},y(r,[{key:wi,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:"attachment",get:function(){}}]),r}(Wt);At.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};function Sf(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=gf(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
24
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function gf(e,t){if(e){if(typeof e=="string")return Xi(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 Xi(e,t)}}function Xi(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 Of(e){var t=vf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function vf(){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 Be=function(e){w(r,e);var t=Of(r);function r(o,i){var s;I(this,r),s=t.call(this,o,i),s.device=void 0,s.gl=void 0,s.handle=void 0;var u=i.handle===null;if(s.device=o,s.gl=o.gl,s.handle=s.props.handle||u?s.props.handle:s.gl.createFramebuffer(),!u){o.setSpectorMetadata(s.handle,{id:s.props.id,props:s.props}),s.autoCreateAttachmentTextures(),s.gl.bindFramebuffer(a.FRAMEBUFFER,s.handle);for(var f=0;f<s.colorAttachments.length;++f){var c=s.colorAttachments[f],E=a.COLOR_ATTACHMENT0+f;c&&s._attachOne(E,c)}s.depthStencilAttachment&&s._attachOne(mi(s.depthStencilAttachment.format),s.depthStencilAttachment),s.gl.bindFramebuffer(a.FRAMEBUFFER,null)}return i.check!==!1&&s._checkStatus(),s}var n=r.prototype;return n.destroy=function(){Le(v(r.prototype),"destroy",this).call(this),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)},n._checkStatus=function(){var i=this.gl,s=i.bindFramebuffer(a.FRAMEBUFFER,this.handle),u=i.checkFramebufferStatus(a.FRAMEBUFFER);if(i.bindFramebuffer(a.FRAMEBUFFER,s||null),u!==i.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer ".concat(Nf(u)))},n.createDepthStencilTexture=function(i){return new At(this.device,{id:"".concat(this.id,"-depth-stencil"),format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,s){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;i===void 0&&(i=this.gl.drawingBufferWidth),s===void 0&&(s=this.gl.drawingBufferHeight);var u=Sf(this.colorAttachments),f;try{for(u.s();!(f=u.n()).done;){var c=f.value;c.resize({width:i,height:s})}}catch(E){u.e(E)}finally{u.f()}return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:i,height:s}),this},n._attachOne=function(i,s){if(s instanceof At)return this._attachWEBGLRenderbuffer(i,s),s;if(Array.isArray(s)){var u=L(s,3),f=u[0],c=u[1],E=c===void 0?0:c,l=u[2],R=l===void 0?0:l;return this._attachTexture(i,f,E,R),f}else if(s instanceof
|
|
24
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function gf(e,t){if(e){if(typeof e=="string")return Xi(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 Xi(e,t)}}function Xi(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 Of(e){var t=vf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function vf(){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 Be=function(e){w(r,e);var t=Of(r);function r(o,i){var s;I(this,r),s=t.call(this,o,i),s.device=void 0,s.gl=void 0,s.handle=void 0;var u=i.handle===null;if(s.device=o,s.gl=o.gl,s.handle=s.props.handle||u?s.props.handle:s.gl.createFramebuffer(),!u){o.setSpectorMetadata(s.handle,{id:s.props.id,props:s.props}),s.autoCreateAttachmentTextures(),s.gl.bindFramebuffer(a.FRAMEBUFFER,s.handle);for(var f=0;f<s.colorAttachments.length;++f){var c=s.colorAttachments[f],E=a.COLOR_ATTACHMENT0+f;c&&s._attachOne(E,c)}s.depthStencilAttachment&&s._attachOne(mi(s.depthStencilAttachment.format),s.depthStencilAttachment),s.gl.bindFramebuffer(a.FRAMEBUFFER,null)}return i.check!==!1&&s._checkStatus(),s}var n=r.prototype;return n.destroy=function(){Le(v(r.prototype),"destroy",this).call(this),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)},n._checkStatus=function(){var i=this.gl,s=i.bindFramebuffer(a.FRAMEBUFFER,this.handle),u=i.checkFramebufferStatus(a.FRAMEBUFFER);if(i.bindFramebuffer(a.FRAMEBUFFER,s||null),u!==i.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer ".concat(Nf(u)))},n.createDepthStencilTexture=function(i){return new At(this.device,{id:"".concat(this.id,"-depth-stencil"),format:i,width:this.width,height:this.height})},n.resizeAttachments=function(i,s){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;i===void 0&&(i=this.gl.drawingBufferWidth),s===void 0&&(s=this.gl.drawingBufferHeight);var u=Sf(this.colorAttachments),f;try{for(u.s();!(f=u.n()).done;){var c=f.value;c.resize({width:i,height:s})}}catch(E){u.e(E)}finally{u.f()}return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:i,height:s}),this},n._attachOne=function(i,s){if(s instanceof At)return this._attachWEBGLRenderbuffer(i,s),s;if(Array.isArray(s)){var u=L(s,3),f=u[0],c=u[1],E=c===void 0?0:c,l=u[2],R=l===void 0?0:l;return this._attachTexture(i,f,E,R),f}else if(s instanceof Ee)return this._attachTexture(i,s,0,0),s;throw new Error("attach")},n._attachWEBGLRenderbuffer=function(i,s){this.gl.framebufferRenderbuffer(a.FRAMEBUFFER,i,a.RENDERBUFFER,s.handle)},n._attachTexture=function(i,s,u,f){var c=this.device,E=c.gl,l=c.gl2;switch(E.bindTexture(s.target,s.handle),s.target){case a.TEXTURE_2D_ARRAY:case a.TEXTURE_3D:this.device.assertWebGL2(),l?.framebufferTextureLayer(a.FRAMEBUFFER,i,s.target,f,u);break;case a.TEXTURE_CUBE_MAP:var R=bf(u);E.framebufferTexture2D(a.FRAMEBUFFER,i,R,s.handle,f);break;case a.TEXTURE_2D:E.framebufferTexture2D(a.FRAMEBUFFER,i,a.TEXTURE_2D,s.handle,f);break;default:B(!1,"Illegal texture type")}E.bindTexture(s.target,null)},y(r,[{key:"texture",get:function(){return this.colorAttachments[0]}}]),r}(ut);function bf(e){return e<a.TEXTURE_CUBE_MAP_POSITIVE_X?e+a.TEXTURE_CUBE_MAP_POSITIVE_X:e}function Nf(e){switch(e){case a.FRAMEBUFFER_COMPLETE:return"success";case a.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case a.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case a.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case a.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case a.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return"".concat(e)}}function Cf(e){var t=If();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function If(){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 vr=function(e){w(r,e);var t=Cf(r);function r(o,i){var s;return I(this,r),s=t.call(this,i),s.device=void 0,s.presentationSize=void 0,s._framebuffer=null,s.device=o,s.presentationSize=[-1,-1],s._setAutoCreatedCanvasId("".concat(s.device.id,"-canvas")),s.update(),s}var n=r.prototype;return n.getCurrentFramebuffer=function(){return this.update(),this._framebuffer=this._framebuffer||new Be(this.device,{handle:null}),this._framebuffer},n.update=function(){var i=this.getPixelSize(),s=i[0]!==this.presentationSize[0]||i[1]!==this.presentationSize[1];s&&(this.presentationSize=i)},n.resize=function(i){if(this.canvas){var s=this.getDevicePixelRatio(i?.useDevicePixels);this.setDevicePixelRatio(s,i);return}var u=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");u&&i&&"width"in i&&"height"in i&&u.resize(i.width,i.height)},n.commit=function(){},y(r)}(ot);var dn=We(we(),1);function Li(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Hi(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Li(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Li(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var yf={spector:C.get("spector")||C.get("inspect")},Pf="https://spectorcdn.babylonjs.com/spector.bundle.js",Ff=1,Re=null,Wi=!1;function Vi(e){return An.apply(this,arguments)}function An(){return An=oe(dn.default.mark(function e(t){return dn.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,Ct(Pf);case 4:n.next=9;break;case 6:n.prev=6,n.t0=n.catch(1),C.warn(String(n.t0));case 9:case"end":return n.stop()}},e,null,[[1,6]])})),An.apply(this,arguments)}function ji(e){var t,r;if(e=Hi(Hi({},yf),e),!((t=e)!==null&&t!==void 0&&t.spector)||(!Re&&globalThis.SPECTOR&&(C.probe(Ff,"SPECTOR found and initialized")(),Re=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=Re)),!Re))return null;if(!Wi){var n,o;Wi=!0,Re.spyCanvases(),(n=Re)===null||n===void 0||n.onCaptureStarted.add(function(u){return C.info("Spector capture started:",u)()}),(o=Re)===null||o===void 0||o.onCapture.add(function(u){var f,c,E;C.info("Spector capture complete:",u)(),(f=Re)===null||f===void 0||f.getResultUI(),(c=Re)===null||c===void 0||c.resultView.display(),(E=Re)===null||E===void 0||E.resultView.addCapture(u)})}if((r=e)!==null&&r!==void 0&&r.canvas){var i,s;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return Re;(i=Re)===null||i===void 0||i.startCapture((s=e)===null||s===void 0?void 0:s.canvas,500),new Promise(function(u){return setTimeout(u,2e3)}).then(function(u){var f;C.info("Spector capture stopped after 2 seconds")(),(f=Re)===null||f===void 0||f.stopCapture()})}return Re}var pn=We(we(),1);function Bf(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Mf(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
25
25
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function Mf(e,t){if(e){if(typeof e=="string")return Ki(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 Ki(e,t)}}function Ki(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 Yi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function ki(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Yi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Df="https://unpkg.com/webgl-debug@2.0.1/index.js";function Gi(e){return e.luma=e.luma||{},e.luma}function zi(){return mn.apply(this,arguments)}function mn(){return mn=oe(pn.default.mark(function e(){return pn.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!(q()&&!globalThis.WebGLDebugUtils)){r.next=5;break}return globalThis.global=globalThis.global||globalThis,globalThis.global.module={},r.next=5,Ct(Df);case 5:case"end":return r.stop()}},e)})),mn.apply(this,arguments)}function $i(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Uf(e,t):xf(e):null}function xf(e){var t=Gi(e);return t.realContext?t.realContext:e}function Uf(e,t){if(!globalThis.WebGLDebugUtils)return C.warn("webgl-debug not loaded")(),e;var r=Gi(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init(ki(ki({},a),e));var n=globalThis.WebGLDebugUtils.makeDebugContext(e,wf.bind(null,t),Xf.bind(null,t));for(var o in a)!(o in n)&&typeof a[o]=="number"&&(n[o]=a[o]);var i=y(function u(){I(this,u)});Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.setPrototypeOf(i,n);var s=Object.create(i);return r.realContext=e,r.debugContext=s,s.debug=!0,s}function Tn(e,t){t=Array.from(t).map(function(n){return n===void 0?"undefined":n});var r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r="".concat(r.slice(0,100)).concat(r.length>100?"...":""),"gl.".concat(e,"(").concat(r,")")}function wf(e,t,r,n){n=Array.from(n).map(function(f){return f===void 0?"undefined":f});var o=globalThis.WebGLDebugUtils.glEnumToString(t),i=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),s=e.webgl2?"gl2":"gl1",u="".concat(o," in ").concat(s,".").concat(r,"(").concat(i,")");C.error(u)();debugger;if(e.throwOnError)throw new Error(u)}function Xf(e,t,r){var n="";if(C.level>=1&&(n=Tn(t,r),C.log(1,n)()),e.break&&e.break.length>0){n=n||Tn(t,r);var o=e.break.every(function(f){return n.indexOf(f)!==-1});if(o)debugger}var i=Bf(r),s;try{for(i.s();!(s=i.n()).done;){var u=s.value;if(u===void 0){if(n=n||Tn(t,r),e.throwOnError)throw new Error("Undefined argument: ".concat(n));C.error("Undefined argument: ".concat(n))();debugger}}}catch(f){i.e(f)}finally{i.f()}}function hn(){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}}function Tt(e,t,r){return hn()?Tt=Reflect.construct.bind():Tt=function(o,i,s){var u=[null];u.push.apply(u,i);var f=Function.bind.apply(o,u),c=new f;return s&&Ve(c,s.prototype),c},Tt.apply(null,arguments)}var Lf="Failed to deduce GL constant from typed array";function pt(e){var t=ArrayBuffer.isView(e)?e.constructor:e;switch(t){case Float32Array:return a.FLOAT;case Uint16Array:return a.UNSIGNED_SHORT;case Uint32Array:return a.UNSIGNED_INT;case Uint8Array:return a.UNSIGNED_BYTE;case Uint8ClampedArray:return a.UNSIGNED_BYTE;case Int8Array:return a.BYTE;case Int16Array:return a.SHORT;case Int32Array:return a.INT;default:throw new Error(Lf)}}function He(e,t){var r=t||{},n=r.clamped,o=n===void 0?!0:n;switch(e){case a.FLOAT:return Float32Array;case a.UNSIGNED_SHORT:case a.UNSIGNED_SHORT_5_6_5:case a.UNSIGNED_SHORT_4_4_4_4:case a.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;case a.UNSIGNED_INT:return Uint32Array;case a.UNSIGNED_BYTE:return o?Uint8ClampedArray:Uint8Array;case a.BYTE:return Int8Array;case a.SHORT:return Int16Array;case a.INT:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Hf={offset:0,stride:0,type:a.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},Wf={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Ne=function(){e.getBytesPerElement=function(n){var o=He(n.type||a.FLOAT);return o.BYTES_PER_ELEMENT},e.getBytesPerVertex=function(n){B(n.size);var o=He(n.type||a.FLOAT);return o.BYTES_PER_ELEMENT*n.size},e.resolve=function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return Tt(e,[Hf].concat(o))};function e(){var r=this;I(this,e),this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];o.forEach(function(s){return r._assign(s)}),Object.freeze(this)}var t=e.prototype;return t.toString=function(){return JSON.stringify(this)},t._assign=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return n=Ge("Accessor",n,Wf),n.type!==void 0&&(this.type=n.type,(n.type===a.INT||n.type===a.UNSIGNED_INT)&&(this.integer=!0)),n.size!==void 0&&(this.size=n.size),n.offset!==void 0&&(this.offset=n.offset),n.stride!==void 0&&(this.stride=n.stride),n.normalize!==void 0&&(this.normalized=n.normalize),n.normalized!==void 0&&(this.normalized=n.normalized),n.integer!==void 0&&(this.integer=n.integer),n.divisor!==void 0&&(this.divisor=n.divisor),n.buffer!==void 0&&(this.buffer=n.buffer),n.index!==void 0&&(typeof n.index=="boolean"?this.index=n.index?1:0:this.index=n.index),n.instanced!==void 0&&(this.divisor=n.instanced?1:0),n.isInstanced!==void 0&&(this.divisor=n.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this},y(e,[{key:"BYTES_PER_ELEMENT",get:function(){return e.getBytesPerElement(this)}},{key:"BYTES_PER_VERTEX",get:function(){return e.getBytesPerVertex(this)}}]),e}();function Vf(e){var t=jf();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function jf(){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}}function Zi(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Kf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Zi(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zi(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Qi=10,qi={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Ji={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:qi},Yf={removedProps:qi};function kf(e){if(ArrayBuffer.isView(e))return{data:e};if(typeof e=="number")return{byteLength:e};e=Ge("Buffer",e,Ji);var t=Kf({},e);return t}var mt=function(e){w(r,e);var t=Vf(r);function r(o){var i,s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(I(this,r),i=t.call(this,ue.attach(o),kf(s)),i.accessor=void 0,i.setAccessor(Object.assign({},s,s.accessor)),i.props.data){var u=pt(i.props.data);B(u),i.setAccessor(new Ne(i.accessor,{type:u}))}return Object.seal(Ce(i)),i}var n=r.prototype;return n.getElementCount=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Ne.getBytesPerElement(i))},n.getVertexCount=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Ne.getBytesPerVertex(i))},n.initialize=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(i)&&(i={data:i}),Number.isFinite(i)&&(i={byteLength:i}),i=Ge("Buffer",i,Ji),this.glUsage=i.glUsage||a.STATIC_DRAW,this.debugData=null,this.setAccessor(Object.assign({},i,i.accessor)),i.data?this._setData(i.data,i.byteOffset,i.byteLength):this._setByteLength(i.byteLength||0),this},n.setProps=function(i){return i=Ge("Buffer",i,Yf),"accessor"in i&&this.setAccessor(i.accessor),this},n.setAccessor=function(i){return i=Object.assign({},i),delete i.buffer,this.accessor=new Ne(i),this},n.reallocate=function(i){return i>this.byteLength?(this._setByteLength(i),!0):(this.bytesUsed=i,!1)},n.setData=function(i){return this.initialize(i)},n.subData=function(i){ArrayBuffer.isView(i)&&(i={data:i});var s=i,u=s.data,f=s.offset,c=f===void 0?0:f,E=s.srcOffset,l=E===void 0?0:E,R=i.byteLength||i.length;B(u);var d=this.gl.webgl2?a.COPY_WRITE_BUFFER:this.glTarget;return this.gl.bindBuffer(d,this.handle),l!==0||R!==void 0?(_t(this.gl),this.gl.bufferSubData(this.glTarget,c,u,l,R)):this.gl.bufferSubData(d,c,u),this.gl.bindBuffer(d,null),this.debugData=null,this._inferType(u),this},n.copyData=function(i){var s=i.sourceBuffer,u=i.readOffset,f=u===void 0?0:u,c=i.writeOffset,E=c===void 0?0:c,l=i.size,R=this.gl,d=this.gl2;return _t(R),R.bindBuffer(a.COPY_READ_BUFFER,s.handle),R.bindBuffer(a.COPY_WRITE_BUFFER,this.handle),d?.copyBufferSubData(a.COPY_READ_BUFFER,a.COPY_WRITE_BUFFER,f,E,l),R.bindBuffer(a.COPY_READ_BUFFER,null),R.bindBuffer(a.COPY_WRITE_BUFFER,null),this.debugData=null,this},n.getData=function(i){var s,u=i||{},f=u.dstData,c=f===void 0?null:f,E=u.length,l=E===void 0?0:E,R=i||{},d=R.srcByteOffset,A=d===void 0?0:d,m=R.dstOffset,O=m===void 0?0:m;_t(this.gl);var g=He(this.accessor.type||a.FLOAT,{clamped:!1}),N=this._getAvailableElementCount(A),P=O,F,H;c?(H=c.length,F=H-P):(F=Math.min(N,l||N),H=P+F);var x=Math.min(N,F);return l=l||x,B(l<=x),c=c||new g(H),this.gl.bindBuffer(a.COPY_READ_BUFFER,this.handle),(s=this.gl2)===null||s===void 0||s.getBufferSubData(a.COPY_READ_BUFFER,A,c,O,l),this.gl.bindBuffer(a.COPY_READ_BUFFER,null),c},n.bind=function(i){var s=i||{},u=s.glTarget,f=u===void 0?this.glTarget:u,c=s.index,E=c===void 0?this.accessor&&this.accessor.index:c,l=s.offset,R=l===void 0?0:l,d=s.size;if(f===a.UNIFORM_BUFFER||f===a.TRANSFORM_FEEDBACK_BUFFER)if(d!==void 0){var A;(A=this.gl2)===null||A===void 0||A.bindBufferRange(f,E,this.handle,R,d)}else{var m;B(R===0),(m=this.gl2)===null||m===void 0||m.bindBufferBase(f,E,this.handle)}else this.gl.bindBuffer(f,this.handle);return this},n.unbind=function(i){var s=i||{},u=s.glTarget,f=u===void 0?this.glTarget:u,c=s.index,E=c===void 0?this.accessor&&this.accessor.index:c,l=f===a.UNIFORM_BUFFER||f===a.TRANSFORM_FEEDBACK_BUFFER;if(l){var R;(R=this.gl2)===null||R===void 0||R.bindBufferBase(f,E,null)}else this.gl.bindBuffer(f,null);return this},n.getDebugData=function(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(Qi,this.byteLength)}),{data:this.debugData,changed:!0})},n.invalidateDebugData=function(){this.debugData=null},n._setData=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,u=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.byteLength+s;B(ArrayBuffer.isView(i)),this.trackDeallocatedMemory();var f=this._getTarget();this.gl.bindBuffer(f,this.handle),this.gl.bufferData(f,u,this.glUsage),this.gl.bufferSubData(f,s,i),this.gl.bindBuffer(f,null),this.debugData=i.slice(0,Qi),this.bytesUsed=u,this.byteLength=u,this.trackAllocatedMemory(u);var c=pt(i);return B(c),this.setAccessor(new Ne(this.accessor,{type:c})),this},n._setByteLength=function(i){B(i>=0),this.trackDeallocatedMemory();var s=i;i===0&&(s=new Float32Array(0));var u=this._getTarget();return this.gl.bindBuffer(u,this.handle),this.gl.bufferData(u,s,this.glUsage),this.gl.bindBuffer(u,null),this.debugData=null,this.bytesUsed=i,this.byteLength=i,this.trackAllocatedMemory(i),this},n._getTarget=function(){return this.gl.webgl2?a.COPY_WRITE_BUFFER:this.glTarget},n._getAvailableElementCount=function(i){var s=He(this.accessor.type||a.FLOAT,{clamped:!1}),u=i/s.BYTES_PER_ELEMENT;return this.getElementCount()-u},n._inferType=function(i){this.accessor.type||this.setAccessor(new Ne(this.accessor,{type:pt(i)}))},n.getParameter=function(i){this.gl.bindBuffer(this.glTarget,this.handle);var s=this.gl.getBufferParameter(this.glTarget,i);return this.gl.bindBuffer(this.glTarget,null),s},y(r,[{key:"type",get:function(){return this.accessor.type}}]),r}(ge);var vn=We(we(),1);function Sn(e,t){return{name:Gf(e,t),language:"glsl",version:zf(e)}}function Gf(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",r=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,n=r.exec(e);return n?n[1]:t}function zf(e){var t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){var n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}function gn(e){return vt(e)||Ft(e)||ke(e)||bt()}function $f(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Zf(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
26
26
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function Zf(e,t){if(e){if(typeof e=="string")return eo(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 eo(e,t)}}function eo(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}var Qf=["warning","error","info"];function On(e){var t=e.split(/\r?\n/),r=[],n=$f(t),o;try{for(n.s();!(o=n.n()).done;){var i=o.value;if(!(i.length<=1)){var s=i.split(":"),u=gn(s),f=u[0],c=u[1],E=u[2],l=u.slice(3),R=parseInt(E,10);isNaN(R)&&(R=0);var d=parseInt(c,10);isNaN(d)&&(d=0);var A=f.toLowerCase(),m=Qf.includes(A)?A:"info";r.push({message:l.join(":").trim(),type:m,lineNum:R,linePos:d})}}}catch(O){n.e(O)}finally{n.f()}return r}function to(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function qf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?to(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):to(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Jf(e){var t=e_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function e_(){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 br=function(e){w(r,e);var t=Jf(r);function r(o,i){var s;switch(I(this,r),s=t.call(this,o,qf({id:t_(i)},i)),s.device=void 0,s.handle=void 0,s.device=o,s.props.stage){case"vertex":s.handle=s.props.handle||s.device.gl.createShader(a.VERTEX_SHADER);break;case"fragment":s.handle=s.props.handle||s.device.gl.createShader(a.FRAGMENT_SHADER);break;default:throw new Error(s.props.stage)}return s._compile(s.source),s}var n=r.prototype;return n.destroy=function(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)},n.compilationInfo=function(){var o=oe(vn.default.mark(function s(){var u;return vn.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return u=this.device.gl.getShaderInfoLog(this.handle),c.abrupt("return",u?On(u):[]);case 2:case"end":return c.stop()}},s,this)}));function i(){return o.apply(this,arguments)}return i}(),n._compile=function(i){var s=function(O){return O.startsWith("#version ")?O:`#version 100
|
|
27
27
|
`.concat(O)};i=s(i);var u=this.device.gl;u.shaderSource(this.handle,i),u.compileShader(this.handle);var f=u.getShaderParameter(this.handle,a.COMPILE_STATUS);if(!f){var c=u.getShaderInfoLog(this.handle),E=c?On(c):[],l=E.filter(function(m){return m.type==="error"}),R=Yr(l,i,{showSourceCode:!0}),d=Sn(i).name,A="".concat(this.stage," shader ").concat(d);throw C.error("GLSL compilation errors in ".concat(A,`
|
|
28
|
-
`).concat(R))(),new Error("GLSL compilation errors in ".concat(d))}},y(r)}(er);function t_(e){return Sn(e.source).name||e.id||Oe("unnamed ".concat(e.stage,"-shader"))}function ro(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function r_(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ro(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ro(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function n_(e){var t=a_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function a_(){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 i_=256,o_=1024,s_=16384,bn=6144,Nr=function(e){w(r,e);var t=n_(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.glParameters=void 0,s.device=o,ve(s.device.gl),s.setParameters(s.props.parameters),s.clear(),s}var n=r.prototype;return n.end=function(){Se(this.device.gl),this.props.framebuffer&&he(this.device,{framebuffer:null})},n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},n.setParameters=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s={};this.props.framebuffer&&(s.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(s.depthMask=!this.props.depthReadOnly),s.stencilMask=this.props.stencilReadOnly?0:1,s[a.RASTERIZER_DISCARD]=this.props.discard,i.viewport&&(i.viewport.length>=6?(s.viewport=i.viewport.slice(0,4),s.depthRange=[i.viewport[4],i.viewport[5]]):s.viewport=i.viewport),s.scissorTest=Boolean(i.scissorRect),i.scissorRect&&(s.scissor=i.scissorRect),i.blendConstant&&(s.blendColor=i.blendConstant),i.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),i[a.STENCIL_REF]=i.stencilReference),this.glParameters=s,he(this.device,s)},n.clear=function(){var i=this,s=r_({},this.glParameters),u=0;this.props.clearColor!==!1&&(u|=s_,s.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(u|=i_,s.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(u|=o_,s.clearStencil=this.props.clearStencil),u!==0&&Ee(this.device,s,function(){i.device.gl.clear(u)})},n.clearColorBuffer=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];Ee(this.device.gl2,{framebuffer:this.props.framebuffer},function(){switch(u.constructor){case Int32Array:i.device.gl2.clearBufferiv(bn,s,u);break;case Uint32Array:i.device.gl2.clearBufferuiv(bn,s,u);break;case Float32Array:default:i.device.gl2.clearBufferfv(bn,s,u);break}})},y(r)}(nr);var G;function no(e){return u_.includes(e)}var u_=[a.SAMPLER_2D,a.SAMPLER_CUBE,a.SAMPLER_3D,a.SAMPLER_2D_SHADOW,a.SAMPLER_2D_ARRAY,a.SAMPLER_2D_ARRAY_SHADOW,a.SAMPLER_CUBE_SHADOW,a.INT_SAMPLER_2D,a.INT_SAMPLER_3D,a.INT_SAMPLER_CUBE,a.INT_SAMPLER_2D_ARRAY,a.UNSIGNED_INT_SAMPLER_2D,a.UNSIGNED_INT_SAMPLER_3D,a.UNSIGNED_INT_SAMPLER_CUBE,a.UNSIGNED_INT_SAMPLER_2D_ARRAY],ao=(G={},_(G,a.FLOAT,[a.FLOAT,1,"float","f32","float32"]),_(G,a.FLOAT_VEC2,[a.FLOAT,2,"vec2","vec2<f32>","float32x2"]),_(G,a.FLOAT_VEC3,[a.FLOAT,3,"vec3","vec3<f32>","float32x3"]),_(G,a.FLOAT_VEC4,[a.FLOAT,4,"vec4","vec4<f32>","float32x4"]),_(G,a.INT,[a.INT,1,"int","i32","sint32"]),_(G,a.INT_VEC2,[a.INT,2,"ivec2","vec2<i32>","sint32x2"]),_(G,a.INT_VEC3,[a.INT,3,"ivec3","vec3<i32>","sint32x3"]),_(G,a.INT_VEC4,[a.INT,4,"ivec4","vec4<i32>","sint32x4"]),_(G,a.UNSIGNED_INT,[a.UNSIGNED_INT,1,"uint","u32","uint32"]),_(G,a.UNSIGNED_INT_VEC2,[a.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"]),_(G,a.UNSIGNED_INT_VEC3,[a.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"]),_(G,a.UNSIGNED_INT_VEC4,[a.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"]),_(G,a.BOOL,[a.FLOAT,1,"bool","f32","float32"]),_(G,a.BOOL_VEC2,[a.FLOAT,2,"bvec2","vec2<f32>","float32x2"]),_(G,a.BOOL_VEC3,[a.FLOAT,3,"bvec3","vec3<f32>","float32x3"]),_(G,a.BOOL_VEC4,[a.FLOAT,4,"bvec4","vec4<f32>","float32x4"]),_(G,a.FLOAT_MAT2,[a.FLOAT,8,"mat2","mat2x2<f32>"]),_(G,a.FLOAT_MAT2x3,[a.FLOAT,8,"mat2x3","mat2x3<f32>"]),_(G,a.FLOAT_MAT2x4,[a.FLOAT,8,"mat2x4","mat2x4<f32>"]),_(G,a.FLOAT_MAT3x2,[a.FLOAT,12,"mat3x2","mat3x2<f32>"]),_(G,a.FLOAT_MAT3,[a.FLOAT,12,"mat3","mat3x3<f32>"]),_(G,a.FLOAT_MAT3x4,[a.FLOAT,12,"mat3x4","mat3x4<f32>"]),_(G,a.FLOAT_MAT4x2,[a.FLOAT,16,"mat4x2","mat4x2<f32>"]),_(G,a.FLOAT_MAT4x3,[a.FLOAT,16,"mat4x3","mat4x3<f32>"]),_(G,a.FLOAT_MAT4,[a.FLOAT,16,"mat4","mat4x4<f32>"]),G);function Nn(e){var t=ao[e];if(!t)throw new Error("uniform");var r=L(t,4),n=r[0],o=r[1],i=r[3];return{format:i,components:o,glType:n}}function io(e){var t=ao[e];if(!t)throw new Error("attribute");var r=L(t,5),n=r[1],o=r[3],i=r[4],s=o;return{attributeType:s,vertexFormat:i,components:n}}var ie;function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function so(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Cr(e,t){var r={attributes:[],bindings:[]};r.attributes=f_(e,t);for(var n=E_(e,t),o=0,i=n;o<i.length;o++){var s=i[o],u=s.uniforms.map(function(g){return{name:g.name,format:g.format,byteOffset:g.byteOffset,byteStride:g.byteStride,arrayLength:g.arrayLength}});r.bindings.push({type:"uniform",name:s.name,location:s.location,visibility:(s.vertex?1:0)&(s.fragment?2:0),minBindingSize:s.byteLength,uniforms:u})}for(var f=c_(e,t),c=0,E=0,l=f;E<l.length;E++){var R=l[E];if(no(R.type)){var d=R_(R.type),A=d.viewDimension,m=d.sampleType;r.bindings.push({type:"texture",name:R.name,location:c,viewDimension:A,sampleType:m}),R.textureUnit=c,c+=1}}f.length&&(r.uniforms=f);var O=__(e,t);return O!=null&&O.length&&(r.varyings=O),r}function f_(e,t){for(var r=[],n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),o=0;o<n;o++){var i=e.getActiveAttrib(t,o);if(!i)throw new Error("activeInfo");var s=i.name,u=i.type,f=e.getAttribLocation(t,s);if(f>=0){var c=io(u),E=c.attributeType,l=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:f,stepMode:l,type:E})}}return r.sort(function(R,d){return R.location-d.location}),r}function __(e,t){if(!W(e))return[];for(var r=e,n=[],o=e.getProgramParameter(t,a.TRANSFORM_FEEDBACK_VARYINGS),i=0;i<o;i++){var s=r.getTransformFeedbackVarying(t,i);if(!s)throw new Error("activeInfo");var u=s.name,f=s.type,c=s.size,E=Nn(f),l=E.glType,R=E.components,d=new Ne({type:l,size:c*R}),A={location:i,name:u,accessor:d};n.push(A)}return n.sort(function(m,O){return m.location-O.location}),n}function c_(e,t){for(var r=[],n=e.getProgramParameter(t,a.ACTIVE_UNIFORMS),o=0;o<n;o++){var i=e.getActiveUniform(t,o);if(!i)throw new Error("activeInfo");var s=i.name,u=i.size,f=i.type,c=d_(s),E=c.name,l=c.isArray,R=e.getUniformLocation(t,E),d={location:R,name:E,size:u,type:f,isArray:l};if(r.push(d),d.size>1)for(var A=0;A<d.size;A++){var m="".concat(E,"[").concat(A,"]");R=e.getUniformLocation(t,m);var O=so(so({},d),{},{name:m,location:R});r.push(O)}}return r}function E_(e,t){if(!W(e))return[];for(var r=e,n=function(O,g){return r.getActiveUniformBlockParameter(t,O,g)},o=[],i=r.getProgramParameter(t,a.ACTIVE_UNIFORM_BLOCKS),s=0;s<i;s++){for(var u={name:r.getActiveUniformBlockName(t,s)||"",location:n(s,a.UNIFORM_BLOCK_BINDING),byteLength:n(s,a.UNIFORM_BLOCK_DATA_SIZE),vertex:n(s,a.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:n(s,a.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:n(s,a.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},f=n(s,a.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],c=r.getActiveUniforms(t,f,a.UNIFORM_TYPE),E=r.getActiveUniforms(t,f,a.UNIFORM_SIZE),l=r.getActiveUniforms(t,f,a.UNIFORM_OFFSET),R=r.getActiveUniforms(t,f,a.UNIFORM_ARRAY_STRIDE),d=0;d<u.uniformCount;++d){var A=r.getActiveUniform(t,f[d]);if(!A)throw new Error("activeInfo");u.uniforms.push({name:A.name,format:Nn(c[d]).format,type:c[d],arrayLength:E[d],byteOffset:l[d],byteStride:R[d]})}o.push(u)}return o.sort(function(m,O){return m.location-O.location}),o}var l_=(ie={},_(ie,a.SAMPLER_2D,["2d","float"]),_(ie,a.SAMPLER_CUBE,["cube","float"]),_(ie,a.SAMPLER_3D,["3d","float"]),_(ie,a.SAMPLER_2D_SHADOW,["3d","depth"]),_(ie,a.SAMPLER_2D_ARRAY,["2d-array","float"]),_(ie,a.SAMPLER_2D_ARRAY_SHADOW,["2d-array","depth"]),_(ie,a.SAMPLER_CUBE_SHADOW,["cube","float"]),_(ie,a.INT_SAMPLER_2D,["2d","sint"]),_(ie,a.INT_SAMPLER_3D,["3d","sint"]),_(ie,a.INT_SAMPLER_CUBE,["cube","sint"]),_(ie,a.INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_2D,["2d","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_3D,["3d","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_CUBE,["cube","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),ie);function R_(e){var t=l_[e];if(!t)throw new Error("sampler");var r=L(t,2),n=r[0],o=r[1];return{viewDimension:n,sampleType:o}}function d_(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};var t=/([^[]*)(\[[0-9]+\])?/,r=t.exec(e);if(!r||r.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function uo(e,t,r,n){var o=e,i=n;i===!0&&(i=1),i===!1&&(i=0);var s=typeof i=="number"?[i]:i;switch(r){case a.SAMPLER_2D:case a.SAMPLER_CUBE:case a.SAMPLER_3D:case a.SAMPLER_2D_SHADOW:case a.SAMPLER_2D_ARRAY:case a.SAMPLER_2D_ARRAY_SHADOW:case a.SAMPLER_CUBE_SHADOW:case a.INT_SAMPLER_2D:case a.INT_SAMPLER_3D:case a.INT_SAMPLER_CUBE:case a.INT_SAMPLER_2D_ARRAY:case a.UNSIGNED_INT_SAMPLER_2D:case a.UNSIGNED_INT_SAMPLER_3D:case a.UNSIGNED_INT_SAMPLER_CUBE:case a.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case a.FLOAT:return e.uniform1fv(t,s);case a.FLOAT_VEC2:return e.uniform2fv(t,s);case a.FLOAT_VEC3:return e.uniform3fv(t,s);case a.FLOAT_VEC4:return e.uniform4fv(t,s);case a.INT:return e.uniform1iv(t,s);case a.INT_VEC2:return e.uniform2iv(t,s);case a.INT_VEC3:return e.uniform3iv(t,s);case a.INT_VEC4:return e.uniform4iv(t,s);case a.BOOL:return e.uniform1iv(t,s);case a.BOOL_VEC2:return e.uniform2iv(t,s);case a.BOOL_VEC3:return e.uniform3iv(t,s);case a.BOOL_VEC4:return e.uniform4iv(t,s);case a.UNSIGNED_INT:return o.uniform1uiv(t,s,1);case a.UNSIGNED_INT_VEC2:return o.uniform2uiv(t,s,2);case a.UNSIGNED_INT_VEC3:return o.uniform3uiv(t,s,3);case a.UNSIGNED_INT_VEC4:return o.uniform4uiv(t,s,4);case a.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,s);case a.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,s);case a.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,s);case a.FLOAT_MAT2x3:return o.uniformMatrix2x3fv(t,!1,s);case a.FLOAT_MAT2x4:return o.uniformMatrix2x4fv(t,!1,s);case a.FLOAT_MAT3x2:return o.uniformMatrix3x2fv(t,!1,s);case a.FLOAT_MAT3x4:return o.uniformMatrix3x4fv(t,!1,s);case a.FLOAT_MAT4x2:return o.uniformMatrix4x2fv(t,!1,s);case a.FLOAT_MAT4x3:return o.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}function fo(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=A_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
29
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function A_(e,t){if(e){if(typeof e=="string")return _o(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 _o(e,t)}}function _o(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 T_(e){var t=p_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function p_(){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 co=4,Ir=function(e){w(r,e);var t=T_(r);function r(o,i){var s;I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.vs=void 0,s.fs=void 0,s.introspectedLayout=void 0,s.uniforms={},s.bindings={},s.varyings=null,s.
|
|
30
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function g_(e,t){if(e){if(typeof e=="string")return Eo(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 Eo(e,t)}}function Eo(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 O_(e){var t=v_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function v_(){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 lo=function(e){w(r,e);var t=O_(r);function r(o){var i;return I(this,r),i=t.call(this,{}),i.device=void 0,i.commands=[],i.device=o,i}var n=r.prototype;return n.submitCommands=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands,s=S_(i),u;try{for(s.s();!(u=s.n()).done;){var f=u.value;switch(f.name){case"copy-buffer-to-buffer":b_(this.device,f.options);break;case"copy-buffer-to-texture":N_(this.device,f.options);break;case"copy-texture-to-buffer":C_(this.device,f.options);break;case"copy-texture-to-texture":I_(this.device,f.options);break}}}catch(c){s.e(c)}finally{s.f()}},y(r)}(ir);function b_(e,t){var r=t.source,n=t.destination,o=e.assertWebGL2();if(o){var i,s;o.bindBuffer(a.COPY_READ_BUFFER,r.handle),o.bindBuffer(a.COPY_WRITE_BUFFER,n.handle),o.copyBufferSubData(a.COPY_READ_BUFFER,a.COPY_WRITE_BUFFER,(i=t.sourceOffset)!==null&&i!==void 0?i:0,(s=t.destinationOffset)!==null&&s!==void 0?s:0,t.size),o.bindBuffer(a.COPY_READ_BUFFER,null),o.bindBuffer(a.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function N_(e,t){throw new Error("Not implemented")}function C_(e,t){var r=t.source,n=t.mipLevel,o=n===void 0?0:n,i=t.aspect,s=i===void 0?"all":i,u=t.width,f=u===void 0?t.source.width:u,c=t.height,E=c===void 0?t.source.height:c,l=t.depthOrArrayLayers,R=l===void 0?0:l,d=t.origin,A=d===void 0?[0,0]:d,m=t.destination,O=t.byteOffset,g=O===void 0?0:O,N=t.bytesPerRow,P=t.rowsPerImage;if(s!=="all")throw new Error("not supported");if(o!==0||R!==void 0||N||P)throw new Error("not implemented");var F=e.assertWebGL2(),H=Ro(r),x=H.framebuffer,Z=H.destroyFramebuffer;try{var z=m,re=f||x.width,K=E||x.height,h=a.RGBA,T=a.UNSIGNED_BYTE;F.bindBuffer(a.PIXEL_PACK_BUFFER,z.handle),F.bindFramebuffer(a.FRAMEBUFFER,x.handle),F.readPixels(A[0],A[1],re,K,h,T,g)}finally{F.bindBuffer(a.PIXEL_PACK_BUFFER,null),F.bindFramebuffer(a.FRAMEBUFFER,null),Z&&x.destroy()}}function I_(e,t){var r=t.source,n=t.origin,o=n===void 0?[0,0]:n,i=t.destination,s=t.width,u=s===void 0?t.destination.width:s,f=t.height,c=f===void 0?t.destination.width:f,E=0,l=a.RGBA,R=Ro(r),d=R.framebuffer,A=R.destroyFramebuffer,m=L(o,2),O=m[0],g=m[1],N=!1;e.gl.bindFramebuffer(a.FRAMEBUFFER,d.handle);var P=null,F;if(i instanceof le)P=i,u=Number.isFinite(u)?u:P.width,c=Number.isFinite(c)?c:P.height,P.bind(0),F=P.destination;else throw new Error("whoops");return N||e.gl.copyTexImage2D(F,E,l,O,g,u,c,0),P&&P.unbind(),A&&d.destroy(),P}function Ro(e){if(e instanceof se){var t=e.width,r=e.height,n=e.id,o=e.device.createFramebuffer({id:"framebuffer-for-".concat(n),width:t,height:r,colorAttachments:[e]});return{framebuffer:o,destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}function y_(e){var t=P_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function P_(){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 yr=function(e){w(r,e);var t=y_(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.commandBuffer=void 0,s.device=o,s.commandBuffer=new lo(o),s}var n=r.prototype;return n.destroy=function(){},n.finish=function(){this.commandBuffer.submitCommands()},n.copyBufferToBuffer=function(i){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:i})},n.copyBufferToTexture=function(i){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:i})},n.copyTextureToBuffer=function(i){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:i})},n.copyTextureToTexture=function(i){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:i})},n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},y(r)}(ar);var Ao;function F_(e){var t=B_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function B_(){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}}Ao=Symbol.toStringTag;var Pr=function(e){w(r,e);var t=F_(r);r.isConstantAttributeZeroSupported=function(i){return i.info.type==="webgl2"||Gt()==="Chrome"};function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.buffer=null,s.bufferValue=null,s.init=!1,s.device=o,s.handle=s.device.gl2.createVertexArray(),s}var n=r.prototype;return n.destroy=function(){if(Le(v(r.prototype),"destroy",this).call(this),this.buffer){var i;(i=this.buffer)===null||i===void 0||i.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)},n.setIndexBuffer=function(i){var s=i;if(s&&s.glTarget!==a.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(a.ELEMENT_ARRAY_BUFFER,s?s.handle:null),this.indexBuffer=s},n.setBuffer=function(i,s){var u=s;if(u.glTarget===a.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");var f=this._getAccessor(i),c=f.size,E=f.type,l=f.stride,R=f.offset,d=f.normalized,A=f.integer,m=f.divisor;this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(a.ARRAY_BUFFER,u.handle),A?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(i,c,E,l,R)):this.device.gl.vertexAttribPointer(i,c,E,d,l,R),this.device.gl.enableVertexAttribArray(i),this.device.gl2.vertexAttribDivisor(i,m||0),this.attributes[i]=u},n.setConstant=function(i,s){this._enable(i,!1),this.attributes[i]=s},n.bindBeforeRender=function(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){var i=this.indexBuffer;this.device.gl2.bindBuffer(a.ELEMENT_ARRAY_BUFFER,i?.handle||null),this.init=!0}this._applyConstantAttributes()},n.unbindAfterRender=function(){this.device.gl2.bindVertexArray(null)},n._applyConstantAttributes=function(){for(var i=0;i<this.maxVertexAttributes;++i){var s=this.attributes[i];ArrayBuffer.isView(s)&&this.device.setConstantAttribute(i,s)}},n._getAccessor=function(i){var s=this.attributeInfos[i];if(!s)throw new Error("Unknown attribute location ".concat(i));var u=Rr(s.bufferDataType);return{size:s.bufferComponents,type:u,stride:s.byteStride,offset:s.byteOffset,normalized:s.normalized,integer:s.integer,divisor:s.stepMode==="instance"?1:0}},n._enable=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,u=r.isConstantAttributeZeroSupported(this.device),f=u||i!==0;(s||f)&&(i=Number(i),this.device.gl2.bindVertexArray(this.handle),s?this.device.gl.enableVertexAttribArray(i):this.device.gl.disableVertexAttribArray(i),this.device.gl2.bindVertexArray(null))},n.getConstantBuffer=function(i,s){var u=M_(s),f=u.byteLength*i,c=u.length*i,E=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:f}),E=E||this.buffer.reallocate(f),E=E||!D_(u,this.bufferValue),E){var l=jr(s.constructor,c);Kr({target:l,source:u,start:0,count:c}),this.buffer.subData(l),this.bufferValue=s}return this.buffer},y(r,[{key:Ao,get:function(){return"VertexArray"}}]),r}(sr);function M_(e){return Array.isArray(e)?new Float32Array(e):e}function D_(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}function To(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Me(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?To(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):To(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function x_(e){var t=U_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function U_(){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 Fr=1,ue=function(e){w(r,e);var t=x_(r);r.isSupported=function(){return typeof WebGLRenderingContext<"u"||xn()},r.attach=function(i){if(i instanceof r)return i;if(i?.device instanceof Ot)return i.device;if(!w_(i))throw new Error("Invalid WebGLRenderingContext");return new r({gl:i})},r.create=function(){var o=oe(Cn.default.mark(function s(){var u,f,c=arguments;return Cn.default.wrap(function(l){for(;;)switch(l.prev=l.next){case 0:if(u=c.length>0&&c[0]!==void 0?c[0]:{},C.groupCollapsed(Fr,"WebGLDevice created"),typeof u.canvas!="string"){l.next=5;break}return l.next=5,ot.pageLoaded;case 5:if(!(C.get("debug")||u.debug)){l.next=8;break}return l.next=8,zi();case 8:if(f=u.spector,!(C.get("spector")||f)){l.next=12;break}return l.next=12,Vi();case 12:if(C.probe(Fr+1,"DOM is loaded")(),!(u.gl&&u.gl.device)){l.next=15;break}return l.abrupt("return",r.attach(u.gl));case 15:return l.abrupt("return",new r(u));case 16:case"end":return l.stop()}},s)}));function i(){return o.apply(this,arguments)}return i}();function r(o){var i,s;I(this,r),s=t.call(this,Me(Me({},o),{},{id:o.id||Oe("webgl-device")})),s.info=void 0,s.canvasContext=void 0,s.handle=void 0,s.lost=void 0,s._resolveContextLost=void 0,s._features=void 0,s._limits=void 0,s.renderPass=null,s.gl=void 0,s.gl2=null,s.debug=!1,s.isWebGL1=void 0,s.isWebGL2=void 0,s._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},s._extensions={},s._polyfilled=!1,s.spector=void 0,s._webglLimits=void 0,s._constants=void 0;var u=(i=o.gl)===null||i===void 0?void 0:i.device;if(u)throw new Error("WebGL context already attached to device ".concat(u.id));s.canvasContext=new vr(Ce(s),o),s.lost=new Promise(function(O){s._resolveContextLost=O});var f=function(g){var N,P;return(N=(P=s)._resolveContextLost)===null||N===void 0?void 0:N.call(P,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},c=o.gl||null;if(c=c||(q()?ci(s.canvasContext.canvas,Me(Me({},o),{},{onContextLost:f})):null),c=c||(q()?null:Un(Me(Me({},o),{},{onContextLost:f}))),!c)throw new Error("WebGL context creation failed");s.handle=c,s.gl=s.handle,s.gl2=s.gl,s.isWebGL2=X_(s.gl),s.isWebGL1=!s.isWebGL2,s.info=Ei(s.gl),s.gl.device=Ce(s),s.gl._version=s.isWebGL2?2:1,Er(s.gl);var E=o.enable,l=E===void 0?!0:E,R=o.copyState,d=R===void 0?!1:R;if(Dt(s.gl,{enable:l,copyState:d,log:function(){for(var g=arguments.length,N=new Array(g),P=0;P<g;P++)N[P]=arguments[P];return C.log.apply(C,[1].concat(N))()}}),q()&&o.debug&&(s.gl=$i(s.gl,Me(Me({},o),{},{webgl2:s.isWebGL2,throwOnError:!0})),s.gl2=s.gl,s.debug=!0,C.level=Math.max(C.level,1),C.warn("WebGL debug mode activated. Performance reduced.")()),q()&&o.spector){var A=s.handle.canvas||o.canvas;s.spector=ji(Me(Me({},s.props),{},{canvas:A}))}var m="Created ".concat(s.info.type).concat(s.debug?" debug":""," context: ").concat(s.info.vendor,", ").concat(s.info.renderer," for canvas: ").concat(s.canvasContext.id);return C.probe(Fr,m)(),C.groupEnd(Fr)(),s}var n=r.prototype;return n.destroy=function(){var i=this.gl.getExtension("STACKGL_destroy_context");i&&i.destroy()},n.getSize=function(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]},n.isTextureFormatSupported=function(i){return Xt(this.gl,i)},n.isTextureFormatFilterable=function(i){return Ti(this.gl,i)},n.isTextureFormatRenderable=function(i){return pi(this.gl,i)},n.assertWebGL2=function(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2},n.createCanvasContext=function(i){throw new Error("WebGL only supports a single canvas")},n.createBuffer=function(i){var s=this._getBufferProps(i);return new mt(this,s)},n._createTexture=function(i){return new le(this,i)},n.createExternalTexture=function(i){throw new Error("createExternalTexture() not implemented")},n.createSampler=function(i){return new Je(this,i)},n.createShader=function(i){return new br(this,i)},n.createFramebuffer=function(i){return new Be(this,i)},n.createRenderPipeline=function(i){return new Ir(this,i)},n.createVertexArray=function(i){return new Pr(this,i)},n.beginRenderPass=function(i){return new Nr(this,i)},n.createComputePipeline=function(i){throw new Error("ComputePipeline not supported in WebGL")},n.beginComputePass=function(i){throw new Error("compute shaders not supported in WebGL")},n.getDefaultRenderPass=function(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass},n.createCommandEncoder=function(i){return new yr(this,i)},n.submit=function(){var i;(i=this.renderPass)===null||i===void 0||i.end(),this.renderPass=null},n.loseDevice=function(){var i,s=!1,u=this.gl.getExtension("WEBGL_lose_context");return u&&(s=!0,u.loseContext()),(i=this._resolveContextLost)===null||i===void 0||i.call(this,{reason:"destroyed",message:"Application triggered context loss"}),s},n.pushState=function(){ve(this.gl)},n.popState=function(){Se(this.gl)},n.setSpectorMetadata=function(i,s){i.__SPECTOR_Metadata=s},n.getGLKey=function(i,s){s=s||this.gl2||this.gl;var u=Number(i);for(var f in s)if(s[f]===u)return"GL.".concat(f);return String(i)},n.setConstantAttribute=function(i,s){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);var u=this._constants[i];switch(u&&V_(u,s)&&C.info(1,"setConstantAttribute(".concat(i,") could have been skipped, value unchanged"))(),this._constants[i]=s,s.constructor){case Float32Array:L_(this,i,s);break;case Int32Array:H_(this,i,s);break;case Uint32Array:W_(this,i,s);break;default:B(!1)}},y(r,[{key:"features",get:function(){return this._features=this._features||Si(this.gl),this._features}},{key:"limits",get:function(){return this._limits=this._limits||Oi(this.gl),this._limits}},{key:"isLost",get:function(){return this.gl.isContextLost()}},{key:"webglLimits",get:function(){return this._webglLimits=this._webglLimits||vi(this.gl),this._webglLimits}}]),r}(Ot);ue.type="webgl";function w_(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function X_(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function L_(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:B(!1)}}function H_(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function W_(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function V_(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var j_=256,K_=1024,Y_=16384;var k_="clear: bad arguments";function po(e,t){var r=ue.attach(e),n=t||{},o=n.framebuffer,i=o===void 0?null:o,s=n.color,u=s===void 0?null:s,f=n.depth,c=f===void 0?null:f,E=n.stencil,l=E===void 0?null:E,R={};i&&(R.framebuffer=i);var d=0;u&&(d|=Y_,u!==!0&&(R.clearColor=u)),c&&(d|=j_,c!==!0&&(R.clearDepth=c)),l&&(d|=K_,c!==!0&&(R.clearStencil=c)),B(d!==0,k_),Ee(r.gl,R,function(){r.gl.clear(d)})}function In(e){switch(e){case a.ALPHA:case a.R32F:case a.RED:return 1;case a.RG32F:case a.RG:return 2;case a.RGB:case a.RGB32F:return 3;case a.RGBA:case a.RGBA32F:return 4;default:return B(!1),0}}function mo(e){switch(e){case a.UNSIGNED_BYTE:return 1;case a.UNSIGNED_SHORT_5_6_5:case a.UNSIGNED_SHORT_4_4_4_4:case a.UNSIGNED_SHORT_5_5_5_1:return 2;case a.FLOAT:return 4;default:return B(!1),0}}function ho(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function So(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ho(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ho(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function go(e,t){var r,n=t||{},o=n.sourceX,i=o===void 0?0:o,s=n.sourceY,u=s===void 0?0:s,f=n.sourceFormat,c=f===void 0?a.RGBA:f,E=n.sourceAttachment,l=E===void 0?a.COLOR_ATTACHMENT0:E,R=t||{},d=R.target,A=d===void 0?null:d,m=R.sourceWidth,O=R.sourceHeight,g=R.sourceType,N=yn(e),P=N.framebuffer,F=N.deleteFramebuffer;B(P);var H=P,x=H.gl,Z=H.handle;m=m||P.width,O=O||P.height;var z=l-a.COLOR_ATTACHMENT0;g=g||((r=P.colorAttachments[z])===null||r===void 0?void 0:r.type)||a.UNSIGNED_BYTE,A=z_(A,g,c,m,O),g=g||pt(A);var re=x.bindFramebuffer(a.FRAMEBUFFER,Z);return x.readPixels(i,u,m,O,c,g,A),x.bindFramebuffer(a.FRAMEBUFFER,re||null),F&&P.destroy(),A}function Oo(e,t){var r=t||{},n=r.sourceX,o=n===void 0?0:n,i=r.sourceY,s=i===void 0?0:i,u=r.sourceFormat,f=u===void 0?a.RGBA:u,c=r.targetByteOffset,E=c===void 0?0:c,l=t||{},R=l.target,d=l.sourceWidth,A=l.sourceHeight,m=l.sourceType,O=yn(e),g=O.framebuffer,N=O.deleteFramebuffer;B(g),d=d||g.width,A=A||g.height;var P=g,F=P.device.assertWebGL2();if(m=m||(R?R.type:a.UNSIGNED_BYTE),!R){var H=In(f),x=mo(m),Z=E+d*A*H*x;R=new mt(F,{byteLength:Z,accessor:{type:m,size:H}})}return R.bind({glTarget:a.PIXEL_PACK_BUFFER}),Ee(F,{framebuffer:g},function(){F.readPixels(o,s,d,A,f,m,E)}),R.unbind({glTarget:a.PIXEL_PACK_BUFFER}),N&&g.destroy(),R}function vo(e,t,r){var n=r||{},o=n.sourceX,i=o===void 0?0:o,s=n.sourceY,u=s===void 0?0:s,f=n.targetMipmaplevel,c=f===void 0?0:f,E=n.targetInternalFormat,l=E===void 0?a.RGBA:E,R=r||{},d=R.targetX,A=R.targetY,m=R.targetZ,O=R.width,g=R.height,N=yn(e),P=N.framebuffer,F=N.deleteFramebuffer;B(P);var H=P,x=H.device,Z=H.handle,z=typeof d<"u"||typeof A<"u"||typeof m<"u";d=d||0,A=A||0,m=m||0;var re=x.gl.bindFramebuffer(a.FRAMEBUFFER,Z);B(t);var K=null,h;if(t instanceof se?(K=t,O=Number.isFinite(O)?O:K.width,g=Number.isFinite(g)?g:K.height,K.bind(0),h=K.target):h=t,!z)x.gl.copyTexImage2D(h,c,l,i,u,O,g,0);else switch(h){case a.TEXTURE_2D:case a.TEXTURE_CUBE_MAP:x.gl.copyTexSubImage2D(h,c,d,A,i,u,O,g);break;case a.TEXTURE_2D_ARRAY:case a.TEXTURE_3D:x.assertWebGL2(),x.gl2.copyTexSubImage3D(h,c,d,A,m,i,u,O,g);break;default:}return K&&K.unbind(),x.gl.bindFramebuffer(a.FRAMEBUFFER,re||null),F&&P.destroy(),K}function yn(e){return e instanceof ut?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:G_(e),deleteFramebuffer:!0}}function G_(e,t){var r=e.device,n=e.width,o=e.height,i=e.id,s=r.createFramebuffer(So(So({},t),{},{id:"framebuffer-for-".concat(i),width:n,height:o,colorAttachments:[e]}));return s}function z_(e,t,r,n,o){if(e)return e;t=t||a.UNSIGNED_BYTE;var i=He(t,{clamped:!1}),s=In(r);return new i(n*o*s)}return Mo($_);})();
|
|
28
|
+
`).concat(R))(),new Error("GLSL compilation errors in ".concat(d))}},y(r)}(er);function t_(e){return Sn(e.source).name||e.id||Oe("unnamed ".concat(e.stage,"-shader"))}function ro(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function r_(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ro(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ro(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function n_(e){var t=a_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function a_(){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 i_=256,o_=1024,s_=16384,bn=6144,Nr=function(e){w(r,e);var t=n_(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.glParameters=void 0,s.device=o,ve(s.device.gl),s.setParameters(s.props.parameters),s.clear(),s}var n=r.prototype;return n.end=function(){Se(this.device.gl),this.props.framebuffer&&he(this.device,{framebuffer:null})},n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},n.setParameters=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s={};this.props.framebuffer&&(s.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(s.depthMask=!this.props.depthReadOnly),s.stencilMask=this.props.stencilReadOnly?0:1,s[a.RASTERIZER_DISCARD]=this.props.discard,i.viewport&&(i.viewport.length>=6?(s.viewport=i.viewport.slice(0,4),s.depthRange=[i.viewport[4],i.viewport[5]]):s.viewport=i.viewport),s.scissorTest=Boolean(i.scissorRect),i.scissorRect&&(s.scissor=i.scissorRect),i.blendConstant&&(s.blendColor=i.blendConstant),i.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),i[a.STENCIL_REF]=i.stencilReference),this.glParameters=s,he(this.device,s)},n.clear=function(){var i=this,s=r_({},this.glParameters),u=0;this.props.clearColor!==!1&&(u|=s_,s.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(u|=i_,s.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(u|=o_,s.clearStencil=this.props.clearStencil),u!==0&&le(this.device,s,function(){i.device.gl.clear(u)})},n.clearColorBuffer=function(){var i=this,s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];le(this.device.gl2,{framebuffer:this.props.framebuffer},function(){switch(u.constructor){case Int32Array:i.device.gl2.clearBufferiv(bn,s,u);break;case Uint32Array:i.device.gl2.clearBufferuiv(bn,s,u);break;case Float32Array:default:i.device.gl2.clearBufferfv(bn,s,u);break}})},y(r)}(nr);var G;function no(e){return u_.includes(e)}var u_=[a.SAMPLER_2D,a.SAMPLER_CUBE,a.SAMPLER_3D,a.SAMPLER_2D_SHADOW,a.SAMPLER_2D_ARRAY,a.SAMPLER_2D_ARRAY_SHADOW,a.SAMPLER_CUBE_SHADOW,a.INT_SAMPLER_2D,a.INT_SAMPLER_3D,a.INT_SAMPLER_CUBE,a.INT_SAMPLER_2D_ARRAY,a.UNSIGNED_INT_SAMPLER_2D,a.UNSIGNED_INT_SAMPLER_3D,a.UNSIGNED_INT_SAMPLER_CUBE,a.UNSIGNED_INT_SAMPLER_2D_ARRAY],ao=(G={},_(G,a.FLOAT,[a.FLOAT,1,"float","f32","float32"]),_(G,a.FLOAT_VEC2,[a.FLOAT,2,"vec2","vec2<f32>","float32x2"]),_(G,a.FLOAT_VEC3,[a.FLOAT,3,"vec3","vec3<f32>","float32x3"]),_(G,a.FLOAT_VEC4,[a.FLOAT,4,"vec4","vec4<f32>","float32x4"]),_(G,a.INT,[a.INT,1,"int","i32","sint32"]),_(G,a.INT_VEC2,[a.INT,2,"ivec2","vec2<i32>","sint32x2"]),_(G,a.INT_VEC3,[a.INT,3,"ivec3","vec3<i32>","sint32x3"]),_(G,a.INT_VEC4,[a.INT,4,"ivec4","vec4<i32>","sint32x4"]),_(G,a.UNSIGNED_INT,[a.UNSIGNED_INT,1,"uint","u32","uint32"]),_(G,a.UNSIGNED_INT_VEC2,[a.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"]),_(G,a.UNSIGNED_INT_VEC3,[a.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"]),_(G,a.UNSIGNED_INT_VEC4,[a.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"]),_(G,a.BOOL,[a.FLOAT,1,"bool","f32","float32"]),_(G,a.BOOL_VEC2,[a.FLOAT,2,"bvec2","vec2<f32>","float32x2"]),_(G,a.BOOL_VEC3,[a.FLOAT,3,"bvec3","vec3<f32>","float32x3"]),_(G,a.BOOL_VEC4,[a.FLOAT,4,"bvec4","vec4<f32>","float32x4"]),_(G,a.FLOAT_MAT2,[a.FLOAT,8,"mat2","mat2x2<f32>"]),_(G,a.FLOAT_MAT2x3,[a.FLOAT,8,"mat2x3","mat2x3<f32>"]),_(G,a.FLOAT_MAT2x4,[a.FLOAT,8,"mat2x4","mat2x4<f32>"]),_(G,a.FLOAT_MAT3x2,[a.FLOAT,12,"mat3x2","mat3x2<f32>"]),_(G,a.FLOAT_MAT3,[a.FLOAT,12,"mat3","mat3x3<f32>"]),_(G,a.FLOAT_MAT3x4,[a.FLOAT,12,"mat3x4","mat3x4<f32>"]),_(G,a.FLOAT_MAT4x2,[a.FLOAT,16,"mat4x2","mat4x2<f32>"]),_(G,a.FLOAT_MAT4x3,[a.FLOAT,16,"mat4x3","mat4x3<f32>"]),_(G,a.FLOAT_MAT4,[a.FLOAT,16,"mat4","mat4x4<f32>"]),G);function Nn(e){var t=ao[e];if(!t)throw new Error("uniform");var r=L(t,4),n=r[0],o=r[1],i=r[3];return{format:i,components:o,glType:n}}function io(e){var t=ao[e];if(!t)throw new Error("attribute");var r=L(t,5),n=r[1],o=r[3],i=r[4],s=o;return{attributeType:s,vertexFormat:i,components:n}}var ie;function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function so(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Cr(e,t){var r={attributes:[],bindings:[]};r.attributes=f_(e,t);for(var n=E_(e,t),o=0,i=n;o<i.length;o++){var s=i[o],u=s.uniforms.map(function(g){return{name:g.name,format:g.format,byteOffset:g.byteOffset,byteStride:g.byteStride,arrayLength:g.arrayLength}});r.bindings.push({type:"uniform",name:s.name,location:s.location,visibility:(s.vertex?1:0)&(s.fragment?2:0),minBindingSize:s.byteLength,uniforms:u})}for(var f=c_(e,t),c=0,E=0,l=f;E<l.length;E++){var R=l[E];if(no(R.type)){var d=R_(R.type),A=d.viewDimension,m=d.sampleType;r.bindings.push({type:"texture",name:R.name,location:c,viewDimension:A,sampleType:m}),R.textureUnit=c,c+=1}}f.length&&(r.uniforms=f);var O=__(e,t);return O!=null&&O.length&&(r.varyings=O),r}function f_(e,t){for(var r=[],n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),o=0;o<n;o++){var i=e.getActiveAttrib(t,o);if(!i)throw new Error("activeInfo");var s=i.name,u=i.type,f=e.getAttribLocation(t,s);if(f>=0){var c=io(u),E=c.attributeType,l=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:f,stepMode:l,type:E})}}return r.sort(function(R,d){return R.location-d.location}),r}function __(e,t){if(!W(e))return[];for(var r=e,n=[],o=e.getProgramParameter(t,a.TRANSFORM_FEEDBACK_VARYINGS),i=0;i<o;i++){var s=r.getTransformFeedbackVarying(t,i);if(!s)throw new Error("activeInfo");var u=s.name,f=s.type,c=s.size,E=Nn(f),l=E.glType,R=E.components,d=new Ne({type:l,size:c*R}),A={location:i,name:u,accessor:d};n.push(A)}return n.sort(function(m,O){return m.location-O.location}),n}function c_(e,t){for(var r=[],n=e.getProgramParameter(t,a.ACTIVE_UNIFORMS),o=0;o<n;o++){var i=e.getActiveUniform(t,o);if(!i)throw new Error("activeInfo");var s=i.name,u=i.size,f=i.type,c=d_(s),E=c.name,l=c.isArray,R=e.getUniformLocation(t,E),d={location:R,name:E,size:u,type:f,isArray:l};if(r.push(d),d.size>1)for(var A=0;A<d.size;A++){var m="".concat(E,"[").concat(A,"]");R=e.getUniformLocation(t,m);var O=so(so({},d),{},{name:m,location:R});r.push(O)}}return r}function E_(e,t){if(!W(e))return[];for(var r=e,n=function(O,g){return r.getActiveUniformBlockParameter(t,O,g)},o=[],i=r.getProgramParameter(t,a.ACTIVE_UNIFORM_BLOCKS),s=0;s<i;s++){for(var u={name:r.getActiveUniformBlockName(t,s)||"",location:n(s,a.UNIFORM_BLOCK_BINDING),byteLength:n(s,a.UNIFORM_BLOCK_DATA_SIZE),vertex:n(s,a.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:n(s,a.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:n(s,a.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},f=n(s,a.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],c=r.getActiveUniforms(t,f,a.UNIFORM_TYPE),E=r.getActiveUniforms(t,f,a.UNIFORM_SIZE),l=r.getActiveUniforms(t,f,a.UNIFORM_OFFSET),R=r.getActiveUniforms(t,f,a.UNIFORM_ARRAY_STRIDE),d=0;d<u.uniformCount;++d){var A=r.getActiveUniform(t,f[d]);if(!A)throw new Error("activeInfo");u.uniforms.push({name:A.name,format:Nn(c[d]).format,type:c[d],arrayLength:E[d],byteOffset:l[d],byteStride:R[d]})}o.push(u)}return o.sort(function(m,O){return m.location-O.location}),o}var l_=(ie={},_(ie,a.SAMPLER_2D,["2d","float"]),_(ie,a.SAMPLER_CUBE,["cube","float"]),_(ie,a.SAMPLER_3D,["3d","float"]),_(ie,a.SAMPLER_2D_SHADOW,["3d","depth"]),_(ie,a.SAMPLER_2D_ARRAY,["2d-array","float"]),_(ie,a.SAMPLER_2D_ARRAY_SHADOW,["2d-array","depth"]),_(ie,a.SAMPLER_CUBE_SHADOW,["cube","float"]),_(ie,a.INT_SAMPLER_2D,["2d","sint"]),_(ie,a.INT_SAMPLER_3D,["3d","sint"]),_(ie,a.INT_SAMPLER_CUBE,["cube","sint"]),_(ie,a.INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_2D,["2d","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_3D,["3d","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_CUBE,["cube","uint"]),_(ie,a.UNSIGNED_INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),ie);function R_(e){var t=l_[e];if(!t)throw new Error("sampler");var r=L(t,2),n=r[0],o=r[1];return{viewDimension:n,sampleType:o}}function d_(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};var t=/([^[]*)(\[[0-9]+\])?/,r=t.exec(e);if(!r||r.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function uo(e,t,r,n){var o=e,i=n;i===!0&&(i=1),i===!1&&(i=0);var s=typeof i=="number"?[i]:i;switch(r){case a.SAMPLER_2D:case a.SAMPLER_CUBE:case a.SAMPLER_3D:case a.SAMPLER_2D_SHADOW:case a.SAMPLER_2D_ARRAY:case a.SAMPLER_2D_ARRAY_SHADOW:case a.SAMPLER_CUBE_SHADOW:case a.INT_SAMPLER_2D:case a.INT_SAMPLER_3D:case a.INT_SAMPLER_CUBE:case a.INT_SAMPLER_2D_ARRAY:case a.UNSIGNED_INT_SAMPLER_2D:case a.UNSIGNED_INT_SAMPLER_3D:case a.UNSIGNED_INT_SAMPLER_CUBE:case a.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case a.FLOAT:return e.uniform1fv(t,s);case a.FLOAT_VEC2:return e.uniform2fv(t,s);case a.FLOAT_VEC3:return e.uniform3fv(t,s);case a.FLOAT_VEC4:return e.uniform4fv(t,s);case a.INT:return e.uniform1iv(t,s);case a.INT_VEC2:return e.uniform2iv(t,s);case a.INT_VEC3:return e.uniform3iv(t,s);case a.INT_VEC4:return e.uniform4iv(t,s);case a.BOOL:return e.uniform1iv(t,s);case a.BOOL_VEC2:return e.uniform2iv(t,s);case a.BOOL_VEC3:return e.uniform3iv(t,s);case a.BOOL_VEC4:return e.uniform4iv(t,s);case a.UNSIGNED_INT:return o.uniform1uiv(t,s,1);case a.UNSIGNED_INT_VEC2:return o.uniform2uiv(t,s,2);case a.UNSIGNED_INT_VEC3:return o.uniform3uiv(t,s,3);case a.UNSIGNED_INT_VEC4:return o.uniform4uiv(t,s,4);case a.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,s);case a.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,s);case a.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,s);case a.FLOAT_MAT2x3:return o.uniformMatrix2x3fv(t,!1,s);case a.FLOAT_MAT2x4:return o.uniformMatrix2x4fv(t,!1,s);case a.FLOAT_MAT3x2:return o.uniformMatrix3x2fv(t,!1,s);case a.FLOAT_MAT3x4:return o.uniformMatrix3x4fv(t,!1,s);case a.FLOAT_MAT4x2:return o.uniformMatrix4x2fv(t,!1,s);case a.FLOAT_MAT4x3:return o.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}function fo(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=A_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
29
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function A_(e,t){if(e){if(typeof e=="string")return _o(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 _o(e,t)}}function _o(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 T_(e){var t=p_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function p_(){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 co=4,Ir=function(e){w(r,e);var t=T_(r);function r(o,i){var s;I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.vs=void 0,s.fs=void 0,s.introspectedLayout=void 0,s.uniforms={},s.bindings={},s.varyings=null,s._uniformCount=0,s._uniformSetters={},s.device=o,s.handle=s.props.handle||s.device.gl.createProgram(),s.device.setSpectorMetadata(s.handle,{id:s.props.id}),s.vs=i.vs,s.fs=i.fs;var u=i.varyings,f=i.bufferMode,c=f===void 0?a.SEPARATE_ATTRIBS:f;if(u&&u.length>0){var E;s.device.assertWebGL2(),s.varyings=u,(E=s.device.gl2)===null||E===void 0||E.transformFeedbackVaryings(s.handle,u,c)}return s._compileAndLink(),s.introspectedLayout=Cr(s.device.gl,s.handle),s.shaderLayout=Vr(s.introspectedLayout,i.shaderLayout),s}var n=r.prototype;return n.destroy=function(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)},n.setBindings=function(i){for(var s=this,u=function(){var R=L(c[f],2),d=R[0],A=R[1],m=s.shaderLayout.bindings.find(function(g){return g.name===d})||s.shaderLayout.bindings.find(function(g){return g.name==="".concat(d,"Uniforms")});if(!m){var O=s.shaderLayout.bindings.map(function(g){return'"'.concat(g.name,'"')}).join(", ");return C.warn('Unknown binding "'.concat(d,'" in render pipeline "').concat(s.id,'", expected one of ').concat(O))(),"continue"}switch(A||C.warn('Unsetting binding "'.concat(d,'" in render pipeline "').concat(s.id,'"'))(),m.type){case"uniform":if(!(A instanceof ge)&&!(A.buffer instanceof ge))throw new Error("buffer value");break;case"texture":if(!(A instanceof Ee||A instanceof Be))throw new Error("texture value");break;case"sampler":C.warn("Ignoring sampler ".concat(d))();break;default:throw new Error(m.type)}s.bindings[d]=A},f=0,c=Object.entries(i);f<c.length;f++)var E=u()},n.setUniforms=function(i){var s=kr(i),u=s.bindings;Object.keys(u).forEach(function(f){C.warn('Unsupported value "'.concat(u[f],'" used in setUniforms() for key ').concat(f,". Use setBindings() instead?"))()}),Object.assign(this.uniforms,i)},n.draw=function(i){var s,u=this,f=i.renderPass,c=i.vertexArray,E=i.vertexCount,l=i.instanceCount,R=i.firstVertex,d=R===void 0?0:R,A=m_(this.props.topology),m=Boolean(c.indexBuffer),O=(s=c.indexBuffer)===null||s===void 0?void 0:s.glIndexType,g=Number(l)>0;if(!this._areTexturesRenderable()||E===0)return!1;this.device.gl.useProgram(this.handle),c.bindBeforeRender(f);var N=h_(this.props.topology),P=null;P&&P.begin(N),this._applyBindings(),this._applyUniforms();var F=f;return bi(this.device,this.props.parameters,F.glParameters,function(){if(m&&g){var H;(H=u.device.gl2)===null||H===void 0||H.drawElementsInstanced(A,E||0,O,d,l||0)}else if(m)u.device.gl.drawElements(A,E||0,O,d);else if(g){var x;(x=u.device.gl2)===null||x===void 0||x.drawArraysInstanced(A,d,E||0,l||0)}else u.device.gl.drawArrays(A,d,E||0);P&&P.end()}),c.unbindAfterRender(f),!0},n._compileAndLink=function(){var i=this.device.gl;i.attachShader(this.handle,this.vs.handle),i.attachShader(this.handle,this.fs.handle),C.time(co,"linkProgram for ".concat(this.id))(),i.linkProgram(this.handle),C.timeEnd(co,"linkProgram for ".concat(this.id))(),!i.debug&&C.level;var s=i.getProgramParameter(this.handle,i.LINK_STATUS);if(!s)throw new Error("Error linking: ".concat(i.getProgramInfoLog(this.handle)));i.validateProgram(this.handle);var u=i.getProgramParameter(this.handle,i.VALIDATE_STATUS);if(!u)throw new Error("Error validating: ".concat(i.getProgramInfoLog(this.handle)))},n._areTexturesRenderable=function(){for(var i=!0,s=0,u=Object.entries(this.bindings);s<u.length;s++){var f=L(u[s],2),c=f[1];c instanceof Ee&&(c.update(),i=i&&c.loaded)}return i},n._applyBindings=function(){this.device.gl.useProgram(this.handle);var i=this.device.gl2;if(!i)throw new Error("bindings");var s=0,u=0,f=fo(this.shaderLayout.bindings),c;try{for(f.s();!(c=f.n()).done;){var E=c.value,l=this.bindings[E.name]||this.bindings[E.name.replace(/Uniforms$/,"")];if(!l)throw new Error("No value for binding ".concat(E.name," in ").concat(this.id));switch(E.type){case"uniform":var R=E.name,d=i.getUniformBlockIndex(this.handle,R);if(d===a.INVALID_INDEX)throw new Error("Invalid uniform block name ".concat(R));i.uniformBlockBinding(this.handle,u,d),l instanceof ge?i.bindBufferBase(a.UNIFORM_BUFFER,u,l.handle):i.bindBufferRange(a.UNIFORM_BUFFER,u,l.buffer.handle,l.offset||0,l.size||l.buffer.byteLength-l.offset),u+=1;break;case"texture":if(!(l instanceof Ee||l instanceof Be))throw new Error("texture");var A=void 0;if(l instanceof Ee)A=l;else if(l instanceof Be&&l.colorAttachments[0]instanceof Ee)C.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),A=l.colorAttachments[0];else throw new Error("No texture");i.activeTexture(a.TEXTURE0+s),i.bindTexture(A.target,A.handle),s+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error("binding type '".concat(E.type,"' not supported in WebGL"))}}}catch(m){f.e(m)}finally{f.f()}},n._applyUniforms=function(){var i=fo(this.shaderLayout.uniforms||[]),s;try{for(i.s();!(s=i.n()).done;){var u,f=s.value,c=f.name,E=f.location,l=f.type,R=f.textureUnit,d=(u=this.uniforms[c])!==null&&u!==void 0?u:R;d!==void 0&&uo(this.device.gl,E,l,d)}}catch(A){i.e(A)}finally{i.f()}},y(r)}(rr);function m_(e){switch(e){case"point-list":return a.POINTS;case"line-list":return a.LINES;case"line-strip":return a.LINE_STRIP;case"line-loop-webgl":return a.LINE_LOOP;case"triangle-list":return a.TRIANGLES;case"triangle-strip":return a.TRIANGLE_STRIP;case"triangle-fan-webgl":return a.TRIANGLE_FAN;default:throw new Error(e)}}function h_(e){switch(e){case"point-list":return a.POINTS;case"line-list":return a.LINES;case"line-strip":return a.LINES;case"line-loop-webgl":return a.LINES;case"triangle-list":return a.TRIANGLES;case"triangle-strip":return a.TRIANGLES;case"triangle-fan-webgl":return a.TRIANGLES;default:throw new Error(e)}}function S_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=g_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(c){throw c},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
30
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,s=!1,u;return{s:function(){r=r.call(e)},n:function(){var c=r.next();return i=c.done,c},e:function(c){s=!0,u=c},f:function(){try{!i&&r.return!=null&&r.return()}finally{if(s)throw u}}}}function g_(e,t){if(e){if(typeof e=="string")return Eo(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 Eo(e,t)}}function Eo(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 O_(e){var t=v_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function v_(){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 lo=function(e){w(r,e);var t=O_(r);function r(o){var i;return I(this,r),i=t.call(this,{}),i.device=void 0,i.commands=[],i.device=o,i}var n=r.prototype;return n.submitCommands=function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands,s=S_(i),u;try{for(s.s();!(u=s.n()).done;){var f=u.value;switch(f.name){case"copy-buffer-to-buffer":b_(this.device,f.options);break;case"copy-buffer-to-texture":N_(this.device,f.options);break;case"copy-texture-to-buffer":C_(this.device,f.options);break;case"copy-texture-to-texture":I_(this.device,f.options);break}}}catch(c){s.e(c)}finally{s.f()}},y(r)}(ir);function b_(e,t){var r=t.source,n=t.destination,o=e.assertWebGL2();if(o){var i,s;o.bindBuffer(a.COPY_READ_BUFFER,r.handle),o.bindBuffer(a.COPY_WRITE_BUFFER,n.handle),o.copyBufferSubData(a.COPY_READ_BUFFER,a.COPY_WRITE_BUFFER,(i=t.sourceOffset)!==null&&i!==void 0?i:0,(s=t.destinationOffset)!==null&&s!==void 0?s:0,t.size),o.bindBuffer(a.COPY_READ_BUFFER,null),o.bindBuffer(a.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function N_(e,t){throw new Error("Not implemented")}function C_(e,t){var r=t.source,n=t.mipLevel,o=n===void 0?0:n,i=t.aspect,s=i===void 0?"all":i,u=t.width,f=u===void 0?t.source.width:u,c=t.height,E=c===void 0?t.source.height:c,l=t.depthOrArrayLayers,R=l===void 0?0:l,d=t.origin,A=d===void 0?[0,0]:d,m=t.destination,O=t.byteOffset,g=O===void 0?0:O,N=t.bytesPerRow,P=t.rowsPerImage;if(s!=="all")throw new Error("not supported");if(o!==0||R!==void 0||N||P)throw new Error("not implemented");var F=e.assertWebGL2(),H=Ro(r),x=H.framebuffer,Z=H.destroyFramebuffer;try{var z=m,re=f||x.width,K=E||x.height,h=a.RGBA,T=a.UNSIGNED_BYTE;F.bindBuffer(a.PIXEL_PACK_BUFFER,z.handle),F.bindFramebuffer(a.FRAMEBUFFER,x.handle),F.readPixels(A[0],A[1],re,K,h,T,g)}finally{F.bindBuffer(a.PIXEL_PACK_BUFFER,null),F.bindFramebuffer(a.FRAMEBUFFER,null),Z&&x.destroy()}}function I_(e,t){var r=t.source,n=t.origin,o=n===void 0?[0,0]:n,i=t.destination,s=t.width,u=s===void 0?t.destination.width:s,f=t.height,c=f===void 0?t.destination.width:f,E=0,l=a.RGBA,R=Ro(r),d=R.framebuffer,A=R.destroyFramebuffer,m=L(o,2),O=m[0],g=m[1],N=!1;e.gl.bindFramebuffer(a.FRAMEBUFFER,d.handle);var P=null,F;if(i instanceof Ee)P=i,u=Number.isFinite(u)?u:P.width,c=Number.isFinite(c)?c:P.height,P.bind(0),F=P.destination;else throw new Error("whoops");return N||e.gl.copyTexImage2D(F,E,l,O,g,u,c,0),P&&P.unbind(),A&&d.destroy(),P}function Ro(e){if(e instanceof se){var t=e.width,r=e.height,n=e.id,o=e.device.createFramebuffer({id:"framebuffer-for-".concat(n),width:t,height:r,colorAttachments:[e]});return{framebuffer:o,destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}function y_(e){var t=P_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function P_(){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 yr=function(e){w(r,e);var t=y_(r);function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.commandBuffer=void 0,s.device=o,s.commandBuffer=new lo(o),s}var n=r.prototype;return n.destroy=function(){},n.finish=function(){this.commandBuffer.submitCommands()},n.copyBufferToBuffer=function(i){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:i})},n.copyBufferToTexture=function(i){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:i})},n.copyTextureToBuffer=function(i){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:i})},n.copyTextureToTexture=function(i){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:i})},n.pushDebugGroup=function(i){},n.popDebugGroup=function(){},n.insertDebugMarker=function(i){},y(r)}(ar);var Ao;function F_(e){var t=B_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function B_(){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}}Ao=Symbol.toStringTag;var Pr=function(e){w(r,e);var t=F_(r);r.isConstantAttributeZeroSupported=function(i){return i.info.type==="webgl2"||Gt()==="Chrome"};function r(o,i){var s;return I(this,r),s=t.call(this,o,i),s.device=void 0,s.handle=void 0,s.buffer=null,s.bufferValue=null,s.init=!1,s.device=o,s.handle=s.device.gl2.createVertexArray(),s}var n=r.prototype;return n.destroy=function(){if(Le(v(r.prototype),"destroy",this).call(this),this.buffer){var i;(i=this.buffer)===null||i===void 0||i.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)},n.setIndexBuffer=function(i){var s=i;if(s&&s.glTarget!==a.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(a.ELEMENT_ARRAY_BUFFER,s?s.handle:null),this.indexBuffer=s},n.setBuffer=function(i,s){var u=s;if(u.glTarget===a.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");var f=this._getAccessor(i),c=f.size,E=f.type,l=f.stride,R=f.offset,d=f.normalized,A=f.integer,m=f.divisor;this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(a.ARRAY_BUFFER,u.handle),A?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(i,c,E,l,R)):this.device.gl.vertexAttribPointer(i,c,E,d,l,R),this.device.gl.enableVertexAttribArray(i),this.device.gl2.vertexAttribDivisor(i,m||0),this.attributes[i]=u},n.setConstant=function(i,s){this._enable(i,!1),this.attributes[i]=s},n.bindBeforeRender=function(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){var i=this.indexBuffer;this.device.gl2.bindBuffer(a.ELEMENT_ARRAY_BUFFER,i?.handle||null),this.init=!0}this._applyConstantAttributes()},n.unbindAfterRender=function(){this.device.gl2.bindVertexArray(null)},n._applyConstantAttributes=function(){for(var i=0;i<this.maxVertexAttributes;++i){var s=this.attributes[i];ArrayBuffer.isView(s)&&this.device.setConstantAttribute(i,s)}},n._getAccessor=function(i){var s=this.attributeInfos[i];if(!s)throw new Error("Unknown attribute location ".concat(i));var u=Rr(s.bufferDataType);return{size:s.bufferComponents,type:u,stride:s.byteStride,offset:s.byteOffset,normalized:s.normalized,integer:s.integer,divisor:s.stepMode==="instance"?1:0}},n._enable=function(i){var s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,u=r.isConstantAttributeZeroSupported(this.device),f=u||i!==0;(s||f)&&(i=Number(i),this.device.gl2.bindVertexArray(this.handle),s?this.device.gl.enableVertexAttribArray(i):this.device.gl.disableVertexAttribArray(i),this.device.gl2.bindVertexArray(null))},n.getConstantBuffer=function(i,s){var u=M_(s),f=u.byteLength*i,c=u.length*i,E=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:f}),E=E||this.buffer.reallocate(f),E=E||!D_(u,this.bufferValue),E){var l=jr(s.constructor,c);Kr({target:l,source:u,start:0,count:c}),this.buffer.subData(l),this.bufferValue=s}return this.buffer},y(r,[{key:Ao,get:function(){return"VertexArray"}}]),r}(sr);function M_(e){return Array.isArray(e)?new Float32Array(e):e}function D_(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}function To(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Me(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?To(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):To(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function x_(e){var t=U_();return function(){var n=v(e),o;if(t){var i=v(this).constructor;o=Reflect.construct(n,arguments,i)}else o=n.apply(this,arguments);return X(this,o)}}function U_(){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 Fr=1,ue=function(e){w(r,e);var t=x_(r);r.isSupported=function(){return typeof WebGLRenderingContext<"u"||xn()},r.attach=function(i){if(i instanceof r)return i;if(i?.device instanceof Ot)return i.device;if(!w_(i))throw new Error("Invalid WebGLRenderingContext");return new r({gl:i})},r.create=function(){var o=oe(Cn.default.mark(function s(){var u,f,c=arguments;return Cn.default.wrap(function(l){for(;;)switch(l.prev=l.next){case 0:if(u=c.length>0&&c[0]!==void 0?c[0]:{},C.groupCollapsed(Fr,"WebGLDevice created"),typeof u.canvas!="string"){l.next=5;break}return l.next=5,ot.pageLoaded;case 5:if(!(C.get("debug")||u.debug)){l.next=8;break}return l.next=8,zi();case 8:if(f=u.spector,!(C.get("spector")||f)){l.next=12;break}return l.next=12,Vi();case 12:if(C.probe(Fr+1,"DOM is loaded")(),!(u.gl&&u.gl.device)){l.next=15;break}return l.abrupt("return",r.attach(u.gl));case 15:return l.abrupt("return",new r(u));case 16:case"end":return l.stop()}},s)}));function i(){return o.apply(this,arguments)}return i}();function r(o){var i,s;I(this,r),s=t.call(this,Me(Me({},o),{},{id:o.id||Oe("webgl-device")})),s.info=void 0,s.canvasContext=void 0,s.handle=void 0,s.lost=void 0,s._resolveContextLost=void 0,s._features=void 0,s._limits=void 0,s.renderPass=null,s.gl=void 0,s.gl2=null,s.debug=!1,s.isWebGL1=void 0,s.isWebGL2=void 0,s._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},s._extensions={},s._polyfilled=!1,s.spector=void 0,s._webglLimits=void 0,s._constants=void 0;var u=(i=o.gl)===null||i===void 0?void 0:i.device;if(u)throw new Error("WebGL context already attached to device ".concat(u.id));s.canvasContext=new vr(Ce(s),o),s.lost=new Promise(function(O){s._resolveContextLost=O});var f=function(g){var N,P;return(N=(P=s)._resolveContextLost)===null||N===void 0?void 0:N.call(P,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},c=o.gl||null;if(c=c||(q()?ci(s.canvasContext.canvas,Me(Me({},o),{},{onContextLost:f})):null),c=c||(q()?null:Un(Me(Me({},o),{},{onContextLost:f}))),!c)throw new Error("WebGL context creation failed");s.handle=c,s.gl=s.handle,s.gl2=s.gl,s.isWebGL2=X_(s.gl),s.isWebGL1=!s.isWebGL2,s.info=Ei(s.gl),s.gl.device=Ce(s),s.gl._version=s.isWebGL2?2:1,Er(s.gl);var E=o.enable,l=E===void 0?!0:E,R=o.copyState,d=R===void 0?!1:R;if(Dt(s.gl,{enable:l,copyState:d,log:function(){for(var g=arguments.length,N=new Array(g),P=0;P<g;P++)N[P]=arguments[P];return C.log.apply(C,[1].concat(N))()}}),q()&&o.debug&&(s.gl=$i(s.gl,Me(Me({},o),{},{webgl2:s.isWebGL2,throwOnError:!0})),s.gl2=s.gl,s.debug=!0,C.level=Math.max(C.level,1),C.warn("WebGL debug mode activated. Performance reduced.")()),q()&&o.spector){var A=s.handle.canvas||o.canvas;s.spector=ji(Me(Me({},s.props),{},{canvas:A}))}var m="Created ".concat(s.info.type).concat(s.debug?" debug":""," context: ").concat(s.info.vendor,", ").concat(s.info.renderer," for canvas: ").concat(s.canvasContext.id);return C.probe(Fr,m)(),C.groupEnd(Fr)(),s}var n=r.prototype;return n.destroy=function(){var i=this.gl.getExtension("STACKGL_destroy_context");i&&i.destroy()},n.getSize=function(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]},n.isTextureFormatSupported=function(i){return Xt(this.gl,i)},n.isTextureFormatFilterable=function(i){return Ti(this.gl,i)},n.isTextureFormatRenderable=function(i){return pi(this.gl,i)},n.assertWebGL2=function(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2},n.createCanvasContext=function(i){throw new Error("WebGL only supports a single canvas")},n.createBuffer=function(i){var s=this._getBufferProps(i);return new mt(this,s)},n._createTexture=function(i){return new Ee(this,i)},n.createExternalTexture=function(i){throw new Error("createExternalTexture() not implemented")},n.createSampler=function(i){return new Je(this,i)},n.createShader=function(i){return new br(this,i)},n.createFramebuffer=function(i){return new Be(this,i)},n.createRenderPipeline=function(i){return new Ir(this,i)},n.createVertexArray=function(i){return new Pr(this,i)},n.beginRenderPass=function(i){return new Nr(this,i)},n.createComputePipeline=function(i){throw new Error("ComputePipeline not supported in WebGL")},n.beginComputePass=function(i){throw new Error("compute shaders not supported in WebGL")},n.getDefaultRenderPass=function(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass},n.createCommandEncoder=function(i){return new yr(this,i)},n.submit=function(){var i;(i=this.renderPass)===null||i===void 0||i.end(),this.renderPass=null},n.loseDevice=function(){var i,s=!1,u=this.gl.getExtension("WEBGL_lose_context");return u&&(s=!0,u.loseContext()),(i=this._resolveContextLost)===null||i===void 0||i.call(this,{reason:"destroyed",message:"Application triggered context loss"}),s},n.pushState=function(){ve(this.gl)},n.popState=function(){Se(this.gl)},n.setSpectorMetadata=function(i,s){i.__SPECTOR_Metadata=s},n.getGLKey=function(i,s){s=s||this.gl2||this.gl;var u=Number(i);for(var f in s)if(s[f]===u)return"GL.".concat(f);return String(i)},n.setConstantAttribute=function(i,s){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);var u=this._constants[i];switch(u&&V_(u,s)&&C.info(1,"setConstantAttribute(".concat(i,") could have been skipped, value unchanged"))(),this._constants[i]=s,s.constructor){case Float32Array:L_(this,i,s);break;case Int32Array:H_(this,i,s);break;case Uint32Array:W_(this,i,s);break;default:B(!1)}},y(r,[{key:"features",get:function(){return this._features=this._features||Si(this.gl),this._features}},{key:"limits",get:function(){return this._limits=this._limits||Oi(this.gl),this._limits}},{key:"isLost",get:function(){return this.gl.isContextLost()}},{key:"webglLimits",get:function(){return this._webglLimits=this._webglLimits||vi(this.gl),this._webglLimits}}]),r}(Ot);ue.type="webgl";function w_(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function X_(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function L_(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:B(!1)}}function H_(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function W_(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function V_(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var j_=256,K_=1024,Y_=16384;var k_="clear: bad arguments";function po(e,t){var r=ue.attach(e),n=t||{},o=n.framebuffer,i=o===void 0?null:o,s=n.color,u=s===void 0?null:s,f=n.depth,c=f===void 0?null:f,E=n.stencil,l=E===void 0?null:E,R={};i&&(R.framebuffer=i);var d=0;u&&(d|=Y_,u!==!0&&(R.clearColor=u)),c&&(d|=j_,c!==!0&&(R.clearDepth=c)),l&&(d|=K_,c!==!0&&(R.clearStencil=c)),B(d!==0,k_),le(r.gl,R,function(){r.gl.clear(d)})}function In(e){switch(e){case a.ALPHA:case a.R32F:case a.RED:return 1;case a.RG32F:case a.RG:return 2;case a.RGB:case a.RGB32F:return 3;case a.RGBA:case a.RGBA32F:return 4;default:return B(!1),0}}function mo(e){switch(e){case a.UNSIGNED_BYTE:return 1;case a.UNSIGNED_SHORT_5_6_5:case a.UNSIGNED_SHORT_4_4_4_4:case a.UNSIGNED_SHORT_5_5_5_1:return 2;case a.FLOAT:return 4;default:return B(!1),0}}function ho(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function So(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ho(Object(r),!0).forEach(function(n){_(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ho(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function go(e,t){var r,n=t||{},o=n.sourceX,i=o===void 0?0:o,s=n.sourceY,u=s===void 0?0:s,f=n.sourceFormat,c=f===void 0?a.RGBA:f,E=n.sourceAttachment,l=E===void 0?a.COLOR_ATTACHMENT0:E,R=t||{},d=R.target,A=d===void 0?null:d,m=R.sourceWidth,O=R.sourceHeight,g=R.sourceType,N=yn(e),P=N.framebuffer,F=N.deleteFramebuffer;B(P);var H=P,x=H.gl,Z=H.handle;m=m||P.width,O=O||P.height;var z=l-a.COLOR_ATTACHMENT0;g=g||((r=P.colorAttachments[z])===null||r===void 0?void 0:r.type)||a.UNSIGNED_BYTE,A=z_(A,g,c,m,O),g=g||pt(A);var re=x.bindFramebuffer(a.FRAMEBUFFER,Z);return x.readPixels(i,u,m,O,c,g,A),x.bindFramebuffer(a.FRAMEBUFFER,re||null),F&&P.destroy(),A}function Oo(e,t){var r=t||{},n=r.sourceX,o=n===void 0?0:n,i=r.sourceY,s=i===void 0?0:i,u=r.sourceFormat,f=u===void 0?a.RGBA:u,c=r.targetByteOffset,E=c===void 0?0:c,l=t||{},R=l.target,d=l.sourceWidth,A=l.sourceHeight,m=l.sourceType,O=yn(e),g=O.framebuffer,N=O.deleteFramebuffer;B(g),d=d||g.width,A=A||g.height;var P=g,F=P.device.assertWebGL2();if(m=m||(R?R.type:a.UNSIGNED_BYTE),!R){var H=In(f),x=mo(m),Z=E+d*A*H*x;R=new mt(F,{byteLength:Z,accessor:{type:m,size:H}})}return R.bind({glTarget:a.PIXEL_PACK_BUFFER}),le(F,{framebuffer:g},function(){F.readPixels(o,s,d,A,f,m,E)}),R.unbind({glTarget:a.PIXEL_PACK_BUFFER}),N&&g.destroy(),R}function vo(e,t,r){var n=r||{},o=n.sourceX,i=o===void 0?0:o,s=n.sourceY,u=s===void 0?0:s,f=n.targetMipmaplevel,c=f===void 0?0:f,E=n.targetInternalFormat,l=E===void 0?a.RGBA:E,R=r||{},d=R.targetX,A=R.targetY,m=R.targetZ,O=R.width,g=R.height,N=yn(e),P=N.framebuffer,F=N.deleteFramebuffer;B(P);var H=P,x=H.device,Z=H.handle,z=typeof d<"u"||typeof A<"u"||typeof m<"u";d=d||0,A=A||0,m=m||0;var re=x.gl.bindFramebuffer(a.FRAMEBUFFER,Z);B(t);var K=null,h;if(t instanceof se?(K=t,O=Number.isFinite(O)?O:K.width,g=Number.isFinite(g)?g:K.height,K.bind(0),h=K.target):h=t,!z)x.gl.copyTexImage2D(h,c,l,i,u,O,g,0);else switch(h){case a.TEXTURE_2D:case a.TEXTURE_CUBE_MAP:x.gl.copyTexSubImage2D(h,c,d,A,i,u,O,g);break;case a.TEXTURE_2D_ARRAY:case a.TEXTURE_3D:x.assertWebGL2(),x.gl2.copyTexSubImage3D(h,c,d,A,m,i,u,O,g);break;default:}return K&&K.unbind(),x.gl.bindFramebuffer(a.FRAMEBUFFER,re||null),F&&P.destroy(),K}function yn(e){return e instanceof ut?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:G_(e),deleteFramebuffer:!0}}function G_(e,t){var r=e.device,n=e.width,o=e.height,i=e.id,s=r.createFramebuffer(So(So({},t),{},{id:"framebuffer-for-".concat(i),width:n,height:o,colorAttachments:[e]}));return s}function z_(e,t,r,n,o){if(e)return e;t=t||a.UNSIGNED_BYTE;var i=He(t,{clamped:!1}),s=In(r);return new i(n*o*s)}return Mo($_);})();
|
|
31
31
|
/*! Bundled license information:
|
|
32
32
|
|
|
33
33
|
@babel/runtime/helpers/regeneratorRuntime.js:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/webgl",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.44",
|
|
4
4
|
"description": "WebGL2 adapter for the luma.gl API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -44,12 +44,12 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@babel/runtime": "^7.0.0",
|
|
47
|
-
"@luma.gl/constants": "9.0.0-alpha.
|
|
48
|
-
"@luma.gl/core": "9.0.0-alpha.
|
|
47
|
+
"@luma.gl/constants": "9.0.0-alpha.44",
|
|
48
|
+
"@luma.gl/core": "9.0.0-alpha.44",
|
|
49
49
|
"@probe.gl/env": "^4.0.2"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@luma.gl/test-utils": "9.0.0-alpha.
|
|
52
|
+
"@luma.gl/test-utils": "9.0.0-alpha.44"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "195bed39c8587a68686cf28c0ae0e8dbd9c963f5"
|
|
55
55
|
}
|
|
@@ -44,8 +44,6 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
44
44
|
/** WebGL varyings */
|
|
45
45
|
varyings: string[] | null = null;
|
|
46
46
|
|
|
47
|
-
_textureUniforms: Record<string, any> = {};
|
|
48
|
-
_textureIndexCounter: number = 0;
|
|
49
47
|
_uniformCount: number = 0;
|
|
50
48
|
_uniformSetters: Record<string, Function> = {}; // TODO are these used?
|
|
51
49
|
|
|
@@ -348,16 +346,9 @@ export class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
348
346
|
_areTexturesRenderable() {
|
|
349
347
|
let texturesRenderable = true;
|
|
350
348
|
|
|
351
|
-
for (const [, texture] of Object.entries(this._textureUniforms)) {
|
|
352
|
-
texture.update();
|
|
353
|
-
texturesRenderable = texturesRenderable && texture.loaded;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
349
|
for (const [, texture] of Object.entries(this.bindings)) {
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
if (texture.loaded !== undefined) {
|
|
360
|
-
// @ts-expect-error
|
|
350
|
+
if (texture instanceof WEBGLTexture) {
|
|
351
|
+
texture.update();
|
|
361
352
|
texturesRenderable = texturesRenderable && texture.loaded;
|
|
362
353
|
}
|
|
363
354
|
}
|