@luma.gl/webgl 8.6.0-alpha.5 → 9.0.0-alpha.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -67
- package/dist/adapter/converters/device-parameters.d.ts +27 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +227 -0
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +93 -0
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/texture-formats.js +954 -0
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.d.ts +4 -0
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +35 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +3 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +39 -50
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +81 -0
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +330 -0
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts +4 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +115 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.d.ts +26 -0
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
- package/dist/adapter/helpers/uniforms.js +99 -0
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
- package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-buffer.js +164 -0
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +41 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +267 -0
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +21 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.js +428 -0
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +50 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
- package/dist/{esm/adapter → adapter/resources}/webgl-shader.js +17 -23
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +193 -0
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
- package/dist/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +36 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
- package/dist/adapter/webgl-canvas-context.js +52 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +77 -83
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +253 -115
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +32 -0
- package/dist/classic/accessor.d.ts.map +1 -0
- package/dist/{classes → classic}/accessor.js +33 -1
- package/dist/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
- package/dist/classic/buffer.d.ts.map +1 -0
- package/dist/{classes/webgl-buffer.js → classic/buffer.js} +67 -57
- package/dist/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
- package/dist/classic/typed-array-utils.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/context-state.d.ts +0 -5
- package/dist/context/context/context-state.d.ts.map +1 -1
- package/dist/context/context/context-state.js +1 -6
- package/dist/context/context/context-state.js.map +1 -1
- package/dist/context/context/{create-context.d.ts → create-browser-context.d.ts} +2 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/{esm/context/context/create-context.js → context/context/create-browser-context.js} +27 -3
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +43 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/debug/spector.d.ts +18 -0
- package/dist/context/debug/spector.d.ts.map +1 -0
- package/dist/context/debug/spector.js +76 -0
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
- package/dist/context/debug/webgl-developer-tools.js +121 -0
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -7
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -8
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +3 -3
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +1 -1
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +26 -12
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +6 -2
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +53 -6
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
- package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/es5/adapter/converters/sampler-parameters.js +245 -0
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/texture-formats.js +1031 -0
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
- package/dist/es5/adapter/converters/vertex-formats.js +45 -0
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +61 -58
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +211 -94
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/adapter/helpers/set-uniform.js +125 -0
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/es5/adapter/helpers/uniforms.js +112 -0
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +346 -0
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +26 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +530 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +16 -21
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +374 -298
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/es5/adapter/webgl-canvas-context.js +94 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +325 -131
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/{classes → classic}/accessor.js +25 -1
- package/dist/es5/classic/accessor.js.map +1 -0
- package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +88 -72
- package/dist/es5/classic/buffer.js.map +1 -0
- package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/es5/classic/typed-array-utils.js.map +1 -0
- package/dist/es5/context/context/context-state.js +1 -6
- package/dist/es5/context/context/context-state.js.map +1 -1
- package/dist/es5/context/context/{create-context.js → create-browser-context.js} +29 -3
- package/dist/es5/context/context/create-browser-context.js.map +1 -0
- package/dist/es5/context/context/create-headless-context.js +60 -0
- package/dist/es5/context/context/create-headless-context.js.map +1 -0
- package/dist/es5/context/debug/spector.js +133 -0
- package/dist/es5/context/debug/spector.js.map +1 -0
- package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +15 -9
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +3 -3
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +39 -24
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +8 -2
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +63 -305
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +1 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
- package/dist/es5/types/webgl.js.map +1 -0
- package/dist/esm/adapter/converters/{set-device-parameters.js → device-parameters.js} +50 -6
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
- package/dist/esm/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/esm/adapter/converters/sampler-parameters.js +227 -0
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/texture-formats.js +954 -0
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
- package/dist/esm/adapter/converters/vertex-formats.js +35 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +39 -50
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +330 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/adapter/helpers/set-uniform.js +115 -0
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/esm/adapter/helpers/uniforms.js +99 -0
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/esm/{classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +267 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +21 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +428 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/{adapter → esm/adapter/resources}/webgl-shader.js +17 -23
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/esm/{classes/texture.js → adapter/resources/webgl-texture.js} +280 -232
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +52 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +253 -115
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/{classes → classic}/accessor.js +33 -1
- package/dist/esm/classic/accessor.js.map +1 -0
- package/dist/esm/{classes/webgl-buffer.js → classic/buffer.js} +67 -57
- package/dist/esm/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
- package/dist/esm/classic/typed-array-utils.js.map +1 -0
- package/dist/esm/context/context/context-state.js +1 -6
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/{context/context/create-context.js → esm/context/context/create-browser-context.js} +27 -3
- package/dist/esm/context/context/create-browser-context.js.map +1 -0
- package/dist/esm/context/context/create-headless-context.js +43 -0
- package/dist/esm/context/context/create-headless-context.js.map +1 -0
- package/dist/esm/context/debug/spector.js +76 -0
- package/dist/esm/context/debug/spector.js.map +1 -0
- package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +9 -8
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +3 -3
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +26 -12
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +6 -2
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js +20 -32
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +2 -31
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js +2 -0
- package/dist/esm/types/webgl.js.map +1 -0
- package/dist/index.d.ts +25 -47
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -32
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +2 -31
- package/dist/init.js.map +1 -1
- package/dist/types/webgl.d.ts +145 -0
- package/dist/types/webgl.d.ts.map +1 -0
- package/dist/types/webgl.js +2 -0
- package/dist/types/webgl.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +81 -12
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +184 -0
- package/src/adapter/converters/texture-formats.ts +633 -0
- package/src/adapter/converters/vertex-formats.ts +22 -0
- package/src/adapter/device-helpers/device-features.ts +55 -124
- package/src/adapter/device-helpers/device-limits.ts +6 -3
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/attribute-utils.ts +61 -0
- package/src/adapter/helpers/get-shader-layout.ts +407 -0
- package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
- package/src/adapter/helpers/set-uniform.ts +87 -0
- package/src/adapter/helpers/uniforms.ts +121 -0
- package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
- package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
- package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
- package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
- package/src/adapter/resources/webgl-buffer.ts +219 -0
- package/src/adapter/resources/webgl-command-buffer.ts +94 -0
- package/src/adapter/resources/webgl-command-encoder.ts +58 -0
- package/src/adapter/resources/webgl-external-texture.ts +92 -0
- package/src/adapter/resources/webgl-framebuffer.ts +282 -0
- package/src/adapter/resources/webgl-render-pass.ts +24 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +425 -0
- package/src/adapter/resources/webgl-sampler.ts +56 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +19 -24
- package/src/adapter/resources/webgl-texture.ts +1036 -0
- package/src/adapter/webgl-canvas-context.ts +72 -0
- package/src/adapter/webgl-device.ts +312 -285
- package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +38 -37
- package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +76 -84
- package/src/{webgl-utils → classic}/typed-array-utils.ts +5 -1
- package/src/context/context/context-state.ts +4 -12
- package/src/context/context/{create-context.ts → create-browser-context.ts} +41 -6
- package/src/context/context/create-headless-context.ts +48 -0
- package/src/context/debug/spector.ts +92 -0
- package/src/context/debug/webgl-developer-tools.ts +162 -0
- package/src/context/parameters/unified-parameter-api.ts +21 -13
- package/src/context/parameters/webgl-parameter-tables.ts +38 -36
- package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
- package/src/context/polyfill/polyfill-context.ts +4 -5
- package/src/context/polyfill/polyfill-table.ts +1 -1
- package/src/context/state-tracker/deep-array-equal.ts +1 -1
- package/src/context/state-tracker/track-context-state.ts +34 -26
- package/src/context/state-tracker/with-parameters.ts +7 -2
- package/src/index.ts +42 -105
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +284 -0
- package/dist/_deprecated/context-api.d.ts +0 -85
- package/dist/_deprecated/context-api.d.ts.map +0 -1
- package/dist/_deprecated/context-api.js +0 -76
- package/dist/_deprecated/context-api.js.map +0 -1
- package/dist/_deprecated/features.d.ts +0 -27
- package/dist/_deprecated/features.d.ts.map +0 -1
- package/dist/_deprecated/features.js +0 -111
- package/dist/_deprecated/features.js.map +0 -1
- package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
- package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
- package/dist/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/adapter/webgl-shader.d.ts.map +0 -1
- package/dist/adapter/webgl-shader.js.map +0 -1
- package/dist/classes/accessor.d.ts +0 -28
- package/dist/classes/accessor.d.ts.map +0 -1
- package/dist/classes/accessor.js.map +0 -1
- package/dist/classes/accessor.ts.disabled +0 -159
- package/dist/classes/clear.d.ts +0 -17
- package/dist/classes/clear.d.ts.map +0 -1
- package/dist/classes/clear.js +0 -105
- package/dist/classes/clear.js.map +0 -1
- package/dist/classes/copy-and-blit.d.ts +0 -86
- package/dist/classes/copy-and-blit.d.ts.map +0 -1
- package/dist/classes/copy-and-blit.js +0 -338
- package/dist/classes/copy-and-blit.js.map +0 -1
- package/dist/classes/framebuffer.d.ts +0 -139
- package/dist/classes/framebuffer.d.ts.map +0 -1
- package/dist/classes/framebuffer.js +0 -656
- package/dist/classes/framebuffer.js.map +0 -1
- package/dist/classes/program-configuration.d.ts +0 -24
- package/dist/classes/program-configuration.d.ts.map +0 -1
- package/dist/classes/program-configuration.js +0 -73
- package/dist/classes/program-configuration.js.map +0 -1
- package/dist/classes/program.d.ts +0 -66
- package/dist/classes/program.d.ts.map +0 -1
- package/dist/classes/program.js +0 -379
- package/dist/classes/program.js.map +0 -1
- package/dist/classes/query.d.ts +0 -27
- package/dist/classes/query.d.ts.map +0 -1
- package/dist/classes/query.js +0 -145
- package/dist/classes/query.js.map +0 -1
- package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
- package/dist/classes/renderbuffer-formats.js.map +0 -1
- package/dist/classes/renderbuffer.d.ts +0 -60
- package/dist/classes/renderbuffer.d.ts.map +0 -1
- package/dist/classes/renderbuffer.js.map +0 -1
- package/dist/classes/shader.d.ts +0 -42
- package/dist/classes/shader.d.ts.map +0 -1
- package/dist/classes/shader.js +0 -118
- package/dist/classes/shader.js.map +0 -1
- package/dist/classes/texture-2d.d.ts +0 -9
- package/dist/classes/texture-2d.d.ts.map +0 -1
- package/dist/classes/texture-2d.js +0 -36
- package/dist/classes/texture-2d.js.map +0 -1
- package/dist/classes/texture-3d.d.ts +0 -29
- package/dist/classes/texture-3d.d.ts.map +0 -1
- package/dist/classes/texture-3d.js +0 -76
- package/dist/classes/texture-3d.js.map +0 -1
- package/dist/classes/texture-cube.d.ts +0 -28
- package/dist/classes/texture-cube.d.ts.map +0 -1
- package/dist/classes/texture-cube.js +0 -130
- package/dist/classes/texture-cube.js.map +0 -1
- package/dist/classes/texture-formats.d.ts +0 -37
- package/dist/classes/texture-formats.d.ts.map +0 -1
- package/dist/classes/texture-formats.js +0 -98
- package/dist/classes/texture-formats.js.map +0 -1
- package/dist/classes/texture.d.ts +0 -123
- package/dist/classes/texture.d.ts.map +0 -1
- package/dist/classes/texture.js.map +0 -1
- package/dist/classes/transform-feedback.d.ts +0 -33
- package/dist/classes/transform-feedback.d.ts.map +0 -1
- package/dist/classes/transform-feedback.js +0 -198
- package/dist/classes/transform-feedback.js.map +0 -1
- package/dist/classes/uniform-buffer-layout.d.ts +0 -17
- package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
- package/dist/classes/uniform-buffer-layout.js +0 -104
- package/dist/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/classes/uniforms.d.ts +0 -37
- package/dist/classes/uniforms.d.ts.map +0 -1
- package/dist/classes/uniforms.js +0 -250
- package/dist/classes/uniforms.js.map +0 -1
- package/dist/classes/vertex-array-object.d.ts +0 -76
- package/dist/classes/vertex-array-object.d.ts.map +0 -1
- package/dist/classes/vertex-array-object.js +0 -261
- package/dist/classes/vertex-array-object.js.map +0 -1
- package/dist/classes/vertex-array.d.ts +0 -75
- package/dist/classes/vertex-array.d.ts.map +0 -1
- package/dist/classes/vertex-array.js +0 -408
- package/dist/classes/vertex-array.js.map +0 -1
- package/dist/classes/webgl-buffer.d.ts.map +0 -1
- package/dist/classes/webgl-buffer.js.map +0 -1
- package/dist/classes/webgl-resource.d.ts.map +0 -1
- package/dist/classes/webgl-resource.js.map +0 -1
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/context/context/get-canvas.d.ts +0 -13
- package/dist/context/context/get-canvas.d.ts.map +0 -1
- package/dist/context/context/get-canvas.js +0 -31
- package/dist/context/context/get-canvas.js.map +0 -1
- package/dist/context/context/resize-context.d.ts +0 -20
- package/dist/context/context/resize-context.d.ts.map +0 -1
- package/dist/context/context/resize-context.js +0 -15
- package/dist/context/context/resize-context.js.map +0 -1
- package/dist/context/parameters/webgl-parameters.d.ts +0 -144
- package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
- package/dist/context/parameters/webgl-parameters.js +0 -2
- package/dist/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/debug/debug-program-configuration.d.ts +0 -2
- package/dist/debug/debug-program-configuration.d.ts.map +0 -1
- package/dist/debug/debug-program-configuration.js +0 -40
- package/dist/debug/debug-program-configuration.js.map +0 -1
- package/dist/debug/debug-uniforms.d.ts +0 -12
- package/dist/debug/debug-uniforms.d.ts.map +0 -1
- package/dist/debug/debug-uniforms.js +0 -108
- package/dist/debug/debug-uniforms.js.map +0 -1
- package/dist/debug/debug-vertex-array.d.ts +0 -5
- package/dist/debug/debug-vertex-array.d.ts.map +0 -1
- package/dist/debug/debug-vertex-array.js +0 -118
- package/dist/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/_deprecated/context-api.js +0 -116
- package/dist/es5/_deprecated/context-api.js.map +0 -1
- package/dist/es5/_deprecated/features.js +0 -118
- package/dist/es5/_deprecated/features.js.map +0 -1
- package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/es5/adapter/webgl-shader.js.map +0 -1
- package/dist/es5/classes/accessor.d.ts +0 -28
- package/dist/es5/classes/accessor.js.map +0 -1
- package/dist/es5/classes/accessor.ts.disabled +0 -159
- package/dist/es5/classes/clear.js +0 -135
- package/dist/es5/classes/clear.js.map +0 -1
- package/dist/es5/classes/copy-and-blit.js +0 -382
- package/dist/es5/classes/copy-and-blit.js.map +0 -1
- package/dist/es5/classes/framebuffer.js +0 -807
- package/dist/es5/classes/framebuffer.js.map +0 -1
- package/dist/es5/classes/program-configuration.js +0 -119
- package/dist/es5/classes/program-configuration.js.map +0 -1
- package/dist/es5/classes/program.js +0 -471
- package/dist/es5/classes/program.js.map +0 -1
- package/dist/es5/classes/query.js +0 -222
- package/dist/es5/classes/query.js.map +0 -1
- package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
- package/dist/es5/classes/renderbuffer.js.map +0 -1
- package/dist/es5/classes/shader.js +0 -195
- package/dist/es5/classes/shader.js.map +0 -1
- package/dist/es5/classes/texture-2d.js.map +0 -1
- package/dist/es5/classes/texture-3d.js +0 -142
- package/dist/es5/classes/texture-3d.js.map +0 -1
- package/dist/es5/classes/texture-cube.js +0 -202
- package/dist/es5/classes/texture-cube.js.map +0 -1
- package/dist/es5/classes/texture-formats.js +0 -87
- package/dist/es5/classes/texture-formats.js.map +0 -1
- package/dist/es5/classes/texture.js.map +0 -1
- package/dist/es5/classes/transform-feedback.js +0 -267
- package/dist/es5/classes/transform-feedback.js.map +0 -1
- package/dist/es5/classes/uniform-buffer-layout.js +0 -130
- package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/es5/classes/uniforms.js +0 -232
- package/dist/es5/classes/uniforms.js.map +0 -1
- package/dist/es5/classes/vertex-array-object.js +0 -337
- package/dist/es5/classes/vertex-array-object.js.map +0 -1
- package/dist/es5/classes/vertex-array.js +0 -465
- package/dist/es5/classes/vertex-array.js.map +0 -1
- package/dist/es5/classes/webgl-buffer.js.map +0 -1
- package/dist/es5/classes/webgl-resource.js.map +0 -1
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/get-canvas.js +0 -40
- package/dist/es5/context/context/get-canvas.js.map +0 -1
- package/dist/es5/context/context/resize-context.js +0 -23
- package/dist/es5/context/context/resize-context.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/es5/debug/debug-program-configuration.js +0 -76
- package/dist/es5/debug/debug-program-configuration.js.map +0 -1
- package/dist/es5/debug/debug-uniforms.js +0 -156
- package/dist/es5/debug/debug-uniforms.js.map +0 -1
- package/dist/es5/debug/debug-vertex-array.js +0 -126
- package/dist/es5/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/helpers/get-program-bindings.js.map +0 -1
- package/dist/es5/helpers/program-bindings.js +0 -2
- package/dist/es5/types/accessor.d.ts +0 -29
- package/dist/es5/webgl-utils/attribute-utils.js +0 -186
- package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/es5/webgl-utils/format-utils.js +0 -58
- package/dist/es5/webgl-utils/format-utils.js.map +0 -1
- package/dist/es5/webgl-utils/get-error.js +0 -49
- package/dist/es5/webgl-utils/get-error.js.map +0 -1
- package/dist/es5/webgl-utils/index.js +0 -74
- package/dist/es5/webgl-utils/index.js.map +0 -1
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
- package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/es5/webgl-utils/texture-utils.js +0 -61
- package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
- package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/esm/_deprecated/context-api.js +0 -76
- package/dist/esm/_deprecated/context-api.js.map +0 -1
- package/dist/esm/_deprecated/features.js +0 -111
- package/dist/esm/_deprecated/features.js.map +0 -1
- package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/esm/adapter/webgl-shader.js.map +0 -1
- package/dist/esm/classes/accessor.d.ts +0 -28
- package/dist/esm/classes/accessor.js.map +0 -1
- package/dist/esm/classes/clear.js +0 -105
- package/dist/esm/classes/clear.js.map +0 -1
- package/dist/esm/classes/copy-and-blit.js +0 -338
- package/dist/esm/classes/copy-and-blit.js.map +0 -1
- package/dist/esm/classes/framebuffer.js +0 -656
- package/dist/esm/classes/framebuffer.js.map +0 -1
- package/dist/esm/classes/program-configuration.js +0 -73
- package/dist/esm/classes/program-configuration.js.map +0 -1
- package/dist/esm/classes/program.js +0 -379
- package/dist/esm/classes/program.js.map +0 -1
- package/dist/esm/classes/query.js +0 -145
- package/dist/esm/classes/query.js.map +0 -1
- package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
- package/dist/esm/classes/renderbuffer.js.map +0 -1
- package/dist/esm/classes/shader.js +0 -118
- package/dist/esm/classes/shader.js.map +0 -1
- package/dist/esm/classes/texture-2d.js +0 -36
- package/dist/esm/classes/texture-2d.js.map +0 -1
- package/dist/esm/classes/texture-3d.js +0 -76
- package/dist/esm/classes/texture-3d.js.map +0 -1
- package/dist/esm/classes/texture-cube.js +0 -130
- package/dist/esm/classes/texture-cube.js.map +0 -1
- package/dist/esm/classes/texture-formats.js +0 -98
- package/dist/esm/classes/texture-formats.js.map +0 -1
- package/dist/esm/classes/texture.js.map +0 -1
- package/dist/esm/classes/transform-feedback.js +0 -198
- package/dist/esm/classes/transform-feedback.js.map +0 -1
- package/dist/esm/classes/uniform-buffer-layout.js +0 -104
- package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/esm/classes/uniforms.js +0 -250
- package/dist/esm/classes/uniforms.js.map +0 -1
- package/dist/esm/classes/vertex-array-object.js +0 -261
- package/dist/esm/classes/vertex-array-object.js.map +0 -1
- package/dist/esm/classes/vertex-array.js +0 -408
- package/dist/esm/classes/vertex-array.js.map +0 -1
- package/dist/esm/classes/webgl-buffer.js.map +0 -1
- package/dist/esm/classes/webgl-resource.js.map +0 -1
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/get-canvas.js +0 -31
- package/dist/esm/context/context/get-canvas.js.map +0 -1
- package/dist/esm/context/context/resize-context.js +0 -15
- package/dist/esm/context/context/resize-context.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameters.js +0 -2
- package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/esm/debug/debug-program-configuration.js +0 -40
- package/dist/esm/debug/debug-program-configuration.js.map +0 -1
- package/dist/esm/debug/debug-uniforms.js +0 -108
- package/dist/esm/debug/debug-uniforms.js.map +0 -1
- package/dist/esm/debug/debug-vertex-array.js +0 -118
- package/dist/esm/debug/debug-vertex-array.js.map +0 -1
- package/dist/esm/helpers/get-program-bindings.js +0 -228
- package/dist/esm/helpers/get-program-bindings.js.map +0 -1
- package/dist/esm/helpers/program-bindings.js +0 -2
- package/dist/esm/types/accessor.d.ts +0 -29
- package/dist/esm/webgl-utils/attribute-utils.js +0 -182
- package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/esm/webgl-utils/format-utils.js +0 -45
- package/dist/esm/webgl-utils/format-utils.js.map +0 -1
- package/dist/esm/webgl-utils/get-error.js +0 -41
- package/dist/esm/webgl-utils/get-error.js.map +0 -1
- package/dist/esm/webgl-utils/index.js +0 -5
- package/dist/esm/webgl-utils/index.js.map +0 -1
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
- package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/esm/webgl-utils/texture-utils.js +0 -48
- package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
- package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/helpers/get-program-bindings.d.ts +0 -8
- package/dist/helpers/get-program-bindings.d.ts.map +0 -1
- package/dist/helpers/get-program-bindings.js +0 -228
- package/dist/helpers/get-program-bindings.js.map +0 -1
- package/dist/helpers/program-bindings.d.ts +0 -41
- package/dist/helpers/program-bindings.d.ts.map +0 -1
- package/dist/helpers/program-bindings.js +0 -2
- package/dist/types/accessor.d.ts +0 -29
- package/dist/webgl-utils/attribute-utils.d.ts +0 -18
- package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
- package/dist/webgl-utils/attribute-utils.js +0 -182
- package/dist/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
- package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
- package/dist/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/webgl-utils/format-utils.d.ts +0 -3
- package/dist/webgl-utils/format-utils.d.ts.map +0 -1
- package/dist/webgl-utils/format-utils.js +0 -45
- package/dist/webgl-utils/format-utils.js.map +0 -1
- package/dist/webgl-utils/get-error.d.ts +0 -3
- package/dist/webgl-utils/get-error.d.ts.map +0 -1
- package/dist/webgl-utils/get-error.js +0 -41
- package/dist/webgl-utils/get-error.js.map +0 -1
- package/dist/webgl-utils/index.d.ts +0 -5
- package/dist/webgl-utils/index.d.ts.map +0 -1
- package/dist/webgl-utils/index.js +0 -5
- package/dist/webgl-utils/index.js.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
- package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
- package/dist/webgl-utils/request-animation-frame.js +0 -7
- package/dist/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/webgl-utils/texture-utils.d.ts +0 -15
- package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
- package/dist/webgl-utils/texture-utils.js +0 -48
- package/dist/webgl-utils/texture-utils.js.map +0 -1
- package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
- package/dist/webgl-utils/typed-array-utils.js.map +0 -1
- package/src/.DS_Store +0 -0
- package/src/_deprecated/context-api.ts +0 -146
- package/src/_deprecated/features.ts +0 -159
- package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
- package/src/classes/accessor.d.ts +0 -28
- package/src/classes/accessor.js +0 -129
- package/src/classes/accessor.ts.disabled +0 -159
- package/src/classes/clear.ts +0 -108
- package/src/classes/copy-and-blit.ts +0 -460
- package/src/classes/framebuffer.ts +0 -763
- package/src/classes/program-configuration.ts +0 -77
- package/src/classes/program.ts +0 -431
- package/src/classes/query.ts +0 -171
- package/src/classes/renderbuffer.ts +0 -154
- package/src/classes/shader.ts +0 -129
- package/src/classes/texture-2d.ts +0 -35
- package/src/classes/texture-3d.ts +0 -123
- package/src/classes/texture-cube.ts +0 -162
- package/src/classes/texture-formats.ts +0 -171
- package/src/classes/texture.ts +0 -965
- package/src/classes/transform-feedback.ts +0 -191
- package/src/classes/uniform-buffer-layout.ts +0 -113
- package/src/classes/uniforms.ts +0 -394
- package/src/classes/vertex-array-object.ts +0 -339
- package/src/classes/vertex-array.ts +0 -484
- package/src/context/context/device-pixels.ts +0 -147
- 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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/clear.ts"],"names":["GL_DEPTH_BUFFER_BIT","GL_STENCIL_BUFFER_BIT","GL_COLOR_BUFFER_BIT","GL_COLOR","GL_DEPTH","GL_STENCIL","GL_DEPTH_STENCIL","ERR_ARGUMENTS","clear","device","options","gl","framebuffer","color","depth","stencil","parameters","clearFlags","clearColor","clearDepth","clearStencil","clearBuffer","buffer","drawBuffer","value","constructor","Int32Array","clearBufferiv","Uint32Array","clearBufferuiv","Float32Array","clearBufferfv","clearBufferfi"],"mappings":"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","sourcesContent":["import {Device, assert} from '@luma.gl/api';\nimport {assertWebGL2Context} from '../context/context/webgl-checks';\nimport {withParameters} from '../context/state-tracker/with-parameters';\nimport Framebuffer from './framebuffer';\n\n// Should collapse during minification\nconst GL_DEPTH_BUFFER_BIT = 0x00000100;\nconst GL_STENCIL_BUFFER_BIT = 0x00000400;\nconst GL_COLOR_BUFFER_BIT = 0x00004000;\n\nconst GL_COLOR = 0x1800;\nconst GL_DEPTH = 0x1801;\nconst GL_STENCIL = 0x1802;\nconst GL_DEPTH_STENCIL = 0x84f9;\n\n// Should disappear if asserts are removed\nconst ERR_ARGUMENTS = 'clear: bad arguments';\n\n/** Optionally clears depth, color and stencil buffers */\nexport function clear(\n device: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; color?: any; depth?: any; stencil?: any}\n): void {\n // @ts-expect-error Extract context\n const gl = device.gl || device;\n const {framebuffer = null, color = null, depth = null, stencil = null} = options || {};\n const parameters: any = {};\n\n if (framebuffer) {\n parameters.framebuffer = framebuffer;\n }\n\n let clearFlags = 0;\n\n if (color) {\n clearFlags |= GL_COLOR_BUFFER_BIT;\n if (color !== true) {\n parameters.clearColor = color;\n }\n }\n\n if (depth) {\n clearFlags |= GL_DEPTH_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearDepth = depth;\n }\n }\n\n if (stencil) {\n clearFlags |= GL_STENCIL_BUFFER_BIT;\n if (depth !== true) {\n parameters.clearStencil = depth;\n }\n }\n\n assert(clearFlags !== 0, ERR_ARGUMENTS);\n\n // Temporarily set any clear \"colors\" and call clear\n withParameters(gl, parameters, () => {\n gl.clear(clearFlags);\n });\n}\n\n/** WebGL2 - clear a specific drawing buffer */\nexport function clearBuffer(\n device: Device | WebGLRenderingContext,\n options?: {framebuffer?: Framebuffer; buffer?: any; drawBuffer?: any; value?: any}\n) {\n // @ts-expect-error Extract context\n const gl = device.gl || device;\n assertWebGL2Context(gl);\n\n const {framebuffer = null, buffer = GL_COLOR, drawBuffer = 0, value = [0, 0, 0, 0]} = options || {};\n withParameters(gl, {framebuffer}, () => {\n // Method selection per OpenGL ES 3 docs\n switch (buffer) {\n case GL_COLOR:\n switch (value.constructor) {\n case Int32Array:\n gl.clearBufferiv(buffer, drawBuffer, value);\n break;\n case Uint32Array:\n gl.clearBufferuiv(buffer, drawBuffer, value);\n break;\n case Float32Array:\n default:\n gl.clearBufferfv(buffer, drawBuffer, value);\n }\n break;\n\n case GL_DEPTH:\n gl.clearBufferfv(GL_DEPTH, 0, [value]);\n break;\n\n case GL_STENCIL:\n gl.clearBufferiv(GL_STENCIL, 0, [value]);\n break;\n\n case GL_DEPTH_STENCIL:\n const [depth, stencil] = value;\n gl.clearBufferfi(GL_DEPTH_STENCIL, 0, depth, stencil);\n break;\n\n default:\n assert(false, ERR_ARGUMENTS);\n }\n });\n}\n"],"file":"clear.js"}
|
|
@@ -1,382 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.readPixelsToArray = readPixelsToArray;
|
|
9
|
-
exports.readPixelsToBuffer = readPixelsToBuffer;
|
|
10
|
-
exports.copyToDataUrl = copyToDataUrl;
|
|
11
|
-
exports.copyToImage = copyToImage;
|
|
12
|
-
exports.copyToTexture = copyToTexture;
|
|
13
|
-
exports.blit = blit;
|
|
14
|
-
|
|
15
|
-
var _api = require("@luma.gl/api");
|
|
16
|
-
|
|
17
|
-
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
18
|
-
|
|
19
|
-
var _webglBuffer = _interopRequireDefault(require("./webgl-buffer"));
|
|
20
|
-
|
|
21
|
-
var _framebuffer = _interopRequireDefault(require("./framebuffer"));
|
|
22
|
-
|
|
23
|
-
var _texture = _interopRequireDefault(require("./texture"));
|
|
24
|
-
|
|
25
|
-
var _webglChecks = require("../context/context/webgl-checks");
|
|
26
|
-
|
|
27
|
-
var _withParameters = require("../context/state-tracker/with-parameters");
|
|
28
|
-
|
|
29
|
-
var _typedArrayUtils = require("../webgl-utils/typed-array-utils");
|
|
30
|
-
|
|
31
|
-
var _formatUtils = require("../webgl-utils/format-utils");
|
|
32
|
-
|
|
33
|
-
var _textureUtils = require("../webgl-utils/texture-utils");
|
|
34
|
-
|
|
35
|
-
function readPixelsToArray(source, options) {
|
|
36
|
-
var _ref = options || {},
|
|
37
|
-
_ref$sourceX = _ref.sourceX,
|
|
38
|
-
sourceX = _ref$sourceX === void 0 ? 0 : _ref$sourceX,
|
|
39
|
-
_ref$sourceY = _ref.sourceY,
|
|
40
|
-
sourceY = _ref$sourceY === void 0 ? 0 : _ref$sourceY,
|
|
41
|
-
_ref$sourceFormat = _ref.sourceFormat,
|
|
42
|
-
sourceFormat = _ref$sourceFormat === void 0 ? _constants.default.RGBA : _ref$sourceFormat;
|
|
43
|
-
|
|
44
|
-
var _ref2 = options || {},
|
|
45
|
-
_ref2$sourceAttachmen = _ref2.sourceAttachment,
|
|
46
|
-
sourceAttachment = _ref2$sourceAttachmen === void 0 ? _constants.default.COLOR_ATTACHMENT0 : _ref2$sourceAttachmen,
|
|
47
|
-
_ref2$target = _ref2.target,
|
|
48
|
-
target = _ref2$target === void 0 ? null : _ref2$target,
|
|
49
|
-
sourceWidth = _ref2.sourceWidth,
|
|
50
|
-
sourceHeight = _ref2.sourceHeight,
|
|
51
|
-
sourceType = _ref2.sourceType;
|
|
52
|
-
|
|
53
|
-
var _getFramebuffer = getFramebuffer(source),
|
|
54
|
-
framebuffer = _getFramebuffer.framebuffer,
|
|
55
|
-
deleteFramebuffer = _getFramebuffer.deleteFramebuffer;
|
|
56
|
-
|
|
57
|
-
(0, _api.assert)(framebuffer);
|
|
58
|
-
var gl = framebuffer.gl,
|
|
59
|
-
handle = framebuffer.handle,
|
|
60
|
-
attachments = framebuffer.attachments;
|
|
61
|
-
sourceWidth = sourceWidth || framebuffer.width;
|
|
62
|
-
sourceHeight = sourceHeight || framebuffer.height;
|
|
63
|
-
|
|
64
|
-
if (sourceAttachment === _constants.default.COLOR_ATTACHMENT0 && handle === null) {
|
|
65
|
-
sourceAttachment = _constants.default.FRONT;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
(0, _api.assert)(attachments[sourceAttachment]);
|
|
69
|
-
sourceType = sourceType || attachments[sourceAttachment].type;
|
|
70
|
-
target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);
|
|
71
|
-
sourceType = sourceType || (0, _typedArrayUtils.getGLTypeFromTypedArray)(target);
|
|
72
|
-
var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, handle);
|
|
73
|
-
gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);
|
|
74
|
-
gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
|
|
75
|
-
|
|
76
|
-
if (deleteFramebuffer) {
|
|
77
|
-
framebuffer.delete();
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return target;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function readPixelsToBuffer(source, options) {
|
|
84
|
-
var _ref3 = options || {},
|
|
85
|
-
_ref3$sourceX = _ref3.sourceX,
|
|
86
|
-
sourceX = _ref3$sourceX === void 0 ? 0 : _ref3$sourceX,
|
|
87
|
-
_ref3$sourceY = _ref3.sourceY,
|
|
88
|
-
sourceY = _ref3$sourceY === void 0 ? 0 : _ref3$sourceY,
|
|
89
|
-
_ref3$sourceFormat = _ref3.sourceFormat,
|
|
90
|
-
sourceFormat = _ref3$sourceFormat === void 0 ? _constants.default.RGBA : _ref3$sourceFormat,
|
|
91
|
-
_ref3$targetByteOffse = _ref3.targetByteOffset,
|
|
92
|
-
targetByteOffset = _ref3$targetByteOffse === void 0 ? 0 : _ref3$targetByteOffse;
|
|
93
|
-
|
|
94
|
-
var _ref4 = options || {},
|
|
95
|
-
target = _ref4.target,
|
|
96
|
-
sourceWidth = _ref4.sourceWidth,
|
|
97
|
-
sourceHeight = _ref4.sourceHeight,
|
|
98
|
-
sourceType = _ref4.sourceType;
|
|
99
|
-
|
|
100
|
-
var _getFramebuffer2 = getFramebuffer(source),
|
|
101
|
-
framebuffer = _getFramebuffer2.framebuffer,
|
|
102
|
-
deleteFramebuffer = _getFramebuffer2.deleteFramebuffer;
|
|
103
|
-
|
|
104
|
-
(0, _api.assert)(framebuffer);
|
|
105
|
-
sourceWidth = sourceWidth || framebuffer.width;
|
|
106
|
-
sourceHeight = sourceHeight || framebuffer.height;
|
|
107
|
-
var gl2 = (0, _webglChecks.assertWebGL2Context)(framebuffer.gl);
|
|
108
|
-
sourceType = sourceType || (target ? target.type : _constants.default.UNSIGNED_BYTE);
|
|
109
|
-
|
|
110
|
-
if (!target) {
|
|
111
|
-
var components = (0, _formatUtils.glFormatToComponents)(sourceFormat);
|
|
112
|
-
var byteCount = (0, _formatUtils.glTypeToBytes)(sourceType);
|
|
113
|
-
var byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;
|
|
114
|
-
target = new _webglBuffer.default(gl2, {
|
|
115
|
-
byteLength: byteLength,
|
|
116
|
-
accessor: {
|
|
117
|
-
type: sourceType,
|
|
118
|
-
size: components
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
target.bind({
|
|
124
|
-
target: _constants.default.PIXEL_PACK_BUFFER
|
|
125
|
-
});
|
|
126
|
-
(0, _withParameters.withParameters)(gl2, {
|
|
127
|
-
framebuffer: framebuffer
|
|
128
|
-
}, function () {
|
|
129
|
-
gl2.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, targetByteOffset);
|
|
130
|
-
});
|
|
131
|
-
target.unbind({
|
|
132
|
-
target: _constants.default.PIXEL_PACK_BUFFER
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
if (deleteFramebuffer) {
|
|
136
|
-
framebuffer.delete();
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
return target;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
function copyToDataUrl(source) {
|
|
143
|
-
var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
|
|
144
|
-
_ref5$sourceAttachmen = _ref5.sourceAttachment,
|
|
145
|
-
sourceAttachment = _ref5$sourceAttachmen === void 0 ? _constants.default.COLOR_ATTACHMENT0 : _ref5$sourceAttachmen,
|
|
146
|
-
_ref5$targetMaxHeight = _ref5.targetMaxHeight,
|
|
147
|
-
targetMaxHeight = _ref5$targetMaxHeight === void 0 ? Number.MAX_SAFE_INTEGER : _ref5$targetMaxHeight;
|
|
148
|
-
|
|
149
|
-
var data = readPixelsToArray(source, {
|
|
150
|
-
sourceAttachment: sourceAttachment
|
|
151
|
-
});
|
|
152
|
-
var width = source.width,
|
|
153
|
-
height = source.height;
|
|
154
|
-
|
|
155
|
-
while (height > targetMaxHeight) {
|
|
156
|
-
var _scalePixels = (0, _typedArrayUtils.scalePixels)({
|
|
157
|
-
data: data,
|
|
158
|
-
width: width,
|
|
159
|
-
height: height
|
|
160
|
-
});
|
|
161
|
-
|
|
162
|
-
data = _scalePixels.data;
|
|
163
|
-
width = _scalePixels.width;
|
|
164
|
-
height = _scalePixels.height;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
(0, _typedArrayUtils.flipRows)({
|
|
168
|
-
data: data,
|
|
169
|
-
width: width,
|
|
170
|
-
height: height
|
|
171
|
-
});
|
|
172
|
-
var canvas = document.createElement('canvas');
|
|
173
|
-
canvas.width = width;
|
|
174
|
-
canvas.height = height;
|
|
175
|
-
var context = canvas.getContext('2d');
|
|
176
|
-
var imageData = context.createImageData(width, height);
|
|
177
|
-
imageData.data.set(data);
|
|
178
|
-
context.putImageData(imageData, 0, 0);
|
|
179
|
-
return canvas.toDataURL();
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
function copyToImage(source, options) {
|
|
183
|
-
var dataUrl = copyToDataUrl(source, {
|
|
184
|
-
sourceAttachment: (options === null || options === void 0 ? void 0 : options.sourceAttachment) || _constants.default.COLOR_ATTACHMENT0
|
|
185
|
-
});
|
|
186
|
-
var targetImage = (options === null || options === void 0 ? void 0 : options.targetImage) || new Image();
|
|
187
|
-
targetImage.src = dataUrl;
|
|
188
|
-
return targetImage;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
function copyToTexture(source, target, options) {
|
|
192
|
-
var _ref6 = options || {},
|
|
193
|
-
_ref6$sourceX = _ref6.sourceX,
|
|
194
|
-
sourceX = _ref6$sourceX === void 0 ? 0 : _ref6$sourceX,
|
|
195
|
-
_ref6$sourceY = _ref6.sourceY,
|
|
196
|
-
sourceY = _ref6$sourceY === void 0 ? 0 : _ref6$sourceY,
|
|
197
|
-
_ref6$targetMipmaplev = _ref6.targetMipmaplevel,
|
|
198
|
-
targetMipmaplevel = _ref6$targetMipmaplev === void 0 ? 0 : _ref6$targetMipmaplev,
|
|
199
|
-
_ref6$targetInternalF = _ref6.targetInternalFormat,
|
|
200
|
-
targetInternalFormat = _ref6$targetInternalF === void 0 ? _constants.default.RGBA : _ref6$targetInternalF;
|
|
201
|
-
|
|
202
|
-
var _ref7 = options || {},
|
|
203
|
-
targetX = _ref7.targetX,
|
|
204
|
-
targetY = _ref7.targetY,
|
|
205
|
-
targetZ = _ref7.targetZ,
|
|
206
|
-
width = _ref7.width,
|
|
207
|
-
height = _ref7.height;
|
|
208
|
-
|
|
209
|
-
var _getFramebuffer3 = getFramebuffer(source),
|
|
210
|
-
framebuffer = _getFramebuffer3.framebuffer,
|
|
211
|
-
deleteFramebuffer = _getFramebuffer3.deleteFramebuffer;
|
|
212
|
-
|
|
213
|
-
(0, _api.assert)(framebuffer);
|
|
214
|
-
var gl = framebuffer.gl,
|
|
215
|
-
handle = framebuffer.handle;
|
|
216
|
-
var isSubCopy = typeof targetX !== 'undefined' || typeof targetY !== 'undefined' || typeof targetZ !== 'undefined';
|
|
217
|
-
targetX = targetX || 0;
|
|
218
|
-
targetY = targetY || 0;
|
|
219
|
-
targetZ = targetZ || 0;
|
|
220
|
-
var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, handle);
|
|
221
|
-
(0, _api.assert)(target);
|
|
222
|
-
var texture = null;
|
|
223
|
-
var textureTarget;
|
|
224
|
-
|
|
225
|
-
if (target instanceof _texture.default) {
|
|
226
|
-
texture = target;
|
|
227
|
-
width = Number.isFinite(width) ? width : texture.width;
|
|
228
|
-
height = Number.isFinite(height) ? height : texture.height;
|
|
229
|
-
texture.bind(0);
|
|
230
|
-
textureTarget = texture.target;
|
|
231
|
-
} else {
|
|
232
|
-
textureTarget = target;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
if (!isSubCopy) {
|
|
236
|
-
gl.copyTexImage2D(textureTarget, targetMipmaplevel, targetInternalFormat, sourceX, sourceY, width, height, 0);
|
|
237
|
-
} else {
|
|
238
|
-
switch (textureTarget) {
|
|
239
|
-
case _constants.default.TEXTURE_2D:
|
|
240
|
-
case _constants.default.TEXTURE_CUBE_MAP:
|
|
241
|
-
gl.copyTexSubImage2D(textureTarget, targetMipmaplevel, targetX, targetY, sourceX, sourceY, width, height);
|
|
242
|
-
break;
|
|
243
|
-
|
|
244
|
-
case _constants.default.TEXTURE_2D_ARRAY:
|
|
245
|
-
case _constants.default.TEXTURE_3D:
|
|
246
|
-
var gl2 = (0, _webglChecks.assertWebGL2Context)(gl);
|
|
247
|
-
gl2.copyTexSubImage3D(textureTarget, targetMipmaplevel, targetX, targetY, targetZ, sourceX, sourceY, width, height);
|
|
248
|
-
break;
|
|
249
|
-
|
|
250
|
-
default:
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
if (texture) {
|
|
255
|
-
texture.unbind();
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
|
|
259
|
-
|
|
260
|
-
if (deleteFramebuffer) {
|
|
261
|
-
framebuffer.delete();
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
return texture;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
function blit(source, target, options) {
|
|
268
|
-
var _options$sourceX = options.sourceX0,
|
|
269
|
-
sourceX0 = _options$sourceX === void 0 ? 0 : _options$sourceX,
|
|
270
|
-
_options$sourceY = options.sourceY0,
|
|
271
|
-
sourceY0 = _options$sourceY === void 0 ? 0 : _options$sourceY,
|
|
272
|
-
_options$targetX = options.targetX0,
|
|
273
|
-
targetX0 = _options$targetX === void 0 ? 0 : _options$targetX,
|
|
274
|
-
_options$targetY = options.targetY0,
|
|
275
|
-
targetY0 = _options$targetY === void 0 ? 0 : _options$targetY,
|
|
276
|
-
_options$color = options.color,
|
|
277
|
-
color = _options$color === void 0 ? true : _options$color,
|
|
278
|
-
_options$depth = options.depth,
|
|
279
|
-
depth = _options$depth === void 0 ? false : _options$depth,
|
|
280
|
-
_options$stencil = options.stencil,
|
|
281
|
-
stencil = _options$stencil === void 0 ? false : _options$stencil,
|
|
282
|
-
_options$filter = options.filter,
|
|
283
|
-
filter = _options$filter === void 0 ? _constants.default.NEAREST : _options$filter;
|
|
284
|
-
var sourceX1 = options.sourceX1,
|
|
285
|
-
sourceY1 = options.sourceY1,
|
|
286
|
-
targetX1 = options.targetX1,
|
|
287
|
-
targetY1 = options.targetY1,
|
|
288
|
-
_options$sourceAttach = options.sourceAttachment,
|
|
289
|
-
sourceAttachment = _options$sourceAttach === void 0 ? _constants.default.COLOR_ATTACHMENT0 : _options$sourceAttach,
|
|
290
|
-
_options$mask = options.mask,
|
|
291
|
-
mask = _options$mask === void 0 ? 0 : _options$mask;
|
|
292
|
-
|
|
293
|
-
var _getFramebuffer4 = getFramebuffer(source),
|
|
294
|
-
srcFramebuffer = _getFramebuffer4.framebuffer,
|
|
295
|
-
deleteSrcFramebuffer = _getFramebuffer4.deleteFramebuffer;
|
|
296
|
-
|
|
297
|
-
var _getFramebuffer5 = getFramebuffer(target),
|
|
298
|
-
dstFramebuffer = _getFramebuffer5.framebuffer,
|
|
299
|
-
deleteDstFramebuffer = _getFramebuffer5.deleteFramebuffer;
|
|
300
|
-
|
|
301
|
-
(0, _api.assert)(srcFramebuffer);
|
|
302
|
-
(0, _api.assert)(dstFramebuffer);
|
|
303
|
-
var gl = dstFramebuffer.gl,
|
|
304
|
-
handle = dstFramebuffer.handle,
|
|
305
|
-
width = dstFramebuffer.width,
|
|
306
|
-
height = dstFramebuffer.height,
|
|
307
|
-
readBuffer = dstFramebuffer.readBuffer;
|
|
308
|
-
var gl2 = (0, _webglChecks.assertWebGL2Context)(gl);
|
|
309
|
-
|
|
310
|
-
if (!srcFramebuffer.handle && sourceAttachment === _constants.default.COLOR_ATTACHMENT0) {
|
|
311
|
-
sourceAttachment = _constants.default.FRONT;
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
if (color) {
|
|
315
|
-
mask |= _constants.default.COLOR_BUFFER_BIT;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
if (depth) {
|
|
319
|
-
mask |= _constants.default.DEPTH_BUFFER_BIT;
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
if (stencil) {
|
|
323
|
-
mask |= _constants.default.STENCIL_BUFFER_BIT;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
if (deleteSrcFramebuffer || deleteDstFramebuffer) {
|
|
327
|
-
if (mask & (_constants.default.DEPTH_BUFFER_BIT | _constants.default.STENCIL_BUFFER_BIT)) {
|
|
328
|
-
mask = _constants.default.COLOR_BUFFER_BIT;
|
|
329
|
-
|
|
330
|
-
_api.log.warn('Blitting from or into a Texture object, forcing mask to GL.COLOR_BUFFER_BIT')();
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
(0, _api.assert)(mask);
|
|
335
|
-
sourceX1 = sourceX1 === undefined ? srcFramebuffer.width : sourceX1;
|
|
336
|
-
sourceY1 = sourceY1 === undefined ? srcFramebuffer.height : sourceY1;
|
|
337
|
-
targetX1 = targetX1 === undefined ? width : targetX1;
|
|
338
|
-
targetY1 = targetY1 === undefined ? height : targetY1;
|
|
339
|
-
var prevDrawHandle = gl.bindFramebuffer(_constants.default.DRAW_FRAMEBUFFER, handle);
|
|
340
|
-
var prevReadHandle = gl.bindFramebuffer(_constants.default.READ_FRAMEBUFFER, srcFramebuffer.handle);
|
|
341
|
-
gl2.readBuffer(sourceAttachment);
|
|
342
|
-
gl2.blitFramebuffer(sourceX0, sourceY0, sourceX1, sourceY1, targetX0, targetY0, targetX1, targetY1, mask, filter);
|
|
343
|
-
gl2.readBuffer(readBuffer);
|
|
344
|
-
gl2.bindFramebuffer(_constants.default.READ_FRAMEBUFFER, prevReadHandle || null);
|
|
345
|
-
gl2.bindFramebuffer(_constants.default.DRAW_FRAMEBUFFER, prevDrawHandle || null);
|
|
346
|
-
|
|
347
|
-
if (deleteSrcFramebuffer) {
|
|
348
|
-
srcFramebuffer.delete();
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
if (deleteDstFramebuffer) {
|
|
352
|
-
dstFramebuffer.delete();
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
function getFramebuffer(source) {
|
|
357
|
-
if (!(source instanceof _framebuffer.default)) {
|
|
358
|
-
return {
|
|
359
|
-
framebuffer: (0, _textureUtils.toFramebuffer)(source),
|
|
360
|
-
deleteFramebuffer: true
|
|
361
|
-
};
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
return {
|
|
365
|
-
framebuffer: source,
|
|
366
|
-
deleteFramebuffer: false
|
|
367
|
-
};
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
function getPixelArray(pixelArray, type, format, width, height) {
|
|
371
|
-
if (pixelArray) {
|
|
372
|
-
return pixelArray;
|
|
373
|
-
}
|
|
374
|
-
|
|
375
|
-
type = type || _constants.default.UNSIGNED_BYTE;
|
|
376
|
-
var ArrayType = (0, _typedArrayUtils.getTypedArrayFromGLType)(type, {
|
|
377
|
-
clamped: false
|
|
378
|
-
});
|
|
379
|
-
var components = (0, _formatUtils.glFormatToComponents)(format);
|
|
380
|
-
return new ArrayType(width * height * components);
|
|
381
|
-
}
|
|
382
|
-
//# sourceMappingURL=copy-and-blit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/copy-and-blit.ts"],"names":["readPixelsToArray","source","options","sourceX","sourceY","sourceFormat","GL","RGBA","sourceAttachment","COLOR_ATTACHMENT0","target","sourceWidth","sourceHeight","sourceType","getFramebuffer","framebuffer","deleteFramebuffer","gl","handle","attachments","width","height","FRONT","type","getPixelArray","prevHandle","bindFramebuffer","FRAMEBUFFER","readPixels","delete","readPixelsToBuffer","targetByteOffset","gl2","UNSIGNED_BYTE","components","byteCount","byteLength","Buffer","accessor","size","bind","PIXEL_PACK_BUFFER","unbind","copyToDataUrl","targetMaxHeight","Number","MAX_SAFE_INTEGER","data","canvas","document","createElement","context","getContext","imageData","createImageData","set","putImageData","toDataURL","copyToImage","dataUrl","targetImage","Image","src","copyToTexture","targetMipmaplevel","targetInternalFormat","targetX","targetY","targetZ","isSubCopy","texture","textureTarget","Texture","isFinite","copyTexImage2D","TEXTURE_2D","TEXTURE_CUBE_MAP","copyTexSubImage2D","TEXTURE_2D_ARRAY","TEXTURE_3D","copyTexSubImage3D","blit","sourceX0","sourceY0","targetX0","targetY0","color","depth","stencil","filter","NEAREST","sourceX1","sourceY1","targetX1","targetY1","mask","srcFramebuffer","deleteSrcFramebuffer","dstFramebuffer","deleteDstFramebuffer","readBuffer","COLOR_BUFFER_BIT","DEPTH_BUFFER_BIT","STENCIL_BUFFER_BIT","log","warn","undefined","prevDrawHandle","DRAW_FRAMEBUFFER","prevReadHandle","READ_FRAMEBUFFER","blitFramebuffer","Framebuffer","pixelArray","format","ArrayType","clamped"],"mappings":"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","sourcesContent":["import {log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport Buffer from './webgl-buffer';\nimport Framebuffer from './framebuffer';\nimport Texture from './texture';\nimport {assertWebGL2Context} from '../context/context/webgl-checks';\nimport {withParameters} from '../context/state-tracker/with-parameters';\nimport {flipRows, scalePixels} from '../webgl-utils/typed-array-utils';\nimport {getTypedArrayFromGLType, getGLTypeFromTypedArray} from '../webgl-utils/typed-array-utils';\nimport {glFormatToComponents, glTypeToBytes} from '../webgl-utils/format-utils';\nimport {toFramebuffer} from '../webgl-utils/texture-utils';\n\n/**\n * Copies data from a Framebuffer or a Texture object into ArrayBuffer object.\n * App can provide targetPixelArray or have it auto allocated by this method\n * newly allocated by this method unless provided by app.\n * @note Slow requires roundtrip to GPU\n *\n * @param source\n * @param options\n// @returns {Uint8Array|Uint16Array|FloatArray} - pixel array,\n */\nexport function readPixelsToArray(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n sourceAttachment?: number;\n target?: Uint8Array | Uint16Array | Float32Array;\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): Uint8Array | Uint16Array | Float32Array {\n const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA} = options || {};\n let {\n sourceAttachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer\n target = null,\n // following parameters are auto deduced if not provided\n sourceWidth,\n sourceHeight,\n sourceType\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const {gl, handle, attachments} = framebuffer;\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // TODO - Set and unset gl.readBuffer\n if (sourceAttachment === GL.COLOR_ATTACHMENT0 && handle === null) {\n sourceAttachment = GL.FRONT;\n }\n\n assert(attachments[sourceAttachment]);\n\n // Deduce the type from color attachment if not provided.\n sourceType = sourceType || attachments[sourceAttachment].type;\n\n // Deduce type and allocated pixelArray if needed\n target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight);\n\n // Pixel array available, if necessary, deduce type from it.\n sourceType = sourceType || getGLTypeFromTypedArray(target);\n\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.delete();\n }\n return target;\n}\n\n/**\n * Copies data from a Framebuffer or a Texture object into a Buffer object.\n * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.\n * @param source\n * @param options\n */\nexport function readPixelsToBuffer(\n source: Framebuffer | Texture,\n options?: {\n sourceX?: number;\n sourceY?: number;\n sourceFormat?: number;\n target?: Buffer; // A new Buffer object is created when not provided.\n targetByteOffset?: number; // byte offset in buffer object\n // following parameters are auto deduced if not provided\n sourceWidth?: number;\n sourceHeight?: number;\n sourceType?: number;\n }\n): Buffer {\n const {sourceX = 0, sourceY = 0, sourceFormat = GL.RGBA,\n targetByteOffset = 0\n } = options || {};\n // following parameters are auto deduced if not provided\n let {\n target,\n sourceWidth,\n sourceHeight,\n sourceType,\n } = options || {}\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n sourceWidth = sourceWidth || framebuffer.width;\n sourceHeight = sourceHeight || framebuffer.height;\n\n // Asynchronous read (PIXEL_PACK_BUFFER) is WebGL2 only feature\n const gl2 = assertWebGL2Context(framebuffer.gl);\n\n // deduce type if not available.\n sourceType = sourceType || (target ? target.type : GL.UNSIGNED_BYTE);\n\n if (!target) {\n // Create new buffer with enough size\n const components = glFormatToComponents(sourceFormat);\n const byteCount = glTypeToBytes(sourceType);\n const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;\n target = new Buffer(gl2, {byteLength, accessor: {type: sourceType, size: components}});\n }\n\n // @ts-expect-error\n target.bind({target: GL.PIXEL_PACK_BUFFER});\n withParameters(gl2, {framebuffer}, () => {\n gl2.readPixels(\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n sourceFormat,\n sourceType,\n targetByteOffset\n );\n });\n target.unbind({target: GL.PIXEL_PACK_BUFFER});\n if (deleteFramebuffer) {\n framebuffer.delete();\n }\n\n return target;\n}\n\n// Reads pixels from a Framebuffer or Texture object to a dataUrl\nexport function copyToDataUrl(\n source,\n options?: {\n sourceAttachment?: number; // TODO - support gl.readBuffer\n targetMaxHeight?: number;\n }\n): string;\n\n// Reads pixels from a Framebuffer or Texture object to a dataUrl\nexport function copyToDataUrl(\n source,\n {\n sourceAttachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer\n targetMaxHeight = Number.MAX_SAFE_INTEGER\n } = {}\n) {\n let data = readPixelsToArray(source, {sourceAttachment});\n\n // Scale down\n let {width, height} = source;\n while (height > targetMaxHeight) {\n ({data, width, height} = scalePixels({data, width, height}));\n }\n\n // Flip to top down coordinate system\n flipRows({data, width, height});\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const context = canvas.getContext('2d');\n\n // Copy the pixels to a 2D canvas\n const imageData = context.createImageData(width, height);\n imageData.data.set(data);\n context.putImageData(imageData, 0, 0);\n\n return canvas.toDataURL();\n}\n\n// Reads pixels from a Framebuffer or Texture object into an HTML Image\n// Reads pixels from a Framebuffer or Texture object into an HTML Image\nexport function copyToImage(\n source: Framebuffer | Texture,\n options?: {\n sourceAttachment?: number; // TODO - support gl.readBuffer\n targetImage?: typeof Image;\n }\n): typeof Image {\n const dataUrl = copyToDataUrl(source, {sourceAttachment: options?.sourceAttachment || GL.COLOR_ATTACHMENT0});\n const targetImage = options?.targetImage || new Image();\n // @ts-expect-error\n targetImage.src = dataUrl;\n // @ts-expect-error\n return targetImage;\n}\n\n/**\n * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)\n */\n// eslint-disable-next-line complexity, max-statements\nexport function copyToTexture(\n source: Framebuffer | Texture,\n target: Texture | GL,\n options?: {\n sourceX?: number;\n sourceY?: number;\n\n targetX?: number;\n targetY?: number;\n targetZ?: number;\n targetMipmaplevel?: number;\n targetInternalFormat?: number;\n\n width?: number; // defaults to target width\n height?: number; // defaults to target height\n }\n): Texture {\n const {\n sourceX = 0,\n sourceY = 0,\n // attachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer\n targetMipmaplevel = 0,\n targetInternalFormat = GL.RGBA\n } = options || {};\n let {\n targetX,\n targetY,\n targetZ,\n width, // defaults to target width\n height // defaults to target height\n } = options || {};\n\n const {framebuffer, deleteFramebuffer} = getFramebuffer(source);\n assert(framebuffer);\n const {gl, handle} = framebuffer;\n const isSubCopy =\n typeof targetX !== 'undefined' ||\n typeof targetY !== 'undefined' ||\n typeof targetZ !== 'undefined';\n targetX = targetX || 0;\n targetY = targetY || 0;\n targetZ = targetZ || 0;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n // TODO - support gl.readBuffer (WebGL2 only)\n // const prevBuffer = gl.readBuffer(attachment);\n assert(target);\n let texture = null;\n let textureTarget: GL;\n if (target instanceof Texture) {\n texture = target;\n width = Number.isFinite(width) ? width : texture.width;\n height = Number.isFinite(height) ? height : texture.height;\n texture.bind(0);\n textureTarget = texture.target;\n } else {\n textureTarget = target;\n }\n\n if (!isSubCopy) {\n gl.copyTexImage2D(\n textureTarget,\n targetMipmaplevel,\n targetInternalFormat,\n sourceX,\n sourceY,\n width,\n height,\n 0 /* border must be 0 */\n );\n } else {\n switch (textureTarget) {\n case GL.TEXTURE_2D:\n case GL.TEXTURE_CUBE_MAP:\n gl.copyTexSubImage2D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n const gl2 = assertWebGL2Context(gl);\n gl2.copyTexSubImage3D(\n textureTarget,\n targetMipmaplevel,\n targetX,\n targetY,\n targetZ,\n sourceX,\n sourceY,\n width,\n height\n );\n break;\n default:\n }\n }\n if (texture) {\n texture.unbind();\n }\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (deleteFramebuffer) {\n framebuffer.delete();\n }\n return texture;\n}\n\n/**\n * Copies a rectangle of pixels between Framebuffer or Texture objects\n * @note NOTE: WEBLG2 only\n * @param source\n * @param target\n * @param options\n */\n// eslint-disable-next-line max-statements, complexity\nexport function blit(\n source,\n target,\n options: {\n sourceAttachment?: number;\n sourceX0?: number;\n sourceY0?: number;\n sourceX1?: number;\n sourceY1?: number;\n targetX0?: number;\n targetY0?: number;\n targetX1?: number;\n targetY1?: number;\n color?: boolean;\n depth?: boolean;\n stencil?: boolean;\n mask?: number;\n filter?: number;\n }\n): void {\n const {\n sourceX0 = 0,\n sourceY0 = 0,\n targetX0 = 0,\n targetY0 = 0,\n color = true,\n depth = false,\n stencil = false,\n filter = GL.NEAREST\n } = options;\n\n let {\n sourceX1,\n sourceY1,\n targetX1,\n targetY1,\n sourceAttachment = GL.COLOR_ATTACHMENT0,\n mask = 0\n } = options;\n\n const {framebuffer: srcFramebuffer, deleteFramebuffer: deleteSrcFramebuffer} =\n getFramebuffer(source);\n const {framebuffer: dstFramebuffer, deleteFramebuffer: deleteDstFramebuffer} =\n getFramebuffer(target);\n\n assert(srcFramebuffer);\n assert(dstFramebuffer);\n const {gl, handle, width, height, readBuffer} = dstFramebuffer;\n const gl2 = assertWebGL2Context(gl);\n\n if (!srcFramebuffer.handle && sourceAttachment === GL.COLOR_ATTACHMENT0) {\n sourceAttachment = GL.FRONT;\n }\n\n if (color) {\n mask |= GL.COLOR_BUFFER_BIT;\n }\n if (depth) {\n mask |= GL.DEPTH_BUFFER_BIT;\n }\n if (stencil) {\n mask |= GL.STENCIL_BUFFER_BIT;\n }\n\n if (deleteSrcFramebuffer || deleteDstFramebuffer) {\n // Either source or destiantion was a texture object, which is wrapped in a Framebuffer objecgt as color attachment.\n // Overwrite the mask to `COLOR_BUFFER_BIT`\n if (mask & (GL.DEPTH_BUFFER_BIT | GL.STENCIL_BUFFER_BIT)) {\n mask = GL.COLOR_BUFFER_BIT;\n log.warn('Blitting from or into a Texture object, forcing mask to GL.COLOR_BUFFER_BIT')();\n }\n }\n assert(mask);\n\n sourceX1 = sourceX1 === undefined ? srcFramebuffer.width : sourceX1;\n sourceY1 = sourceY1 === undefined ? srcFramebuffer.height : sourceY1;\n targetX1 = targetX1 === undefined ? width : targetX1;\n targetY1 = targetY1 === undefined ? height : targetY1;\n\n const prevDrawHandle = gl.bindFramebuffer(GL.DRAW_FRAMEBUFFER, handle);\n const prevReadHandle = gl.bindFramebuffer(GL.READ_FRAMEBUFFER, srcFramebuffer.handle);\n gl2.readBuffer(sourceAttachment);\n gl2.blitFramebuffer(\n sourceX0,\n sourceY0,\n sourceX1,\n sourceY1,\n targetX0,\n targetY0,\n targetX1,\n targetY1,\n mask,\n filter\n );\n gl2.readBuffer(readBuffer);\n // @ts-expect-error\n gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevReadHandle || null);\n // @ts-expect-error\n gl2.bindFramebuffer(GL.DRAW_FRAMEBUFFER, prevDrawHandle || null);\n if (deleteSrcFramebuffer) {\n srcFramebuffer.delete();\n }\n if (deleteDstFramebuffer) {\n dstFramebuffer.delete();\n }\n\n // return dstFramebuffer;\n}\n\n// Helper methods\n\nfunction getFramebuffer(source) {\n if (!(source instanceof Framebuffer)) {\n return {framebuffer: toFramebuffer(source), deleteFramebuffer: true};\n }\n return {framebuffer: source, deleteFramebuffer: false};\n}\n\nfunction getPixelArray(pixelArray, type, format, width, height) {\n if (pixelArray) {\n return pixelArray;\n }\n // Allocate pixel array if not already available, using supplied type\n type = type || GL.UNSIGNED_BYTE;\n const ArrayType = getTypedArrayFromGLType(type, {clamped: false});\n const components = glFormatToComponents(format);\n // TODO - check for composite type (components = 1).\n return new ArrayType(width * height * components);\n}\n"],"file":"copy-and-blit.js"}
|