@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 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/framebuffer.ts"],"names":["ERR_MULTIPLE_RENDERTARGETS","ImmutableFramebuffer","gl","props","WebGLDevice","attach","_initialize","attachments","readBuffer","drawBuffers","status","getStatus","FRAMEBUFFER_COMPLETE","Error","_getFrameBufferStatus","prevHandle","bindFramebuffer","GL","FRAMEBUFFER","handle","checkFramebufferStatus","window","open","logLevel","message","log","level","id","image","targetMaxHeight","target","options","_attach","_setReadBuffer","_setDrawBuffers","key","undefined","attachmentPoint","Number","attachment","_attachOne","Renderbuffer","_attachRenderbuffer","Array","isArray","texture","layer","_attachTexture","Texture2D","renderbuffer","framebufferRenderbuffer","RENDERBUFFER","bindTexture","TEXTURE_2D_ARRAY","TEXTURE_3D","gl2","framebufferTextureLayer","TEXTURE_CUBE_MAP","face","mapIndexToCubeMapFace","framebufferTexture2D","TEXTURE_2D","COLOR_ATTACHMENT0","BACK","ext","getExtension","drawBuffersWEBGL","length","createFramebuffer","deleteFramebuffer","Resource","Framebuffer","initialize","Object","seal","getParameter","MAX_COLOR_ATTACHMENTS","MAX_DRAW_BUFFERS","DEPTH_ATTACHMENT","DEPTH_STENCIL_ATTACHMENT","STENCIL_ATTACHMENT","width","height","color","depth","stencil","check","object","resize","_createDefaultAttachments","update","clearAttachments","checkStatus","ownResources","resource","delete","resizeAttachments","size","drawingBufferWidth","drawingBufferHeight","newAttachments","keys","forEach","assign","descriptor","_unattach","filter","value","drawBuffer","opts","error","x","y","READ_FRAMEBUFFER","invalidateAll","invalidateFramebuffer","pname","_getAttachmentParameterFallback","getFramebufferAttachmentParameter","parameters","constructor","ATTACHMENT_PARAMETERS","values","getAttachmentParameter","attachmentName","getAttachmentParameters","defaultAttachments","pixels","format","RGBA","type","UNSIGNED_BYTE","mipmaps","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","push","DEPTH24_STENCIL8","DEPTH_COMPONENT16","oldAttachment","webglDevice","fromContext","features","FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER","has","FRAMEBUFFER_ATTACHMENT_RED_SIZE","FRAMEBUFFER_ATTACHMENT_GREEN_SIZE","FRAMEBUFFER_ATTACHMENT_BLUE_SIZE","FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE","FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE","FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE","FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE","UNSIGNED_INT","FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING","isFloatColorBufferSupported","defaultFramebuffer","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","TEXTURE_CUBE_MAP_POSITIVE_X","STATUS","colorBufferFloat","colorBufferHalfFloat","supported","Boolean"],"mappings":"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","sourcesContent":["import {log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../adapter/webgl-device';\nimport {getWebGL2Context, assertWebGL2Context} from '../context/context/webgl-checks';\nimport {getKey} from '../webgl-utils/constants-to-keys';\nimport Resource, {ResourceProps} from './webgl-resource';\nimport Texture2D from './texture-2d';\nimport Renderbuffer from './renderbuffer';\nimport {clear, clearBuffer} from './clear';\nimport {copyToDataUrl} from './copy-and-blit';\n\nconst ERR_MULTIPLE_RENDERTARGETS = 'Multiple render targets not supported';\n\ntype TextureAttachment = {\n texture: Texture2D;\n layer?: number; // = 0\n level?: number; // = 0\n};\n\ntype Attachment = Renderbuffer | Texture2D | TextureAttachment;\n\nexport type ImmutableFramebufferProps = ResourceProps & {\n attachments?: Record<string, Attachment>;\n readBuffer?: number;\n drawBuffers?: number[];\n check?: boolean;\n};\n\nexport type FramebufferProps = ImmutableFramebufferProps & {\n width?: number;\n height?: number;\n color?: boolean;\n depth?: boolean;\n stencil?: boolean;\n};\n\ntype colorBufferFloatOptions = {colorBufferFloat?: boolean; colorBufferHalfFloat?: boolean};\n\nexport class ImmutableFramebuffer extends Resource<FramebufferProps> {\n constructor(gl: WebGLRenderingContext, props?: FramebufferProps) {\n super(WebGLDevice.attach(gl), props, {} as any);\n this._initialize({\n attachments: props?.attachments || {},\n readBuffer: props?.readBuffer,\n drawBuffers: props?.drawBuffers\n });\n }\n\n checkStatus(): this {\n const {gl} = this;\n const status = this.getStatus();\n if (status !== gl.FRAMEBUFFER_COMPLETE) {\n throw new Error(_getFrameBufferStatus(status));\n }\n return this;\n }\n\n getStatus(): number {\n const {gl} = this;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n return status;\n }\n\n // DEBUG\n\n // Note: Will only work when called in an event handler\n show() {\n if (typeof window !== 'undefined') {\n window.open(copyToDataUrl(this), 'luma-debug-texture');\n }\n return this;\n }\n\n log(logLevel = 0, message = '') {\n if (logLevel > log.level || typeof window === 'undefined') {\n return this;\n }\n message = message || `Framebuffer ${this.id}`;\n const image = copyToDataUrl(this, {targetMaxHeight: 100});\n // @ts-expect-error probe.gl typings incorrectly require priority...\n log.image({logLevel, message, image})();\n return this;\n }\n\n // WEBGL INTERFACE\n bind({target = GL.FRAMEBUFFER} = {}) {\n this.gl.bindFramebuffer(target, this.handle);\n return this;\n }\n\n unbind({target = GL.FRAMEBUFFER} = {}) {\n this.gl.bindFramebuffer(target, null);\n return this;\n }\n\n // PRIVATE\n\n _initialize(options: {attachments: Record<string, Attachment>; readBuffer?: number; drawBuffers?: number[]}): this {\n const {attachments = {}, readBuffer, drawBuffers} = options;\n\n this._attach(attachments);\n\n // Multiple render target support, set read buffer and draw buffers\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n if (readBuffer) {\n this._setReadBuffer(readBuffer);\n }\n if (drawBuffers) {\n this._setDrawBuffers(drawBuffers);\n }\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n return this;\n }\n\n /** Attach from a map of attachments */\n _attach(attachments: Record<string, Attachment>) {\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (const key in attachments) {\n // Ensure key is not undefined\n assert(key !== undefined, 'Misspelled framebuffer binding point?');\n const attachmentPoint = Number(key) as GL;\n const attachment = attachments[attachmentPoint];\n this._attachOne(attachmentPoint, attachment);\n }\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n }\n\n /** Attach one attachment */\n _attachOne(attachmentPoint: GL, attachment: Attachment): Renderbuffer | Texture2D {\n if (attachment instanceof Renderbuffer) {\n this._attachRenderbuffer(attachmentPoint, attachment);\n return attachment;\n } else if (Array.isArray(attachment)) {\n const [texture, layer = 0, level = 0] = attachment;\n this._attachTexture(attachmentPoint, texture, layer, level);\n return texture;\n } else if (attachment instanceof Texture2D) {\n this._attachTexture(attachmentPoint, attachment, 0, 0);\n return attachment;\n }\n }\n\n _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {\n this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, renderbuffer.handle);\n }\n\n /**\n * @param attachment \n * @param texture \n * @param layer = 0 - index into Texture2DArray and Texture3D or face for `TextureCubeMap`\n * @param level = 0 - mipmapLevel (must be 0 in WebGL1)\n */\n _attachTexture(attachment: GL, texture: Texture2D, layer: number, level: number): void {\n const {gl} = this;\n gl.bindTexture(texture.target, texture.handle);\n\n switch (texture.target) {\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n const gl2 = assertWebGL2Context(gl);\n gl2.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);\n break;\n\n case GL.TEXTURE_CUBE_MAP:\n // layer must be a cubemap face (or if index, converted to cube map face)\n const face = mapIndexToCubeMapFace(layer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);\n break;\n\n case GL.TEXTURE_2D:\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);\n break;\n\n default:\n assert(false, 'Illegal texture type');\n }\n\n gl.bindTexture(texture.target, null);\n }\n\n /** @note Expects framebuffer to be bound */\n _setReadBuffer(readBuffer: number): void {\n const gl2 = getWebGL2Context(this.gl);\n if (gl2) {\n gl2.readBuffer(readBuffer);\n } else {\n // Setting to color attachment 0 is a noop, so allow it in WebGL1\n assert(\n readBuffer === GL.COLOR_ATTACHMENT0 || readBuffer === GL.BACK,\n ERR_MULTIPLE_RENDERTARGETS\n );\n }\n }\n\n /** @note Expects framebuffer to be bound */\n _setDrawBuffers(drawBuffers: number[]) {\n const {gl} = this;\n const gl2 = assertWebGL2Context(gl);\n if (gl2) {\n gl2.drawBuffers(drawBuffers);\n } else {\n // TODO - is this not handled by polyfills?\n const ext = gl.getExtension('WEBGL_draw_buffers');\n if (ext) {\n ext.drawBuffersWEBGL(drawBuffers);\n } else {\n // Setting a single draw buffer to color attachment 0 is a noop, allow in WebGL1\n assert(\n drawBuffers.length === 1 &&\n (drawBuffers[0] === GL.COLOR_ATTACHMENT0 || drawBuffers[0] === GL.BACK),\n ERR_MULTIPLE_RENDERTARGETS\n );\n }\n }\n }\n\n // RESOURCE METHODS\n\n _createHandle() {\n return this.gl.createFramebuffer();\n }\n\n _deleteHandle() {\n this.gl.deleteFramebuffer(this.handle);\n }\n\n _bindHandle(handle) {\n return this.gl.bindFramebuffer(GL.FRAMEBUFFER, handle);\n }\n}\n\nexport default class Framebuffer extends ImmutableFramebuffer {\n width = null;\n height = null;\n attachments = {};\n readBuffer = GL.COLOR_ATTACHMENT0;\n drawBuffers = [GL.COLOR_ATTACHMENT0];\n ownResources = [];\n\n static readonly FRAMEBUFFER_ATTACHMENT_PARAMETERS = [\n GL.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, // WebGLRenderbuffer or WebGLTexture\n GL.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE, // GL.RENDERBUFFER, GL.TEXTURE, GL.NONE\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE, // GL.TEXTURE_CUBE_MAP_POSITIVE_X, etc.\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL, // GLint\n // EXT_sRGB or WebGL2\n GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING, // GL.LINEAR, GL.SRBG\n // WebGL2\n // GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE, // GLint\n GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE // GLint\n // GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE\n // GL.FLOAT, GL.INT, GL.UNSIGNED_INT, GL.SIGNED_NORMALIZED, OR GL.UNSIGNED_NORMALIZED.\n ];\n\n /**\n * Check color buffer float support\n * @param options.colorBufferFloat Whether floating point textures can be rendered and read\n * @param options.colorBufferHalfFloat Whether half float textures can be rendered and read\n */\n static isSupported(gl: WebGLRenderingContext, options: colorBufferFloatOptions): boolean {\n return isFloatColorBufferSupported(gl, options);\n }\n\n /**\n * returns the default Framebuffer\n * Creates a Framebuffer object wrapper for the default WebGL framebuffer (target === null)\n */\n static getDefaultFramebuffer(gl: WebGLRenderingContext): Framebuffer {\n const webglDevice = WebGLDevice.fromContext(gl);\n webglDevice.defaultFramebuffer =\n webglDevice.defaultFramebuffer ||\n new Framebuffer(gl, {\n id: 'default-framebuffer',\n handle: null,\n attachments: {}\n });\n // TODO - can we query for and get a handle to the GL.FRONT renderbuffer?\n return webglDevice.defaultFramebuffer;\n }\n\n get MAX_COLOR_ATTACHMENTS(): number {\n const gl2 = assertWebGL2Context(this.gl);\n return gl2.getParameter(gl2.MAX_COLOR_ATTACHMENTS);\n }\n\n get MAX_DRAW_BUFFERS(): number {\n const gl2 = assertWebGL2Context(this.gl);\n return gl2.getParameter(gl2.MAX_DRAW_BUFFERS);\n }\n\n constructor(gl: WebGLRenderingContext, props?: FramebufferProps) {\n super(gl, props);\n this.initialize(props);\n Object.seal(this);\n }\n\n get color() {\n return this.attachments[GL.COLOR_ATTACHMENT0] || null;\n }\n\n get texture() {\n return this.attachments[GL.COLOR_ATTACHMENT0] || null;\n }\n\n get depth() {\n return (\n this.attachments[GL.DEPTH_ATTACHMENT] || this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] || null\n );\n }\n\n get stencil() {\n return (\n this.attachments[GL.STENCIL_ATTACHMENT] ||\n this.attachments[GL.DEPTH_STENCIL_ATTACHMENT] ||\n null\n );\n }\n\n // initialize(props?: FramebufferProps): this;\n initialize(props: FramebufferProps) {\n let {attachments = null} = props || {};\n const {\n width = 1,\n height = 1,\n color = true,\n depth = true,\n stencil = false,\n check = true,\n readBuffer = undefined,\n drawBuffers = undefined\n } = props || {};\n assert(width >= 0 && height >= 0, 'Width and height need to be integers');\n\n // Store actual width and height for diffing\n this.width = width;\n this.height = height;\n\n // Resize any provided attachments - note that resize only resizes if needed\n // Note: A framebuffer has no separate size, it is defined by its attachments (which must agree)\n if (attachments) {\n for (const attachment in attachments) {\n const target = attachments[attachment];\n const object = Array.isArray(target) ? target[0] : target;\n object.resize({width, height});\n }\n } else {\n // Create any requested default attachments\n attachments = this._createDefaultAttachments(color, depth, stencil, width, height);\n }\n\n this.update({clearAttachments: true, attachments, readBuffer, drawBuffers});\n\n // Checks that framebuffer was properly set up, if not, throws an explanatory error\n if (attachments && check) {\n this.checkStatus();\n }\n }\n\n delete(): this {\n for (const resource of this.ownResources) {\n resource.delete();\n }\n super.delete();\n return this;\n }\n\n update(options: {\n attachments: Record<string, Attachment>,\n readBuffer?: number,\n drawBuffers?,\n clearAttachments?: boolean,\n resizeAttachments?: boolean\n }): this {\n\n const {\n attachments = {},\n readBuffer,\n drawBuffers,\n clearAttachments = false,\n resizeAttachments = true\n } = options;\n\n this.attach(attachments, {clearAttachments, resizeAttachments});\n\n const {gl} = this;\n // Multiple render target support, set read buffer and draw buffers\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n if (readBuffer) {\n this._setReadBuffer(readBuffer);\n this.readBuffer = readBuffer;\n }\n if (drawBuffers) {\n this._setDrawBuffers(drawBuffers);\n this.drawBuffers = drawBuffers;\n }\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n return this;\n }\n\n /** Attachment resize is expected to be a noop if size is same */\n resize(size?: {width?: number; height?: number}): this {\n let {width, height} = size || {};\n // for default framebuffer, just update the stored size\n if (this.handle === null) {\n assert(width === undefined && height === undefined);\n this.width = this.gl.drawingBufferWidth;\n this.height = this.gl.drawingBufferHeight;\n return this;\n }\n\n if (width === undefined) {\n width = this.gl.drawingBufferWidth;\n }\n if (height === undefined) {\n height = this.gl.drawingBufferHeight;\n }\n\n if (width !== this.width && height !== this.height) {\n log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();\n }\n for (const attachmentPoint in this.attachments) {\n this.attachments[attachmentPoint].resize({width, height});\n }\n this.width = width;\n this.height = height;\n return this;\n }\n\n /** Attach from a map of attachments */\n attach(attachments, {clearAttachments = false, resizeAttachments = true} = {}) {\n const newAttachments = {};\n\n // Any current attachments need to be removed, add null values to map\n if (clearAttachments) {\n Object.keys(this.attachments).forEach((key) => {\n newAttachments[key] = null;\n });\n }\n\n // Overlay the new attachments\n Object.assign(newAttachments, attachments);\n\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (const key in newAttachments) {\n // Ensure key is not undefined\n assert(key !== undefined, 'Misspelled framebuffer binding point?');\n\n const attachment = Number(key);\n\n const descriptor = newAttachments[attachment];\n let object = descriptor;\n if (!object) {\n this._unattach(attachment);\n } else {\n object = this._attachOne(attachment, object);\n this.attachments[attachment] = object;\n }\n\n // Resize objects\n if (resizeAttachments && object) {\n object.resize({width: this.width, height: this.height});\n }\n }\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n // Assign to attachments and remove any nulls to get a clean attachment map\n Object.assign(this.attachments, attachments);\n Object.keys(this.attachments)\n .filter((key) => !this.attachments[key])\n .forEach((key) => {\n delete this.attachments[key];\n });\n }\n\n clear(options?: {color?: any; depth?: any; stencil?: any; drawBuffers?: any[]}): this {\n const {color, depth, stencil, drawBuffers = []} = options;\n\n // Bind framebuffer and delegate to global clear functions\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n if (color || depth || stencil) {\n clear(this.gl, {color, depth, stencil});\n }\n\n drawBuffers.forEach((value, drawBuffer) => {\n clearBuffer(this.gl, {drawBuffer, value});\n });\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n return this;\n }\n\n // WEBGL2 INTERFACE\n\n // Copies a rectangle of pixels between framebuffers\n // eslint-disable-next-line complexity\n blit(opts = {}) {\n log.error('Framebuffer.blit({...}) is no logner supported, use blit(source, target, opts)')();\n return null;\n }\n\n // signals to the GL that it need not preserve all pixels of a specified region of the framebuffer\n invalidate(options: {attachments: []; x?: number; y?: number; width: number; height: number}) {\n const {attachments = [], x = 0, y = 0, width, height} = options;\n const gl2 = assertWebGL2Context(this.gl);\n const prevHandle = gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, this.handle);\n const invalidateAll = x === 0 && y === 0 && width === undefined && height === undefined;\n if (invalidateAll) {\n gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments);\n } else {\n // TODO - why does type checking fail on this line\n // @ts-expect-error\n gl2.invalidateFramebuffer(GL.READ_FRAMEBUFFER, attachments, x, y, width, height);\n }\n // @ts-expect-error\n gl2.bindFramebuffer(GL.READ_FRAMEBUFFER, prevHandle);\n return this;\n }\n\n // Return the value for `pname` of the specified attachment.\n // The type returned is the type of the requested pname\n getAttachmentParameter(attachment, pname, keys) {\n let value = this._getAttachmentParameterFallback(pname);\n if (value === null) {\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n value = this.gl.getFramebufferAttachmentParameter(GL.FRAMEBUFFER, attachment, pname);\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, null);\n }\n if (keys && value > 1000) {\n // @ts-expect-error\n value = getKey(this.gl, value);\n }\n return value;\n }\n\n getAttachmentParameters(\n attachment = GL.COLOR_ATTACHMENT0,\n keys,\n // @ts-expect-error\n parameters = this.constructor.ATTACHMENT_PARAMETERS || []\n ) {\n const values = {};\n for (const pname of parameters) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getAttachmentParameter(attachment, pname, keys);\n }\n return values;\n }\n\n // @ts-expect-error\n getParameters(keys = true) {\n const attachments = Object.keys(this.attachments);\n // if (this === this.gl.luma.defaultFramebuffer) {\n // attachments = [GL.COLOR_ATTACHMENT0, GL.DEPTH_STENCIL_ATTACHMENT];\n // }\n const parameters = {};\n for (const attachmentName of attachments) {\n const attachment = Number(attachmentName);\n const key = keys ? getKey(this.gl, attachment) : attachment;\n parameters[key] = this.getAttachmentParameters(attachment, keys);\n }\n return parameters;\n }\n\n // PRIVATE METHODS\n\n _createDefaultAttachments(color, depth, stencil, width, height) {\n let defaultAttachments = null;\n\n // Add a color buffer if requested and not supplied\n if (color) {\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.COLOR_ATTACHMENT0] = new Texture2D(this.gl, {\n id: `${this.id}-color0`,\n pixels: null, // reserves texture memory, but texels are undefined\n format: GL.RGBA,\n type: GL.UNSIGNED_BYTE,\n width,\n height,\n // Note: Mipmapping can be disabled by texture resource when we resize the texture\n // to a non-power-of-two dimenstion (NPOT texture) under WebGL1. To have consistant\n // behavior we always disable mipmaps.\n mipmaps: false,\n // Set MIN and MAG filtering parameters so mipmaps are not used in sampling.\n // Use LINEAR so subpixel algos like fxaa work.\n // Set WRAP modes that support NPOT textures too.\n parameters: {\n [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n }\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.COLOR_ATTACHMENT0]);\n }\n\n if (depth && stencil) {\n // TODO - handle separate stencil\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT] = new Renderbuffer(this.gl, {\n id: `${this.id}-depth-stencil`,\n format: GL.DEPTH24_STENCIL8,\n width,\n height: 111\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.DEPTH_STENCIL_ATTACHMENT]);\n // TODO - optional texture\n // new Texture2D(this.gl, {\n // id: `${this.id}-depth-stencil`,\n // format: GL.DEPTH24_STENCIL8,\n // dataFormat: GL.DEPTH_STENCIL,\n // type: GL.UNSIGNED_INT_24_8,\n // width,\n // height,\n // mipmaps: false\n // });\n } else if (depth) {\n // Add a depth buffer if requested and not supplied\n defaultAttachments = defaultAttachments || {};\n defaultAttachments[GL.DEPTH_ATTACHMENT] = new Renderbuffer(this.gl, {\n id: `${this.id}-depth`,\n format: GL.DEPTH_COMPONENT16,\n width,\n height\n });\n // track to delete later\n this.ownResources.push(defaultAttachments[GL.DEPTH_ATTACHMENT]);\n } else if (stencil) {\n // TODO - handle separate stencil\n assert(false);\n }\n\n return defaultAttachments;\n }\n\n _unattach(attachment) {\n const oldAttachment = this.attachments[attachment];\n if (!oldAttachment) {\n return;\n }\n if (oldAttachment instanceof Renderbuffer) {\n // render buffer\n this.gl.framebufferRenderbuffer(GL.FRAMEBUFFER, attachment, GL.RENDERBUFFER, null);\n } else {\n // Must be a texture attachment\n this.gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, null, 0);\n }\n delete this.attachments[attachment];\n }\n\n /**\n * Attempt to provide workable defaults for WebGL2 symbols under WebGL1\n * null means OK to query\n * TODO - move to webgl1 polyfills\n * @param pname \n * @returns \n */\n // eslint-disable-next-line complexity\n _getAttachmentParameterFallback(pname) {\n const webglDevice = WebGLDevice.fromContext(this.gl);\n const features = webglDevice.features;\n\n switch (pname) {\n case GL.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: // GLint\n return !features.has('webgl2') ? 0 : null;\n case GL.FRAMEBUFFER_ATTACHMENT_RED_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: // GLint\n case GL.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: // GLint\n return !features.has('webgl2') ? 8 : null;\n case GL.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: // GLenum\n return !features.has('webgl2') ? GL.UNSIGNED_INT : null;\n case GL.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:\n return !features.has('webgl2') && !features.has('webgl-color-encoding-srgb') ? GL.LINEAR : null;\n default:\n return null;\n }\n }\n}\n\n// PUBLIC METHODS\n\n// Map an index to a cube map face constant\nfunction mapIndexToCubeMapFace(layer) {\n // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)\n // if smaller assume layer is index, otherwise assume it is already a cube map face constant\n return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;\n}\n\n// Helper METHODS\n// Get a string describing the framebuffer error if installed\nfunction _getFrameBufferStatus(status) {\n // Use error mapping if installed\n // @ts-expect-error\n const STATUS = Framebuffer.STATUS || {};\n return STATUS[status] || `Framebuffer error ${status}`;\n}\n\n/**\n * Support\n * @param gl\n * @param options.colorBufferFloat Whether floating point textures can be rendered and read\n * @param options.colorBufferHalfFloat Whether half float textures can be rendered and read\n */\nfunction isFloatColorBufferSupported(\n gl: WebGLRenderingContext,\n options: {colorBufferFloat?: boolean; colorBufferHalfFloat?: boolean}\n): boolean {\n const {\n colorBufferFloat, // Whether floating point textures can be rendered and read\n colorBufferHalfFloat // Whether half float textures can be rendered and read\n } = options;\n let supported = true;\n\n if (colorBufferFloat) {\n supported = Boolean(\n // WebGL 2\n gl.getExtension('EXT_color_buffer_float') ||\n // WebGL 1, not exposed on all platforms\n gl.getExtension('WEBGL_color_buffer_float') ||\n // WebGL 1, implicitly enables float render targets https://www.khronos.org/registry/webgl/extensions/OES_texture_float/\n gl.getExtension('OES_texture_float')\n );\n }\n\n if (colorBufferHalfFloat) {\n supported =\n supported &&\n Boolean(\n // WebGL 2\n gl.getExtension('EXT_color_buffer_float') ||\n // WebGL 1\n gl.getExtension('EXT_color_buffer_half_float')\n );\n }\n\n return supported;\n}\n"],"file":"framebuffer.js"}
|
|
@@ -1,119 +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.default = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
-
|
|
16
|
-
var _getProgramBindings = require("../helpers/get-program-bindings");
|
|
17
|
-
|
|
18
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
19
|
-
|
|
20
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
21
|
-
|
|
22
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
23
|
-
|
|
24
|
-
var ProgramConfiguration = function () {
|
|
25
|
-
function ProgramConfiguration(program) {
|
|
26
|
-
(0, _classCallCheck2.default)(this, ProgramConfiguration);
|
|
27
|
-
(0, _defineProperty2.default)(this, "id", void 0);
|
|
28
|
-
(0, _defineProperty2.default)(this, "attributeInfos", []);
|
|
29
|
-
(0, _defineProperty2.default)(this, "attributeInfosByName", {});
|
|
30
|
-
(0, _defineProperty2.default)(this, "attributeInfosByLocation", []);
|
|
31
|
-
(0, _defineProperty2.default)(this, "varyingInfos", []);
|
|
32
|
-
(0, _defineProperty2.default)(this, "varyingInfosByName", {});
|
|
33
|
-
this.id = program.id;
|
|
34
|
-
Object.seal(this);
|
|
35
|
-
var bindings = (0, _getProgramBindings.getProgramBindings)(program.gl2, program.handle);
|
|
36
|
-
this.attributeInfos = bindings.attributes;
|
|
37
|
-
|
|
38
|
-
var _iterator = _createForOfIteratorHelper(bindings.attributes),
|
|
39
|
-
_step;
|
|
40
|
-
|
|
41
|
-
try {
|
|
42
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
43
|
-
var attributeInfo = _step.value;
|
|
44
|
-
this.attributeInfosByName[attributeInfo.name] = attributeInfo;
|
|
45
|
-
this.attributeInfosByLocation[attributeInfo.location] = attributeInfo;
|
|
46
|
-
}
|
|
47
|
-
} catch (err) {
|
|
48
|
-
_iterator.e(err);
|
|
49
|
-
} finally {
|
|
50
|
-
_iterator.f();
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
var _iterator2 = _createForOfIteratorHelper(bindings.varyings),
|
|
54
|
-
_step2;
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
58
|
-
var varyingInfo = _step2.value;
|
|
59
|
-
this.varyingInfosByName[varyingInfo.name] = varyingInfo;
|
|
60
|
-
}
|
|
61
|
-
} catch (err) {
|
|
62
|
-
_iterator2.e(err);
|
|
63
|
-
} finally {
|
|
64
|
-
_iterator2.f();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
(0, _createClass2.default)(ProgramConfiguration, [{
|
|
69
|
-
key: "getAttributeInfo",
|
|
70
|
-
value: function getAttributeInfo(locationOrName) {
|
|
71
|
-
var location = Number(locationOrName);
|
|
72
|
-
|
|
73
|
-
if (Number.isFinite(location)) {
|
|
74
|
-
return this.attributeInfosByLocation[location];
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return this.attributeInfosByName[locationOrName] || null;
|
|
78
|
-
}
|
|
79
|
-
}, {
|
|
80
|
-
key: "getAttributeLocation",
|
|
81
|
-
value: function getAttributeLocation(locationOrName) {
|
|
82
|
-
var attributeInfo = this.getAttributeInfo(locationOrName);
|
|
83
|
-
return attributeInfo ? attributeInfo.location : -1;
|
|
84
|
-
}
|
|
85
|
-
}, {
|
|
86
|
-
key: "getAttributeAccessor",
|
|
87
|
-
value: function getAttributeAccessor(locationOrName) {
|
|
88
|
-
var attributeInfo = this.getAttributeInfo(locationOrName);
|
|
89
|
-
return attributeInfo ? attributeInfo.accessor : null;
|
|
90
|
-
}
|
|
91
|
-
}, {
|
|
92
|
-
key: "getVaryingInfo",
|
|
93
|
-
value: function getVaryingInfo(locationOrName) {
|
|
94
|
-
var location = Number(locationOrName);
|
|
95
|
-
|
|
96
|
-
if (Number.isFinite(location)) {
|
|
97
|
-
return this.varyingInfos[location];
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return this.varyingInfosByName[locationOrName] || null;
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "getVaryingIndex",
|
|
104
|
-
value: function getVaryingIndex(locationOrName) {
|
|
105
|
-
var varying = this.getVaryingInfo(locationOrName);
|
|
106
|
-
return varying ? varying.location : -1;
|
|
107
|
-
}
|
|
108
|
-
}, {
|
|
109
|
-
key: "getVaryingAccessor",
|
|
110
|
-
value: function getVaryingAccessor(locationOrName) {
|
|
111
|
-
var varying = this.getVaryingInfo(locationOrName);
|
|
112
|
-
return varying ? varying.accessor : null;
|
|
113
|
-
}
|
|
114
|
-
}]);
|
|
115
|
-
return ProgramConfiguration;
|
|
116
|
-
}();
|
|
117
|
-
|
|
118
|
-
exports.default = ProgramConfiguration;
|
|
119
|
-
//# sourceMappingURL=program-configuration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/classes/program-configuration.ts"],"names":["ProgramConfiguration","program","id","Object","seal","bindings","gl2","handle","attributeInfos","attributes","attributeInfo","attributeInfosByName","name","attributeInfosByLocation","location","varyings","varyingInfo","varyingInfosByName","locationOrName","Number","isFinite","getAttributeInfo","accessor","varyingInfos","varying","getVaryingInfo"],"mappings":";;;;;;;;;;;;;;;AAKA;;;;;;;;IAQsBA,oB;AAUpB,gCAAYC,OAAZ,EAA8B;AAAA;AAAA;AAAA,0DARO,EAQP;AAAA,gEAP2B,EAO3B;AAAA,oEAJiB,EAIjB;AAAA,wDAHG,EAGH;AAAA,8DAFuB,EAEvB;AAC5B,SAAKC,EAAL,GAAUD,OAAO,CAACC,EAAlB;AACAC,IAAAA,MAAM,CAACC,IAAP,CAAY,IAAZ;AAEA,QAAMC,QAAQ,GAAG,4CAAmBJ,OAAO,CAACK,GAA3B,EAAgCL,OAAO,CAACM,MAAxC,CAAjB;AAEA,SAAKC,cAAL,GAAsBH,QAAQ,CAACI,UAA/B;;AAN4B,+CAOAJ,QAAQ,CAACI,UAPT;AAAA;;AAAA;AAO5B,0DAAiD;AAAA,YAAtCC,aAAsC;AAC/C,aAAKC,oBAAL,CAA0BD,aAAa,CAACE,IAAxC,IAAgDF,aAAhD;AACA,aAAKG,wBAAL,CAA8BH,aAAa,CAACI,QAA5C,IAAwDJ,aAAxD;AACD;AAV2B;AAAA;AAAA;AAAA;AAAA;;AAAA,gDAYFL,QAAQ,CAACU,QAZP;AAAA;;AAAA;AAY5B,6DAA6C;AAAA,YAAlCC,WAAkC;AAC3C,aAAKC,kBAAL,CAAwBD,WAAW,CAACJ,IAApC,IAA4CI,WAA5C;AACD;AAd2B;AAAA;AAAA;AAAA;AAAA;AAe7B;;;;WAED,0BAAiBE,cAAjB,EAAoE;AAClE,UAAMJ,QAAQ,GAAGK,MAAM,CAACD,cAAD,CAAvB;;AACA,UAAIC,MAAM,CAACC,QAAP,CAAgBN,QAAhB,CAAJ,EAA+B;AAC7B,eAAO,KAAKD,wBAAL,CAA8BC,QAA9B,CAAP;AACD;;AACD,aAAO,KAAKH,oBAAL,CAA0BO,cAA1B,KAA6C,IAApD;AACD;;;WAGD,8BAAqBA,cAArB,EAA8D;AAC5D,UAAMR,aAAa,GAAG,KAAKW,gBAAL,CAAsBH,cAAtB,CAAtB;AACA,aAAOR,aAAa,GAAGA,aAAa,CAACI,QAAjB,GAA4B,CAAC,CAAjD;AACD;;;WAED,8BAAqBI,cAArB,EAAsD;AACpD,UAAMR,aAAa,GAAG,KAAKW,gBAAL,CAAsBH,cAAtB,CAAtB;AACA,aAAOR,aAAa,GAAGA,aAAa,CAACY,QAAjB,GAA4B,IAAhD;AACD;;;WAED,wBAAeJ,cAAf,EAAgE;AAC9D,UAAMJ,QAAQ,GAAGK,MAAM,CAACD,cAAD,CAAvB;;AACA,UAAIC,MAAM,CAACC,QAAP,CAAgBN,QAAhB,CAAJ,EAA+B;AAC7B,eAAO,KAAKS,YAAL,CAAkBT,QAAlB,CAAP;AACD;;AACD,aAAO,KAAKG,kBAAL,CAAwBC,cAAxB,KAA2C,IAAlD;AACD;;;WAED,yBAAgBA,cAAhB,EAAyD;AACvD,UAAMM,OAAO,GAAG,KAAKC,cAAL,CAAoBP,cAApB,CAAhB;AACA,aAAOM,OAAO,GAAGA,OAAO,CAACV,QAAX,GAAsB,CAAC,CAArC;AACD;;;WAED,4BAAmBI,cAAnB,EAAoD;AAClD,UAAMM,OAAO,GAAG,KAAKC,cAAL,CAAoBP,cAApB,CAAhB;AACA,aAAOM,OAAO,GAAGA,OAAO,CAACF,QAAX,GAAsB,IAApC;AACD","sourcesContent":["// Contains metadata describing attribute configurations for a program's shaders\n// Much of this is automatically extracted from shaders after program linking\n// import Accessor from './accessor';\nimport type Program from './program';\nimport type {AttributeBinding, VaryingBinding} from '../helpers/program-bindings';\nimport {getProgramBindings} from '../helpers/get-program-bindings';\n\n/**\n * is a mechanism for taking a program object and querying information\n * about it, so as to be able to interface and interact with it.\n * For example, if there is a uniform, you may need to query its\n * location so that you can set its value.\n */\n export default class ProgramConfiguration {\n id: string;\n attributeInfos: AttributeBinding[] = [];\n attributeInfosByName: Record<string, AttributeBinding> = {};\n // Locations may not be contiguous the case of matrix attributes\n // so keep a separate location->attribute map.\n attributeInfosByLocation: AttributeBinding[] = [];\n varyingInfos: VaryingBinding[] = [];\n varyingInfosByName: Record<string, VaryingBinding> = {};\n\n constructor(program: Program) {\n this.id = program.id;\n Object.seal(this);\n\n const bindings = getProgramBindings(program.gl2, program.handle);\n\n this.attributeInfos = bindings.attributes;\n for (const attributeInfo of bindings.attributes) {\n this.attributeInfosByName[attributeInfo.name] = attributeInfo;\n this.attributeInfosByLocation[attributeInfo.location] = attributeInfo;\n }\n\n for (const varyingInfo of bindings.varyings) {\n this.varyingInfosByName[varyingInfo.name] = varyingInfo;\n }\n }\n\n getAttributeInfo(locationOrName: number | string): AttributeBinding {\n const location = Number(locationOrName);\n if (Number.isFinite(location)) {\n return this.attributeInfosByLocation[location];\n }\n return this.attributeInfosByName[locationOrName] || null;\n }\n\n // Resolves an attribute name or index to an index\n getAttributeLocation(locationOrName: number | string): number {\n const attributeInfo = this.getAttributeInfo(locationOrName);\n return attributeInfo ? attributeInfo.location : -1;\n }\n\n getAttributeAccessor(locationOrName: number | string) {\n const attributeInfo = this.getAttributeInfo(locationOrName);\n return attributeInfo ? attributeInfo.accessor : null;\n }\n\n getVaryingInfo(locationOrName: number | string): VaryingBinding {\n const location = Number(locationOrName);\n if (Number.isFinite(location)) {\n return this.varyingInfos[location];\n }\n return this.varyingInfosByName[locationOrName] || null;\n }\n\n getVaryingIndex(locationOrName: number | string): number {\n const varying = this.getVaryingInfo(locationOrName);\n return varying ? varying.location : -1;\n }\n\n getVaryingAccessor(locationOrName: number | string) {\n const varying = this.getVaryingInfo(locationOrName);\n return varying ? varying.accessor : null;\n }\n}\n"],"file":"program-configuration.js"}
|