@luma.gl/webgl 8.6.0-alpha.5 → 9.0.0-alpha.11
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/README.md +3 -67
- package/dist/adapter/converters/device-parameters.d.ts +27 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +227 -0
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +93 -0
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/texture-formats.js +954 -0
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.d.ts +4 -0
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +35 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +3 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +39 -50
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +81 -0
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +330 -0
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts +4 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +115 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.d.ts +26 -0
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
- package/dist/adapter/helpers/uniforms.js +99 -0
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
- package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-buffer.js +164 -0
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +41 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +267 -0
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +21 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.js +428 -0
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +50 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
- package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +17 -23
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +193 -0
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
- package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +36 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
- package/dist/adapter/webgl-canvas-context.js +52 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +77 -83
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +253 -115
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +32 -0
- package/dist/classic/accessor.d.ts.map +1 -0
- package/dist/{classes → classic}/accessor.js +33 -1
- package/dist/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
- package/dist/classic/buffer.d.ts.map +1 -0
- package/dist/{classes/webgl-buffer.js → classic/buffer.js} +67 -57
- package/dist/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
- package/dist/classic/typed-array-utils.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/context-state.d.ts +0 -5
- package/dist/context/context/context-state.d.ts.map +1 -1
- package/dist/context/context/context-state.js +1 -6
- package/dist/context/context/context-state.js.map +1 -1
- package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +43 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/debug/spector.d.ts +18 -0
- package/dist/context/debug/spector.d.ts.map +1 -0
- package/dist/context/debug/spector.js +76 -0
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
- package/dist/context/debug/webgl-developer-tools.js +121 -0
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -8
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +3 -3
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +1 -1
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +26 -12
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +6 -2
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
- package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/texture-formats.js +1031 -0
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
- package/dist/es5/adapter/converters/vertex-formats.js +45 -0
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +61 -58
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/adapter/helpers/set-uniform.js +125 -0
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/es5/adapter/helpers/uniforms.js +112 -0
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/es5/adapter/webgl-canvas-context.js +94 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +325 -131
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/{classes → classic}/accessor.js +25 -1
- package/dist/es5/classic/accessor.js.map +1 -0
- package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
- package/dist/es5/classic/buffer.js.map +1 -0
- package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/es5/classic/typed-array-utils.js.map +1 -0
- package/dist/es5/context/context/context-state.js +1 -6
- package/dist/es5/context/context/context-state.js.map +1 -1
- package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
- package/dist/es5/context/context/create-browser-context.js.map +1 -0
- package/dist/es5/context/context/create-headless-context.js +60 -0
- package/dist/es5/context/context/create-headless-context.js.map +1 -0
- package/dist/es5/context/debug/spector.js +133 -0
- package/dist/es5/context/debug/spector.js.map +1 -0
- package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +3 -3
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +39 -24
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +8 -2
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +63 -305
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +1 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
- package/dist/es5/types/webgl.js.map +1 -0
- package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
- package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/texture-formats.js +954 -0
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
- package/dist/esm/adapter/converters/vertex-formats.js +35 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +39 -50
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/adapter/helpers/set-uniform.js +115 -0
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/esm/adapter/helpers/uniforms.js +99 -0
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +52 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +253 -115
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/{classes → classic}/accessor.js +33 -1
- package/dist/esm/classic/accessor.js.map +1 -0
- package/dist/esm/{classes/webgl-buffer.js → classic/buffer.js} +67 -57
- package/dist/esm/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
- package/dist/esm/classic/typed-array-utils.js.map +1 -0
- package/dist/esm/context/context/context-state.js +1 -6
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
- package/dist/esm/context/context/create-browser-context.js.map +1 -0
- package/dist/esm/context/context/create-headless-context.js +43 -0
- package/dist/esm/context/context/create-headless-context.js.map +1 -0
- package/dist/esm/context/debug/spector.js +76 -0
- package/dist/esm/context/debug/spector.js.map +1 -0
- package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +3 -3
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +26 -12
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +6 -2
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js +20 -32
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +2 -31
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js +2 -0
- package/dist/esm/types/webgl.js.map +1 -0
- package/dist/index.d.ts +25 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -32
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +2 -31
- package/dist/init.js.map +1 -1
- package/dist/types/webgl.d.ts +145 -0
- package/dist/types/webgl.d.ts.map +1 -0
- package/dist/types/webgl.js +2 -0
- package/dist/types/webgl.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +184 -0
- package/src/adapter/converters/texture-formats.ts +633 -0
- package/src/adapter/converters/vertex-formats.ts +22 -0
- package/src/adapter/device-helpers/device-features.ts +55 -124
- package/src/adapter/device-helpers/device-limits.ts +6 -3
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/attribute-utils.ts +61 -0
- package/src/adapter/helpers/get-shader-layout.ts +407 -0
- package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
- package/src/adapter/helpers/set-uniform.ts +87 -0
- package/src/adapter/helpers/uniforms.ts +121 -0
- package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
- package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
- package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
- package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
- package/src/adapter/resources/webgl-buffer.ts +219 -0
- package/src/adapter/resources/webgl-command-buffer.ts +94 -0
- package/src/adapter/resources/webgl-command-encoder.ts +58 -0
- package/src/adapter/resources/webgl-external-texture.ts +92 -0
- package/src/adapter/resources/webgl-framebuffer.ts +282 -0
- package/src/adapter/resources/webgl-render-pass.ts +24 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
- package/src/adapter/resources/webgl-sampler.ts +56 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
- package/src/adapter/resources/webgl-texture.ts +1036 -0
- package/src/adapter/webgl-canvas-context.ts +72 -0
- package/src/adapter/webgl-device.ts +312 -285
- package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
- package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
- package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
- package/src/context/context/context-state.ts +4 -12
- package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/debug/spector.ts +92 -0
- package/src/context/debug/webgl-developer-tools.ts +162 -0
- package/src/context/parameters/unified-parameter-api.ts +21 -13
- package/src/context/parameters/webgl-parameter-tables.ts +38 -36
- package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
- package/src/context/polyfill/polyfill-context.ts +4 -5
- package/src/context/polyfill/polyfill-table.ts +1 -1
- package/src/context/state-tracker/deep-array-equal.ts +1 -1
- package/src/context/state-tracker/track-context-state.ts +34 -26
- package/src/context/state-tracker/with-parameters.ts +7 -2
- package/src/index.ts +42 -105
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +284 -0
- package/dist/_deprecated/context-api.d.ts +0 -85
- package/dist/_deprecated/context-api.d.ts.map +0 -1
- package/dist/_deprecated/context-api.js +0 -76
- package/dist/_deprecated/context-api.js.map +0 -1
- package/dist/_deprecated/features.d.ts +0 -27
- package/dist/_deprecated/features.d.ts.map +0 -1
- package/dist/_deprecated/features.js +0 -111
- package/dist/_deprecated/features.js.map +0 -1
- package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
- package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
- package/dist/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/adapter/webgl-shader.d.ts.map +0 -1
- package/dist/adapter/webgl-shader.js.map +0 -1
- package/dist/classes/accessor.d.ts +0 -28
- package/dist/classes/accessor.d.ts.map +0 -1
- package/dist/classes/accessor.js.map +0 -1
- package/dist/classes/accessor.ts.disabled +0 -159
- package/dist/classes/clear.d.ts +0 -17
- package/dist/classes/clear.d.ts.map +0 -1
- package/dist/classes/clear.js +0 -105
- package/dist/classes/clear.js.map +0 -1
- package/dist/classes/copy-and-blit.d.ts +0 -86
- package/dist/classes/copy-and-blit.d.ts.map +0 -1
- package/dist/classes/copy-and-blit.js +0 -338
- package/dist/classes/copy-and-blit.js.map +0 -1
- package/dist/classes/framebuffer.d.ts +0 -139
- package/dist/classes/framebuffer.d.ts.map +0 -1
- package/dist/classes/framebuffer.js +0 -656
- package/dist/classes/framebuffer.js.map +0 -1
- package/dist/classes/program-configuration.d.ts +0 -24
- package/dist/classes/program-configuration.d.ts.map +0 -1
- package/dist/classes/program-configuration.js +0 -73
- package/dist/classes/program-configuration.js.map +0 -1
- package/dist/classes/program.d.ts +0 -66
- package/dist/classes/program.d.ts.map +0 -1
- package/dist/classes/program.js +0 -379
- package/dist/classes/program.js.map +0 -1
- package/dist/classes/query.d.ts +0 -27
- package/dist/classes/query.d.ts.map +0 -1
- package/dist/classes/query.js +0 -145
- package/dist/classes/query.js.map +0 -1
- package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
- package/dist/classes/renderbuffer-formats.js.map +0 -1
- package/dist/classes/renderbuffer.d.ts +0 -60
- package/dist/classes/renderbuffer.d.ts.map +0 -1
- package/dist/classes/renderbuffer.js.map +0 -1
- package/dist/classes/shader.d.ts +0 -42
- package/dist/classes/shader.d.ts.map +0 -1
- package/dist/classes/shader.js +0 -118
- package/dist/classes/shader.js.map +0 -1
- package/dist/classes/texture-2d.d.ts +0 -9
- package/dist/classes/texture-2d.d.ts.map +0 -1
- package/dist/classes/texture-2d.js +0 -36
- package/dist/classes/texture-2d.js.map +0 -1
- package/dist/classes/texture-3d.d.ts +0 -29
- package/dist/classes/texture-3d.d.ts.map +0 -1
- package/dist/classes/texture-3d.js +0 -76
- package/dist/classes/texture-3d.js.map +0 -1
- package/dist/classes/texture-cube.d.ts +0 -28
- package/dist/classes/texture-cube.d.ts.map +0 -1
- package/dist/classes/texture-cube.js +0 -130
- package/dist/classes/texture-cube.js.map +0 -1
- package/dist/classes/texture-formats.d.ts +0 -37
- package/dist/classes/texture-formats.d.ts.map +0 -1
- package/dist/classes/texture-formats.js +0 -98
- package/dist/classes/texture-formats.js.map +0 -1
- package/dist/classes/texture.d.ts +0 -123
- package/dist/classes/texture.d.ts.map +0 -1
- package/dist/classes/texture.js.map +0 -1
- package/dist/classes/transform-feedback.d.ts +0 -33
- package/dist/classes/transform-feedback.d.ts.map +0 -1
- package/dist/classes/transform-feedback.js +0 -198
- package/dist/classes/transform-feedback.js.map +0 -1
- package/dist/classes/uniform-buffer-layout.d.ts +0 -17
- package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
- package/dist/classes/uniform-buffer-layout.js +0 -104
- package/dist/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/classes/uniforms.d.ts +0 -37
- package/dist/classes/uniforms.d.ts.map +0 -1
- package/dist/classes/uniforms.js +0 -250
- package/dist/classes/uniforms.js.map +0 -1
- package/dist/classes/vertex-array-object.d.ts +0 -76
- package/dist/classes/vertex-array-object.d.ts.map +0 -1
- package/dist/classes/vertex-array-object.js +0 -261
- package/dist/classes/vertex-array-object.js.map +0 -1
- package/dist/classes/vertex-array.d.ts +0 -75
- package/dist/classes/vertex-array.d.ts.map +0 -1
- package/dist/classes/vertex-array.js +0 -408
- package/dist/classes/vertex-array.js.map +0 -1
- package/dist/classes/webgl-buffer.d.ts.map +0 -1
- package/dist/classes/webgl-buffer.js.map +0 -1
- package/dist/classes/webgl-resource.d.ts.map +0 -1
- package/dist/classes/webgl-resource.js.map +0 -1
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/context/context/get-canvas.d.ts +0 -13
- package/dist/context/context/get-canvas.d.ts.map +0 -1
- package/dist/context/context/get-canvas.js +0 -31
- package/dist/context/context/get-canvas.js.map +0 -1
- package/dist/context/context/resize-context.d.ts +0 -20
- package/dist/context/context/resize-context.d.ts.map +0 -1
- package/dist/context/context/resize-context.js +0 -15
- package/dist/context/context/resize-context.js.map +0 -1
- package/dist/context/parameters/webgl-parameters.d.ts +0 -144
- package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
- package/dist/context/parameters/webgl-parameters.js +0 -2
- package/dist/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/debug/debug-program-configuration.d.ts +0 -2
- package/dist/debug/debug-program-configuration.d.ts.map +0 -1
- package/dist/debug/debug-program-configuration.js +0 -40
- package/dist/debug/debug-program-configuration.js.map +0 -1
- package/dist/debug/debug-uniforms.d.ts +0 -12
- package/dist/debug/debug-uniforms.d.ts.map +0 -1
- package/dist/debug/debug-uniforms.js +0 -108
- package/dist/debug/debug-uniforms.js.map +0 -1
- package/dist/debug/debug-vertex-array.d.ts +0 -5
- package/dist/debug/debug-vertex-array.d.ts.map +0 -1
- package/dist/debug/debug-vertex-array.js +0 -118
- package/dist/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/_deprecated/context-api.js +0 -116
- package/dist/es5/_deprecated/context-api.js.map +0 -1
- package/dist/es5/_deprecated/features.js +0 -118
- package/dist/es5/_deprecated/features.js.map +0 -1
- package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/es5/adapter/webgl-shader.js.map +0 -1
- package/dist/es5/classes/accessor.d.ts +0 -28
- package/dist/es5/classes/accessor.js.map +0 -1
- package/dist/es5/classes/accessor.ts.disabled +0 -159
- package/dist/es5/classes/clear.js +0 -135
- package/dist/es5/classes/clear.js.map +0 -1
- package/dist/es5/classes/copy-and-blit.js +0 -382
- package/dist/es5/classes/copy-and-blit.js.map +0 -1
- package/dist/es5/classes/framebuffer.js +0 -807
- package/dist/es5/classes/framebuffer.js.map +0 -1
- package/dist/es5/classes/program-configuration.js +0 -119
- package/dist/es5/classes/program-configuration.js.map +0 -1
- package/dist/es5/classes/program.js +0 -471
- package/dist/es5/classes/program.js.map +0 -1
- package/dist/es5/classes/query.js +0 -222
- package/dist/es5/classes/query.js.map +0 -1
- package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
- package/dist/es5/classes/renderbuffer.js.map +0 -1
- package/dist/es5/classes/shader.js +0 -195
- package/dist/es5/classes/shader.js.map +0 -1
- package/dist/es5/classes/texture-2d.js.map +0 -1
- package/dist/es5/classes/texture-3d.js +0 -142
- package/dist/es5/classes/texture-3d.js.map +0 -1
- package/dist/es5/classes/texture-cube.js +0 -202
- package/dist/es5/classes/texture-cube.js.map +0 -1
- package/dist/es5/classes/texture-formats.js +0 -87
- package/dist/es5/classes/texture-formats.js.map +0 -1
- package/dist/es5/classes/texture.js.map +0 -1
- package/dist/es5/classes/transform-feedback.js +0 -267
- package/dist/es5/classes/transform-feedback.js.map +0 -1
- package/dist/es5/classes/uniform-buffer-layout.js +0 -130
- package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/es5/classes/uniforms.js +0 -232
- package/dist/es5/classes/uniforms.js.map +0 -1
- package/dist/es5/classes/vertex-array-object.js +0 -337
- package/dist/es5/classes/vertex-array-object.js.map +0 -1
- package/dist/es5/classes/vertex-array.js +0 -465
- package/dist/es5/classes/vertex-array.js.map +0 -1
- package/dist/es5/classes/webgl-buffer.js.map +0 -1
- package/dist/es5/classes/webgl-resource.js.map +0 -1
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/get-canvas.js +0 -40
- package/dist/es5/context/context/get-canvas.js.map +0 -1
- package/dist/es5/context/context/resize-context.js +0 -23
- package/dist/es5/context/context/resize-context.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/es5/debug/debug-program-configuration.js +0 -76
- package/dist/es5/debug/debug-program-configuration.js.map +0 -1
- package/dist/es5/debug/debug-uniforms.js +0 -156
- package/dist/es5/debug/debug-uniforms.js.map +0 -1
- package/dist/es5/debug/debug-vertex-array.js +0 -126
- package/dist/es5/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/helpers/get-program-bindings.js.map +0 -1
- package/dist/es5/helpers/program-bindings.js +0 -2
- package/dist/es5/types/accessor.d.ts +0 -29
- package/dist/es5/webgl-utils/attribute-utils.js +0 -186
- package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/es5/webgl-utils/format-utils.js +0 -58
- package/dist/es5/webgl-utils/format-utils.js.map +0 -1
- package/dist/es5/webgl-utils/get-error.js +0 -49
- package/dist/es5/webgl-utils/get-error.js.map +0 -1
- package/dist/es5/webgl-utils/index.js +0 -74
- package/dist/es5/webgl-utils/index.js.map +0 -1
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
- package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/es5/webgl-utils/texture-utils.js +0 -61
- package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
- package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/esm/_deprecated/context-api.js +0 -76
- package/dist/esm/_deprecated/context-api.js.map +0 -1
- package/dist/esm/_deprecated/features.js +0 -111
- package/dist/esm/_deprecated/features.js.map +0 -1
- package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/esm/adapter/webgl-shader.js.map +0 -1
- package/dist/esm/classes/accessor.d.ts +0 -28
- package/dist/esm/classes/accessor.js.map +0 -1
- package/dist/esm/classes/clear.js +0 -105
- package/dist/esm/classes/clear.js.map +0 -1
- package/dist/esm/classes/copy-and-blit.js +0 -338
- package/dist/esm/classes/copy-and-blit.js.map +0 -1
- package/dist/esm/classes/framebuffer.js +0 -656
- package/dist/esm/classes/framebuffer.js.map +0 -1
- package/dist/esm/classes/program-configuration.js +0 -73
- package/dist/esm/classes/program-configuration.js.map +0 -1
- package/dist/esm/classes/program.js +0 -379
- package/dist/esm/classes/program.js.map +0 -1
- package/dist/esm/classes/query.js +0 -145
- package/dist/esm/classes/query.js.map +0 -1
- package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
- package/dist/esm/classes/renderbuffer.js.map +0 -1
- package/dist/esm/classes/shader.js +0 -118
- package/dist/esm/classes/shader.js.map +0 -1
- package/dist/esm/classes/texture-2d.js +0 -36
- package/dist/esm/classes/texture-2d.js.map +0 -1
- package/dist/esm/classes/texture-3d.js +0 -76
- package/dist/esm/classes/texture-3d.js.map +0 -1
- package/dist/esm/classes/texture-cube.js +0 -130
- package/dist/esm/classes/texture-cube.js.map +0 -1
- package/dist/esm/classes/texture-formats.js +0 -98
- package/dist/esm/classes/texture-formats.js.map +0 -1
- package/dist/esm/classes/texture.js.map +0 -1
- package/dist/esm/classes/transform-feedback.js +0 -198
- package/dist/esm/classes/transform-feedback.js.map +0 -1
- package/dist/esm/classes/uniform-buffer-layout.js +0 -104
- package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/esm/classes/uniforms.js +0 -250
- package/dist/esm/classes/uniforms.js.map +0 -1
- package/dist/esm/classes/vertex-array-object.js +0 -261
- package/dist/esm/classes/vertex-array-object.js.map +0 -1
- package/dist/esm/classes/vertex-array.js +0 -408
- package/dist/esm/classes/vertex-array.js.map +0 -1
- package/dist/esm/classes/webgl-buffer.js.map +0 -1
- package/dist/esm/classes/webgl-resource.js.map +0 -1
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/get-canvas.js +0 -31
- package/dist/esm/context/context/get-canvas.js.map +0 -1
- package/dist/esm/context/context/resize-context.js +0 -15
- package/dist/esm/context/context/resize-context.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameters.js +0 -2
- package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/esm/debug/debug-program-configuration.js +0 -40
- package/dist/esm/debug/debug-program-configuration.js.map +0 -1
- package/dist/esm/debug/debug-uniforms.js +0 -108
- package/dist/esm/debug/debug-uniforms.js.map +0 -1
- package/dist/esm/debug/debug-vertex-array.js +0 -118
- package/dist/esm/debug/debug-vertex-array.js.map +0 -1
- package/dist/esm/helpers/get-program-bindings.js +0 -228
- package/dist/esm/helpers/get-program-bindings.js.map +0 -1
- package/dist/esm/helpers/program-bindings.js +0 -2
- package/dist/esm/types/accessor.d.ts +0 -29
- package/dist/esm/webgl-utils/attribute-utils.js +0 -182
- package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/esm/webgl-utils/format-utils.js +0 -45
- package/dist/esm/webgl-utils/format-utils.js.map +0 -1
- package/dist/esm/webgl-utils/get-error.js +0 -41
- package/dist/esm/webgl-utils/get-error.js.map +0 -1
- package/dist/esm/webgl-utils/index.js +0 -5
- package/dist/esm/webgl-utils/index.js.map +0 -1
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
- package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/esm/webgl-utils/texture-utils.js +0 -48
- package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
- package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/helpers/get-program-bindings.d.ts +0 -8
- package/dist/helpers/get-program-bindings.d.ts.map +0 -1
- package/dist/helpers/get-program-bindings.js +0 -228
- package/dist/helpers/get-program-bindings.js.map +0 -1
- package/dist/helpers/program-bindings.d.ts +0 -41
- package/dist/helpers/program-bindings.d.ts.map +0 -1
- package/dist/helpers/program-bindings.js +0 -2
- package/dist/types/accessor.d.ts +0 -29
- package/dist/webgl-utils/attribute-utils.d.ts +0 -18
- package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
- package/dist/webgl-utils/attribute-utils.js +0 -182
- package/dist/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
- package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
- package/dist/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/webgl-utils/format-utils.d.ts +0 -3
- package/dist/webgl-utils/format-utils.d.ts.map +0 -1
- package/dist/webgl-utils/format-utils.js +0 -45
- package/dist/webgl-utils/format-utils.js.map +0 -1
- package/dist/webgl-utils/get-error.d.ts +0 -3
- package/dist/webgl-utils/get-error.d.ts.map +0 -1
- package/dist/webgl-utils/get-error.js +0 -41
- package/dist/webgl-utils/get-error.js.map +0 -1
- package/dist/webgl-utils/index.d.ts +0 -5
- package/dist/webgl-utils/index.d.ts.map +0 -1
- package/dist/webgl-utils/index.js +0 -5
- package/dist/webgl-utils/index.js.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
- package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
- package/dist/webgl-utils/request-animation-frame.js +0 -7
- package/dist/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/webgl-utils/texture-utils.d.ts +0 -15
- package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
- package/dist/webgl-utils/texture-utils.js +0 -48
- package/dist/webgl-utils/texture-utils.js.map +0 -1
- package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
- package/dist/webgl-utils/typed-array-utils.js.map +0 -1
- package/src/.DS_Store +0 -0
- package/src/_deprecated/context-api.ts +0 -146
- package/src/_deprecated/features.ts +0 -159
- package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
- package/src/classes/accessor.d.ts +0 -28
- package/src/classes/accessor.js +0 -129
- package/src/classes/accessor.ts.disabled +0 -159
- package/src/classes/clear.ts +0 -108
- package/src/classes/copy-and-blit.ts +0 -460
- package/src/classes/framebuffer.ts +0 -763
- package/src/classes/program-configuration.ts +0 -77
- package/src/classes/program.ts +0 -431
- package/src/classes/query.ts +0 -171
- package/src/classes/renderbuffer.ts +0 -154
- package/src/classes/shader.ts +0 -129
- package/src/classes/texture-2d.ts +0 -35
- package/src/classes/texture-3d.ts +0 -123
- package/src/classes/texture-cube.ts +0 -162
- package/src/classes/texture-formats.ts +0 -171
- package/src/classes/texture.ts +0 -965
- package/src/classes/transform-feedback.ts +0 -191
- package/src/classes/uniform-buffer-layout.ts +0 -113
- package/src/classes/uniforms.ts +0 -394
- package/src/classes/vertex-array-object.ts +0 -339
- package/src/classes/vertex-array.ts +0 -484
- package/src/context/context/device-pixels.ts +0 -147
- package/src/context/context/get-canvas.ts +0 -37
- package/src/context/context/resize-context.ts +0 -37
- package/src/context/parameters/webgl-parameters.ts +0 -197
- package/src/debug/debug-program-configuration.ts +0 -32
- package/src/debug/debug-uniforms.ts +0 -100
- package/src/debug/debug-vertex-array.ts +0 -123
- package/src/helpers/get-program-bindings.ts +0 -244
- package/src/helpers/program-bindings.ts +0 -46
- package/src/types/accessor.d.ts +0 -29
- package/src/webgl-utils/attribute-utils.ts +0 -171
- package/src/webgl-utils/format-utils.ts +0 -43
- package/src/webgl-utils/get-error.ts +0 -56
- package/src/webgl-utils/index.ts +0 -12
- package/src/webgl-utils/request-animation-frame.ts +0 -14
- package/src/webgl-utils/texture-utils.ts +0 -60
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
import {log, loadScript} from '@luma.gl/api';
|
|
3
|
+
|
|
4
|
+
/** Spector debug initialization options */
|
|
5
|
+
type SpectorProps = {
|
|
6
|
+
/** Canvas to monitor */
|
|
7
|
+
canvas?: HTMLCanvasElement | OffscreenCanvas;
|
|
8
|
+
/** Whether debug is enabled. Auto-detected if ommitted */
|
|
9
|
+
debug?: boolean;
|
|
10
|
+
/** Whether spector is disabled */
|
|
11
|
+
spector?: boolean | string | object;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const DEFAULT_SPECTOR_PROPS: SpectorProps = {
|
|
15
|
+
spector: log.get('spector') || log.get('inspect')
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
// https://github.com/BabylonJS/Spector.js#basic-usage
|
|
19
|
+
const SPECTOR_CDN_URL = 'https://spectorcdn.babylonjs.com/spector.bundle.js';
|
|
20
|
+
const LOG_LEVEL = 1;
|
|
21
|
+
|
|
22
|
+
let spector: any = null;
|
|
23
|
+
let initialized: boolean = false;
|
|
24
|
+
|
|
25
|
+
declare global {
|
|
26
|
+
var SPECTOR: any;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Loads spector from CDN if not already installed */
|
|
30
|
+
export async function loadSpectorJS(props?: SpectorProps) {
|
|
31
|
+
if (!globalThis.SPECTOR) {
|
|
32
|
+
try {
|
|
33
|
+
await loadScript(SPECTOR_CDN_URL);
|
|
34
|
+
} catch(error) {
|
|
35
|
+
log.warn(String(error))
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function initializeSpectorJS(props?: SpectorProps) {
|
|
41
|
+
props = {...DEFAULT_SPECTOR_PROPS, ...props};
|
|
42
|
+
if (!props?.spector) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
if (!spector && globalThis.SPECTOR) {
|
|
47
|
+
log.probe(LOG_LEVEL, "SPECTOR found and initialized")();
|
|
48
|
+
spector = new globalThis.SPECTOR.Spector();
|
|
49
|
+
if (globalThis.luma) {
|
|
50
|
+
globalThis.luma.spector = spector;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (!spector) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (!initialized) {
|
|
59
|
+
initialized = true;
|
|
60
|
+
|
|
61
|
+
// enables recording some extra information merged in the capture like texture memory sizes and formats
|
|
62
|
+
spector.spyCanvases();
|
|
63
|
+
// A callback when results are ready
|
|
64
|
+
spector?.onCaptureStarted.add((capture: unknown) => log.info(`Spector capture started:`, capture)());
|
|
65
|
+
spector?.onCapture.add((capture: unknown) => {
|
|
66
|
+
log.info(`Spector capture complete:`, capture)();
|
|
67
|
+
// Use undocumented Spector API to open the UI with our capture
|
|
68
|
+
// See https://github.com/BabylonJS/Spector.js/blob/767ad1195a25b85a85c381f400eb50a979239eca/src/spector.ts#L124
|
|
69
|
+
spector?.getResultUI()
|
|
70
|
+
spector?.resultView.display();
|
|
71
|
+
spector?.resultView.addCapture(capture)
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
if (props?.canvas) {
|
|
76
|
+
// @ts-expect-error If spector is specified as a canvas id, only monitor that canvas
|
|
77
|
+
if (typeof props.spector === 'string' && props.spector !== props.canvas.id) {
|
|
78
|
+
return spector;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// capture startup
|
|
82
|
+
// spector?.captureCanvas(props?.canvas);
|
|
83
|
+
spector?.startCapture(props?.canvas, 500); // 500 commands
|
|
84
|
+
new Promise(resolve => setTimeout(resolve, 2000)).then(_ => {
|
|
85
|
+
log.info(`Spector capture stopped after 2 seconds`)();
|
|
86
|
+
spector?.stopCapture();
|
|
87
|
+
// spector?.displayUI();
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
return spector;
|
|
92
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
import {log, loadScript} from '@luma.gl/api/';
|
|
3
|
+
import GL from '@luma.gl/constants';
|
|
4
|
+
|
|
5
|
+
const WEBGL_DEBUG_CDN_URL = 'https://unpkg.com/webgl-debug@2.0.1/index.js';
|
|
6
|
+
|
|
7
|
+
type DebugContextProps = {
|
|
8
|
+
debug?: boolean;
|
|
9
|
+
throwOnError?: boolean;
|
|
10
|
+
break?: string[];
|
|
11
|
+
webgl2?: boolean;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const DEFAULT_DEBUG_CONTEXT_PROPS: Required<DebugContextProps> = {
|
|
15
|
+
debug: true,
|
|
16
|
+
throwOnError: false,
|
|
17
|
+
break: [],
|
|
18
|
+
webgl2: false,
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// Helper to get shared context data
|
|
22
|
+
function getContextData(gl: any) {
|
|
23
|
+
gl.luma = gl.luma || {};
|
|
24
|
+
return gl.luma;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
declare global {
|
|
28
|
+
var WebGLDebugUtils: any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Loads Khronos WebGLDeveloperTools from CDN if not already installed
|
|
33
|
+
* const WebGLDebugUtils = require('webgl-debug');
|
|
34
|
+
* @see https://github.com/KhronosGroup/WebGLDeveloperTools
|
|
35
|
+
* @see https://github.com/vorg/webgl-debug
|
|
36
|
+
*/
|
|
37
|
+
export async function loadWebGLDeveloperTools(): Promise<void> {
|
|
38
|
+
if (!globalThis.WebGLDebugUtils) {
|
|
39
|
+
// @ts-expect-error Developer tools expects global to be set
|
|
40
|
+
globalThis.global = globalThis.global || globalThis;
|
|
41
|
+
// @ts-expect-error Developer tools expects global to be set
|
|
42
|
+
globalThis.global.module = {};
|
|
43
|
+
await loadScript(WEBGL_DEBUG_CDN_URL);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Returns (a potentially new) context with debug instrumentation turned off or on.
|
|
48
|
+
// Note that this actually returns a new context
|
|
49
|
+
export function makeDebugContext(gl: WebGLRenderingContext, props: DebugContextProps = {}): WebGLRenderingContext | null {
|
|
50
|
+
// Return null to ensure we don't try to create a context in this case (TODO what case is that?)
|
|
51
|
+
if (!gl) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
return props.debug ? getDebugContext(gl, props) : getRealContext(gl);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Returns the real context from either of the real/debug contexts
|
|
59
|
+
function getRealContext(gl: WebGLRenderingContext): WebGLRenderingContext {
|
|
60
|
+
const data = getContextData(gl);
|
|
61
|
+
// If the context has a realContext member, it is a debug context so return the realContext
|
|
62
|
+
return data.realContext ? data.realContext : gl;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Returns the debug context from either of the real/debug contexts
|
|
66
|
+
function getDebugContext(gl: WebGLRenderingContext, props: DebugContextProps): WebGLRenderingContext {
|
|
67
|
+
if (!globalThis.WebGLDebugUtils) {
|
|
68
|
+
log.warn('webgl-debug not loaded')();
|
|
69
|
+
return gl;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const data = getContextData(gl);
|
|
73
|
+
|
|
74
|
+
// If this already has a debug context, return it.
|
|
75
|
+
if (data.debugContext) {
|
|
76
|
+
return data.debugContext;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Create a new debug context
|
|
80
|
+
globalThis.WebGLDebugUtils.init({...GL, ...gl});
|
|
81
|
+
const glDebug = globalThis.WebGLDebugUtils.makeDebugContext(
|
|
82
|
+
gl,
|
|
83
|
+
onGLError.bind(null, props),
|
|
84
|
+
onValidateGLFunc.bind(null, props)
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
// Make sure we have all WebGL2 and extension constants (todo dynamic import to circumvent minification?)
|
|
88
|
+
for (const key in GL) {
|
|
89
|
+
if (!(key in glDebug) && typeof GL[key] === 'number') {
|
|
90
|
+
glDebug[key] = GL[key];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Ensure we have a clean prototype on the instrumented object
|
|
95
|
+
// Note: setPrototypeOf does come with perf warnings, but we already take a bigger perf reduction
|
|
96
|
+
// by synchronizing the WebGL errors after each WebGL call.
|
|
97
|
+
class WebGLDebugContext {}
|
|
98
|
+
Object.setPrototypeOf(glDebug, Object.getPrototypeOf(gl));
|
|
99
|
+
Object.setPrototypeOf(WebGLDebugContext, glDebug);
|
|
100
|
+
const debugContext = Object.create(WebGLDebugContext);
|
|
101
|
+
// Store the debug context
|
|
102
|
+
data.realContext = gl;
|
|
103
|
+
data.debugContext = debugContext;
|
|
104
|
+
debugContext.debug = true;
|
|
105
|
+
|
|
106
|
+
// Return it
|
|
107
|
+
return debugContext;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// DEBUG TRACING
|
|
111
|
+
|
|
112
|
+
function getFunctionString(functionName: string, functionArgs): string {
|
|
113
|
+
// Cover bug in webgl-debug-tools
|
|
114
|
+
functionArgs = Array.from(functionArgs).map(arg => arg === undefined ? 'undefined' : arg);
|
|
115
|
+
let args = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, functionArgs);
|
|
116
|
+
args = `${args.slice(0, 100)}${args.length > 100 ? '...' : ''}`;
|
|
117
|
+
return `gl.${functionName}(${args})`;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function onGLError(props: DebugContextProps, err, functionName: string, args: any[]): void {
|
|
121
|
+
// Cover bug in webgl-debug-tools
|
|
122
|
+
args = Array.from(args).map(arg => arg === undefined ? 'undefined' : arg);
|
|
123
|
+
const errorMessage = globalThis.WebGLDebugUtils.glEnumToString(err);
|
|
124
|
+
const functionArgs = globalThis.WebGLDebugUtils.glFunctionArgsToString(functionName, args);
|
|
125
|
+
const glName = props.webgl2 ? 'gl2' : 'gl1';
|
|
126
|
+
const message = `${errorMessage} in ${glName}.${functionName}(${functionArgs})`;
|
|
127
|
+
log.error(message)();
|
|
128
|
+
debugger; // eslint-disable-line
|
|
129
|
+
if (props.throwOnError) {
|
|
130
|
+
throw new Error(message);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// Don't generate function string until it is needed
|
|
135
|
+
function onValidateGLFunc(props: DebugContextProps, functionName: string, functionArgs: any[]): void {
|
|
136
|
+
let functionString: string = '';
|
|
137
|
+
if (log.level >= 1) {
|
|
138
|
+
functionString = getFunctionString(functionName, functionArgs);
|
|
139
|
+
log.log(1, functionString)();
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
if (props.break) {
|
|
143
|
+
functionString = functionString || getFunctionString(functionName, functionArgs);
|
|
144
|
+
const isBreakpoint =
|
|
145
|
+
props.break && props.break.every((breakOn: string) => functionString.indexOf(breakOn) !== -1);
|
|
146
|
+
if (isBreakpoint) {
|
|
147
|
+
debugger; // eslint-disable-line
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
for (const arg of functionArgs) {
|
|
152
|
+
if (arg === undefined) {
|
|
153
|
+
functionString = functionString || getFunctionString(functionName, functionArgs);
|
|
154
|
+
if (props.throwOnError) {
|
|
155
|
+
throw new Error(`Undefined argument: ${functionString}`);
|
|
156
|
+
} else {
|
|
157
|
+
log.error(`Undefined argument: ${functionString}`)();
|
|
158
|
+
debugger; // eslint-disable-line
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// Provides a unified API for getting and setting any WebGL parameter
|
|
2
2
|
// Also knows default values of all parameters, enabling fast cache initialization
|
|
3
3
|
// Provides base functionality for the state caching.
|
|
4
|
-
import {
|
|
5
|
-
import type {GLParameters} from '
|
|
4
|
+
import {Device} from '@luma.gl/api';
|
|
5
|
+
import type {GLParameters} from '../../types/webgl';
|
|
6
6
|
import {
|
|
7
7
|
GL_PARAMETER_DEFAULTS,
|
|
8
8
|
GL_PARAMETER_SETTERS,
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
} from './webgl-parameter-tables';
|
|
12
12
|
|
|
13
13
|
import {isWebGL} from '../context/webgl-checks';
|
|
14
|
+
import WebGLDevice from '../../adapter/webgl-device';
|
|
14
15
|
|
|
15
16
|
export type {GLParameters};
|
|
16
17
|
|
|
@@ -20,8 +21,12 @@ export type {GLParameters};
|
|
|
20
21
|
* @note requires a `cache` object to be set on the context (gl.state.cache)
|
|
21
22
|
* This object is used to fill in any missing values for composite setter functions
|
|
22
23
|
*/
|
|
23
|
-
export function setParameters(
|
|
24
|
-
|
|
24
|
+
export function setParameters(
|
|
25
|
+
device: Device | WebGLRenderingContext,
|
|
26
|
+
parameters: GLParameters
|
|
27
|
+
): void {
|
|
28
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
29
|
+
const gl = webglDevice.gl;
|
|
25
30
|
|
|
26
31
|
if (isObjectEmpty(parameters)) {
|
|
27
32
|
return;
|
|
@@ -72,7 +77,10 @@ export function setParameters(gl: WebGLRenderingContext, parameters: GLParameter
|
|
|
72
77
|
|
|
73
78
|
/**
|
|
74
79
|
* Reads the entire WebGL state from a context
|
|
75
|
-
|
|
80
|
+
|
|
81
|
+
// default to querying all parameters
|
|
82
|
+
|
|
83
|
+
* @returns - a newly created map, with values keyed by GL parameters
|
|
76
84
|
*
|
|
77
85
|
* @note Copies the state from a context (gl.getParameter should not be overriden)
|
|
78
86
|
* Reads the entire WebGL state from a context
|
|
@@ -81,13 +89,13 @@ export function setParameters(gl: WebGLRenderingContext, parameters: GLParameter
|
|
|
81
89
|
* considered a very slow operation, to be used only if/when a context already manipulated
|
|
82
90
|
* by external code needs to be synchronized for the first time
|
|
83
91
|
*/
|
|
84
|
-
export function getParameters(
|
|
85
|
-
|
|
86
|
-
|
|
92
|
+
export function getParameters(
|
|
93
|
+
device: Device | WebGLRenderingContext,
|
|
94
|
+
parameters: keyof GLParameters | (keyof GLParameters)[] | GLParameters = GL_PARAMETER_DEFAULTS
|
|
95
|
+
): GLParameters {
|
|
96
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
97
|
+
const gl = webglDevice.gl;
|
|
87
98
|
|
|
88
|
-
export function getParameters(gl, parameters) {
|
|
89
|
-
// default to querying all parameters
|
|
90
|
-
parameters = parameters || GL_PARAMETER_DEFAULTS;
|
|
91
99
|
// support both arrays of parameters and objects (keys represent parameters)
|
|
92
100
|
|
|
93
101
|
if (typeof parameters === 'number') {
|
|
@@ -113,8 +121,8 @@ export function getParameters(gl, parameters) {
|
|
|
113
121
|
* NOT the canvas size dimensions, so they will have to be properly set after
|
|
114
122
|
* calling this function.
|
|
115
123
|
*/
|
|
116
|
-
export function resetParameters(
|
|
117
|
-
setParameters(
|
|
124
|
+
export function resetParameters(device: Device | WebGLRenderingContext): void {
|
|
125
|
+
setParameters(device, GL_PARAMETER_DEFAULTS);
|
|
118
126
|
}
|
|
119
127
|
|
|
120
128
|
// Helpers
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Tables describing WebGL parameters
|
|
2
2
|
import GL from '@luma.gl/constants';
|
|
3
3
|
import {isWebGL2} from '../context/webgl-checks';
|
|
4
|
-
import {GLParameters} from '
|
|
4
|
+
import type {GLParameters} from '../../types/webgl';
|
|
5
5
|
// DEFAULT SETTINGS - FOR FAST CACHE INITIALIZATION AND CONTEXT RESETS
|
|
6
6
|
|
|
7
7
|
/* eslint-disable no-shadow */
|
|
@@ -346,42 +346,44 @@ export const GL_COMPOSITE_PARAMETER_SETTERS = {
|
|
|
346
346
|
)
|
|
347
347
|
};
|
|
348
348
|
|
|
349
|
+
type UpdateFunc = (params: Record<string, any>) => void;
|
|
350
|
+
|
|
349
351
|
// Setter functions intercepted for cache updates
|
|
350
352
|
export const GL_HOOKED_SETTERS = {
|
|
351
353
|
// GENERIC SETTERS
|
|
352
354
|
|
|
353
|
-
enable: (update, capability) =>
|
|
355
|
+
enable: (update: UpdateFunc, capability) =>
|
|
354
356
|
update({
|
|
355
357
|
[capability]: true
|
|
356
358
|
}),
|
|
357
|
-
disable: (update, capability) =>
|
|
359
|
+
disable: (update: UpdateFunc, capability) =>
|
|
358
360
|
update({
|
|
359
361
|
[capability]: false
|
|
360
362
|
}),
|
|
361
|
-
pixelStorei: (update, pname, value) =>
|
|
363
|
+
pixelStorei: (update: UpdateFunc, pname, value) =>
|
|
362
364
|
update({
|
|
363
365
|
[pname]: value
|
|
364
366
|
}),
|
|
365
|
-
hint: (update, pname, hint) =>
|
|
367
|
+
hint: (update: UpdateFunc, pname, hint) =>
|
|
366
368
|
update({
|
|
367
369
|
[pname]: hint
|
|
368
370
|
}),
|
|
369
371
|
|
|
370
372
|
// SPECIFIC SETTERS
|
|
371
|
-
useProgram: (update, value) => update({
|
|
373
|
+
useProgram: (update: UpdateFunc, value) => update({
|
|
372
374
|
[GL.CURRENT_PROGRAM]: value,
|
|
373
375
|
}),
|
|
374
|
-
bindRenderbuffer: (update, target, value) => update({
|
|
376
|
+
bindRenderbuffer: (update: UpdateFunc, target, value) => update({
|
|
375
377
|
[GL.RENDERBUFFER_BINDING]: value
|
|
376
378
|
}),
|
|
377
|
-
bindTransformFeedback: (update, target, value) => update({
|
|
379
|
+
bindTransformFeedback: (update: UpdateFunc, target, value) => update({
|
|
378
380
|
[GL.TRANSFORM_FEEDBACK_BINDING]: value
|
|
379
381
|
}),
|
|
380
|
-
bindVertexArray: (update, value) => update({
|
|
382
|
+
bindVertexArray: (update: UpdateFunc, value) => update({
|
|
381
383
|
[GL.VERTEX_ARRAY_BINDING]: value
|
|
382
384
|
}),
|
|
383
385
|
|
|
384
|
-
bindFramebuffer: (update, target, framebuffer) => {
|
|
386
|
+
bindFramebuffer: (update: UpdateFunc, target, framebuffer) => {
|
|
385
387
|
switch (target) {
|
|
386
388
|
case GL.FRAMEBUFFER:
|
|
387
389
|
return update({
|
|
@@ -396,7 +398,7 @@ export const GL_HOOKED_SETTERS = {
|
|
|
396
398
|
return null;
|
|
397
399
|
}
|
|
398
400
|
},
|
|
399
|
-
bindBuffer: (update, target, buffer) => {
|
|
401
|
+
bindBuffer: (update: UpdateFunc, target, buffer) => {
|
|
400
402
|
const pname = ({
|
|
401
403
|
[GL.ARRAY_BUFFER]: [GL.ARRAY_BUFFER_BINDING],
|
|
402
404
|
[GL.COPY_READ_BUFFER]: [GL.COPY_READ_BUFFER_BINDING],
|
|
@@ -412,24 +414,24 @@ export const GL_HOOKED_SETTERS = {
|
|
|
412
414
|
return {valueChanged: true};
|
|
413
415
|
},
|
|
414
416
|
|
|
415
|
-
blendColor: (update, r, g, b, a) =>
|
|
417
|
+
blendColor: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>
|
|
416
418
|
update({
|
|
417
419
|
[GL.BLEND_COLOR]: new Float32Array([r, g, b, a])
|
|
418
420
|
}),
|
|
419
421
|
|
|
420
|
-
blendEquation: (update, mode) =>
|
|
422
|
+
blendEquation: (update: UpdateFunc, mode) =>
|
|
421
423
|
update({
|
|
422
424
|
[GL.BLEND_EQUATION_RGB]: mode,
|
|
423
425
|
[GL.BLEND_EQUATION_ALPHA]: mode
|
|
424
426
|
}),
|
|
425
427
|
|
|
426
|
-
blendEquationSeparate: (update, modeRGB, modeAlpha) =>
|
|
428
|
+
blendEquationSeparate: (update: UpdateFunc, modeRGB, modeAlpha) =>
|
|
427
429
|
update({
|
|
428
430
|
[GL.BLEND_EQUATION_RGB]: modeRGB,
|
|
429
431
|
[GL.BLEND_EQUATION_ALPHA]: modeAlpha
|
|
430
432
|
}),
|
|
431
433
|
|
|
432
|
-
blendFunc: (update, src, dst) =>
|
|
434
|
+
blendFunc: (update: UpdateFunc, src, dst) =>
|
|
433
435
|
update({
|
|
434
436
|
[GL.BLEND_SRC_RGB]: src,
|
|
435
437
|
[GL.BLEND_DST_RGB]: dst,
|
|
@@ -437,7 +439,7 @@ export const GL_HOOKED_SETTERS = {
|
|
|
437
439
|
[GL.BLEND_DST_ALPHA]: dst
|
|
438
440
|
}),
|
|
439
441
|
|
|
440
|
-
blendFuncSeparate: (update, srcRGB, dstRGB, srcAlpha, dstAlpha) =>
|
|
442
|
+
blendFuncSeparate: (update: UpdateFunc, srcRGB, dstRGB, srcAlpha, dstAlpha) =>
|
|
441
443
|
update({
|
|
442
444
|
[GL.BLEND_SRC_RGB]: srcRGB,
|
|
443
445
|
[GL.BLEND_DST_RGB]: dstRGB,
|
|
@@ -445,85 +447,85 @@ export const GL_HOOKED_SETTERS = {
|
|
|
445
447
|
[GL.BLEND_DST_ALPHA]: dstAlpha
|
|
446
448
|
}),
|
|
447
449
|
|
|
448
|
-
clearColor: (update, r, g, b, a) =>
|
|
450
|
+
clearColor: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>
|
|
449
451
|
update({
|
|
450
452
|
[GL.COLOR_CLEAR_VALUE]: new Float32Array([r, g, b, a])
|
|
451
453
|
}),
|
|
452
454
|
|
|
453
|
-
clearDepth: (update, depth) =>
|
|
455
|
+
clearDepth: (update: UpdateFunc, depth: number) =>
|
|
454
456
|
update({
|
|
455
457
|
[GL.DEPTH_CLEAR_VALUE]: depth
|
|
456
458
|
}),
|
|
457
459
|
|
|
458
|
-
clearStencil: (update, s) =>
|
|
460
|
+
clearStencil: (update: UpdateFunc, s: number) =>
|
|
459
461
|
update({
|
|
460
462
|
[GL.STENCIL_CLEAR_VALUE]: s
|
|
461
463
|
}),
|
|
462
464
|
|
|
463
|
-
colorMask: (update, r, g, b, a) =>
|
|
465
|
+
colorMask: (update: UpdateFunc, r: number, g: number, b: number, a: number) =>
|
|
464
466
|
update({
|
|
465
467
|
[GL.COLOR_WRITEMASK]: [r, g, b, a]
|
|
466
468
|
}),
|
|
467
469
|
|
|
468
|
-
cullFace: (update, mode) =>
|
|
470
|
+
cullFace: (update: UpdateFunc, mode) =>
|
|
469
471
|
update({
|
|
470
472
|
[GL.CULL_FACE_MODE]: mode
|
|
471
473
|
}),
|
|
472
474
|
|
|
473
|
-
depthFunc: (update, func) =>
|
|
475
|
+
depthFunc: (update: UpdateFunc, func) =>
|
|
474
476
|
update({
|
|
475
477
|
[GL.DEPTH_FUNC]: func
|
|
476
478
|
}),
|
|
477
479
|
|
|
478
|
-
depthRange: (update, zNear, zFar) =>
|
|
480
|
+
depthRange: (update: UpdateFunc, zNear: number, zFar: number) =>
|
|
479
481
|
update({
|
|
480
482
|
[GL.DEPTH_RANGE]: new Float32Array([zNear, zFar])
|
|
481
483
|
}),
|
|
482
484
|
|
|
483
|
-
depthMask: (update, mask) =>
|
|
485
|
+
depthMask: (update: UpdateFunc, mask: number) =>
|
|
484
486
|
update({
|
|
485
487
|
[GL.DEPTH_WRITEMASK]: mask
|
|
486
488
|
}),
|
|
487
489
|
|
|
488
|
-
frontFace: (update, face) =>
|
|
490
|
+
frontFace: (update: UpdateFunc, face) =>
|
|
489
491
|
update({
|
|
490
492
|
[GL.FRONT_FACE]: face
|
|
491
493
|
}),
|
|
492
494
|
|
|
493
|
-
lineWidth: (update, width) =>
|
|
495
|
+
lineWidth: (update: UpdateFunc, width) =>
|
|
494
496
|
update({
|
|
495
497
|
[GL.LINE_WIDTH]: width
|
|
496
498
|
}),
|
|
497
499
|
|
|
498
|
-
polygonOffset: (update, factor, units) =>
|
|
500
|
+
polygonOffset: (update: UpdateFunc, factor, units) =>
|
|
499
501
|
update({
|
|
500
502
|
[GL.POLYGON_OFFSET_FACTOR]: factor,
|
|
501
503
|
[GL.POLYGON_OFFSET_UNITS]: units
|
|
502
504
|
}),
|
|
503
505
|
|
|
504
|
-
sampleCoverage: (update, value, invert) =>
|
|
506
|
+
sampleCoverage: (update: UpdateFunc, value, invert) =>
|
|
505
507
|
update({
|
|
506
508
|
[GL.SAMPLE_COVERAGE_VALUE]: value,
|
|
507
509
|
[GL.SAMPLE_COVERAGE_INVERT]: invert
|
|
508
510
|
}),
|
|
509
511
|
|
|
510
|
-
scissor: (update, x, y, width, height) =>
|
|
512
|
+
scissor: (update: UpdateFunc, x, y, width, height) =>
|
|
511
513
|
update({
|
|
512
514
|
[GL.SCISSOR_BOX]: new Int32Array([x, y, width, height])
|
|
513
515
|
}),
|
|
514
516
|
|
|
515
|
-
stencilMask: (update, mask) =>
|
|
517
|
+
stencilMask: (update: UpdateFunc, mask) =>
|
|
516
518
|
update({
|
|
517
519
|
[GL.STENCIL_WRITEMASK]: mask,
|
|
518
520
|
[GL.STENCIL_BACK_WRITEMASK]: mask
|
|
519
521
|
}),
|
|
520
522
|
|
|
521
|
-
stencilMaskSeparate: (update, face, mask) =>
|
|
523
|
+
stencilMaskSeparate: (update: UpdateFunc, face, mask) =>
|
|
522
524
|
update({
|
|
523
525
|
[face === GL.FRONT ? GL.STENCIL_WRITEMASK : GL.STENCIL_BACK_WRITEMASK]: mask
|
|
524
526
|
}),
|
|
525
527
|
|
|
526
|
-
stencilFunc: (update, func, ref, mask) =>
|
|
528
|
+
stencilFunc: (update: UpdateFunc, func, ref, mask) =>
|
|
527
529
|
update({
|
|
528
530
|
[GL.STENCIL_FUNC]: func,
|
|
529
531
|
[GL.STENCIL_REF]: ref,
|
|
@@ -533,14 +535,14 @@ export const GL_HOOKED_SETTERS = {
|
|
|
533
535
|
[GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
534
536
|
}),
|
|
535
537
|
|
|
536
|
-
stencilFuncSeparate: (update, face, func, ref, mask) =>
|
|
538
|
+
stencilFuncSeparate: (update: UpdateFunc, face, func, ref, mask) =>
|
|
537
539
|
update({
|
|
538
540
|
[face === GL.FRONT ? GL.STENCIL_FUNC : GL.STENCIL_BACK_FUNC]: func,
|
|
539
541
|
[face === GL.FRONT ? GL.STENCIL_REF : GL.STENCIL_BACK_REF]: ref,
|
|
540
542
|
[face === GL.FRONT ? GL.STENCIL_VALUE_MASK : GL.STENCIL_BACK_VALUE_MASK]: mask
|
|
541
543
|
}),
|
|
542
544
|
|
|
543
|
-
stencilOp: (update, fail, zfail, zpass) =>
|
|
545
|
+
stencilOp: (update: UpdateFunc, fail, zfail, zpass) =>
|
|
544
546
|
update({
|
|
545
547
|
[GL.STENCIL_FAIL]: fail,
|
|
546
548
|
[GL.STENCIL_PASS_DEPTH_FAIL]: zfail,
|
|
@@ -550,14 +552,14 @@ export const GL_HOOKED_SETTERS = {
|
|
|
550
552
|
[GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
551
553
|
}),
|
|
552
554
|
|
|
553
|
-
stencilOpSeparate: (update, face, fail, zfail, zpass) =>
|
|
555
|
+
stencilOpSeparate: (update: UpdateFunc, face, fail, zfail, zpass) =>
|
|
554
556
|
update({
|
|
555
557
|
[face === GL.FRONT ? GL.STENCIL_FAIL : GL.STENCIL_BACK_FAIL]: fail,
|
|
556
558
|
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_FAIL : GL.STENCIL_BACK_PASS_DEPTH_FAIL]: zfail,
|
|
557
559
|
[face === GL.FRONT ? GL.STENCIL_PASS_DEPTH_PASS : GL.STENCIL_BACK_PASS_DEPTH_PASS]: zpass
|
|
558
560
|
}),
|
|
559
561
|
|
|
560
|
-
viewport: (update, x, y, width, height) =>
|
|
562
|
+
viewport: (update: UpdateFunc, x, y, width, height) =>
|
|
561
563
|
update({
|
|
562
564
|
[GL.VIEWPORT]: [x, y, width, height]
|
|
563
565
|
})
|
|
@@ -51,7 +51,7 @@ const WEBGL_PARAMETERS = {
|
|
|
51
51
|
|
|
52
52
|
// Extension LIMITS
|
|
53
53
|
[GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT]: (gl, getParameter) => {
|
|
54
|
-
const ext = gl.luma?.extensions?.[EXT_texture_filter_anisotropic] ||
|
|
54
|
+
const ext = gl.luma?.extensions?.[EXT_texture_filter_anisotropic] ||
|
|
55
55
|
gl.getExtension('EXT_texture_filter_anisotropic');
|
|
56
56
|
return ext ? getParameter(ext.MAX_TEXTURE_MAX_ANISOTROPY_EXT) : 1.0;
|
|
57
57
|
},
|
|
@@ -35,10 +35,9 @@ function initializeExtensions(gl: WebGLRenderingContext): void {
|
|
|
35
35
|
const contextState = getContextState(gl);
|
|
36
36
|
// `getSupportedExtensions` can return null when context is lost.
|
|
37
37
|
const EXTENSIONS = gl.getSupportedExtensions() || [];
|
|
38
|
-
for (const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
contextState[extension] = gl.getExtension(extension);
|
|
38
|
+
for (const extensionName of EXTENSIONS) {
|
|
39
|
+
const extension = gl.getExtension(extensionName);
|
|
40
|
+
contextState._extensions[extensionName] = extension;
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
|
|
@@ -64,7 +63,7 @@ function polyfillExtension(gl: WebGLRenderingContext, {extension, target, target
|
|
|
64
63
|
for (const key of Object.keys(defaults)) {
|
|
65
64
|
const extKey = `${key}${suffix}`;
|
|
66
65
|
|
|
67
|
-
let polyfill = null;
|
|
66
|
+
let polyfill: Function | null = null;
|
|
68
67
|
if (key === 'meta') {
|
|
69
68
|
// ignore
|
|
70
69
|
} else if (typeof gl[key] === 'function') {
|