@luma.gl/webgl 8.6.0-alpha.3 → 9.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -67
- package/dist/adapter/converters/device-parameters.d.ts +17 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/{esm/adapter/converters/set-device-parameters.js → adapter/converters/device-parameters.js} +36 -5
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
- package/dist/{esm/classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +208 -0
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +93 -0
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/texture-formats.js +954 -0
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.d.ts +4 -0
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +35 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +3 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +27 -48
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +81 -0
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts +4 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +115 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.d.ts +26 -0
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
- package/dist/adapter/helpers/uniforms.js +99 -0
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
- package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-buffer.js +164 -0
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +40 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +50 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +193 -0
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
- package/dist/{esm/classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +36 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
- package/dist/adapter/webgl-canvas-context.js +54 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +58 -77
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +185 -113
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +32 -0
- package/dist/classic/accessor.d.ts.map +1 -0
- package/dist/{classes → classic}/accessor.js +33 -1
- package/dist/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
- package/dist/classic/buffer.d.ts.map +1 -0
- package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +53 -51
- package/dist/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
- package/dist/classic/typed-array-utils.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/context-state.d.ts.map +1 -1
- package/dist/context/context/context-state.js +1 -1
- package/dist/context/context/context-state.js.map +1 -1
- package/dist/context/context/create-context.d.ts +1 -0
- package/dist/context/context/create-context.d.ts.map +1 -1
- package/dist/context/context/create-context.js +12 -0
- package/dist/context/context/create-context.js.map +1 -1
- package/dist/context/context/device-pixels.d.ts +1 -1
- package/dist/context/context/device-pixels.d.ts.map +1 -1
- package/dist/context/context/device-pixels.js.map +1 -1
- package/dist/context/debug/spector.d.ts +18 -0
- package/dist/context/debug/spector.d.ts.map +1 -0
- package/dist/context/debug/spector.js +76 -0
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
- package/dist/context/debug/webgl-developer-tools.js +121 -0
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +3 -2
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +4 -4
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +4 -3
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +25 -11
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +37 -5
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
- package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/es5/adapter/converters/sampler-parameters.js +226 -0
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/texture-formats.js +1031 -0
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
- package/dist/es5/adapter/converters/vertex-formats.js +45 -0
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +46 -54
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +184 -87
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/adapter/helpers/set-uniform.js +125 -0
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/es5/adapter/helpers/uniforms.js +112 -0
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +345 -0
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +25 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +505 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +12 -18
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +336 -260
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/es5/adapter/webgl-canvas-context.js +97 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +255 -135
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/{classes → classic}/accessor.js +25 -1
- package/dist/es5/classic/accessor.js.map +1 -0
- package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +74 -66
- package/dist/es5/classic/buffer.js.map +1 -0
- package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/es5/classic/typed-array-utils.js.map +1 -0
- package/dist/es5/context/context/context-state.js +1 -1
- package/dist/es5/context/context/context-state.js.map +1 -1
- package/dist/es5/context/context/create-context.js +12 -0
- package/dist/es5/context/context/create-context.js.map +1 -1
- package/dist/es5/context/context/device-pixels.js.map +1 -1
- package/dist/es5/context/debug/spector.js +133 -0
- package/dist/es5/context/debug/spector.js.map +1 -0
- package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +7 -5
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +4 -3
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +26 -11
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/index.js +66 -238
- 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/{adapter/converters/set-device-parameters.js → esm/adapter/converters/device-parameters.js} +36 -5
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → esm/adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/esm/adapter/converters/sampler-parameters.js +208 -0
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/texture-formats.js +954 -0
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
- package/dist/esm/adapter/converters/vertex-formats.js +35 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +27 -48
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/adapter/helpers/set-uniform.js +115 -0
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/esm/adapter/helpers/uniforms.js +99 -0
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → esm/adapter/objects}/webgl-resource.js +7 -3
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/esm/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/{classes/texture.js → esm/adapter/resources/webgl-texture.js} +274 -229
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +54 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +185 -113
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/{classes → classic}/accessor.js +33 -1
- package/dist/esm/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +53 -51
- package/dist/esm/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
- package/dist/esm/classic/typed-array-utils.js.map +1 -0
- package/dist/esm/context/context/context-state.js +1 -1
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/esm/context/context/create-context.js +12 -0
- package/dist/esm/context/context/create-context.js.map +1 -1
- package/dist/esm/context/context/device-pixels.js.map +1 -1
- package/dist/esm/context/debug/spector.js +76 -0
- package/dist/esm/context/debug/spector.js.map +1 -0
- package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +4 -4
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +4 -3
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +25 -11
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/index.js +19 -29
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +2 -31
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js +2 -0
- package/dist/esm/types/webgl.js.map +1 -0
- package/dist/index.d.ts +22 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -29
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +2 -31
- package/dist/init.js.map +1 -1
- package/dist/types/webgl.d.ts +144 -0
- package/dist/types/webgl.d.ts.map +1 -0
- package/dist/types/webgl.js +2 -0
- package/dist/types/webgl.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +52 -9
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +175 -0
- package/src/adapter/converters/texture-formats.ts +633 -0
- package/src/adapter/converters/vertex-formats.ts +22 -0
- package/src/adapter/device-helpers/device-features.ts +46 -123
- package/src/adapter/device-helpers/device-limits.ts +5 -2
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/attribute-utils.ts +61 -0
- package/src/adapter/helpers/get-shader-layout.ts +388 -0
- package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
- package/src/adapter/helpers/set-uniform.ts +87 -0
- package/src/adapter/helpers/uniforms.ts +110 -0
- package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
- package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
- package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
- package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
- package/src/adapter/resources/webgl-buffer.ts +219 -0
- package/src/adapter/resources/webgl-command-buffer.ts +94 -0
- package/src/adapter/resources/webgl-command-encoder.ts +58 -0
- package/src/adapter/resources/webgl-external-texture.ts +92 -0
- package/src/adapter/resources/webgl-framebuffer.ts +279 -0
- package/src/adapter/resources/webgl-render-pass.ts +23 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
- package/src/adapter/resources/webgl-sampler.ts +54 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
- package/src/adapter/resources/webgl-texture.ts +1023 -0
- package/src/adapter/webgl-canvas-context.ts +74 -0
- package/src/adapter/webgl-device.ts +229 -285
- package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +50 -36
- package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +69 -77
- package/src/{webgl-utils → classic}/typed-array-utils.ts +3 -1
- package/src/context/context/context-state.ts +4 -2
- package/src/context/context/create-context.ts +28 -1
- package/src/context/context/device-pixels.ts +9 -4
- package/src/context/debug/spector.ts +92 -0
- package/src/context/debug/webgl-developer-tools.ts +162 -0
- package/src/context/parameters/unified-parameter-api.ts +6 -4
- package/src/context/parameters/webgl-parameter-tables.ts +38 -36
- package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
- package/src/context/polyfill/polyfill-context.ts +4 -3
- package/src/context/state-tracker/deep-array-equal.ts +1 -1
- package/src/context/state-tracker/track-context-state.ts +27 -20
- package/src/index.ts +33 -91
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +283 -0
- package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
- package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
- package/dist/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/adapter/webgl-shader.d.ts.map +0 -1
- package/dist/adapter/webgl-shader.js.map +0 -1
- package/dist/classes/accessor.d.ts +0 -28
- package/dist/classes/accessor.d.ts.map +0 -1
- package/dist/classes/accessor.js.map +0 -1
- package/dist/classes/accessor.ts.disabled +0 -159
- package/dist/classes/clear.d.ts +0 -17
- package/dist/classes/clear.d.ts.map +0 -1
- package/dist/classes/clear.js +0 -105
- package/dist/classes/clear.js.map +0 -1
- package/dist/classes/copy-and-blit.d.ts +0 -86
- package/dist/classes/copy-and-blit.d.ts.map +0 -1
- package/dist/classes/copy-and-blit.js +0 -338
- package/dist/classes/copy-and-blit.js.map +0 -1
- package/dist/classes/framebuffer.d.ts +0 -139
- package/dist/classes/framebuffer.d.ts.map +0 -1
- package/dist/classes/framebuffer.js +0 -656
- package/dist/classes/framebuffer.js.map +0 -1
- package/dist/classes/program-configuration.d.ts +0 -24
- package/dist/classes/program-configuration.d.ts.map +0 -1
- package/dist/classes/program-configuration.js +0 -73
- package/dist/classes/program-configuration.js.map +0 -1
- package/dist/classes/program.d.ts +0 -66
- package/dist/classes/program.d.ts.map +0 -1
- package/dist/classes/program.js +0 -379
- package/dist/classes/program.js.map +0 -1
- package/dist/classes/query.d.ts +0 -27
- package/dist/classes/query.d.ts.map +0 -1
- package/dist/classes/query.js +0 -145
- package/dist/classes/query.js.map +0 -1
- package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
- package/dist/classes/renderbuffer-formats.js.map +0 -1
- package/dist/classes/renderbuffer.d.ts +0 -60
- package/dist/classes/renderbuffer.d.ts.map +0 -1
- package/dist/classes/renderbuffer.js.map +0 -1
- package/dist/classes/shader.d.ts +0 -42
- package/dist/classes/shader.d.ts.map +0 -1
- package/dist/classes/shader.js +0 -118
- package/dist/classes/shader.js.map +0 -1
- package/dist/classes/texture-2d.d.ts +0 -9
- package/dist/classes/texture-2d.d.ts.map +0 -1
- package/dist/classes/texture-2d.js +0 -36
- package/dist/classes/texture-2d.js.map +0 -1
- package/dist/classes/texture-3d.d.ts +0 -29
- package/dist/classes/texture-3d.d.ts.map +0 -1
- package/dist/classes/texture-3d.js +0 -76
- package/dist/classes/texture-3d.js.map +0 -1
- package/dist/classes/texture-cube.d.ts +0 -28
- package/dist/classes/texture-cube.d.ts.map +0 -1
- package/dist/classes/texture-cube.js +0 -130
- package/dist/classes/texture-cube.js.map +0 -1
- package/dist/classes/texture-formats.d.ts +0 -37
- package/dist/classes/texture-formats.d.ts.map +0 -1
- package/dist/classes/texture-formats.js +0 -98
- package/dist/classes/texture-formats.js.map +0 -1
- package/dist/classes/texture.d.ts +0 -123
- package/dist/classes/texture.d.ts.map +0 -1
- package/dist/classes/texture.js.map +0 -1
- package/dist/classes/transform-feedback.d.ts +0 -33
- package/dist/classes/transform-feedback.d.ts.map +0 -1
- package/dist/classes/transform-feedback.js +0 -198
- package/dist/classes/transform-feedback.js.map +0 -1
- package/dist/classes/uniform-buffer-layout.d.ts +0 -17
- package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
- package/dist/classes/uniform-buffer-layout.js +0 -104
- package/dist/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/classes/uniforms.d.ts +0 -37
- package/dist/classes/uniforms.d.ts.map +0 -1
- package/dist/classes/uniforms.js +0 -250
- package/dist/classes/uniforms.js.map +0 -1
- package/dist/classes/vertex-array-object.d.ts +0 -76
- package/dist/classes/vertex-array-object.d.ts.map +0 -1
- package/dist/classes/vertex-array-object.js +0 -261
- package/dist/classes/vertex-array-object.js.map +0 -1
- package/dist/classes/vertex-array.d.ts +0 -75
- package/dist/classes/vertex-array.d.ts.map +0 -1
- package/dist/classes/vertex-array.js +0 -408
- package/dist/classes/vertex-array.js.map +0 -1
- package/dist/classes/webgl-buffer.d.ts.map +0 -1
- package/dist/classes/webgl-buffer.js.map +0 -1
- package/dist/classes/webgl-resource.d.ts.map +0 -1
- package/dist/classes/webgl-resource.js.map +0 -1
- package/dist/context/context/get-canvas.d.ts +0 -13
- package/dist/context/context/get-canvas.d.ts.map +0 -1
- package/dist/context/context/get-canvas.js +0 -31
- package/dist/context/context/get-canvas.js.map +0 -1
- package/dist/context/context/resize-context.d.ts +0 -20
- package/dist/context/context/resize-context.d.ts.map +0 -1
- package/dist/context/context/resize-context.js +0 -15
- package/dist/context/context/resize-context.js.map +0 -1
- package/dist/context/parameters/webgl-parameters.d.ts +0 -144
- package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
- package/dist/context/parameters/webgl-parameters.js +0 -2
- package/dist/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/debug/debug-program-configuration.d.ts +0 -2
- package/dist/debug/debug-program-configuration.d.ts.map +0 -1
- package/dist/debug/debug-program-configuration.js +0 -40
- package/dist/debug/debug-program-configuration.js.map +0 -1
- package/dist/debug/debug-uniforms.d.ts +0 -12
- package/dist/debug/debug-uniforms.d.ts.map +0 -1
- package/dist/debug/debug-uniforms.js +0 -108
- package/dist/debug/debug-uniforms.js.map +0 -1
- package/dist/debug/debug-vertex-array.d.ts +0 -5
- package/dist/debug/debug-vertex-array.d.ts.map +0 -1
- package/dist/debug/debug-vertex-array.js +0 -118
- package/dist/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/es5/adapter/webgl-shader.js.map +0 -1
- package/dist/es5/classes/accessor.d.ts +0 -28
- package/dist/es5/classes/accessor.js.map +0 -1
- package/dist/es5/classes/accessor.ts.disabled +0 -159
- package/dist/es5/classes/clear.js +0 -135
- package/dist/es5/classes/clear.js.map +0 -1
- package/dist/es5/classes/copy-and-blit.js +0 -382
- package/dist/es5/classes/copy-and-blit.js.map +0 -1
- package/dist/es5/classes/framebuffer.js +0 -807
- package/dist/es5/classes/framebuffer.js.map +0 -1
- package/dist/es5/classes/program-configuration.js +0 -119
- package/dist/es5/classes/program-configuration.js.map +0 -1
- package/dist/es5/classes/program.js +0 -471
- package/dist/es5/classes/program.js.map +0 -1
- package/dist/es5/classes/query.js +0 -222
- package/dist/es5/classes/query.js.map +0 -1
- package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
- package/dist/es5/classes/renderbuffer.js.map +0 -1
- package/dist/es5/classes/shader.js +0 -195
- package/dist/es5/classes/shader.js.map +0 -1
- package/dist/es5/classes/texture-2d.js.map +0 -1
- package/dist/es5/classes/texture-3d.js +0 -142
- package/dist/es5/classes/texture-3d.js.map +0 -1
- package/dist/es5/classes/texture-cube.js +0 -202
- package/dist/es5/classes/texture-cube.js.map +0 -1
- package/dist/es5/classes/texture-formats.js +0 -87
- package/dist/es5/classes/texture-formats.js.map +0 -1
- package/dist/es5/classes/texture.js.map +0 -1
- package/dist/es5/classes/transform-feedback.js +0 -267
- package/dist/es5/classes/transform-feedback.js.map +0 -1
- package/dist/es5/classes/uniform-buffer-layout.js +0 -130
- package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/es5/classes/uniforms.js +0 -232
- package/dist/es5/classes/uniforms.js.map +0 -1
- package/dist/es5/classes/vertex-array-object.js +0 -337
- package/dist/es5/classes/vertex-array-object.js.map +0 -1
- package/dist/es5/classes/vertex-array.js +0 -465
- package/dist/es5/classes/vertex-array.js.map +0 -1
- package/dist/es5/classes/webgl-buffer.js.map +0 -1
- package/dist/es5/classes/webgl-resource.js.map +0 -1
- package/dist/es5/context/context/get-canvas.js +0 -40
- package/dist/es5/context/context/get-canvas.js.map +0 -1
- package/dist/es5/context/context/resize-context.js +0 -23
- package/dist/es5/context/context/resize-context.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/es5/debug/debug-program-configuration.js +0 -76
- package/dist/es5/debug/debug-program-configuration.js.map +0 -1
- package/dist/es5/debug/debug-uniforms.js +0 -156
- package/dist/es5/debug/debug-uniforms.js.map +0 -1
- package/dist/es5/debug/debug-vertex-array.js +0 -126
- package/dist/es5/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/helpers/get-program-bindings.js.map +0 -1
- package/dist/es5/helpers/program-bindings.js +0 -2
- package/dist/es5/types/accessor.d.ts +0 -29
- package/dist/es5/webgl-utils/attribute-utils.js +0 -186
- package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/es5/webgl-utils/format-utils.js +0 -58
- package/dist/es5/webgl-utils/format-utils.js.map +0 -1
- package/dist/es5/webgl-utils/get-error.js +0 -49
- package/dist/es5/webgl-utils/get-error.js.map +0 -1
- package/dist/es5/webgl-utils/index.js +0 -74
- package/dist/es5/webgl-utils/index.js.map +0 -1
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
- package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/es5/webgl-utils/texture-utils.js +0 -61
- package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
- package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/esm/adapter/webgl-shader.js.map +0 -1
- package/dist/esm/classes/accessor.d.ts +0 -28
- package/dist/esm/classes/accessor.js.map +0 -1
- package/dist/esm/classes/clear.js +0 -105
- package/dist/esm/classes/clear.js.map +0 -1
- package/dist/esm/classes/copy-and-blit.js +0 -338
- package/dist/esm/classes/copy-and-blit.js.map +0 -1
- package/dist/esm/classes/framebuffer.js +0 -656
- package/dist/esm/classes/framebuffer.js.map +0 -1
- package/dist/esm/classes/program-configuration.js +0 -73
- package/dist/esm/classes/program-configuration.js.map +0 -1
- package/dist/esm/classes/program.js +0 -379
- package/dist/esm/classes/program.js.map +0 -1
- package/dist/esm/classes/query.js +0 -145
- package/dist/esm/classes/query.js.map +0 -1
- package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
- package/dist/esm/classes/renderbuffer.js.map +0 -1
- package/dist/esm/classes/shader.js +0 -118
- package/dist/esm/classes/shader.js.map +0 -1
- package/dist/esm/classes/texture-2d.js +0 -36
- package/dist/esm/classes/texture-2d.js.map +0 -1
- package/dist/esm/classes/texture-3d.js +0 -76
- package/dist/esm/classes/texture-3d.js.map +0 -1
- package/dist/esm/classes/texture-cube.js +0 -130
- package/dist/esm/classes/texture-cube.js.map +0 -1
- package/dist/esm/classes/texture-formats.js +0 -98
- package/dist/esm/classes/texture-formats.js.map +0 -1
- package/dist/esm/classes/texture.js.map +0 -1
- package/dist/esm/classes/transform-feedback.js +0 -198
- package/dist/esm/classes/transform-feedback.js.map +0 -1
- package/dist/esm/classes/uniform-buffer-layout.js +0 -104
- package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/esm/classes/uniforms.js +0 -250
- package/dist/esm/classes/uniforms.js.map +0 -1
- package/dist/esm/classes/vertex-array-object.js +0 -261
- package/dist/esm/classes/vertex-array-object.js.map +0 -1
- package/dist/esm/classes/vertex-array.js +0 -408
- package/dist/esm/classes/vertex-array.js.map +0 -1
- package/dist/esm/classes/webgl-buffer.js.map +0 -1
- package/dist/esm/classes/webgl-resource.js.map +0 -1
- package/dist/esm/context/context/get-canvas.js +0 -31
- package/dist/esm/context/context/get-canvas.js.map +0 -1
- package/dist/esm/context/context/resize-context.js +0 -15
- package/dist/esm/context/context/resize-context.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameters.js +0 -2
- package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/esm/debug/debug-program-configuration.js +0 -40
- package/dist/esm/debug/debug-program-configuration.js.map +0 -1
- package/dist/esm/debug/debug-uniforms.js +0 -108
- package/dist/esm/debug/debug-uniforms.js.map +0 -1
- package/dist/esm/debug/debug-vertex-array.js +0 -118
- package/dist/esm/debug/debug-vertex-array.js.map +0 -1
- package/dist/esm/helpers/get-program-bindings.js +0 -228
- package/dist/esm/helpers/get-program-bindings.js.map +0 -1
- package/dist/esm/helpers/program-bindings.js +0 -2
- package/dist/esm/types/accessor.d.ts +0 -29
- package/dist/esm/webgl-utils/attribute-utils.js +0 -182
- package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/esm/webgl-utils/format-utils.js +0 -45
- package/dist/esm/webgl-utils/format-utils.js.map +0 -1
- package/dist/esm/webgl-utils/get-error.js +0 -41
- package/dist/esm/webgl-utils/get-error.js.map +0 -1
- package/dist/esm/webgl-utils/index.js +0 -5
- package/dist/esm/webgl-utils/index.js.map +0 -1
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
- package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/esm/webgl-utils/texture-utils.js +0 -48
- package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
- package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/helpers/get-program-bindings.d.ts +0 -8
- package/dist/helpers/get-program-bindings.d.ts.map +0 -1
- package/dist/helpers/get-program-bindings.js +0 -228
- package/dist/helpers/get-program-bindings.js.map +0 -1
- package/dist/helpers/program-bindings.d.ts +0 -41
- package/dist/helpers/program-bindings.d.ts.map +0 -1
- package/dist/helpers/program-bindings.js +0 -2
- package/dist/types/accessor.d.ts +0 -29
- package/dist/webgl-utils/attribute-utils.d.ts +0 -18
- package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
- package/dist/webgl-utils/attribute-utils.js +0 -182
- package/dist/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
- package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
- package/dist/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/webgl-utils/format-utils.d.ts +0 -3
- package/dist/webgl-utils/format-utils.d.ts.map +0 -1
- package/dist/webgl-utils/format-utils.js +0 -45
- package/dist/webgl-utils/format-utils.js.map +0 -1
- package/dist/webgl-utils/get-error.d.ts +0 -3
- package/dist/webgl-utils/get-error.d.ts.map +0 -1
- package/dist/webgl-utils/get-error.js +0 -41
- package/dist/webgl-utils/get-error.js.map +0 -1
- package/dist/webgl-utils/index.d.ts +0 -5
- package/dist/webgl-utils/index.d.ts.map +0 -1
- package/dist/webgl-utils/index.js +0 -5
- package/dist/webgl-utils/index.js.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
- package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
- package/dist/webgl-utils/request-animation-frame.js +0 -7
- package/dist/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/webgl-utils/texture-utils.d.ts +0 -15
- package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
- package/dist/webgl-utils/texture-utils.js +0 -48
- package/dist/webgl-utils/texture-utils.js.map +0 -1
- package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
- package/dist/webgl-utils/typed-array-utils.js.map +0 -1
- package/src/.DS_Store +0 -0
- package/src/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,19 @@
|
|
|
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/';
|
|
3
|
+
import {getTypedArrayFromGLType} from './typed-array-utils';
|
|
5
4
|
|
|
6
|
-
export interface AccessorObject {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
/** @deprecated Use .divisor */
|
|
19
|
-
isInstanced?: boolean;
|
|
20
|
-
}
|
|
5
|
+
// export interface AccessorObject {
|
|
6
|
+
// offset?: number;
|
|
7
|
+
// stride?: number;
|
|
8
|
+
// type?: number;
|
|
9
|
+
// size?: number;
|
|
10
|
+
// divisor?: number;
|
|
11
|
+
// normalized?: boolean;
|
|
12
|
+
// integer?: boolean;
|
|
13
|
+
|
|
14
|
+
// buffer?: Buffer;
|
|
15
|
+
// index?: number;
|
|
16
|
+
// }
|
|
21
17
|
|
|
22
18
|
const DEFAULT_ACCESSOR_VALUES = {
|
|
23
19
|
offset: 0,
|
|
@@ -36,28 +32,26 @@ const PROP_CHECKS = {
|
|
|
36
32
|
}
|
|
37
33
|
};
|
|
38
34
|
|
|
35
|
+
export default class Accessor implements AccessorObject {
|
|
36
|
+
offset?: number;
|
|
37
|
+
stride?: number;
|
|
38
|
+
type?: number;
|
|
39
|
+
size?: number;
|
|
40
|
+
divisor?: number;
|
|
41
|
+
normalized?: boolean;
|
|
42
|
+
integer?: boolean;
|
|
39
43
|
|
|
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;
|
|
44
|
+
buffer?: Buffer;
|
|
45
|
+
index?: number;
|
|
52
46
|
|
|
53
|
-
static getBytesPerElement(accessor): number {
|
|
47
|
+
static getBytesPerElement(accessor: Accessor | AccessorObject): number {
|
|
54
48
|
// TODO: using `FLOAT` when type is not specified,
|
|
55
49
|
// ensure this assumption is valid or force API to specify type.
|
|
56
50
|
const ArrayType = getTypedArrayFromGLType(accessor.type || GL.FLOAT);
|
|
57
51
|
return ArrayType.BYTES_PER_ELEMENT;
|
|
58
52
|
}
|
|
59
53
|
|
|
60
|
-
static getBytesPerVertex(accessor): number {
|
|
54
|
+
static getBytesPerVertex(accessor: AccessorObject): number {
|
|
61
55
|
assert(accessor.size);
|
|
62
56
|
// TODO: using `FLOAT` when type is not specified,
|
|
63
57
|
// ensure this assumption is valid or force API to specify type.
|
|
@@ -69,11 +63,11 @@ export default class Accessor {
|
|
|
69
63
|
// Usually [programAccessor, bufferAccessor, appAccessor]
|
|
70
64
|
// All props will be set in the returned object.
|
|
71
65
|
// TODO check for conflicts between values in the supplied accessors
|
|
72
|
-
static resolve(...accessors): Accessor {
|
|
66
|
+
static resolve(...accessors: AccessorObject[]): Accessor {
|
|
73
67
|
return new Accessor(...[DEFAULT_ACCESSOR_VALUES, ...accessors]); // Default values
|
|
74
68
|
}
|
|
75
69
|
|
|
76
|
-
constructor(...accessors:
|
|
70
|
+
constructor(...accessors: AccessorObject[]) {
|
|
77
71
|
accessors.forEach((accessor) => this._assign(accessor)); // Merge in sequence
|
|
78
72
|
Object.freeze(this);
|
|
79
73
|
}
|
|
@@ -96,7 +90,7 @@ export default class Accessor {
|
|
|
96
90
|
// PRIVATE
|
|
97
91
|
|
|
98
92
|
// eslint-disable-next-line complexity, max-statements
|
|
99
|
-
_assign(props: AccessorObject = {}) {
|
|
93
|
+
_assign(props: AccessorObject = {}): this {
|
|
100
94
|
props = checkProps('Accessor', props, PROP_CHECKS);
|
|
101
95
|
|
|
102
96
|
if (props.type !== undefined) {
|
|
@@ -104,7 +98,7 @@ export default class Accessor {
|
|
|
104
98
|
|
|
105
99
|
// Auto-deduce integer type?
|
|
106
100
|
if (props.type === GL.INT || props.type === GL.UNSIGNED_INT) {
|
|
107
|
-
|
|
101
|
+
this.integer = true;
|
|
108
102
|
}
|
|
109
103
|
}
|
|
110
104
|
if (props.size !== undefined) {
|
|
@@ -116,6 +110,11 @@ export default class Accessor {
|
|
|
116
110
|
if (props.stride !== undefined) {
|
|
117
111
|
this.stride = props.stride;
|
|
118
112
|
}
|
|
113
|
+
// @ts-expect-error
|
|
114
|
+
if (props.normalize !== undefined) {
|
|
115
|
+
// @ts-expect-error
|
|
116
|
+
this.normalized = props.normalize;
|
|
117
|
+
}
|
|
119
118
|
if (props.normalized !== undefined) {
|
|
120
119
|
this.normalized = props.normalized;
|
|
121
120
|
}
|
|
@@ -144,13 +143,28 @@ export default class Accessor {
|
|
|
144
143
|
}
|
|
145
144
|
|
|
146
145
|
// DEPRECATED
|
|
146
|
+
// @ts-expect-error
|
|
147
147
|
if (props.instanced !== undefined) {
|
|
148
|
+
// @ts-expect-error
|
|
148
149
|
this.divisor = props.instanced ? 1 : 0;
|
|
149
150
|
}
|
|
151
|
+
// @ts-expect-error
|
|
150
152
|
if (props.isInstanced !== undefined) {
|
|
153
|
+
// @ts-expect-error
|
|
151
154
|
this.divisor = props.isInstanced ? 1 : 0;
|
|
152
155
|
}
|
|
153
156
|
|
|
157
|
+
if (this.offset === undefined) delete this.offset;
|
|
158
|
+
if (this.stride === undefined) delete this.stride;
|
|
159
|
+
if (this.type === undefined) delete this.type;
|
|
160
|
+
if (this.size === undefined) delete this.size;
|
|
161
|
+
if (this.divisor === undefined) delete this.divisor;
|
|
162
|
+
if (this.normalized === undefined) delete this.normalized;
|
|
163
|
+
if (this.integer === undefined) delete this.integer;
|
|
164
|
+
|
|
165
|
+
if (this.buffer === undefined) delete this.buffer;
|
|
166
|
+
if (this.index === undefined) delete this.index;
|
|
167
|
+
|
|
154
168
|
return this;
|
|
155
169
|
}
|
|
156
170
|
}
|
|
@@ -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
|
-
|
|
86
|
+
constructor(device: Device | WebGLRenderingContext, props?: ClassicBufferProps);
|
|
87
|
+
constructor(device: Device | WebGLRenderingContext, data: ArrayBufferView | number[]);
|
|
88
|
+
constructor(device: Device | WebGLRenderingContext, byteLength: number);
|
|
76
89
|
|
|
77
|
-
constructor(
|
|
78
|
-
|
|
79
|
-
constructor(gl: WebGLRenderingContext, byteLength: number);
|
|
90
|
+
constructor(device: Device | WebGLRenderingContext, props = {}) {
|
|
91
|
+
super(WebGLDevice.attach(device), getWEBGLBufferProps(props));
|
|
80
92
|
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
// Base class initializes
|
|
94
|
+
// this.initialize(props);
|
|
83
95
|
|
|
84
|
-
|
|
85
|
-
this.
|
|
86
|
-
const handle = typeof props === 'object' ? (props as BufferProps).handle : undefined;
|
|
87
|
-
this.handle = handle || this.gl.createBuffer();
|
|
88
|
-
|
|
89
|
-
// In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
|
|
90
|
-
// otherwise buffer type will lock to generic (non-element) buffer
|
|
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
|
}
|
|
@@ -107,13 +116,16 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
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: {
|
|
@@ -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
|
|
@@ -341,7 +353,6 @@ 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) {
|
|
@@ -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,6 @@
|
|
|
1
|
+
import {TypedArray} from '@luma.gl/api/types';
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
3
|
+
import {GLType} from '../types/webgl'
|
|
2
4
|
|
|
3
5
|
const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
|
|
4
6
|
|
|
@@ -18,7 +20,7 @@ type TypedArrayConstructor =
|
|
|
18
20
|
* @param {*} arrayOrType
|
|
19
21
|
* @returns
|
|
20
22
|
*/
|
|
21
|
-
export function getGLTypeFromTypedArray(arrayOrType) {
|
|
23
|
+
export function getGLTypeFromTypedArray(arrayOrType: TypedArray): GLType {
|
|
22
24
|
// If typed array, look up constructor
|
|
23
25
|
const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
24
26
|
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;
|
|
@@ -57,6 +57,13 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
57
57
|
// Create the desired context
|
|
58
58
|
let gl = null;
|
|
59
59
|
|
|
60
|
+
if (props.type === 'webgl2') {
|
|
61
|
+
props = {...props, webgl1: false};
|
|
62
|
+
}
|
|
63
|
+
if (props.type === 'webgl1') {
|
|
64
|
+
props = {...props, webgl2: false};
|
|
65
|
+
}
|
|
66
|
+
|
|
60
67
|
// Prefer webgl2 over webgl1 if both are acceptable
|
|
61
68
|
if (props.webgl2) {
|
|
62
69
|
gl = gl || canvas.getContext('webgl2', props);
|
|
@@ -81,3 +88,23 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
81
88
|
|
|
82
89
|
return gl;
|
|
83
90
|
}
|
|
91
|
+
|
|
92
|
+
/* TODO - can we call this asynchronously to catch the error events?
|
|
93
|
+
export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
|
|
94
|
+
props = {...DEFAULT_CONTEXT_PROPS, ...props};
|
|
95
|
+
|
|
96
|
+
// Try to extract any extra information about why context creation failed
|
|
97
|
+
let errorMessage = null;
|
|
98
|
+
const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
|
|
99
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
100
|
+
|
|
101
|
+
const gl = createBrowserContext(canvas, props);
|
|
102
|
+
|
|
103
|
+
// Give the listener a chance to fire
|
|
104
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
105
|
+
|
|
106
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
107
|
+
|
|
108
|
+
return gl;
|
|
109
|
+
}
|
|
110
|
+
*/
|
|
@@ -52,7 +52,7 @@ 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
56
|
// NOTE: if options.width and options.height not used remove in v8
|
|
57
57
|
let clientWidth = 'width' in options ? options.width : gl.canvas.clientWidth;
|
|
58
58
|
let clientHeight = 'height' in options ? options.height : gl.canvas.clientHeight;
|
|
@@ -101,7 +101,12 @@ export function setDevicePixelRatio(gl, devicePixelRatio, options: {width?: numb
|
|
|
101
101
|
|
|
102
102
|
// PRIVATE
|
|
103
103
|
|
|
104
|
-
function scalePixels(pixel, ratio, width, height, yInvert) {
|
|
104
|
+
function scalePixels(pixel: number[], ratio: number, width: number, height: number, yInvert: boolean): {
|
|
105
|
+
x: number;
|
|
106
|
+
y: number;
|
|
107
|
+
width: number;
|
|
108
|
+
height: number;
|
|
109
|
+
} {
|
|
105
110
|
const x = scaleX(pixel[0], ratio, width);
|
|
106
111
|
let y = scaleY(pixel[1], ratio, height, yInvert);
|
|
107
112
|
|
|
@@ -133,13 +138,13 @@ function scalePixels(pixel, ratio, width, height, yInvert) {
|
|
|
133
138
|
};
|
|
134
139
|
}
|
|
135
140
|
|
|
136
|
-
function scaleX(x, ratio, width) {
|
|
141
|
+
function scaleX(x: number, ratio: number, width: number): number {
|
|
137
142
|
// since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
|
|
138
143
|
const r = Math.min(Math.round(x * ratio), width - 1);
|
|
139
144
|
return r;
|
|
140
145
|
}
|
|
141
146
|
|
|
142
|
-
function scaleY(y, ratio, height, yInvert) {
|
|
147
|
+
function scaleY(y: number, ratio: number, height: number, yInvert: boolean): number {
|
|
143
148
|
// since we are rounding to nearest, when ratio > 1, edge pixels may point to out of bounds value, clamp to the limit
|
|
144
149
|
return yInvert
|
|
145
150
|
? 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(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
|
+
}
|