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