@luma.gl/webgl 8.6.0-alpha.5 → 9.0.0-alpha.10
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 +54 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +63 -75
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +242 -112
- 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.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 → 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/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 +13 -8
- 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 +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 +97 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +314 -130
- 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 -1
- 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/context/device-pixels.js +14 -8
- 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 +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 +72 -300
- 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 +54 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +242 -112
- 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 -1
- 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/context/device-pixels.js +13 -8
- 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 +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 -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 +25 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -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 +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 +74 -0
- package/src/adapter/webgl-device.ts +293 -278
- 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 -2
- 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/context/device-pixels.ts +24 -13
- 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 -102
- 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/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/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/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
|
@@ -52,17 +52,23 @@ export function cssToDeviceRatio(gl: WebGLRenderingContext): number {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
// use devicePixelRatio to set canvas width and height
|
|
55
|
-
export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: number, height?: number} = {}) {
|
|
55
|
+
export function setDevicePixelRatio(gl: WebGLRenderingContext, devicePixelRatio: number, options: {width?: number, height?: number} = {}) {
|
|
56
|
+
if (!(gl.canvas instanceof HTMLCanvasElement)) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const canvas: HTMLCanvasElement = gl.canvas;
|
|
61
|
+
|
|
56
62
|
// NOTE: if options.width and options.height not used remove in v8
|
|
57
|
-
let clientWidth = 'width' in options ? options.width :
|
|
58
|
-
let clientHeight = 'height' in options ? options.height :
|
|
63
|
+
let clientWidth = 'width' in options ? options.width : canvas.clientWidth;
|
|
64
|
+
let clientHeight = 'height' in options ? options.height : canvas.clientHeight;
|
|
59
65
|
|
|
60
66
|
if (!clientWidth || !clientHeight) {
|
|
61
67
|
log.log(1, 'Canvas clientWidth/clientHeight is 0')();
|
|
62
|
-
// by forcing devicePixel ratio to 1, we do not scale
|
|
68
|
+
// by forcing devicePixel ratio to 1, we do not scale canvas.width and height in each frame.
|
|
63
69
|
devicePixelRatio = 1;
|
|
64
|
-
clientWidth =
|
|
65
|
-
clientHeight =
|
|
70
|
+
clientWidth = canvas.width || 1;
|
|
71
|
+
clientHeight = canvas.height || 1;
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
const contextState = getContextState(gl);
|
|
@@ -77,8 +83,8 @@ export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: numb
|
|
|
77
83
|
|
|
78
84
|
const canvasWidth = Math.floor(clientWidth * clampedPixelRatio);
|
|
79
85
|
const canvasHeight = Math.floor(clientHeight * clampedPixelRatio);
|
|
80
|
-
|
|
81
|
-
|
|
86
|
+
canvas.width = canvasWidth;
|
|
87
|
+
canvas.height = canvasHeight;
|
|
82
88
|
|
|
83
89
|
// Note: when devicePixelRatio is too high, it is possible we might hit system limit for
|
|
84
90
|
// drawing buffer width and hight, in those cases they get clamped and resulting aspect ration may not be maintained
|
|
@@ -90,8 +96,8 @@ export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: numb
|
|
|
90
96
|
gl.drawingBufferHeight / clientHeight
|
|
91
97
|
);
|
|
92
98
|
|
|
93
|
-
|
|
94
|
-
|
|
99
|
+
canvas.width = Math.floor(clientWidth * clampedPixelRatio);
|
|
100
|
+
canvas.height = Math.floor(clientHeight * clampedPixelRatio);
|
|
95
101
|
}
|
|
96
102
|
|
|
97
103
|
Object.assign(contextState._canvasSizeInfo, {clientWidth, clientHeight, devicePixelRatio});
|
|
@@ -101,7 +107,12 @@ export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: numb
|
|
|
101
107
|
|
|
102
108
|
// PRIVATE
|
|
103
109
|
|
|
104
|
-
function scalePixels(pixel, ratio, width, height, yInvert) {
|
|
110
|
+
function scalePixels(pixel: number[], ratio: number, width: number, height: number, yInvert: boolean): {
|
|
111
|
+
x: number;
|
|
112
|
+
y: number;
|
|
113
|
+
width: number;
|
|
114
|
+
height: number;
|
|
115
|
+
} {
|
|
105
116
|
const x = scaleX(pixel[0], ratio, width);
|
|
106
117
|
let y = scaleY(pixel[1], ratio, height, yInvert);
|
|
107
118
|
|
|
@@ -133,13 +144,13 @@ function scalePixels(pixel, ratio, width, height, yInvert) {
|
|
|
133
144
|
};
|
|
134
145
|
}
|
|
135
146
|
|
|
136
|
-
function scaleX(x, ratio, width) {
|
|
147
|
+
function scaleX(x: number, ratio: number, width: number): number {
|
|
137
148
|
// since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
|
|
138
149
|
const r = Math.min(Math.round(x * ratio), width - 1);
|
|
139
150
|
return r;
|
|
140
151
|
}
|
|
141
152
|
|
|
142
|
-
function scaleY(y, ratio, height, yInvert) {
|
|
153
|
+
function scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {
|
|
143
154
|
// since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
|
|
144
155
|
return yInvert
|
|
145
156
|
? Math.max(0, height - 1 - Math.round(y * ratio))
|
|
@@ -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') {
|