@luma.gl/webgl 8.6.0-alpha.4 → 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 -76
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +244 -115
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +32 -0
- package/dist/classic/accessor.d.ts.map +1 -0
- package/dist/{classes → classic}/accessor.js +33 -1
- package/dist/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
- package/dist/classic/buffer.d.ts.map +1 -0
- package/dist/{esm/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 +316 -132
- 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 +244 -115
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/{classes → classic}/accessor.js +33 -1
- package/dist/esm/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.js → esm/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 +297 -289
- 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 -70
- 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 -110
- 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 -70
- 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 -140
- 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
|
@@ -1,23 +1,6 @@
|
|
|
1
|
+
import {assert, checkProps, Buffer, AccessorObject} from '@luma.gl/api';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
|
-
import {getTypedArrayFromGLType} from '
|
|
3
|
-
import {checkProps, assert} from '../utils/index';
|
|
4
|
-
import {Buffer} from '@luma.gl/core/';
|
|
5
|
-
|
|
6
|
-
export interface AccessorObject {
|
|
7
|
-
buffer?: Buffer;
|
|
8
|
-
offset?: number;
|
|
9
|
-
stride?: number;
|
|
10
|
-
type?: number;
|
|
11
|
-
size?: number;
|
|
12
|
-
divisor?: number;
|
|
13
|
-
normalized?: boolean;
|
|
14
|
-
integer?: boolean;
|
|
15
|
-
index?: number;
|
|
16
|
-
/** @deprecated Use .divisor */
|
|
17
|
-
instanced?: boolean;
|
|
18
|
-
/** @deprecated Use .divisor */
|
|
19
|
-
isInstanced?: boolean;
|
|
20
|
-
}
|
|
3
|
+
import {getTypedArrayFromGLType} from './typed-array-utils';
|
|
21
4
|
|
|
22
5
|
const DEFAULT_ACCESSOR_VALUES = {
|
|
23
6
|
offset: 0,
|
|
@@ -36,28 +19,26 @@ const PROP_CHECKS = {
|
|
|
36
19
|
}
|
|
37
20
|
};
|
|
38
21
|
|
|
22
|
+
export default class Accessor implements AccessorObject {
|
|
23
|
+
offset?: number;
|
|
24
|
+
stride?: number;
|
|
25
|
+
type?: number;
|
|
26
|
+
size?: number;
|
|
27
|
+
divisor?: number;
|
|
28
|
+
normalized?: boolean;
|
|
29
|
+
integer?: boolean;
|
|
39
30
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
// buffer: Buffer | undefined = undefined;
|
|
43
|
-
// index: number;
|
|
44
|
-
|
|
45
|
-
// offset: number;
|
|
46
|
-
// stride: number;
|
|
47
|
-
// type: number;
|
|
48
|
-
// size: number;
|
|
49
|
-
// divisor: number;
|
|
50
|
-
// normalized: boolean;
|
|
51
|
-
// integer: boolean;
|
|
31
|
+
buffer?: Buffer;
|
|
32
|
+
index?: number;
|
|
52
33
|
|
|
53
|
-
static getBytesPerElement(accessor): number {
|
|
34
|
+
static getBytesPerElement(accessor: Accessor | AccessorObject): number {
|
|
54
35
|
// TODO: using `FLOAT` when type is not specified,
|
|
55
36
|
// ensure this assumption is valid or force API to specify type.
|
|
56
37
|
const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
|
|
57
38
|
return ArrayType.BYTES_PER_ELEMENT;
|
|
58
39
|
}
|
|
59
40
|
|
|
60
|
-
static getBytesPerVertex(accessor): number {
|
|
41
|
+
static getBytesPerVertex(accessor: AccessorObject): number {
|
|
61
42
|
assert(accessor.size);
|
|
62
43
|
// TODO: using `FLOAT` when type is not specified,
|
|
63
44
|
// ensure this assumption is valid or force API to specify type.
|
|
@@ -69,11 +50,11 @@ export default class Accessor {
|
|
|
69
50
|
// Usually [programAccessor, bufferAccessor, appAccessor]
|
|
70
51
|
// All props will be set in the returned object.
|
|
71
52
|
// TODO check for conflicts between values in the supplied accessors
|
|
72
|
-
static resolve(...accessors): Accessor {
|
|
53
|
+
static resolve(...accessors: AccessorObject[]): Accessor {
|
|
73
54
|
return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
|
|
74
55
|
}
|
|
75
56
|
|
|
76
|
-
constructor(...accessors:
|
|
57
|
+
constructor(...accessors: AccessorObject[]) {
|
|
77
58
|
accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence
|
|
78
59
|
Object.freeze(this);
|
|
79
60
|
}
|
|
@@ -96,7 +77,7 @@ export default class Accessor {
|
|
|
96
77
|
// PRIVATE
|
|
97
78
|
|
|
98
79
|
// eslint-disable-next-line complexity, max-statements
|
|
99
|
-
_assign(props: AccessorObject = {}) {
|
|
80
|
+
_assign(props: AccessorObject = {}): this {
|
|
100
81
|
props = checkProps('Accessor', props, PROP_CHECKS);
|
|
101
82
|
|
|
102
83
|
if (props.type !== undefined) {
|
|
@@ -104,7 +85,7 @@ export default class Accessor {
|
|
|
104
85
|
|
|
105
86
|
// Auto-deduce integer type?
|
|
106
87
|
if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
|
|
107
|
-
|
|
88
|
+
this.integer = true;
|
|
108
89
|
}
|
|
109
90
|
}
|
|
110
91
|
if (props.size !== undefined) {
|
|
@@ -116,6 +97,11 @@ export default class Accessor {
|
|
|
116
97
|
if (props.stride !== undefined) {
|
|
117
98
|
this.stride = props.stride;
|
|
118
99
|
}
|
|
100
|
+
// @ts-expect-error
|
|
101
|
+
if (props.normalize !== undefined) {
|
|
102
|
+
// @ts-expect-error
|
|
103
|
+
this.normalized = props.normalize;
|
|
104
|
+
}
|
|
119
105
|
if (props.normalized !== undefined) {
|
|
120
106
|
this.normalized = props.normalized;
|
|
121
107
|
}
|
|
@@ -144,13 +130,28 @@ export default class Accessor {
|
|
|
144
130
|
}
|
|
145
131
|
|
|
146
132
|
// DEPRECATED
|
|
133
|
+
// @ts-expect-error
|
|
147
134
|
if (props.instanced !== undefined) {
|
|
135
|
+
// @ts-expect-error
|
|
148
136
|
this.divisor = props.instanced ? 1 : 0;
|
|
149
137
|
}
|
|
138
|
+
// @ts-expect-error
|
|
150
139
|
if (props.isInstanced !== undefined) {
|
|
140
|
+
// @ts-expect-error
|
|
151
141
|
this.divisor = props.isInstanced ? 1 : 0;
|
|
152
142
|
}
|
|
153
143
|
|
|
144
|
+
if (this.offset === undefined) delete this.offset;
|
|
145
|
+
if (this.stride === undefined) delete this.stride;
|
|
146
|
+
if (this.type === undefined) delete this.type;
|
|
147
|
+
if (this.size === undefined) delete this.size;
|
|
148
|
+
if (this.divisor === undefined) delete this.divisor;
|
|
149
|
+
if (this.normalized === undefined) delete this.normalized;
|
|
150
|
+
if (this.integer === undefined) delete this.integer;
|
|
151
|
+
|
|
152
|
+
if (this.buffer === undefined) delete this.buffer;
|
|
153
|
+
if (this.index === undefined) delete this.index;
|
|
154
|
+
|
|
154
155
|
return this;
|
|
155
156
|
}
|
|
156
157
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {Buffer,
|
|
1
|
+
import type {Device, BufferProps, TypedArray} from '@luma.gl/api';
|
|
2
|
+
import {Buffer, log, assert, checkProps} from '@luma.gl/api';
|
|
3
3
|
import GL from '@luma.gl/constants';
|
|
4
|
-
import {
|
|
4
|
+
import {assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
5
|
import {AccessorObject} from '../types';
|
|
6
6
|
import Accessor from './accessor';
|
|
7
|
-
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from '
|
|
7
|
+
import {getGLTypeFromTypedArray, getTypedArrayFromGLType} from './typed-array-utils';
|
|
8
|
+
|
|
8
9
|
import WebGLDevice from '../adapter/webgl-device';
|
|
10
|
+
import WEBGLBuffer from '../adapter/resources/webgl-buffer';
|
|
9
11
|
|
|
10
12
|
const DEBUG_DATA_LENGTH = 10;
|
|
11
13
|
|
|
@@ -38,13 +40,32 @@ const PROP_CHECKS_SET_PROPS = {
|
|
|
38
40
|
removedProps: DEPRECATED_PROPS
|
|
39
41
|
};
|
|
40
42
|
|
|
43
|
+
function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | number): BufferProps {
|
|
44
|
+
// Signature `new Buffer(gl, new Float32Array(...)`
|
|
45
|
+
if (ArrayBuffer.isView(props)) {
|
|
46
|
+
return {data: props};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Signature: `new Buffer(gl, 100)`
|
|
50
|
+
else if (typeof props === 'number') {
|
|
51
|
+
return {byteLength: props as number};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
|
|
55
|
+
const bufferProps = {...props as ClassicBufferProps};
|
|
56
|
+
if (bufferProps.offset) {
|
|
57
|
+
bufferProps.byteOffset = bufferProps.offset;
|
|
58
|
+
}
|
|
59
|
+
return bufferProps;
|
|
60
|
+
}
|
|
61
|
+
|
|
41
62
|
/** WebGL Buffer interface */
|
|
42
|
-
export type
|
|
63
|
+
export type ClassicBufferProps = BufferProps & {
|
|
43
64
|
handle?: WebGLBuffer;
|
|
44
|
-
|
|
45
|
-
byteLength?: number;
|
|
65
|
+
|
|
46
66
|
target?: number;
|
|
47
|
-
|
|
67
|
+
webglUsage?: number;
|
|
68
|
+
|
|
48
69
|
accessor?: AccessorObject;
|
|
49
70
|
|
|
50
71
|
/** @deprecated */
|
|
@@ -58,41 +79,29 @@ export type WebGLBufferProps = BufferProps & {
|
|
|
58
79
|
}
|
|
59
80
|
|
|
60
81
|
/** WebGL Buffer interface */
|
|
61
|
-
export default class
|
|
62
|
-
readonly device: WebGLDevice;
|
|
63
|
-
readonly gl: WebGLRenderingContext;
|
|
64
|
-
readonly gl2: WebGL2RenderingContext | null;
|
|
65
|
-
readonly handle: WebGLBuffer;
|
|
66
|
-
|
|
67
|
-
target: number;
|
|
82
|
+
export default class ClassicBuffer extends WEBGLBuffer {
|
|
68
83
|
usage: number;
|
|
69
|
-
|
|
70
|
-
byteLength: number;
|
|
71
|
-
bytesUsed: number;
|
|
72
|
-
|
|
73
84
|
accessor: Accessor;
|
|
74
85
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
constructor(
|
|
78
|
-
constructor(gl: WebGLRenderingContext, data: ArrayBufferView | number[]);
|
|
79
|
-
constructor(gl: WebGLRenderingContext, byteLength: number);
|
|
86
|
+
constructor(device: Device | WebGLRenderingContext, props?: ClassicBufferProps);
|
|
87
|
+
constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
|
|
88
|
+
constructor(device: Device | WebGLRenderingContext, byteLength: number);
|
|
80
89
|
|
|
81
|
-
constructor(
|
|
82
|
-
super(WebGLDevice.attach(
|
|
90
|
+
constructor(device: Device | WebGLRenderingContext, props = {}) {
|
|
91
|
+
super(WebGLDevice.attach(device), getWEBGLBufferProps(props));
|
|
83
92
|
|
|
84
|
-
|
|
85
|
-
this.
|
|
86
|
-
const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
|
|
87
|
-
this.handle = handle || this.gl.createBuffer();
|
|
93
|
+
// Base class initializes
|
|
94
|
+
// this.initialize(props);
|
|
88
95
|
|
|
89
|
-
//
|
|
90
|
-
|
|
91
|
-
// In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
|
|
92
|
-
// @ts-expect-error
|
|
93
|
-
this.target = props.target || (this.gl.webgl2 ? GL.COPY_READ_BUFFER : GL.ARRAY_BUFFER);
|
|
96
|
+
// Deprecated: Merge main props and accessor
|
|
97
|
+
this.setAccessor(Object.assign({}, props, (props as ClassicBufferProps).accessor));
|
|
94
98
|
|
|
95
|
-
|
|
99
|
+
// infer GL type from supplied typed array
|
|
100
|
+
if (this.props.data) {
|
|
101
|
+
const type = getGLTypeFromTypedArray(this.props.data as TypedArray);
|
|
102
|
+
assert(type);
|
|
103
|
+
this.setAccessor(new Accessor(this.accessor, {type}));
|
|
104
|
+
}
|
|
96
105
|
|
|
97
106
|
Object.seal(this);
|
|
98
107
|
}
|
|
@@ -102,18 +111,21 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
102
111
|
this.removeStats();
|
|
103
112
|
this.trackDeallocatedMemory();
|
|
104
113
|
this.gl.deleteBuffer(this.handle);
|
|
105
|
-
//
|
|
106
|
-
this.
|
|
114
|
+
// this.handle = null;
|
|
115
|
+
this.destroyed = true;
|
|
107
116
|
}
|
|
108
117
|
}
|
|
109
118
|
|
|
119
|
+
write(data: TypedArray, byteOffset?: number): void {
|
|
120
|
+
this.subData({data, offset: byteOffset});
|
|
121
|
+
}
|
|
110
122
|
// returns number of elements in the buffer (assuming that the full buffer is used)
|
|
111
|
-
getElementCount(accessor = this.accessor): number {
|
|
123
|
+
getElementCount(accessor: AccessorObject = this.accessor): number {
|
|
112
124
|
return Math.round(this.byteLength / Accessor.getBytesPerElement(accessor));
|
|
113
125
|
}
|
|
114
126
|
|
|
115
127
|
// returns number of vertices in the buffer (assuming that the full buffer is used)
|
|
116
|
-
getVertexCount(accessor = this.accessor): number {
|
|
128
|
+
getVertexCount(accessor: AccessorObject = this.accessor): number {
|
|
117
129
|
return Math.round(this.byteLength / Accessor.getBytesPerVertex(accessor));
|
|
118
130
|
}
|
|
119
131
|
|
|
@@ -121,7 +133,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
121
133
|
// Signature: `new Buffer(gl, {data: new Float32Array(...)})`
|
|
122
134
|
// Signature: `new Buffer(gl, new Float32Array(...))`
|
|
123
135
|
// Signature: `new Buffer(gl, 100)`
|
|
124
|
-
initialize(props:
|
|
136
|
+
initialize(props: ClassicBufferProps = {}): this {
|
|
125
137
|
// Signature `new Buffer(gl, new Float32Array(...)`
|
|
126
138
|
if (ArrayBuffer.isView(props)) {
|
|
127
139
|
props = {data: props};
|
|
@@ -136,7 +148,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
136
148
|
props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
|
|
137
149
|
|
|
138
150
|
// Initialize member fields
|
|
139
|
-
this.
|
|
151
|
+
this.webglUsage = props.webglUsage || GL.STATIC_DRAW;
|
|
140
152
|
this.debugData = null;
|
|
141
153
|
|
|
142
154
|
// Deprecated: Merge main props and accessor
|
|
@@ -152,7 +164,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
152
164
|
return this;
|
|
153
165
|
}
|
|
154
166
|
|
|
155
|
-
setProps(props:
|
|
167
|
+
setProps(props: ClassicBufferProps): this {
|
|
156
168
|
props = checkProps('Buffer', props, PROP_CHECKS_SET_PROPS);
|
|
157
169
|
|
|
158
170
|
if ('accessor' in props) {
|
|
@@ -164,11 +176,12 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
164
176
|
|
|
165
177
|
// Optionally stores an accessor with the buffer, makes it easier to use it as an attribute later
|
|
166
178
|
// {type, size = 1, offset = 0, stride = 0, normalized = false, integer = false, divisor = 0}
|
|
167
|
-
setAccessor(accessor): this {
|
|
179
|
+
setAccessor(accessor: AccessorObject | Accessor): this {
|
|
168
180
|
// NOTE: From luma.gl v7.0, Accessors have an optional `buffer `field
|
|
169
181
|
// (mainly to support "interleaving")
|
|
170
182
|
// To avoid confusion, ensure `buffer.accessor` does not have a `buffer.accessor.buffer` field:
|
|
171
183
|
accessor = Object.assign({}, accessor);
|
|
184
|
+
// @ts-expect-error
|
|
172
185
|
delete accessor.buffer;
|
|
173
186
|
|
|
174
187
|
// This new statement ensures that an "accessor object" is re-packaged as an Accessor instance
|
|
@@ -181,7 +194,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
181
194
|
// Returns:
|
|
182
195
|
// `true`: buffer was reallocated, data was cleared
|
|
183
196
|
// `false`: buffer was big enough, data is intact
|
|
184
|
-
reallocate(byteLength) {
|
|
197
|
+
reallocate(byteLength: number): boolean {
|
|
185
198
|
if (byteLength > this.byteLength) {
|
|
186
199
|
this._setByteLength(byteLength);
|
|
187
200
|
return true;
|
|
@@ -191,7 +204,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
191
204
|
}
|
|
192
205
|
|
|
193
206
|
// Update with new data. Reinitializes the buffer
|
|
194
|
-
setData(props) {
|
|
207
|
+
setData(props: ClassicBufferProps) {
|
|
195
208
|
return this.initialize(props);
|
|
196
209
|
}
|
|
197
210
|
|
|
@@ -200,14 +213,14 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
200
213
|
// Offset into buffer
|
|
201
214
|
// WebGL2 only: Offset into srcData
|
|
202
215
|
// WebGL2 only: Number of bytes to be copied
|
|
203
|
-
subData(
|
|
216
|
+
subData(options: TypedArray | {data: TypedArray, offset?: number; srcOffset?: number; byteLength?: number, length?: number}) {
|
|
204
217
|
// Signature: buffer.subData(new Float32Array([...]))
|
|
205
|
-
if (ArrayBuffer.isView(
|
|
206
|
-
|
|
218
|
+
if (ArrayBuffer.isView(options)) {
|
|
219
|
+
options = {data: options};
|
|
207
220
|
}
|
|
208
221
|
|
|
209
|
-
const {data, offset = 0, srcOffset = 0} =
|
|
210
|
-
const byteLength =
|
|
222
|
+
const {data, offset = 0, srcOffset = 0} = options;
|
|
223
|
+
const byteLength = options.byteLength || options.length;
|
|
211
224
|
|
|
212
225
|
assert(data);
|
|
213
226
|
|
|
@@ -235,7 +248,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
235
248
|
}
|
|
236
249
|
|
|
237
250
|
/**
|
|
238
|
-
* Copies part of the data of another buffer into this buffer
|
|
251
|
+
* Copies part of the data of another buffer into this buffer
|
|
239
252
|
* @note WEBGL2 ONLY
|
|
240
253
|
*/
|
|
241
254
|
copyData(options: {
|
|
@@ -251,7 +264,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
251
264
|
// Use GL.COPY_READ_BUFFER+GL.COPY_WRITE_BUFFER avoid disturbing other targets and locking type
|
|
252
265
|
gl.bindBuffer(GL.COPY_READ_BUFFER, sourceBuffer.handle);
|
|
253
266
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, this.handle);
|
|
254
|
-
gl2
|
|
267
|
+
gl2?.copyBufferSubData(GL.COPY_READ_BUFFER, GL.COPY_WRITE_BUFFER, readOffset, writeOffset, size);
|
|
255
268
|
gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
256
269
|
gl.bindBuffer(GL.COPY_WRITE_BUFFER, null);
|
|
257
270
|
|
|
@@ -301,7 +314,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
301
314
|
|
|
302
315
|
// Use GL.COPY_READ_BUFFER to avoid disturbing other targets and locking type
|
|
303
316
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, this.handle);
|
|
304
|
-
this.gl2
|
|
317
|
+
this.gl2?.getBufferSubData(GL.COPY_READ_BUFFER, srcByteOffset, dstData, dstOffset, length);
|
|
305
318
|
this.gl.bindBuffer(GL.COPY_READ_BUFFER, null);
|
|
306
319
|
|
|
307
320
|
// TODO - update local `data` if offsets are 0
|
|
@@ -318,7 +331,6 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
318
331
|
bind(options?: {target?: number; index?: any; offset?: number; size: any}): this {
|
|
319
332
|
const {
|
|
320
333
|
target = this.target, // target for the bind operation
|
|
321
|
-
// @ts-expect-error
|
|
322
334
|
index = this.accessor && this.accessor.index, // index = index of target (indexed bind point)
|
|
323
335
|
offset = 0,
|
|
324
336
|
size
|
|
@@ -328,10 +340,10 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
328
340
|
// uniform buffer state. Instead indexed bindings need to be made.
|
|
329
341
|
if (target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER) {
|
|
330
342
|
if (size !== undefined) {
|
|
331
|
-
this.gl2
|
|
343
|
+
this.gl2?.bindBufferRange(target, index, this.handle, offset, size);
|
|
332
344
|
} else {
|
|
333
345
|
assert(offset === 0); // Make sure offset wasn't supplied
|
|
334
|
-
this.gl2
|
|
346
|
+
this.gl2?.bindBufferBase(target, index, this.handle);
|
|
335
347
|
}
|
|
336
348
|
} else {
|
|
337
349
|
this.gl.bindBuffer(target, this.handle);
|
|
@@ -341,11 +353,10 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
341
353
|
}
|
|
342
354
|
|
|
343
355
|
unbind(options?: {target?: any; index?: any}): this {
|
|
344
|
-
// @ts-expect-error
|
|
345
356
|
const {target = this.target, index = this.accessor && this.accessor.index} = options || {};
|
|
346
357
|
const isIndexedBuffer = target === GL.UNIFORM_BUFFER || target === GL.TRANSFORM_FEEDBACK_BUFFER;
|
|
347
358
|
if (isIndexedBuffer) {
|
|
348
|
-
this.gl2
|
|
359
|
+
this.gl2?.bindBufferBase(target, index, null);
|
|
349
360
|
} else {
|
|
350
361
|
this.gl.bindBuffer(target, null);
|
|
351
362
|
}
|
|
@@ -380,7 +391,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
380
391
|
|
|
381
392
|
const target = this._getTarget();
|
|
382
393
|
this.gl.bindBuffer(target, this.handle);
|
|
383
|
-
this.gl.bufferData(target, byteLength, this.
|
|
394
|
+
this.gl.bufferData(target, byteLength, this.webglUsage);
|
|
384
395
|
this.gl.bufferSubData(target, offset, data);
|
|
385
396
|
this.gl.bindBuffer(target, null);
|
|
386
397
|
|
|
@@ -397,7 +408,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
397
408
|
}
|
|
398
409
|
|
|
399
410
|
// Allocate a GPU buffer of specified size.
|
|
400
|
-
_setByteLength(byteLength: number,
|
|
411
|
+
_setByteLength(byteLength: number, webglUsage = this.webglUsage): this {
|
|
401
412
|
assert(byteLength >= 0);
|
|
402
413
|
|
|
403
414
|
this.trackDeallocatedMemory();
|
|
@@ -412,10 +423,10 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
412
423
|
|
|
413
424
|
const target = this._getTarget();
|
|
414
425
|
this.gl.bindBuffer(target, this.handle);
|
|
415
|
-
this.gl.bufferData(target, data,
|
|
426
|
+
this.gl.bufferData(target, data, webglUsage);
|
|
416
427
|
this.gl.bindBuffer(target, null);
|
|
417
428
|
|
|
418
|
-
this.
|
|
429
|
+
this.webglUsage = webglUsage;
|
|
419
430
|
this.debugData = null;
|
|
420
431
|
this.bytesUsed = byteLength;
|
|
421
432
|
this.byteLength = byteLength;
|
|
@@ -432,7 +443,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
432
443
|
return this.gl.webgl2 ? GL.COPY_WRITE_BUFFER : this.target;
|
|
433
444
|
}
|
|
434
445
|
|
|
435
|
-
_getAvailableElementCount(srcByteOffset) {
|
|
446
|
+
_getAvailableElementCount(srcByteOffset: number) {
|
|
436
447
|
const ArrayType = getTypedArrayFromGLType(this.accessor.type || GL.FLOAT, {clamped: false});
|
|
437
448
|
const sourceElementOffset = srcByteOffset / ArrayType.BYTES_PER_ELEMENT;
|
|
438
449
|
return this.getElementCount() - sourceElementOffset;
|
|
@@ -448,7 +459,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
448
459
|
|
|
449
460
|
// RESOURCE METHODS
|
|
450
461
|
|
|
451
|
-
getParameter(pname) {
|
|
462
|
+
getParameter(pname: GL): any {
|
|
452
463
|
this.gl.bindBuffer(this.target, this.handle);
|
|
453
464
|
const value = this.gl.getBufferParameter(this.target, pname);
|
|
454
465
|
this.gl.bindBuffer(this.target, null);
|
|
@@ -460,23 +471,4 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
460
471
|
get type() {
|
|
461
472
|
return this.accessor.type;
|
|
462
473
|
}
|
|
463
|
-
|
|
464
|
-
get bytes() {
|
|
465
|
-
log.deprecated('Buffer.bytes', 'Buffer.byteLength')();
|
|
466
|
-
return this.byteLength;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
// DEPRECATIONS - v6.0
|
|
470
|
-
// Deprecated in v6.x, but not warnings not properly implemented
|
|
471
|
-
setByteLength(byteLength) {
|
|
472
|
-
log.deprecated('setByteLength', 'reallocate')();
|
|
473
|
-
return this.reallocate(byteLength);
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
// Deprecated in v6.x, but not warnings not properly implemented
|
|
477
|
-
updateAccessor(opts) {
|
|
478
|
-
log.deprecated('updateAccessor(...)', 'setAccessor(new Accessor(buffer.accessor, ...)')();
|
|
479
|
-
this.accessor = new Accessor(this.accessor, opts);
|
|
480
|
-
return this;
|
|
481
|
-
}
|
|
482
474
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
|
|
3
|
+
import {TypedArray} from '@luma.gl/api';
|
|
1
4
|
import GL from '@luma.gl/constants';
|
|
5
|
+
import {GLType} from '../types/webgl'
|
|
2
6
|
|
|
3
7
|
const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
|
|
4
8
|
|
|
@@ -18,7 +22,7 @@ type TypedArrayConstructor =
|
|
|
18
22
|
* @param {*} arrayOrType
|
|
19
23
|
* @returns
|
|
20
24
|
*/
|
|
21
|
-
export function getGLTypeFromTypedArray(arrayOrType) {
|
|
25
|
+
export function getGLTypeFromTypedArray(arrayOrType: TypedArray): GLType {
|
|
22
26
|
// If typed array, look up constructor
|
|
23
27
|
const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
24
28
|
switch (type) {
|
|
@@ -34,6 +34,8 @@ export function getContextState(gl: WebGLRenderingContext): ContextState {
|
|
|
34
34
|
// @ts-expect-error
|
|
35
35
|
gl.luma = contextState;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
throw new Error('context state without device');
|
|
38
|
+
|
|
39
|
+
// // @ts-expect-error
|
|
40
|
+
// return gl.luma;
|
|
39
41
|
}
|
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
* @param preserveDrawingBuffer Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten
|
|
18
18
|
* @param failIfMajorPerformanceCaveat Do not create if the system performance is low.
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
20
|
type ContextProps = {
|
|
21
|
+
type?: 'webgl' | 'webgl1' | 'webgl2' | string;
|
|
22
22
|
webgl1?: boolean;
|
|
23
23
|
webgl2?: boolean;
|
|
24
24
|
onContextLost?: (event: Event) => void;
|
|
@@ -55,14 +55,21 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
55
55
|
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
56
56
|
|
|
57
57
|
// Create the desired context
|
|
58
|
-
let gl = null;
|
|
58
|
+
let gl: WebGLRenderingContext | null = null;
|
|
59
|
+
|
|
60
|
+
if (props.type === 'webgl2') {
|
|
61
|
+
props = {...props, webgl1: false};
|
|
62
|
+
}
|
|
63
|
+
if (props.type === 'webgl1') {
|
|
64
|
+
props = {...props, webgl2: false};
|
|
65
|
+
}
|
|
59
66
|
|
|
60
67
|
// Prefer webgl2 over webgl1 if both are acceptable
|
|
61
68
|
if (props.webgl2) {
|
|
62
|
-
gl = gl || canvas.getContext('webgl2', props);
|
|
69
|
+
gl = gl || canvas.getContext('webgl2', props) as WebGL2RenderingContext | null;
|
|
63
70
|
}
|
|
64
71
|
if (props.webgl1) {
|
|
65
|
-
gl = gl || canvas.getContext('webgl', props);
|
|
72
|
+
gl = gl || canvas.getContext('webgl', props) as WebGLRenderingContext | null;
|
|
66
73
|
}
|
|
67
74
|
|
|
68
75
|
// TODO are we removing this listener before giving it a chance to fire?
|
|
@@ -76,8 +83,36 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
76
83
|
);
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
if (props.onContextLost) {
|
|
87
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
88
|
+
const {onContextLost} = props;
|
|
89
|
+
canvas.addEventListener('webglcontextlost',(event: Event) => onContextLost(event), false);
|
|
90
|
+
}
|
|
91
|
+
if (props.onContextRestored) {
|
|
92
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
93
|
+
const {onContextRestored} = props;
|
|
94
|
+
canvas.addEventListener('webglcontextrestored', (event: Event) => onContextRestored(event), false);
|
|
95
|
+
}
|
|
81
96
|
|
|
82
97
|
return gl;
|
|
83
98
|
}
|
|
99
|
+
|
|
100
|
+
/* TODO - can we call this asynchronously to catch the error events?
|
|
101
|
+
export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
|
|
102
|
+
props = {...DEFAULT_CONTEXT_PROPS, ...props};
|
|
103
|
+
|
|
104
|
+
// Try to extract any extra information about why context creation failed
|
|
105
|
+
let errorMessage = null;
|
|
106
|
+
const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
|
|
107
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
108
|
+
|
|
109
|
+
const gl = createBrowserContext(canvas, props);
|
|
110
|
+
|
|
111
|
+
// Give the listener a chance to fire
|
|
112
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
113
|
+
|
|
114
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
115
|
+
|
|
116
|
+
return gl;
|
|
117
|
+
}
|
|
118
|
+
*/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const ERR_HEADLESSGL_FAILED =
|
|
2
|
+
'Failed to create WebGL context in Node.js, headless gl returned null';
|
|
3
|
+
|
|
4
|
+
const ERR_HEADLESSGL_LOAD = `\
|
|
5
|
+
luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL \
|
|
6
|
+
contexts can not be created. This may not be an error. For example, this is a \
|
|
7
|
+
typical configuration for isorender applications running on the server.`;
|
|
8
|
+
|
|
9
|
+
const CONTEXT_DEFAULTS = {
|
|
10
|
+
width: 1,
|
|
11
|
+
height: 1,
|
|
12
|
+
debug: true,
|
|
13
|
+
throwOnError: false
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
/** Duck typing for the main headless gl export, a function to create contexts */
|
|
17
|
+
export type HeadlessGL = (width: number, height: number, options: Record<string, unknown>) => WebGLRenderingContext;
|
|
18
|
+
|
|
19
|
+
let headlessGL: HeadlessGL | null = null;
|
|
20
|
+
|
|
21
|
+
/** By importing `gl` and registering it with this function, contexts can be created under Node.js */
|
|
22
|
+
export function registerHeadlessGL(headlessgl: HeadlessGL) {
|
|
23
|
+
headlessGL = headlessgl;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** @returns true if headless gl is registered */
|
|
27
|
+
export function isHeadlessGLRegistered(): boolean {
|
|
28
|
+
return headlessGL !== null;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** Create headless gl context (for running under Node.js) */
|
|
32
|
+
export function createHeadlessContext(options?: Record<string, any>): WebGLRenderingContext {
|
|
33
|
+
options = {...CONTEXT_DEFAULTS, ...options};
|
|
34
|
+
|
|
35
|
+
const {width, height, webgl1, webgl2} = options;
|
|
36
|
+
|
|
37
|
+
if (webgl2 && !webgl1) {
|
|
38
|
+
throw new Error('headless-gl does not support WebGL2');
|
|
39
|
+
}
|
|
40
|
+
if (!headlessGL) {
|
|
41
|
+
throw new Error(ERR_HEADLESSGL_LOAD);
|
|
42
|
+
}
|
|
43
|
+
const gl = headlessGL(width, height, options);
|
|
44
|
+
if (!gl) {
|
|
45
|
+
throw new Error(ERR_HEADLESSGL_FAILED);
|
|
46
|
+
}
|
|
47
|
+
return gl;
|
|
48
|
+
}
|