@luma.gl/webgl 8.6.0-alpha.4 → 9.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -67
- package/dist/adapter/converters/device-parameters.d.ts +17 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +36 -5
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +208 -0
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +93 -0
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/texture-formats.js +954 -0
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.d.ts +4 -0
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +35 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +3 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +27 -48
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +81 -0
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts +4 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +115 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.d.ts +26 -0
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
- package/dist/adapter/helpers/uniforms.js +99 -0
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
- package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-buffer.js +164 -0
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +40 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +50 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
- package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +13 -20
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +193 -0
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
- package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +36 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
- package/dist/adapter/webgl-canvas-context.js +54 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +58 -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/{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 +65 -307
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +1 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
- package/dist/es5/types/webgl.js.map +1 -0
- package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +36 -5
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
- package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/esm/adapter/converters/sampler-parameters.js +208 -0
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/texture-formats.js +954 -0
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
- package/dist/esm/adapter/converters/vertex-formats.js +35 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +27 -48
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/adapter/helpers/set-uniform.js +115 -0
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/esm/adapter/helpers/uniforms.js +99 -0
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +13 -20
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +54 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +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/esm/{classes/webgl-buffer.js → classic/buffer.js} +53 -51
- package/dist/esm/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
- package/dist/esm/classic/typed-array-utils.js.map +1 -0
- package/dist/esm/context/context/context-state.js +1 -1
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/esm/context/context/create-context.js +12 -0
- package/dist/esm/context/context/create-context.js.map +1 -1
- package/dist/esm/context/context/device-pixels.js.map +1 -1
- package/dist/esm/context/debug/spector.js +76 -0
- package/dist/esm/context/debug/spector.js.map +1 -0
- package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +4 -4
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +4 -3
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +25 -11
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/index.js +19 -31
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +2 -31
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js +2 -0
- package/dist/esm/types/webgl.js.map +1 -0
- package/dist/index.d.ts +22 -46
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -31
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +2 -31
- package/dist/init.js.map +1 -1
- package/dist/types/webgl.d.ts +144 -0
- package/dist/types/webgl.d.ts.map +1 -0
- package/dist/types/webgl.js +2 -0
- package/dist/types/webgl.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +52 -9
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +175 -0
- package/src/adapter/converters/texture-formats.ts +633 -0
- package/src/adapter/converters/vertex-formats.ts +22 -0
- package/src/adapter/device-helpers/device-features.ts +46 -123
- package/src/adapter/device-helpers/device-limits.ts +5 -2
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/attribute-utils.ts +61 -0
- package/src/adapter/helpers/get-shader-layout.ts +388 -0
- package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
- package/src/adapter/helpers/set-uniform.ts +87 -0
- package/src/adapter/helpers/uniforms.ts +110 -0
- package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
- package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
- package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
- package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
- package/src/adapter/resources/webgl-buffer.ts +219 -0
- package/src/adapter/resources/webgl-command-buffer.ts +94 -0
- package/src/adapter/resources/webgl-command-encoder.ts +58 -0
- package/src/adapter/resources/webgl-external-texture.ts +92 -0
- package/src/adapter/resources/webgl-framebuffer.ts +279 -0
- package/src/adapter/resources/webgl-render-pass.ts +23 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
- package/src/adapter/resources/webgl-sampler.ts +54 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
- package/src/adapter/resources/webgl-texture.ts +1023 -0
- package/src/adapter/webgl-canvas-context.ts +74 -0
- package/src/adapter/webgl-device.ts +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 -102
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +283 -0
- package/dist/_deprecated/context-api.d.ts +0 -85
- package/dist/_deprecated/context-api.d.ts.map +0 -1
- package/dist/_deprecated/context-api.js +0 -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/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/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/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,154 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-inline-comments */
|
|
2
|
-
import {assert} from '@luma.gl/api';
|
|
3
|
-
import GL from '@luma.gl/constants';
|
|
4
|
-
import WebGLDevice from '../adapter/webgl-device';
|
|
5
|
-
import WebGLResource, {ResourceProps} from './webgl-resource';
|
|
6
|
-
import {isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel} from './renderbuffer-formats';
|
|
7
|
-
import {isWebGL2} from '../context/context/webgl-checks';
|
|
8
|
-
|
|
9
|
-
export type RenderbufferProps = ResourceProps & {
|
|
10
|
-
format: number;
|
|
11
|
-
width?: number;
|
|
12
|
-
height?: number;
|
|
13
|
-
samples?: number;
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
17
|
-
id: undefined,
|
|
18
|
-
handle: undefined,
|
|
19
|
-
userData: undefined,
|
|
20
|
-
format: 0,
|
|
21
|
-
width: 1,
|
|
22
|
-
height: 1,
|
|
23
|
-
samples: 0
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Renderbuffers are GPU objects that contain images.
|
|
28
|
-
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
29
|
-
* while Textures may not be, and are the logical choice when
|
|
30
|
-
* you do not need to sample (i.e. in a post-pass shader)
|
|
31
|
-
* from the produced image. If you need to resample
|
|
32
|
-
* (such as when reading depth back in a second shader pass),
|
|
33
|
-
* use Textures instead.
|
|
34
|
-
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
35
|
-
*/
|
|
36
|
-
export class ImmutableRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
37
|
-
static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
|
|
38
|
-
return !options.format || isRenderbufferFormatSupported(gl, options.format);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
constructor(gl: WebGLRenderingContext, props: RenderbufferProps) {
|
|
42
|
-
super(WebGLDevice.attach(gl), props, DEFAULT_RENDERBUFFER_PROPS);
|
|
43
|
-
this._initialize(this.props);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// PRIVATE METHODS
|
|
47
|
-
|
|
48
|
-
/** Creates and initializes a renderbuffer object's data store */
|
|
49
|
-
protected _initialize(props: Required<RenderbufferProps>) {
|
|
50
|
-
const {format, width, height, samples} = props;
|
|
51
|
-
assert(format, 'Needs format');
|
|
52
|
-
|
|
53
|
-
this.trackDeallocatedMemory();
|
|
54
|
-
|
|
55
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
56
|
-
|
|
57
|
-
if (samples !== 0 && isWebGL2(this.gl)) {
|
|
58
|
-
// @ts-expect-error
|
|
59
|
-
this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
|
|
60
|
-
} else {
|
|
61
|
-
this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
65
|
-
|
|
66
|
-
this.trackAllocatedMemory(
|
|
67
|
-
width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format)
|
|
68
|
-
);
|
|
69
|
-
|
|
70
|
-
return this;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// RESOURECE IMPLEMENTATION
|
|
74
|
-
|
|
75
|
-
_createHandle() {
|
|
76
|
-
return this.gl.createRenderbuffer();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
_deleteHandle(): void {
|
|
80
|
-
this.gl.deleteRenderbuffer(this.handle);
|
|
81
|
-
this.trackDeallocatedMemory();
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
_bindHandle(handle): void {
|
|
85
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Renderbuffers are GPU objects that contain images.
|
|
92
|
-
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
93
|
-
* while Textures may not be, and are the logical choice when
|
|
94
|
-
* you do not need to sample (i.e. in a post-pass shader)
|
|
95
|
-
* from the produced image. If you need to resample
|
|
96
|
-
* (such as when reading depth back in a second shader pass),
|
|
97
|
-
* use Textures instead.
|
|
98
|
-
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
99
|
-
*/
|
|
100
|
-
export default class Renderbuffer extends ImmutableRenderbuffer {
|
|
101
|
-
get width(): number { return this.props.width; }
|
|
102
|
-
get height(): number { return this.props.height; }
|
|
103
|
-
get format(): number { return this.props.format; }
|
|
104
|
-
get samples(): number { return this.props.samples; }
|
|
105
|
-
|
|
106
|
-
static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {
|
|
107
|
-
return ImmutableRenderbuffer.isSupported(gl, options);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
static getSamplesForFormat(gl: WebGL2RenderingContext, options: {format: number}): number{
|
|
111
|
-
// Polyfilled to return [0] under WebGL1
|
|
112
|
-
return gl.getInternalformatParameter(GL.RENDERBUFFER, options.format, GL.SAMPLES);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
constructor(gl: WebGLRenderingContext, props?: RenderbufferProps) {
|
|
116
|
-
super(gl, props);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
resize(size: {width: number, height: number}): this {
|
|
120
|
-
// Don't resize if width/height haven't changed
|
|
121
|
-
if (size.width !== this.width || size.height !== this.height) {
|
|
122
|
-
return this.initialize({...size, format: this.format, samples: this.samples});
|
|
123
|
-
}
|
|
124
|
-
return this;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/** Creates and initializes a renderbuffer object's data store */
|
|
128
|
-
initialize(props: RenderbufferProps): this {
|
|
129
|
-
Object.assign(this.props, props);
|
|
130
|
-
this._initialize(this.props);
|
|
131
|
-
return this;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// PRIVATE
|
|
135
|
-
|
|
136
|
-
_syncHandle(handle) {
|
|
137
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
138
|
-
Object.assign(this.props, {
|
|
139
|
-
format: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_INTERNAL_FORMAT),
|
|
140
|
-
width: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_WIDTH),
|
|
141
|
-
height: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_HEIGHT),
|
|
142
|
-
samples: this.gl.getRenderbufferParameter(GL.RENDERBUFFER, GL.RENDERBUFFER_SAMPLES)
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// @param {Boolean} opt.autobind=true - method call will bind/unbind object
|
|
147
|
-
// @returns {GLenum|GLint} - depends on pname
|
|
148
|
-
_getParameter(pname) {
|
|
149
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
150
|
-
const value = this.gl.getRenderbufferParameter(GL.RENDERBUFFER, pname);
|
|
151
|
-
// this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
152
|
-
return value;
|
|
153
|
-
}
|
|
154
|
-
}
|
package/src/classes/shader.ts
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
// luma.gl, MIT license
|
|
2
|
-
import {assert, uid, ShaderProps} from '@luma.gl/api';
|
|
3
|
-
import GL from '@luma.gl/constants';
|
|
4
|
-
import {getShaderInfo} from '@luma.gl/shadertools';
|
|
5
|
-
import {assertWebGLContext} from '../context/context/webgl-checks';
|
|
6
|
-
import {WEBGLShader} from '../adapter/webgl-shader'
|
|
7
|
-
import WebGLDevice from '../adapter/webgl-device'
|
|
8
|
-
|
|
9
|
-
const ERR_SOURCE = 'Shader: GLSL source code must be a JavaScript string';
|
|
10
|
-
|
|
11
|
-
export type {ShaderProps};
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
15
|
-
* This is an internal class, use FragmentShader or VertexShader
|
|
16
|
-
*/
|
|
17
|
-
export class Shader extends WEBGLShader {
|
|
18
|
-
shaderType: GL.FRAGMENT_SHADER | GL.VERTEX_SHADER;
|
|
19
|
-
source: string;
|
|
20
|
-
|
|
21
|
-
static getTypeName(shaderType: any): 'vertex-shader' | 'fragment-shader' | 'unknown' {
|
|
22
|
-
switch (shaderType) {
|
|
23
|
-
case GL.VERTEX_SHADER:
|
|
24
|
-
return 'vertex-shader';
|
|
25
|
-
case GL.FRAGMENT_SHADER:
|
|
26
|
-
return 'fragment-shader';
|
|
27
|
-
default:
|
|
28
|
-
assert(false);
|
|
29
|
-
return 'unknown';
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'>) {
|
|
34
|
-
assertWebGLContext(gl);
|
|
35
|
-
assert(typeof props.source === 'string', ERR_SOURCE);
|
|
36
|
-
super(WebGLDevice.attach(gl), {...props, stage: props.shaderType === GL.VERTEX_SHADER ? 'vertex' : 'fragment'});
|
|
37
|
-
|
|
38
|
-
this.shaderType = props.shaderType;
|
|
39
|
-
this.source = props.source;
|
|
40
|
-
|
|
41
|
-
const shaderName = getShaderInfo(props.source).name;
|
|
42
|
-
if (shaderName) {
|
|
43
|
-
this.id = uid(shaderName);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
initialize(props: ShaderProps): this {
|
|
48
|
-
this._compile(props.source);
|
|
49
|
-
const shaderName = getShaderInfo(props.source).name;
|
|
50
|
-
if (shaderName) {
|
|
51
|
-
this.id = uid(shaderName);
|
|
52
|
-
}
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Accessors
|
|
57
|
-
|
|
58
|
-
getParameter(pname: number): any {
|
|
59
|
-
return this.gl.getShaderParameter(this.handle, pname);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
toString(): string {
|
|
63
|
-
return `${Shader.getTypeName(this.shaderType)}:${this.id}`;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
getName(): string {
|
|
67
|
-
return getShaderInfo(this.source).name || 'unnamed-shader';
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
getSource(): string {
|
|
71
|
-
return this.gl.getShaderSource(this.handle);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/** Debug method - Returns translated source if available */
|
|
75
|
-
getTranslatedSource(): string {
|
|
76
|
-
const extension = this.gl.getExtension('WEBGL_debug_shaders');
|
|
77
|
-
return extension
|
|
78
|
-
? extension.getTranslatedShaderSource(this.handle)
|
|
79
|
-
: 'No translated source available. WEBGL_debug_shaders not implemented';
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// PRIVATE METHODS
|
|
83
|
-
|
|
84
|
-
_getOptsFromHandle() {
|
|
85
|
-
return {
|
|
86
|
-
type: this.getParameter(GL.SHADER_TYPE),
|
|
87
|
-
source: this.getSource()
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
94
|
-
* @deprecated Use `device.createShader({stage: 'vertex', ...})`
|
|
95
|
-
*/
|
|
96
|
-
export class VertexShader extends Shader {
|
|
97
|
-
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {
|
|
98
|
-
super(gl, getShaderProps(props, GL.VERTEX_SHADER));
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
// PRIVATE METHODS
|
|
102
|
-
_createHandle() {
|
|
103
|
-
return this.gl.createShader(GL.VERTEX_SHADER);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Encapsulates the compiled or linked Shaders that execute portions of the WebGL Pipeline
|
|
109
|
-
* @deprecated Use `device.createShader({stage: 'fragment', ...})`
|
|
110
|
-
*/
|
|
111
|
-
export class FragmentShader extends Shader {
|
|
112
|
-
constructor(gl: WebGLRenderingContext, props: Omit<ShaderProps, 'stage'> | string) {
|
|
113
|
-
super(gl, getShaderProps(props, GL.FRAGMENT_SHADER));
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
// PRIVATE METHODS
|
|
117
|
-
_createHandle() {
|
|
118
|
-
return this.gl.createShader(GL.FRAGMENT_SHADER);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// HELPERS
|
|
123
|
-
|
|
124
|
-
function getShaderProps(props: Omit<ShaderProps, 'stage'> | string, shaderType: GL.VERTEX_SHADER | GL.FRAGMENT_SHADER): Omit<ShaderProps, 'stage'> {
|
|
125
|
-
if (typeof props === 'string') {
|
|
126
|
-
return {source: props, shaderType};
|
|
127
|
-
}
|
|
128
|
-
return {...props, shaderType};
|
|
129
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import {Device, loadImage} from '@luma.gl/api';
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
3
|
-
import Texture, {TextureProps, TextureSupportOptions} from './texture';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type Texture2DProps = TextureProps & {
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export default class Texture2D extends Texture {
|
|
10
|
-
static isSupported(device: Device | WebGLRenderingContext, opts?: TextureSupportOptions): boolean {
|
|
11
|
-
return Texture.isSupported(device, opts);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
constructor(device: Device | WebGLRenderingContext, props?: Texture2DProps | Promise<Texture2DProps>) {
|
|
15
|
-
// Signature: new Texture2D(gl, url | Promise)
|
|
16
|
-
if (props instanceof Promise || typeof props === 'string') {
|
|
17
|
-
props = {data: props};
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// Signature: new Texture2D(gl, {data: url})
|
|
21
|
-
if (typeof props?.data === 'string') {
|
|
22
|
-
props = Object.assign({}, props, {data: loadImage(props.data)});
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
super(device, Object.assign({}, props, {target: GL.TEXTURE_2D}));
|
|
26
|
-
|
|
27
|
-
this.initialize(props);
|
|
28
|
-
|
|
29
|
-
Object.seal(this);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
get [Symbol.toStringTag](): string {
|
|
33
|
-
return 'Texture2D';
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import {Device} from '@luma.gl/api';
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
3
|
-
import WebGLDevice from '../adapter/webgl-device';
|
|
4
|
-
import {assertWebGL2Context} from '../context/context/webgl-checks';
|
|
5
|
-
import {withParameters} from '../context/state-tracker/with-parameters';
|
|
6
|
-
import Texture, {TextureProps} from './texture';
|
|
7
|
-
import {DATA_FORMAT_CHANNELS, TYPE_SIZES} from './texture-formats';
|
|
8
|
-
import Buffer from './webgl-buffer';
|
|
9
|
-
|
|
10
|
-
export type Texture3DProps = TextureProps & {
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
type SetImageDataOptions = {
|
|
14
|
-
level?: number;
|
|
15
|
-
dataFormat?: any;
|
|
16
|
-
width: any;
|
|
17
|
-
height: any;
|
|
18
|
-
depth?: number;
|
|
19
|
-
border?: number;
|
|
20
|
-
format: any;
|
|
21
|
-
type?: any;
|
|
22
|
-
offset?: number;
|
|
23
|
-
data: any;
|
|
24
|
-
parameters?: {};
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Textures that have 3 dimensions: width, height, and depth.
|
|
29
|
-
* They are accessed by 3-dimensional texture coordinates.
|
|
30
|
-
*/
|
|
31
|
-
export default class Texture3D extends Texture {
|
|
32
|
-
static isSupported(device: Device | WebGLRenderingContext): boolean {
|
|
33
|
-
try {
|
|
34
|
-
const webglDevice = WebGLDevice.attach(device);
|
|
35
|
-
return webglDevice.isWebGL2;
|
|
36
|
-
} catch {
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
constructor(device: Device | WebGL2RenderingContext, props: Texture3DProps = {}) {
|
|
42
|
-
super(device, {...props, target: GL.TEXTURE_3D});
|
|
43
|
-
assertWebGL2Context(this.gl2);
|
|
44
|
-
props = Object.assign({depth: 1}, props, {target: GL.TEXTURE_3D, unpackFlipY: false});
|
|
45
|
-
this.initialize(props);
|
|
46
|
-
Object.seal(this);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
get [Symbol.toStringTag](): string {
|
|
50
|
-
return 'Texture3D';
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/** Image 3D copies from Typed Array or WebGLBuffer */
|
|
54
|
-
setImageData({
|
|
55
|
-
level = 0,
|
|
56
|
-
dataFormat = GL.RGBA,
|
|
57
|
-
width,
|
|
58
|
-
height,
|
|
59
|
-
depth = 1,
|
|
60
|
-
border = 0,
|
|
61
|
-
format,
|
|
62
|
-
type = GL.UNSIGNED_BYTE,
|
|
63
|
-
offset = 0,
|
|
64
|
-
data,
|
|
65
|
-
parameters = {}
|
|
66
|
-
}: SetImageDataOptions) {
|
|
67
|
-
this.trackDeallocatedMemory('Texture');
|
|
68
|
-
|
|
69
|
-
this.gl.bindTexture(this.target, this.handle);
|
|
70
|
-
|
|
71
|
-
withParameters(this.gl, parameters, () => {
|
|
72
|
-
if (ArrayBuffer.isView(data)) {
|
|
73
|
-
// @ts-expect-error
|
|
74
|
-
this.gl.texImage3D(
|
|
75
|
-
this.target,
|
|
76
|
-
level,
|
|
77
|
-
dataFormat,
|
|
78
|
-
width,
|
|
79
|
-
height,
|
|
80
|
-
depth,
|
|
81
|
-
border,
|
|
82
|
-
format,
|
|
83
|
-
type,
|
|
84
|
-
data
|
|
85
|
-
);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
if (data instanceof Buffer) {
|
|
89
|
-
this.gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, data.handle);
|
|
90
|
-
// @ts-expect-error
|
|
91
|
-
this.gl.texImage3D(
|
|
92
|
-
this.target,
|
|
93
|
-
level,
|
|
94
|
-
dataFormat,
|
|
95
|
-
width,
|
|
96
|
-
height,
|
|
97
|
-
depth,
|
|
98
|
-
border,
|
|
99
|
-
format,
|
|
100
|
-
type,
|
|
101
|
-
offset
|
|
102
|
-
);
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
|
|
106
|
-
if (data && data.byteLength) {
|
|
107
|
-
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
108
|
-
} else {
|
|
109
|
-
// NOTE(Tarek): Default to RGBA bytes
|
|
110
|
-
const channels = DATA_FORMAT_CHANNELS[this.dataFormat] || 4;
|
|
111
|
-
const channelSize = TYPE_SIZES[this.type] || 1;
|
|
112
|
-
|
|
113
|
-
this.trackAllocatedMemory(
|
|
114
|
-
this.width * this.height * this.depth * channels * channelSize,
|
|
115
|
-
'Texture'
|
|
116
|
-
);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
this.loaded = true;
|
|
120
|
-
|
|
121
|
-
return this;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
import {Device, log} from '@luma.gl/api';
|
|
2
|
-
import GL from '@luma.gl/constants';
|
|
3
|
-
import WebGLDevice from '../adapter/webgl-device';
|
|
4
|
-
import {assertWebGLContext} from '../context/context/webgl-checks';
|
|
5
|
-
import Texture, {TextureProps} from './texture';
|
|
6
|
-
|
|
7
|
-
export type TextureCubeProps = TextureProps & {
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export default class TextureCube extends Texture {
|
|
11
|
-
static FACES: number[] = [
|
|
12
|
-
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
13
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_X,
|
|
14
|
-
GL.TEXTURE_CUBE_MAP_POSITIVE_Y,
|
|
15
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_Y,
|
|
16
|
-
GL.TEXTURE_CUBE_MAP_POSITIVE_Z,
|
|
17
|
-
GL.TEXTURE_CUBE_MAP_NEGATIVE_Z
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
props;
|
|
21
|
-
|
|
22
|
-
constructor(device: Device | WebGLRenderingContext, props?: TextureCubeProps) {
|
|
23
|
-
super(device, Object.assign({}, props, {target: GL.TEXTURE_CUBE_MAP}));
|
|
24
|
-
|
|
25
|
-
this.initialize(props);
|
|
26
|
-
|
|
27
|
-
Object.seal(this);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
get [Symbol.toStringTag](): string {
|
|
31
|
-
return 'TextureCube';
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
initialize(props?: TextureCubeProps): this {
|
|
35
|
-
const {mipmaps = true, parameters = {}} = props;
|
|
36
|
-
|
|
37
|
-
// Store props for accessors
|
|
38
|
-
this.props = props;
|
|
39
|
-
|
|
40
|
-
// @ts-expect-error
|
|
41
|
-
this.setCubeMapImageData(props).then(() => {
|
|
42
|
-
this.loaded = true;
|
|
43
|
-
|
|
44
|
-
// TODO - should genMipmap() be called on the cubemap or on the faces?
|
|
45
|
-
// TODO - without generateMipmap() cube textures do not work at all!!! Why?
|
|
46
|
-
if (mipmaps) {
|
|
47
|
-
this.generateMipmap(props);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
this.setParameters(parameters);
|
|
51
|
-
});
|
|
52
|
-
return this;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
subImage(options: {face: any; data: any; x?: number; y?: number; mipmapLevel?: number}): any {
|
|
56
|
-
const {face, data, x = 0, y = 0, mipmapLevel = 0} = options;
|
|
57
|
-
// @ts-expect-error TODO - is this a bug?
|
|
58
|
-
return this._subImage({target: face, data, x, y, mipmapLevel});
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* eslint-disable max-statements, max-len */
|
|
62
|
-
async setCubeMapImageData(options: {
|
|
63
|
-
width: any;
|
|
64
|
-
height: any;
|
|
65
|
-
pixels: any;
|
|
66
|
-
data: any;
|
|
67
|
-
border?: number;
|
|
68
|
-
format?: any;
|
|
69
|
-
type?: any;
|
|
70
|
-
}): Promise<void>{
|
|
71
|
-
const {gl} = this;
|
|
72
|
-
|
|
73
|
-
const {
|
|
74
|
-
width,
|
|
75
|
-
height,
|
|
76
|
-
pixels,
|
|
77
|
-
data,
|
|
78
|
-
border = 0,
|
|
79
|
-
format = GL.RGBA,
|
|
80
|
-
type = GL.UNSIGNED_BYTE
|
|
81
|
-
} = options;
|
|
82
|
-
const imageDataMap = pixels || data;
|
|
83
|
-
|
|
84
|
-
// pixel data (imageDataMap) is an Object from Face to Image or Promise.
|
|
85
|
-
// For example:
|
|
86
|
-
// {
|
|
87
|
-
// GL.TEXTURE_CUBE_MAP_POSITIVE_X : Image-or-Promise,
|
|
88
|
-
// GL.TEXTURE_CUBE_MAP_NEGATIVE_X : Image-or-Promise,
|
|
89
|
-
// ... }
|
|
90
|
-
// To provide multiple level-of-details (LODs) this can be Face to Array
|
|
91
|
-
// of Image or Promise, like this
|
|
92
|
-
// {
|
|
93
|
-
// GL.TEXTURE_CUBE_MAP_POSITIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
|
|
94
|
-
// GL.TEXTURE_CUBE_MAP_NEGATIVE_X : [Image-or-Promise-LOD-0, Image-or-Promise-LOD-1],
|
|
95
|
-
// ... }
|
|
96
|
-
|
|
97
|
-
const resolvedFaces = await Promise.all(
|
|
98
|
-
TextureCube.FACES.map((face) => {
|
|
99
|
-
const facePixels = imageDataMap[face];
|
|
100
|
-
return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
|
|
101
|
-
})
|
|
102
|
-
);
|
|
103
|
-
|
|
104
|
-
this.bind();
|
|
105
|
-
|
|
106
|
-
TextureCube.FACES.forEach((face, index) => {
|
|
107
|
-
if (resolvedFaces[index].length > 1 && this.props.mipmaps !== false) {
|
|
108
|
-
// If the user provides multiple LODs, then automatic mipmap
|
|
109
|
-
// generation generateMipmap() should be disabled to avoid overwritting them.
|
|
110
|
-
log.warn(`${this.id} has mipmap and multiple LODs.`)();
|
|
111
|
-
}
|
|
112
|
-
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
113
|
-
// TODO: adjust width & height for LOD!
|
|
114
|
-
if (width && height) {
|
|
115
|
-
gl.texImage2D(face, lodLevel, format, width, height, border, format, type, image);
|
|
116
|
-
} else {
|
|
117
|
-
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
});
|
|
121
|
-
|
|
122
|
-
this.unbind();
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
// TODO: update this method to accept LODs
|
|
126
|
-
setImageDataForFace(options) {
|
|
127
|
-
const {
|
|
128
|
-
face,
|
|
129
|
-
width,
|
|
130
|
-
height,
|
|
131
|
-
pixels,
|
|
132
|
-
data,
|
|
133
|
-
border = 0,
|
|
134
|
-
format = GL.RGBA,
|
|
135
|
-
type = GL.UNSIGNED_BYTE
|
|
136
|
-
// generateMipmap = false // TODO
|
|
137
|
-
} = options;
|
|
138
|
-
|
|
139
|
-
const {gl} = this;
|
|
140
|
-
|
|
141
|
-
const imageData = pixels || data;
|
|
142
|
-
|
|
143
|
-
this.bind();
|
|
144
|
-
if (imageData instanceof Promise) {
|
|
145
|
-
imageData.then((resolvedImageData) =>
|
|
146
|
-
this.setImageDataForFace(
|
|
147
|
-
Object.assign({}, options, {
|
|
148
|
-
face,
|
|
149
|
-
data: resolvedImageData,
|
|
150
|
-
pixels: resolvedImageData
|
|
151
|
-
})
|
|
152
|
-
)
|
|
153
|
-
);
|
|
154
|
-
} else if (this.width || this.height) {
|
|
155
|
-
gl.texImage2D(face, 0, format, width, height, border, format, type, imageData);
|
|
156
|
-
} else {
|
|
157
|
-
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
return this;
|
|
161
|
-
}
|
|
162
|
-
}
|