@luma.gl/webgl 8.6.0-alpha.5 → 9.0.0-alpha.4
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 +17 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +36 -5
- 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 +208 -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 +27 -48
- 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 +306 -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 +40 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +265 -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 +19 -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 +400 -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 +13 -20
- 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} +274 -229
- 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 +54 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +58 -76
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +184 -111
- 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/{esm/classes/webgl-buffer.js → classic/buffer.js} +53 -51
- 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.map +1 -1
- package/dist/context/context/context-state.js +1 -1
- package/dist/context/context/context-state.js.map +1 -1
- package/dist/context/context/create-context.d.ts +1 -0
- package/dist/context/context/create-context.d.ts.map +1 -1
- package/dist/context/context/create-context.js +12 -0
- package/dist/context/context/create-context.js.map +1 -1
- package/dist/context/context/device-pixels.d.ts +1 -1
- package/dist/context/context/device-pixels.d.ts.map +1 -1
- package/dist/context/context/device-pixels.js.map +1 -1
- 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 +3 -2
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +4 -4
- 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 +4 -3
- package/dist/context/polyfill/polyfill-context.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 +25 -11
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +37 -5
- 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 +226 -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 +46 -54
- 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} +184 -87
- 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 +345 -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} +25 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +505 -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} +12 -18
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +336 -260
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/es5/adapter/webgl-canvas-context.js +97 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +253 -133
- 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} +74 -66
- 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 -1
- package/dist/es5/context/context/context-state.js.map +1 -1
- package/dist/es5/context/context/create-context.js +12 -0
- package/dist/es5/context/context/create-context.js.map +1 -1
- package/dist/es5/context/context/device-pixels.js.map +1 -1
- 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 +7 -5
- 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 +4 -3
- package/dist/es5/context/polyfill/polyfill-context.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 +26 -11
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/index.js +65 -307
- 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} +36 -5
- 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 +208 -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 +27 -48
- 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 +306 -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 +265 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -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 +13 -20
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +54 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +184 -111
- 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/{classes/webgl-buffer.js → esm/classic/buffer.js} +53 -51
- 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 -1
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/esm/context/context/create-context.js +12 -0
- package/dist/esm/context/context/create-context.js.map +1 -1
- package/dist/esm/context/context/device-pixels.js.map +1 -1
- 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 +4 -4
- 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 +4 -3
- package/dist/esm/context/polyfill/polyfill-context.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 +25 -11
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/index.js +19 -31
- 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 +22 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -31
- 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 +144 -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} +52 -9
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +175 -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 +46 -123
- package/src/adapter/device-helpers/device-limits.ts +5 -2
- 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 +388 -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 +110 -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 +279 -0
- package/src/adapter/resources/webgl-render-pass.ts +23 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
- package/src/adapter/resources/webgl-sampler.ts +54 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
- package/src/adapter/resources/webgl-texture.ts +1023 -0
- package/src/adapter/webgl-canvas-context.ts +74 -0
- package/src/adapter/webgl-device.ts +226 -275
- package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +50 -36
- package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +69 -77
- package/src/{webgl-utils → classic}/typed-array-utils.ts +3 -1
- package/src/context/context/context-state.ts +4 -2
- package/src/context/context/create-context.ts +28 -1
- package/src/context/context/device-pixels.ts +9 -4
- 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 +6 -4
- 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 -3
- package/src/context/state-tracker/deep-array-equal.ts +1 -1
- package/src/context/state-tracker/track-context-state.ts +27 -20
- package/src/index.ts +33 -102
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +283 -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/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/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/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/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,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: undefined,
|
|
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 {
|
|
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,9 @@ 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(device: Device | WebGLRenderingContext, parameters: GLParameters): void {
|
|
25
|
+
const webglDevice = WebGLDevice.attach(device);
|
|
26
|
+
const gl = webglDevice.gl;
|
|
25
27
|
|
|
26
28
|
if (isObjectEmpty(parameters)) {
|
|
27
29
|
return;
|
|
@@ -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,11 @@ 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
|
-
|
|
38
|
+
for (const extensionName of EXTENSIONS) {
|
|
39
|
+
const extension = gl.getExtension(extensionName);
|
|
40
|
+
contextState._extensions[extensionName] = extension;
|
|
40
41
|
// TODO - this looks like a mistake?
|
|
41
|
-
contextState[
|
|
42
|
+
contextState[extensionName] = extension;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
|
|
@@ -81,6 +81,11 @@ class GLState {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
function getContextState(gl: WebGLRenderingContext): GLState {
|
|
85
|
+
// @ts-expect-error
|
|
86
|
+
return gl.state as GLState;
|
|
87
|
+
}
|
|
88
|
+
|
|
84
89
|
// PUBLIC API
|
|
85
90
|
|
|
86
91
|
/**
|
|
@@ -127,8 +132,8 @@ class GLState {
|
|
|
127
132
|
installGetterOverride(gl, 'isEnabled');
|
|
128
133
|
}
|
|
129
134
|
|
|
130
|
-
|
|
131
|
-
|
|
135
|
+
const glState = getContextState(gl);
|
|
136
|
+
glState.enable = enable;
|
|
132
137
|
|
|
133
138
|
return gl;
|
|
134
139
|
}
|
|
@@ -137,12 +142,12 @@ class GLState {
|
|
|
137
142
|
* Saves current WebGL context state onto an internal per-context stack
|
|
138
143
|
*/
|
|
139
144
|
export function pushContextState(gl: WebGLRenderingContext): void {
|
|
140
|
-
|
|
141
|
-
if (!
|
|
145
|
+
let glState = getContextState(gl);
|
|
146
|
+
if (!glState) {
|
|
142
147
|
trackContextState(gl, {copyState: false});
|
|
148
|
+
glState = getContextState(gl);
|
|
143
149
|
}
|
|
144
|
-
|
|
145
|
-
gl.state.push();
|
|
150
|
+
glState.push();
|
|
146
151
|
}
|
|
147
152
|
|
|
148
153
|
|
|
@@ -150,10 +155,9 @@ class GLState {
|
|
|
150
155
|
* Restores previously saved WebGL context state
|
|
151
156
|
*/
|
|
152
157
|
export function popContextState(gl: WebGLRenderingContext): void {
|
|
153
|
-
|
|
154
|
-
assert(
|
|
155
|
-
|
|
156
|
-
gl.state.pop();
|
|
158
|
+
const glState = getContextState(gl);
|
|
159
|
+
assert(glState);
|
|
160
|
+
glState.pop();
|
|
157
161
|
}
|
|
158
162
|
|
|
159
163
|
// HELPER FUNCTIONS - INSTALL GET/SET INTERCEPTORS (SPYS) ON THE CONTEXT
|
|
@@ -164,7 +168,7 @@ export function popContextState(gl: WebGLRenderingContext): void {
|
|
|
164
168
|
* @param gl
|
|
165
169
|
* @param functionName
|
|
166
170
|
*/
|
|
167
|
-
function installGetterOverride(gl, functionName) {
|
|
171
|
+
function installGetterOverride(gl: WebGLRenderingContext, functionName: string) {
|
|
168
172
|
// Get the original function from the WebGLRenderingContext
|
|
169
173
|
const originalGetterFunc = gl[functionName].bind(gl);
|
|
170
174
|
|
|
@@ -175,15 +179,16 @@ function installGetterOverride(gl, functionName) {
|
|
|
175
179
|
return originalGetterFunc(pname);
|
|
176
180
|
}
|
|
177
181
|
|
|
178
|
-
|
|
182
|
+
const glState = getContextState(gl);
|
|
183
|
+
if (!(pname in glState.cache)) {
|
|
179
184
|
// WebGL limits are not prepopulated in the cache, call the original getter when first queried.
|
|
180
|
-
|
|
185
|
+
glState.cache[pname] = originalGetterFunc(pname);
|
|
181
186
|
}
|
|
182
187
|
|
|
183
188
|
// Optionally call the original function to do a "hard" query from the WebGLRenderingContext
|
|
184
|
-
return
|
|
189
|
+
return glState.enable
|
|
185
190
|
? // Call the getter the params so that it can e.g. serve from a cache
|
|
186
|
-
|
|
191
|
+
glState.cache[pname]
|
|
187
192
|
: // Optionally call the original function to do a "hard" query from the WebGLRenderingContext
|
|
188
193
|
originalGetterFunc(pname);
|
|
189
194
|
};
|
|
@@ -204,7 +209,7 @@ function installGetterOverride(gl, functionName) {
|
|
|
204
209
|
* @param setter
|
|
205
210
|
* @returns
|
|
206
211
|
*/
|
|
207
|
-
function installSetterSpy(gl, functionName, setter) {
|
|
212
|
+
function installSetterSpy(gl: WebGLRenderingContext, functionName, setter) {
|
|
208
213
|
// Get the original function from the WebGLRenderingContext
|
|
209
214
|
if (!gl[functionName]) {
|
|
210
215
|
// This could happen if we try to intercept WebGL2 method on a WebGL1 context
|
|
@@ -216,7 +221,8 @@ function installSetterSpy(gl, functionName, setter) {
|
|
|
216
221
|
gl[functionName] = function set(...params) {
|
|
217
222
|
// Update the value
|
|
218
223
|
// Call the setter with the state cache and the params so that it can store the parameters
|
|
219
|
-
const
|
|
224
|
+
const glState = getContextState(gl);
|
|
225
|
+
const {valueChanged, oldValue} = setter(glState._updateCache, ...params);
|
|
220
226
|
|
|
221
227
|
// Call the original WebGLRenderingContext func to make sure the context actually gets updated
|
|
222
228
|
if (valueChanged) {
|
|
@@ -238,13 +244,14 @@ function installSetterSpy(gl, functionName, setter) {
|
|
|
238
244
|
});
|
|
239
245
|
}
|
|
240
246
|
|
|
241
|
-
function installProgramSpy(gl) {
|
|
247
|
+
function installProgramSpy(gl: WebGLRenderingContext): void {
|
|
242
248
|
const originalUseProgram = gl.useProgram.bind(gl);
|
|
243
249
|
|
|
244
250
|
gl.useProgram = function useProgramLuma(handle) {
|
|
245
|
-
|
|
251
|
+
const glState = getContextState(gl);
|
|
252
|
+
if (glState.program !== handle) {
|
|
246
253
|
originalUseProgram(handle);
|
|
247
|
-
|
|
254
|
+
glState.program = handle;
|
|
248
255
|
}
|
|
249
256
|
};
|
|
250
257
|
}
|