@luma.gl/webgl 8.6.0-alpha.3 → 9.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -67
- package/dist/adapter/converters/device-parameters.d.ts +17 -0
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -0
- package/dist/{esm/adapter/converters/set-device-parameters.js → adapter/converters/device-parameters.js} +36 -5
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → adapter/converters}/renderbuffer-formats.d.ts +0 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -0
- package/dist/{esm/classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts +19 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -0
- package/dist/adapter/converters/sampler-parameters.js +208 -0
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +93 -0
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -0
- package/dist/adapter/converters/texture-formats.js +954 -0
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.d.ts +4 -0
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +35 -0
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.d.ts +3 -6
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +27 -48
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +1 -0
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +11 -0
- package/dist/adapter/helpers/attribute-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +81 -0
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +55 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.d.ts +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts +4 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -0
- package/dist/adapter/helpers/set-uniform.js +115 -0
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.d.ts +26 -0
- package/dist/adapter/helpers/uniforms.d.ts.map +1 -0
- package/dist/adapter/helpers/uniforms.js +99 -0
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +5 -0
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +40 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -0
- package/dist/{esm/classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → adapter/objects}/webgl-resource.d.ts +15 -14
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -0
- package/dist/{esm/classes → adapter/objects}/webgl-resource.js +7 -3
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +27 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts +27 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-buffer.js +164 -0
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +25 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts +18 -0
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts +1 -0
- package/dist/adapter/resources/webgl-external-texture.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{es5/helpers/program-bindings.js.map → adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +40 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts +11 -0
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.d.ts +20 -0
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +50 -0
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/{webgl-shader.d.ts → resources/webgl-shader.d.ts} +3 -6
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -0
- package/dist/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +193 -0
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -0
- package/dist/{esm/classes/texture.js → adapter/resources/webgl-texture.js} +274 -229
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +36 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -0
- package/dist/adapter/webgl-canvas-context.js +54 -0
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +58 -77
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +185 -113
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +32 -0
- package/dist/classic/accessor.d.ts.map +1 -0
- package/dist/{classes → classic}/accessor.js +33 -1
- package/dist/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.d.ts → classic/buffer.d.ts} +28 -33
- package/dist/classic/buffer.d.ts.map +1 -0
- package/dist/{esm/classes/webgl-buffer.js → classic/buffer.js} +53 -51
- package/dist/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → classic}/typed-array-utils.d.ts +3 -2
- package/dist/classic/typed-array-utils.d.ts.map +1 -0
- package/dist/{esm/webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/context-state.d.ts.map +1 -1
- package/dist/context/context/context-state.js +1 -1
- package/dist/context/context/context-state.js.map +1 -1
- package/dist/context/context/create-context.d.ts +1 -0
- package/dist/context/context/create-context.d.ts.map +1 -1
- package/dist/context/context/create-context.js +12 -0
- package/dist/context/context/create-context.js.map +1 -1
- package/dist/context/context/device-pixels.d.ts +1 -1
- package/dist/context/context/device-pixels.d.ts.map +1 -1
- package/dist/context/context/device-pixels.js.map +1 -1
- package/dist/context/debug/spector.d.ts +18 -0
- package/dist/context/debug/spector.d.ts.map +1 -0
- package/dist/context/debug/spector.js +76 -0
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +19 -0
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -0
- package/dist/context/debug/webgl-developer-tools.js +121 -0
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.d.ts +3 -2
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +4 -4
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +40 -36
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +4 -3
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +25 -11
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/adapter/converters/{set-device-parameters.js → device-parameters.js} +37 -5
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -0
- package/dist/es5/{classes → adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/es5/adapter/converters/sampler-parameters.js +226 -0
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/es5/adapter/converters/texture-formats.js +1031 -0
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -0
- package/dist/es5/adapter/converters/vertex-formats.js +45 -0
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/es5/adapter/device-helpers/device-features.js +46 -54
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +91 -0
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/es5/{helpers/get-program-bindings.js → adapter/helpers/get-shader-layout.js} +184 -87
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/es5/adapter/helpers/set-uniform.js +125 -0
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/es5/adapter/helpers/uniforms.js +112 -0
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -0
- package/dist/es5/{webgl-utils → adapter/objects}/constants-to-keys.js +1 -0
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/es5/{classes/renderbuffer.js → adapter/objects/webgl-renderbuffer.js} +48 -98
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/es5/{classes → adapter/objects}/webgl-resource.js +8 -3
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +137 -0
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-buffer.js +243 -0
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js +96 -0
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js +98 -0
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{esm/helpers/program-bindings.js.map → es5/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +345 -0
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/es5/{classes/texture-2d.js → adapter/resources/webgl-render-pass.js} +25 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +505 -0
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/es5/adapter/resources/webgl-sampler.js +96 -0
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/es5/adapter/{webgl-shader.js → resources/webgl-shader.js} +12 -18
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/es5/{classes/texture.js → adapter/resources/webgl-texture.js} +336 -260
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/es5/adapter/webgl-canvas-context.js +97 -0
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/es5/adapter/webgl-device.js +255 -135
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/{classes → classic}/accessor.js +25 -1
- package/dist/es5/classic/accessor.js.map +1 -0
- package/dist/es5/{classes/webgl-buffer.js → classic/buffer.js} +74 -66
- package/dist/es5/classic/buffer.js.map +1 -0
- package/dist/es5/{webgl-utils → classic}/typed-array-utils.js +0 -0
- package/dist/es5/classic/typed-array-utils.js.map +1 -0
- package/dist/es5/context/context/context-state.js +1 -1
- package/dist/es5/context/context/context-state.js.map +1 -1
- package/dist/es5/context/context/create-context.js +12 -0
- package/dist/es5/context/context/create-context.js.map +1 -1
- package/dist/es5/context/context/device-pixels.js.map +1 -1
- package/dist/es5/context/debug/spector.js +133 -0
- package/dist/es5/context/debug/spector.js.map +1 -0
- package/dist/es5/context/debug/webgl-developer-tools.js +198 -0
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/es5/context/parameters/unified-parameter-api.js +7 -5
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +4 -3
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +26 -11
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/index.js +66 -238
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +1 -41
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/{context/parameters/webgl-parameters.js → types/webgl.js} +1 -1
- package/dist/es5/types/webgl.js.map +1 -0
- package/dist/{adapter/converters/set-device-parameters.js → esm/adapter/converters/device-parameters.js} +36 -5
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -0
- package/dist/{classes → esm/adapter/converters}/renderbuffer-formats.js +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/esm/adapter/converters/sampler-parameters.js +208 -0
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/esm/adapter/converters/texture-formats.js +954 -0
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -0
- package/dist/esm/adapter/converters/vertex-formats.js +35 -0
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/esm/adapter/device-helpers/device-features.js +27 -48
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +1 -0
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +7 -7
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +81 -0
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +306 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/helpers}/parse-shader-compiler-log.js +0 -0
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/esm/adapter/helpers/set-uniform.js +115 -0
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/esm/adapter/helpers/uniforms.js +99 -0
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -0
- package/dist/{webgl-utils → esm/adapter/objects}/constants-to-keys.js +1 -0
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/{classes/renderbuffer.js → esm/adapter/objects/webgl-renderbuffer.js} +38 -72
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/{classes → esm/adapter/objects}/webgl-resource.js +7 -3
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +84 -0
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-buffer.js +164 -0
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js +65 -0
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js +53 -0
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-external-texture.js +2 -0
- package/dist/{helpers/program-bindings.js.map → esm/adapter/resources/webgl-external-texture.js.map} +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +265 -0
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js +19 -0
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +400 -0
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/esm/adapter/resources/webgl-sampler.js +50 -0
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/esm/adapter/{webgl-shader.js → resources/webgl-shader.js} +13 -20
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/{classes/texture.js → esm/adapter/resources/webgl-texture.js} +274 -229
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/esm/adapter/webgl-canvas-context.js +54 -0
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/esm/adapter/webgl-device.js +185 -113
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/{classes → classic}/accessor.js +33 -1
- package/dist/esm/classic/accessor.js.map +1 -0
- package/dist/{classes/webgl-buffer.js → esm/classic/buffer.js} +53 -51
- package/dist/esm/classic/buffer.js.map +1 -0
- package/dist/{webgl-utils → esm/classic}/typed-array-utils.js +0 -0
- package/dist/esm/classic/typed-array-utils.js.map +1 -0
- package/dist/esm/context/context/context-state.js +1 -1
- package/dist/esm/context/context/context-state.js.map +1 -1
- package/dist/esm/context/context/create-context.js +12 -0
- package/dist/esm/context/context/create-context.js.map +1 -1
- package/dist/esm/context/context/device-pixels.js.map +1 -1
- package/dist/esm/context/debug/spector.js +76 -0
- package/dist/esm/context/debug/spector.js.map +1 -0
- package/dist/esm/context/debug/webgl-developer-tools.js +121 -0
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/esm/context/parameters/unified-parameter-api.js +4 -4
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +4 -3
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +25 -11
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/index.js +19 -29
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js +2 -31
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js +2 -0
- package/dist/esm/types/webgl.js.map +1 -0
- package/dist/index.d.ts +22 -43
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -29
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +1 -4
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +2 -31
- package/dist/init.js.map +1 -1
- package/dist/types/webgl.d.ts +144 -0
- package/dist/types/webgl.d.ts.map +1 -0
- package/dist/types/webgl.js +2 -0
- package/dist/types/webgl.js.map +1 -0
- package/package.json +5 -5
- package/src/adapter/converters/{set-device-parameters.ts → device-parameters.ts} +52 -9
- package/src/{classes → adapter/converters}/renderbuffer-formats.ts +1 -1
- package/src/adapter/converters/sampler-parameters.ts +175 -0
- package/src/adapter/converters/texture-formats.ts +633 -0
- package/src/adapter/converters/vertex-formats.ts +22 -0
- package/src/adapter/device-helpers/device-features.ts +46 -123
- package/src/adapter/device-helpers/device-limits.ts +5 -2
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/attribute-utils.ts +61 -0
- package/src/adapter/helpers/get-shader-layout.ts +388 -0
- package/src/{webgl-utils → adapter/helpers}/parse-shader-compiler-log.ts +0 -0
- package/src/adapter/helpers/set-uniform.ts +87 -0
- package/src/adapter/helpers/uniforms.ts +110 -0
- package/src/{webgl-utils → adapter/objects}/constants-to-keys.ts +6 -3
- package/src/adapter/objects/webgl-renderbuffer.ts +104 -0
- package/src/{classes → adapter/objects}/webgl-resource.ts +23 -17
- package/src/adapter/objects/webgl-vertex-array-object.ts +111 -0
- package/src/adapter/resources/webgl-buffer.ts +219 -0
- package/src/adapter/resources/webgl-command-buffer.ts +94 -0
- package/src/adapter/resources/webgl-command-encoder.ts +58 -0
- package/src/adapter/resources/webgl-external-texture.ts +92 -0
- package/src/adapter/resources/webgl-framebuffer.ts +279 -0
- package/src/adapter/resources/webgl-render-pass.ts +23 -0
- package/src/adapter/resources/webgl-render-pipeline.ts +413 -0
- package/src/adapter/resources/webgl-sampler.ts +54 -0
- package/src/adapter/{webgl-shader.ts → resources/webgl-shader.ts} +14 -20
- package/src/adapter/resources/webgl-texture.ts +1023 -0
- package/src/adapter/webgl-canvas-context.ts +74 -0
- package/src/adapter/webgl-device.ts +229 -285
- package/{dist/esm/classes/accessor.ts.disabled → src/classic/accessor.ts} +50 -36
- package/src/{classes/webgl-buffer.ts → classic/buffer.ts} +69 -77
- package/src/{webgl-utils → classic}/typed-array-utils.ts +3 -1
- package/src/context/context/context-state.ts +4 -2
- package/src/context/context/create-context.ts +28 -1
- package/src/context/context/device-pixels.ts +9 -4
- package/src/context/debug/spector.ts +92 -0
- package/src/context/debug/webgl-developer-tools.ts +162 -0
- package/src/context/parameters/unified-parameter-api.ts +6 -4
- package/src/context/parameters/webgl-parameter-tables.ts +38 -36
- package/src/context/polyfill/get-parameter-polyfill.ts +1 -1
- package/src/context/polyfill/polyfill-context.ts +4 -3
- package/src/context/state-tracker/deep-array-equal.ts +1 -1
- package/src/context/state-tracker/track-context-state.ts +27 -20
- package/src/index.ts +33 -91
- package/src/init.ts +2 -46
- package/src/types/webgl.ts +283 -0
- package/dist/adapter/converters/set-device-parameters.d.ts +0 -5
- package/dist/adapter/converters/set-device-parameters.d.ts.map +0 -1
- package/dist/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.d.ts +0 -281
- package/dist/adapter/converters/webgpu-texture-formats.d.ts.map +0 -1
- package/dist/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/adapter/webgl-shader.d.ts.map +0 -1
- package/dist/adapter/webgl-shader.js.map +0 -1
- package/dist/classes/accessor.d.ts +0 -28
- package/dist/classes/accessor.d.ts.map +0 -1
- package/dist/classes/accessor.js.map +0 -1
- package/dist/classes/accessor.ts.disabled +0 -159
- package/dist/classes/clear.d.ts +0 -17
- package/dist/classes/clear.d.ts.map +0 -1
- package/dist/classes/clear.js +0 -105
- package/dist/classes/clear.js.map +0 -1
- package/dist/classes/copy-and-blit.d.ts +0 -86
- package/dist/classes/copy-and-blit.d.ts.map +0 -1
- package/dist/classes/copy-and-blit.js +0 -338
- package/dist/classes/copy-and-blit.js.map +0 -1
- package/dist/classes/framebuffer.d.ts +0 -139
- package/dist/classes/framebuffer.d.ts.map +0 -1
- package/dist/classes/framebuffer.js +0 -656
- package/dist/classes/framebuffer.js.map +0 -1
- package/dist/classes/program-configuration.d.ts +0 -24
- package/dist/classes/program-configuration.d.ts.map +0 -1
- package/dist/classes/program-configuration.js +0 -73
- package/dist/classes/program-configuration.js.map +0 -1
- package/dist/classes/program.d.ts +0 -66
- package/dist/classes/program.d.ts.map +0 -1
- package/dist/classes/program.js +0 -379
- package/dist/classes/program.js.map +0 -1
- package/dist/classes/query.d.ts +0 -27
- package/dist/classes/query.d.ts.map +0 -1
- package/dist/classes/query.js +0 -145
- package/dist/classes/query.js.map +0 -1
- package/dist/classes/renderbuffer-formats.d.ts.map +0 -1
- package/dist/classes/renderbuffer-formats.js.map +0 -1
- package/dist/classes/renderbuffer.d.ts +0 -60
- package/dist/classes/renderbuffer.d.ts.map +0 -1
- package/dist/classes/renderbuffer.js.map +0 -1
- package/dist/classes/shader.d.ts +0 -42
- package/dist/classes/shader.d.ts.map +0 -1
- package/dist/classes/shader.js +0 -118
- package/dist/classes/shader.js.map +0 -1
- package/dist/classes/texture-2d.d.ts +0 -9
- package/dist/classes/texture-2d.d.ts.map +0 -1
- package/dist/classes/texture-2d.js +0 -36
- package/dist/classes/texture-2d.js.map +0 -1
- package/dist/classes/texture-3d.d.ts +0 -29
- package/dist/classes/texture-3d.d.ts.map +0 -1
- package/dist/classes/texture-3d.js +0 -76
- package/dist/classes/texture-3d.js.map +0 -1
- package/dist/classes/texture-cube.d.ts +0 -28
- package/dist/classes/texture-cube.d.ts.map +0 -1
- package/dist/classes/texture-cube.js +0 -130
- package/dist/classes/texture-cube.js.map +0 -1
- package/dist/classes/texture-formats.d.ts +0 -37
- package/dist/classes/texture-formats.d.ts.map +0 -1
- package/dist/classes/texture-formats.js +0 -98
- package/dist/classes/texture-formats.js.map +0 -1
- package/dist/classes/texture.d.ts +0 -123
- package/dist/classes/texture.d.ts.map +0 -1
- package/dist/classes/texture.js.map +0 -1
- package/dist/classes/transform-feedback.d.ts +0 -33
- package/dist/classes/transform-feedback.d.ts.map +0 -1
- package/dist/classes/transform-feedback.js +0 -198
- package/dist/classes/transform-feedback.js.map +0 -1
- package/dist/classes/uniform-buffer-layout.d.ts +0 -17
- package/dist/classes/uniform-buffer-layout.d.ts.map +0 -1
- package/dist/classes/uniform-buffer-layout.js +0 -104
- package/dist/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/classes/uniforms.d.ts +0 -37
- package/dist/classes/uniforms.d.ts.map +0 -1
- package/dist/classes/uniforms.js +0 -250
- package/dist/classes/uniforms.js.map +0 -1
- package/dist/classes/vertex-array-object.d.ts +0 -76
- package/dist/classes/vertex-array-object.d.ts.map +0 -1
- package/dist/classes/vertex-array-object.js +0 -261
- package/dist/classes/vertex-array-object.js.map +0 -1
- package/dist/classes/vertex-array.d.ts +0 -75
- package/dist/classes/vertex-array.d.ts.map +0 -1
- package/dist/classes/vertex-array.js +0 -408
- package/dist/classes/vertex-array.js.map +0 -1
- package/dist/classes/webgl-buffer.d.ts.map +0 -1
- package/dist/classes/webgl-buffer.js.map +0 -1
- package/dist/classes/webgl-resource.d.ts.map +0 -1
- package/dist/classes/webgl-resource.js.map +0 -1
- package/dist/context/context/get-canvas.d.ts +0 -13
- package/dist/context/context/get-canvas.d.ts.map +0 -1
- package/dist/context/context/get-canvas.js +0 -31
- package/dist/context/context/get-canvas.js.map +0 -1
- package/dist/context/context/resize-context.d.ts +0 -20
- package/dist/context/context/resize-context.d.ts.map +0 -1
- package/dist/context/context/resize-context.js +0 -15
- package/dist/context/context/resize-context.js.map +0 -1
- package/dist/context/parameters/webgl-parameters.d.ts +0 -144
- package/dist/context/parameters/webgl-parameters.d.ts.map +0 -1
- package/dist/context/parameters/webgl-parameters.js +0 -2
- package/dist/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/debug/debug-program-configuration.d.ts +0 -2
- package/dist/debug/debug-program-configuration.d.ts.map +0 -1
- package/dist/debug/debug-program-configuration.js +0 -40
- package/dist/debug/debug-program-configuration.js.map +0 -1
- package/dist/debug/debug-uniforms.d.ts +0 -12
- package/dist/debug/debug-uniforms.d.ts.map +0 -1
- package/dist/debug/debug-uniforms.js +0 -108
- package/dist/debug/debug-uniforms.js.map +0 -1
- package/dist/debug/debug-vertex-array.d.ts +0 -5
- package/dist/debug/debug-vertex-array.d.ts.map +0 -1
- package/dist/debug/debug-vertex-array.js +0 -118
- package/dist/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/webgpu-texture-formats.js +0 -296
- package/dist/es5/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/es5/adapter/webgl-shader.js.map +0 -1
- package/dist/es5/classes/accessor.d.ts +0 -28
- package/dist/es5/classes/accessor.js.map +0 -1
- package/dist/es5/classes/accessor.ts.disabled +0 -159
- package/dist/es5/classes/clear.js +0 -135
- package/dist/es5/classes/clear.js.map +0 -1
- package/dist/es5/classes/copy-and-blit.js +0 -382
- package/dist/es5/classes/copy-and-blit.js.map +0 -1
- package/dist/es5/classes/framebuffer.js +0 -807
- package/dist/es5/classes/framebuffer.js.map +0 -1
- package/dist/es5/classes/program-configuration.js +0 -119
- package/dist/es5/classes/program-configuration.js.map +0 -1
- package/dist/es5/classes/program.js +0 -471
- package/dist/es5/classes/program.js.map +0 -1
- package/dist/es5/classes/query.js +0 -222
- package/dist/es5/classes/query.js.map +0 -1
- package/dist/es5/classes/renderbuffer-formats.js.map +0 -1
- package/dist/es5/classes/renderbuffer.js.map +0 -1
- package/dist/es5/classes/shader.js +0 -195
- package/dist/es5/classes/shader.js.map +0 -1
- package/dist/es5/classes/texture-2d.js.map +0 -1
- package/dist/es5/classes/texture-3d.js +0 -142
- package/dist/es5/classes/texture-3d.js.map +0 -1
- package/dist/es5/classes/texture-cube.js +0 -202
- package/dist/es5/classes/texture-cube.js.map +0 -1
- package/dist/es5/classes/texture-formats.js +0 -87
- package/dist/es5/classes/texture-formats.js.map +0 -1
- package/dist/es5/classes/texture.js.map +0 -1
- package/dist/es5/classes/transform-feedback.js +0 -267
- package/dist/es5/classes/transform-feedback.js.map +0 -1
- package/dist/es5/classes/uniform-buffer-layout.js +0 -130
- package/dist/es5/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/es5/classes/uniforms.js +0 -232
- package/dist/es5/classes/uniforms.js.map +0 -1
- package/dist/es5/classes/vertex-array-object.js +0 -337
- package/dist/es5/classes/vertex-array-object.js.map +0 -1
- package/dist/es5/classes/vertex-array.js +0 -465
- package/dist/es5/classes/vertex-array.js.map +0 -1
- package/dist/es5/classes/webgl-buffer.js.map +0 -1
- package/dist/es5/classes/webgl-resource.js.map +0 -1
- package/dist/es5/context/context/get-canvas.js +0 -40
- package/dist/es5/context/context/get-canvas.js.map +0 -1
- package/dist/es5/context/context/resize-context.js +0 -23
- package/dist/es5/context/context/resize-context.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/es5/debug/debug-program-configuration.js +0 -76
- package/dist/es5/debug/debug-program-configuration.js.map +0 -1
- package/dist/es5/debug/debug-uniforms.js +0 -156
- package/dist/es5/debug/debug-uniforms.js.map +0 -1
- package/dist/es5/debug/debug-vertex-array.js +0 -126
- package/dist/es5/debug/debug-vertex-array.js.map +0 -1
- package/dist/es5/helpers/get-program-bindings.js.map +0 -1
- package/dist/es5/helpers/program-bindings.js +0 -2
- package/dist/es5/types/accessor.d.ts +0 -29
- package/dist/es5/webgl-utils/attribute-utils.js +0 -186
- package/dist/es5/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/es5/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/es5/webgl-utils/format-utils.js +0 -58
- package/dist/es5/webgl-utils/format-utils.js.map +0 -1
- package/dist/es5/webgl-utils/get-error.js +0 -49
- package/dist/es5/webgl-utils/get-error.js.map +0 -1
- package/dist/es5/webgl-utils/index.js +0 -74
- package/dist/es5/webgl-utils/index.js.map +0 -1
- package/dist/es5/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/webgl-utils/request-animation-frame.js +0 -16
- package/dist/es5/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/es5/webgl-utils/texture-utils.js +0 -61
- package/dist/es5/webgl-utils/texture-utils.js.map +0 -1
- package/dist/es5/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/esm/adapter/converters/set-device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/webgpu-texture-formats.js +0 -285
- package/dist/esm/adapter/converters/webgpu-texture-formats.js.map +0 -1
- package/dist/esm/adapter/webgl-shader.js.map +0 -1
- package/dist/esm/classes/accessor.d.ts +0 -28
- package/dist/esm/classes/accessor.js.map +0 -1
- package/dist/esm/classes/clear.js +0 -105
- package/dist/esm/classes/clear.js.map +0 -1
- package/dist/esm/classes/copy-and-blit.js +0 -338
- package/dist/esm/classes/copy-and-blit.js.map +0 -1
- package/dist/esm/classes/framebuffer.js +0 -656
- package/dist/esm/classes/framebuffer.js.map +0 -1
- package/dist/esm/classes/program-configuration.js +0 -73
- package/dist/esm/classes/program-configuration.js.map +0 -1
- package/dist/esm/classes/program.js +0 -379
- package/dist/esm/classes/program.js.map +0 -1
- package/dist/esm/classes/query.js +0 -145
- package/dist/esm/classes/query.js.map +0 -1
- package/dist/esm/classes/renderbuffer-formats.js.map +0 -1
- package/dist/esm/classes/renderbuffer.js.map +0 -1
- package/dist/esm/classes/shader.js +0 -118
- package/dist/esm/classes/shader.js.map +0 -1
- package/dist/esm/classes/texture-2d.js +0 -36
- package/dist/esm/classes/texture-2d.js.map +0 -1
- package/dist/esm/classes/texture-3d.js +0 -76
- package/dist/esm/classes/texture-3d.js.map +0 -1
- package/dist/esm/classes/texture-cube.js +0 -130
- package/dist/esm/classes/texture-cube.js.map +0 -1
- package/dist/esm/classes/texture-formats.js +0 -98
- package/dist/esm/classes/texture-formats.js.map +0 -1
- package/dist/esm/classes/texture.js.map +0 -1
- package/dist/esm/classes/transform-feedback.js +0 -198
- package/dist/esm/classes/transform-feedback.js.map +0 -1
- package/dist/esm/classes/uniform-buffer-layout.js +0 -104
- package/dist/esm/classes/uniform-buffer-layout.js.map +0 -1
- package/dist/esm/classes/uniforms.js +0 -250
- package/dist/esm/classes/uniforms.js.map +0 -1
- package/dist/esm/classes/vertex-array-object.js +0 -261
- package/dist/esm/classes/vertex-array-object.js.map +0 -1
- package/dist/esm/classes/vertex-array.js +0 -408
- package/dist/esm/classes/vertex-array.js.map +0 -1
- package/dist/esm/classes/webgl-buffer.js.map +0 -1
- package/dist/esm/classes/webgl-resource.js.map +0 -1
- package/dist/esm/context/context/get-canvas.js +0 -31
- package/dist/esm/context/context/get-canvas.js.map +0 -1
- package/dist/esm/context/context/resize-context.js +0 -15
- package/dist/esm/context/context/resize-context.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameters.js +0 -2
- package/dist/esm/context/parameters/webgl-parameters.js.map +0 -1
- package/dist/esm/debug/debug-program-configuration.js +0 -40
- package/dist/esm/debug/debug-program-configuration.js.map +0 -1
- package/dist/esm/debug/debug-uniforms.js +0 -108
- package/dist/esm/debug/debug-uniforms.js.map +0 -1
- package/dist/esm/debug/debug-vertex-array.js +0 -118
- package/dist/esm/debug/debug-vertex-array.js.map +0 -1
- package/dist/esm/helpers/get-program-bindings.js +0 -228
- package/dist/esm/helpers/get-program-bindings.js.map +0 -1
- package/dist/esm/helpers/program-bindings.js +0 -2
- package/dist/esm/types/accessor.d.ts +0 -29
- package/dist/esm/webgl-utils/attribute-utils.js +0 -182
- package/dist/esm/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/esm/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/esm/webgl-utils/format-utils.js +0 -45
- package/dist/esm/webgl-utils/format-utils.js.map +0 -1
- package/dist/esm/webgl-utils/get-error.js +0 -41
- package/dist/esm/webgl-utils/get-error.js.map +0 -1
- package/dist/esm/webgl-utils/index.js +0 -5
- package/dist/esm/webgl-utils/index.js.map +0 -1
- package/dist/esm/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/webgl-utils/request-animation-frame.js +0 -7
- package/dist/esm/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/esm/webgl-utils/texture-utils.js +0 -48
- package/dist/esm/webgl-utils/texture-utils.js.map +0 -1
- package/dist/esm/webgl-utils/typed-array-utils.js.map +0 -1
- package/dist/helpers/get-program-bindings.d.ts +0 -8
- package/dist/helpers/get-program-bindings.d.ts.map +0 -1
- package/dist/helpers/get-program-bindings.js +0 -228
- package/dist/helpers/get-program-bindings.js.map +0 -1
- package/dist/helpers/program-bindings.d.ts +0 -41
- package/dist/helpers/program-bindings.d.ts.map +0 -1
- package/dist/helpers/program-bindings.js +0 -2
- package/dist/types/accessor.d.ts +0 -29
- package/dist/webgl-utils/attribute-utils.d.ts +0 -18
- package/dist/webgl-utils/attribute-utils.d.ts.map +0 -1
- package/dist/webgl-utils/attribute-utils.js +0 -182
- package/dist/webgl-utils/attribute-utils.js.map +0 -1
- package/dist/webgl-utils/constants-to-keys.d.ts +0 -4
- package/dist/webgl-utils/constants-to-keys.d.ts.map +0 -1
- package/dist/webgl-utils/constants-to-keys.js.map +0 -1
- package/dist/webgl-utils/format-utils.d.ts +0 -3
- package/dist/webgl-utils/format-utils.d.ts.map +0 -1
- package/dist/webgl-utils/format-utils.js +0 -45
- package/dist/webgl-utils/format-utils.js.map +0 -1
- package/dist/webgl-utils/get-error.d.ts +0 -3
- package/dist/webgl-utils/get-error.d.ts.map +0 -1
- package/dist/webgl-utils/get-error.js +0 -41
- package/dist/webgl-utils/get-error.js.map +0 -1
- package/dist/webgl-utils/index.d.ts +0 -5
- package/dist/webgl-utils/index.d.ts.map +0 -1
- package/dist/webgl-utils/index.js +0 -5
- package/dist/webgl-utils/index.js.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.d.ts.map +0 -1
- package/dist/webgl-utils/parse-shader-compiler-log.js.map +0 -1
- package/dist/webgl-utils/request-animation-frame.d.ts +0 -4
- package/dist/webgl-utils/request-animation-frame.d.ts.map +0 -1
- package/dist/webgl-utils/request-animation-frame.js +0 -7
- package/dist/webgl-utils/request-animation-frame.js.map +0 -1
- package/dist/webgl-utils/texture-utils.d.ts +0 -15
- package/dist/webgl-utils/texture-utils.d.ts.map +0 -1
- package/dist/webgl-utils/texture-utils.js +0 -48
- package/dist/webgl-utils/texture-utils.js.map +0 -1
- package/dist/webgl-utils/typed-array-utils.d.ts.map +0 -1
- package/dist/webgl-utils/typed-array-utils.js.map +0 -1
- package/src/.DS_Store +0 -0
- package/src/adapter/converters/webgpu-texture-formats.ts +0 -167
- package/src/classes/accessor.d.ts +0 -28
- package/src/classes/accessor.js +0 -129
- package/src/classes/accessor.ts.disabled +0 -159
- package/src/classes/clear.ts +0 -108
- package/src/classes/copy-and-blit.ts +0 -460
- package/src/classes/framebuffer.ts +0 -763
- package/src/classes/program-configuration.ts +0 -77
- package/src/classes/program.ts +0 -431
- package/src/classes/query.ts +0 -171
- package/src/classes/renderbuffer.ts +0 -154
- package/src/classes/shader.ts +0 -129
- package/src/classes/texture-2d.ts +0 -35
- package/src/classes/texture-3d.ts +0 -123
- package/src/classes/texture-cube.ts +0 -162
- package/src/classes/texture-formats.ts +0 -171
- package/src/classes/texture.ts +0 -965
- package/src/classes/transform-feedback.ts +0 -191
- package/src/classes/uniform-buffer-layout.ts +0 -113
- package/src/classes/uniforms.ts +0 -394
- package/src/classes/vertex-array-object.ts +0 -339
- package/src/classes/vertex-array.ts +0 -484
- package/src/context/context/get-canvas.ts +0 -37
- package/src/context/context/resize-context.ts +0 -37
- package/src/context/parameters/webgl-parameters.ts +0 -197
- package/src/debug/debug-program-configuration.ts +0 -32
- package/src/debug/debug-uniforms.ts +0 -100
- package/src/debug/debug-vertex-array.ts +0 -123
- package/src/helpers/get-program-bindings.ts +0 -244
- package/src/helpers/program-bindings.ts +0 -46
- package/src/types/accessor.d.ts +0 -29
- package/src/webgl-utils/attribute-utils.ts +0 -171
- package/src/webgl-utils/format-utils.ts +0 -43
- package/src/webgl-utils/get-error.ts +0 -56
- package/src/webgl-utils/index.ts +0 -12
- package/src/webgl-utils/request-animation-frame.ts +0 -14
- package/src/webgl-utils/texture-utils.ts +0 -60
|
@@ -5,17 +5,41 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.withDeviceParameters = withDeviceParameters;
|
|
8
9
|
exports.setDeviceParameters = setDeviceParameters;
|
|
9
10
|
exports.convertCompareFunction = convertCompareFunction;
|
|
11
|
+
exports.convertToCompareFunction = convertToCompareFunction;
|
|
12
|
+
|
|
13
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
14
|
|
|
11
15
|
var _api = require("@luma.gl/api");
|
|
12
16
|
|
|
13
17
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
14
18
|
|
|
15
|
-
var
|
|
19
|
+
var _trackContextState = require("../../context/state-tracker/track-context-state");
|
|
20
|
+
|
|
21
|
+
var _unifiedParameterApi = require("../../context/parameters/unified-parameter-api");
|
|
22
|
+
|
|
23
|
+
var _webglDevice = _interopRequireDefault(require("../webgl-device"));
|
|
24
|
+
|
|
25
|
+
function withDeviceParameters(device, parameters, func) {
|
|
26
|
+
if ((0, _api.isObjectEmpty)(parameters)) {
|
|
27
|
+
return func(device);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
(0, _trackContextState.pushContextState)(device.gl);
|
|
31
|
+
|
|
32
|
+
try {
|
|
33
|
+
(0, _unifiedParameterApi.setParameters)(device, parameters);
|
|
34
|
+
setDeviceParameters(device, parameters);
|
|
35
|
+
return func(device);
|
|
36
|
+
} finally {
|
|
37
|
+
(0, _trackContextState.popContextState)(device.gl);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
16
40
|
|
|
17
41
|
function setDeviceParameters(device, parameters) {
|
|
18
|
-
var webglDevice =
|
|
42
|
+
var webglDevice = _webglDevice.default.attach(device);
|
|
19
43
|
|
|
20
44
|
var gl = webglDevice.gl,
|
|
21
45
|
gl2 = webglDevice.gl2;
|
|
@@ -54,7 +78,8 @@ function setDeviceParameters(device, parameters) {
|
|
|
54
78
|
}
|
|
55
79
|
|
|
56
80
|
if (parameters.depthCompare) {
|
|
57
|
-
parameters.depthCompare !== 'always' ? gl.enable(_constants.default.DEPTH_TEST) : gl.disable(_constants.default.DEPTH_TEST)
|
|
81
|
+
parameters.depthCompare !== 'always' ? gl.enable(_constants.default.DEPTH_TEST) : gl.disable(_constants.default.DEPTH_TEST);
|
|
82
|
+
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
58
83
|
}
|
|
59
84
|
|
|
60
85
|
if (parameters.stencilWriteMask) {
|
|
@@ -71,7 +96,8 @@ function setDeviceParameters(device, parameters) {
|
|
|
71
96
|
var _mask = parameters.stencilReadMask || 0xffffffff;
|
|
72
97
|
|
|
73
98
|
var glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);
|
|
74
|
-
parameters.stencilCompare !== 'always' ? gl.enable(_constants.default.STENCIL_TEST) : gl.disable(_constants.default.STENCIL_TEST)
|
|
99
|
+
parameters.stencilCompare !== 'always' ? gl.enable(_constants.default.STENCIL_TEST) : gl.disable(_constants.default.STENCIL_TEST);
|
|
100
|
+
gl.stencilFuncSeparate(_constants.default.FRONT, glValue, 0, _mask);
|
|
75
101
|
gl.stencilFuncSeparate(_constants.default.BACK, glValue, 0, _mask);
|
|
76
102
|
}
|
|
77
103
|
|
|
@@ -97,6 +123,12 @@ function convertCompareFunction(parameter, value) {
|
|
|
97
123
|
});
|
|
98
124
|
}
|
|
99
125
|
|
|
126
|
+
function convertToCompareFunction(parameter, value) {
|
|
127
|
+
var _map;
|
|
128
|
+
|
|
129
|
+
return map(parameter, value, (_map = {}, (0, _defineProperty2.default)(_map, _constants.default.NEVER, 'never'), (0, _defineProperty2.default)(_map, _constants.default.LESS, 'less'), (0, _defineProperty2.default)(_map, _constants.default.EQUAL, 'equal'), (0, _defineProperty2.default)(_map, _constants.default.LEQUAL, 'less-equal'), (0, _defineProperty2.default)(_map, _constants.default.GREATER, 'greater'), (0, _defineProperty2.default)(_map, _constants.default.NOTEQUAL, 'not-equal'), (0, _defineProperty2.default)(_map, _constants.default.GEQUAL, 'greater-equal'), (0, _defineProperty2.default)(_map, _constants.default.ALWAYS, 'always'), _map));
|
|
130
|
+
}
|
|
131
|
+
|
|
100
132
|
function convertStencilOperation(parameter, value) {
|
|
101
133
|
return map(parameter, value, {
|
|
102
134
|
'keep': _constants.default.KEEP,
|
|
@@ -135,4 +167,4 @@ function map(parameter, value, valueMap) {
|
|
|
135
167
|
function mapBoolean(parameter, value) {
|
|
136
168
|
return value;
|
|
137
169
|
}
|
|
138
|
-
//# sourceMappingURL=
|
|
170
|
+
//# sourceMappingURL=device-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/adapter/converters/device-parameters.ts"],"names":["withDeviceParameters","device","parameters","func","gl","setDeviceParameters","webglDevice","WebGLDevice","attach","gl2","cullMode","disable","GL","CULL_FACE","enable","cullFace","FRONT","BACK","frontFace","map","ccw","CCW","cw","CW","depthBias","undefined","polygonOffset","depthBiasSlopeScale","depthWriteEnabled","depthMask","mapBoolean","depthCompare","DEPTH_TEST","depthFunc","convertCompareFunction","stencilWriteMask","mask","stencilMaskSeparate","stencilReadMask","log","warn","stencilCompare","glValue","STENCIL_TEST","stencilFuncSeparate","stencilPassOperation","dppass","convertStencilOperation","sfail","stencilFailOperation","dpfail","stencilDepthFailOperation","stencilOpSeparate","parameter","value","NEVER","LESS","EQUAL","LEQUAL","GREATER","NOTEQUAL","GEQUAL","ALWAYS","convertToCompareFunction","KEEP","ZERO","REPLACE","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","convertBlendOperationToEquation","FUNC_ADD","FUNC_SUBTRACT","FUNC_REVERSE_SUBTRACT","MIN","MAX","message","valueMap","Error"],"mappings":"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","sourcesContent":["import {Device, Parameters, CompareFunction, StencilOperation, log, isObjectEmpty} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport type { GLParameters } from '../../types/webgl';\nimport {pushContextState, popContextState} from '../../context/state-tracker/track-context-state';\nimport {setParameters} from '../../context/parameters/unified-parameter-api';\nimport WebGLDevice from '../webgl-device';\n\n/**\n * Execute a function with a set of temporary WebGL parameter overrides\n * - Saves current \"global\" WebGL context settings\n * - Sets the supplies WebGL context parameters,\n * - Executes supplied function\n * - Restores parameters\n * - Returns the return value of the supplied function\n */\nexport function withDeviceParameters<T = unknown>(device: Device, parameters: Parameters & GLParameters, func: (device?: Device) => T): T {\n if (isObjectEmpty(parameters)) {\n // Avoid setting state if no parameters provided. Just call and return\n return func(device);\n }\n\n // Wrap in a try-catch to ensure that parameters are restored on exceptions\n // @ts-expect-error\n pushContextState(device.gl);\n try {\n setParameters(device, parameters);\n setDeviceParameters(device, parameters);\n return func(device);\n } finally {\n // @ts-expect-error\n popContextState(device.gl);\n }\n}\n\n\n/** Set WebGPU Style Parameters */\nexport function setDeviceParameters(device: Device, parameters: Parameters) {\n const webglDevice = WebGLDevice.attach(device);\n const {gl, gl2} = webglDevice;\n\n // RASTERIZATION SETTINGS\n if (parameters.cullMode) {\n switch (parameters.cullMode) {\n case 'none':\n gl.disable(GL.CULL_FACE);\n break;\n case 'front':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.FRONT);\n break;\n case 'back':\n gl.enable(GL.CULL_FACE);\n gl.cullFace(GL.BACK);\n break;\n }\n }\n\n if (parameters.frontFace) {\n gl.frontFace(map('frontFace', parameters.frontFace, {\n ccw: GL.CCW,\n cw: GL.CW\n }));\n }\n\n if (parameters.depthBias !== undefined) {\n gl.polygonOffset(parameters.depthBias, parameters.depthBiasSlopeScale || 0);\n }\n\n // depthBiasSlopeScale: {\n // // Handled by depthBias\n // },\n\n // DEPTH STENCIL\n\n if (parameters.depthWriteEnabled !== undefined) {\n gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));\n }\n\n if (parameters.depthCompare) {\n parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);\n gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));\n }\n\n if (parameters.stencilWriteMask) {\n const mask = parameters.stencilWriteMask;\n gl.stencilMaskSeparate(GL.FRONT, mask);\n gl.stencilMaskSeparate(GL.BACK, mask);\n }\n\n if (parameters.stencilReadMask) {\n // stencilReadMask is handle inside stencil***Compare.\n log.warn('stencilReadMask not supported under WebGL');\n }\n\n if (parameters.stencilCompare) {\n const mask = parameters.stencilReadMask || 0xffffffff;\n const glValue = convertCompareFunction('depthCompare', parameters.stencilCompare);\n // TODO - ensure back doesn't overwrite\n parameters.stencilCompare !== 'always' ? gl.enable(GL.STENCIL_TEST) : gl.disable(GL.STENCIL_TEST);\n gl.stencilFuncSeparate(GL.FRONT, glValue, 0, mask);\n gl.stencilFuncSeparate(GL.BACK, glValue, 0, mask);\n }\n\n if (parameters.stencilPassOperation) {\n const dppass = convertStencilOperation('stencilPassOperation', parameters.stencilPassOperation);\n const sfail = convertStencilOperation('stencilFailOperation', parameters.stencilFailOperation);\n const dpfail = convertStencilOperation('stencilDepthFailOperation', parameters.stencilDepthFailOperation);\n gl.stencilOpSeparate(GL.FRONT, sfail, dpfail, dppass);\n gl.stencilOpSeparate(GL.BACK, sfail, dpfail, dppass);\n }\n\n // stencilDepthFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // stencilFailOperation() {\n // // handled by stencilPassOperation\n // },\n\n // COLOR STATE\n\n // if (parameters.blend) {\n // gl.enable(GL.BLEND);\n\n // const blend = parameters.blend;\n\n // let colorEquation = (blend && blend.color && blend.color.operation) || 'add';\n // let alphaEquation = (blend && blend.alpha && blend.alpha.operation) || 'add';\n // gl.blendEquationSeparate(colorEquation, alphaEquation);\n\n // let colorSrcFactor = (blend && blend.color && blend.color.srcFactor) || 'one';\n // let colorDstFactor = (blend && blend.color && blend.color.dstFactor) || 'zero';\n // let alphaSrcFactor = (blend && blend.alpha && blend.alpha.srcFactor) || 'one';\n // let alphaDstFactor = (blend && blend.alpha && blend.alpha.dstFactor) || 'zero';\n // gl.blendFuncSeparate(colorSrcFactor, colorDstFactor, alphaSrcFactor, alphaDstFactor);\n // }\n}\n\n/*\n rasterizationState: {\n cullMode: \"back\",\n },\n\n depthStencilState: {\n depthWriteEnabled: true,\n depthCompare: \"less\",\n format: \"depth24plus-stencil8\",\n },\n\n colorStates: [\n {\n format: \"bgra8unorm\",\n // colorBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // colorBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n // alphaBlend.srcFactor = wgpu::BlendFactor::SrcAlpha;\n // alphaBlend.dstFactor = wgpu::BlendFactor::OneMinusSrcAlpha;\n },\n ],\n });\n*/\n\nexport function convertCompareFunction(parameter: string, value: CompareFunction): GL {\n return map(parameter, value, {\n 'never': GL.NEVER,\n 'less': GL.LESS,\n 'equal': GL.EQUAL,\n 'less-equal': GL.LEQUAL,\n 'greater': GL.GREATER,\n 'not-equal': GL.NOTEQUAL,\n 'greater-equal': GL.GEQUAL,\n 'always': GL.ALWAYS\n });\n}\n\nexport function convertToCompareFunction(parameter: string, value: GL): CompareFunction {\n return map(parameter, value, {\n [GL.NEVER]: 'never',\n [GL.LESS]: 'less',\n [GL.EQUAL]: 'equal',\n [GL.LEQUAL]: 'less-equal',\n [GL.GREATER]: 'greater',\n [GL.NOTEQUAL]: 'not-equal',\n [GL.GEQUAL]: 'greater-equal',\n [GL.ALWAYS]: 'always'\n });\n}\n\nfunction convertStencilOperation(parameter: string, value: StencilOperation): GL {\n return map(parameter, value, {\n 'keep': GL.KEEP,\n 'zero': GL.ZERO,\n 'replace': GL.REPLACE,\n 'invert': GL.INVERT,\n 'increment-clamp': GL.INCR,\n 'decrement-clamp': GL.DECR,\n 'increment-wrap': GL.INCR_WRAP,\n 'decrement-wrap': GL.DECR_WRAP\n });\n}\n\nfunction convertBlendOperationToEquation(parameter, value): number {\n return map(parameter, value, {\n 'add': GL.FUNC_ADD,\n 'sub': GL.FUNC_SUBTRACT,\n 'reverse-subtract': GL.FUNC_REVERSE_SUBTRACT,\n // When using a WebGL 2 context, the following values are available additionally:\n 'min': GL.MIN,\n 'max': GL.MAX\n });\n}\n\nfunction message(parameter: string, value: any): string {\n return `Illegal parameter ${value} for ${parameter}`;\n}\n\nfunction map(parameter: string, value: any, valueMap: Record<string, any>): any {\n if (!(value in valueMap)) {\n throw new Error(message(parameter, value));\n }\n return valueMap[value];\n}\n\nfunction mapBoolean(parameter, value) {\n return value;\n}\n"],"file":"device-parameters.js"}
|
|
@@ -13,7 +13,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
13
13
|
|
|
14
14
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
15
15
|
|
|
16
|
-
var _webglChecks = require("
|
|
16
|
+
var _webglChecks = require("../../context/context/webgl-checks");
|
|
17
17
|
|
|
18
18
|
var _RENDERBUFFER_FORMATS;
|
|
19
19
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/adapter/converters/renderbuffer-formats.ts"],"names":["isRenderbufferFormatSupported","gl","format","info","RENDERBUFFER_FORMATS","ext","Boolean","getExtension","gl2","getRenderbufferFormatBytesPerPixel","bpp","EXT_FLOAT_WEBGL2","GL","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","STENCIL_INDEX8","DEPTH_STENCIL","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","RGBA4","RGB565","RGB5_A1","R8","R8UI","R8I","R16UI","R16I","R32UI","R32I","RG8","RG8UI","RG8I","RG16UI","RG16I","RG32UI","RG32I","RGB8","RGBA8","RGB10_A2","RGBA8UI","RGBA8I","RGB10_A2UI","RGBA16UI","RGBA16I","RGBA32I","RGBA32UI","R16F","RG16F","RGBA16F","R32F","RG32F","RGBA32F","R11F_G11F_B10F"],"mappings":"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","sourcesContent":["import GL from '@luma.gl/constants';\nimport {isWebGL2} from '../../context/context/webgl-checks';\n\nexport function isRenderbufferFormatSupported(gl: WebGLRenderingContext, format: GL): boolean {\n const info = RENDERBUFFER_FORMATS[format];\n // Unknown format\n if (!info) {\n return false;\n }\n if (info.ext) {\n return Boolean(gl.getExtension(info.ext));\n }\n if (info.gl2) {\n return isWebGL2(gl);\n }\n return true;\n}\n\nexport function getRenderbufferFormatBytesPerPixel(format: GL): number {\n return RENDERBUFFER_FORMATS[format].bpp;\n}\n\n// Define local extension strings to optimize minification\nconst EXT_FLOAT_WEBGL2 = 'EXT_color_buffer_float';\n\n/**\n * @param bpp \"bytes per pixel\", used for memory usage calculations.\n * @param gl2 requires WebGL2\n * @param ext requires extension\n */\ntype RenderbufferFormat = {\n bpp: number;\n gl2?: boolean;\n ext?: string;\n};\n\nconst RENDERBUFFER_FORMATS: Record<string, RenderbufferFormat> = {\n [GL.DEPTH_COMPONENT16]: {bpp: 2}, // 16 depth bits.\n [GL.DEPTH_COMPONENT24]: {gl2: true, bpp: 3},\n [GL.DEPTH_COMPONENT32F]: {gl2: true, bpp: 4},\n\n [GL.STENCIL_INDEX8]: {bpp: 1}, // 8 stencil bits.\n\n [GL.DEPTH_STENCIL]: {bpp: 4},\n [GL.DEPTH24_STENCIL8]: {gl2: true, bpp: 4},\n [GL.DEPTH32F_STENCIL8]: {gl2: true, bpp: 5},\n\n // When using a WebGL 1 context, color renderbuffer formats are limited\n [GL.RGBA4]: {bpp: 2},\n [GL.RGB565]: {bpp: 2},\n [GL.RGB5_A1]: {bpp: 2},\n\n // When using a WebGL 2 context, the following values are available additionally:\n [GL.R8]: {gl2: true, bpp: 1},\n [GL.R8UI]: {gl2: true, bpp: 1},\n [GL.R8I]: {gl2: true, bpp: 1},\n [GL.R16UI]: {gl2: true, bpp: 2},\n [GL.R16I]: {gl2: true, bpp: 2},\n [GL.R32UI]: {gl2: true, bpp: 4},\n [GL.R32I]: {gl2: true, bpp: 4},\n [GL.RG8]: {gl2: true, bpp: 2},\n [GL.RG8UI]: {gl2: true, bpp: 2},\n [GL.RG8I]: {gl2: true, bpp: 2},\n [GL.RG16UI]: {gl2: true, bpp: 4},\n [GL.RG16I]: {gl2: true, bpp: 4},\n [GL.RG32UI]: {gl2: true, bpp: 8},\n [GL.RG32I]: {gl2: true, bpp: 8},\n [GL.RGB8]: {gl2: true, bpp: 3},\n [GL.RGBA8]: {gl2: true, bpp: 4},\n // [GL.SRGB8_ALPHA8]: {gl2: true, gl1: SRGB}, // When using the EXT_sRGB WebGL1 extension\n [GL.RGB10_A2]: {gl2: true, bpp: 4},\n [GL.RGBA8UI]: {gl2: true, bpp: 4},\n [GL.RGBA8I]: {gl2: true, bpp: 4},\n [GL.RGB10_A2UI]: {gl2: true, bpp: 4},\n [GL.RGBA16UI]: {gl2: true, bpp: 8},\n [GL.RGBA16I]: {gl2: true, bpp: 8},\n [GL.RGBA32I]: {gl2: true, bpp: 16},\n [GL.RGBA32UI]: {gl2: true, bpp: 16},\n\n // When using a WebGL 2 context and the EXT_color_buffer_float WebGL2 extension\n [GL.R16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 2},\n [GL.RG16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RGBA16F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n [GL.R32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4},\n [GL.RG32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 8},\n // TODO - can't get WEBGL_color_buffer_float to work on renderbuffers\n [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, bpp: 16},\n // [GL.RGBA32F]: {ext: EXT_FLOAT_WEBGL2, gl1: EXT_FLOAT_WEBGL1},\n [GL.R11F_G11F_B10F]: {ext: EXT_FLOAT_WEBGL2, bpp: 4}\n};\n\nexport default RENDERBUFFER_FORMATS;\n"],"file":"renderbuffer-formats.js"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.convertSamplerParametersToWebGL = convertSamplerParametersToWebGL;
|
|
9
|
+
exports.convertToSamplerParameters = convertToSamplerParameters;
|
|
10
|
+
exports.updateSamplerParametersForNPOT = updateSamplerParametersForNPOT;
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
15
|
+
|
|
16
|
+
var _deviceParameters = require("./device-parameters");
|
|
17
|
+
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
|
+
|
|
22
|
+
function convertSamplerParametersToWebGL(props) {
|
|
23
|
+
var params = {};
|
|
24
|
+
|
|
25
|
+
if (props.addressModeU) {
|
|
26
|
+
params[_constants.default.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (props.addressModeV) {
|
|
30
|
+
params[_constants.default.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (props.addressModeW) {
|
|
34
|
+
params[_constants.default.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
if (props.magFilter) {
|
|
38
|
+
params[_constants.default.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (props.minFilter || props.mipmapFilter) {
|
|
42
|
+
params[_constants.default.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (props.lodMinClamp !== undefined) {
|
|
46
|
+
params[_constants.default.TEXTURE_MIN_LOD] = props.lodMinClamp;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (props.lodMaxClamp !== undefined) {
|
|
50
|
+
params[_constants.default.TEXTURE_MAX_LOD] = props.lodMaxClamp;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
if (props.compare) {
|
|
54
|
+
params[_constants.default.TEXTURE_COMPARE_MODE] = _constants.default.COMPARE_REF_TO_TEXTURE;
|
|
55
|
+
params[_constants.default.TEXTURE_COMPARE_FUNC] = (0, _deviceParameters.convertCompareFunction)('compare', props.compare);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (props.maxAnisotropy) {
|
|
59
|
+
props[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return params;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function convertAddressMode(addressMode) {
|
|
66
|
+
switch (addressMode) {
|
|
67
|
+
case 'clamp-to-edge':
|
|
68
|
+
return _constants.default.CLAMP_TO_EDGE;
|
|
69
|
+
|
|
70
|
+
case 'repeat':
|
|
71
|
+
return _constants.default.REPEAT;
|
|
72
|
+
|
|
73
|
+
case 'mirror-repeat':
|
|
74
|
+
return _constants.default.MIRRORED_REPEAT;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
function convertMaxFilterMode(maxFilter) {
|
|
79
|
+
switch (maxFilter) {
|
|
80
|
+
case 'nearest':
|
|
81
|
+
return _constants.default.NEAREST;
|
|
82
|
+
|
|
83
|
+
case 'linear':
|
|
84
|
+
return _constants.default.LINEAR;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function convertMinFilterMode(minFilter, mipmapFilter) {
|
|
89
|
+
if (!mipmapFilter) {
|
|
90
|
+
return convertMaxFilterMode(minFilter);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
switch (minFilter) {
|
|
94
|
+
case 'nearest':
|
|
95
|
+
return mipmapFilter === 'nearest' ? _constants.default.NEAREST_MIPMAP_NEAREST : _constants.default.NEAREST_MIPMAP_LINEAR;
|
|
96
|
+
|
|
97
|
+
case 'linear':
|
|
98
|
+
return mipmapFilter === 'nearest' ? _constants.default.LINEAR_MIPMAP_NEAREST : _constants.default.LINEAR_MIPMAP_LINEAR;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function convertToSamplerParameters(params) {
|
|
103
|
+
var props = {};
|
|
104
|
+
|
|
105
|
+
if (params[_constants.default.TEXTURE_WRAP_S]) {
|
|
106
|
+
props.addressModeU = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_S]);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (params[_constants.default.TEXTURE_WRAP_T]) {
|
|
110
|
+
props.addressModeV = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_T]);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (params[_constants.default.TEXTURE_WRAP_R]) {
|
|
114
|
+
props.addressModeW = convertToAddressMode(params[_constants.default.TEXTURE_WRAP_R]);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (params[_constants.default.TEXTURE_MAG_FILTER]) {
|
|
118
|
+
props.magFilter = convertToMaxFilterMode(params[_constants.default.TEXTURE_MAG_FILTER]);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (params[_constants.default.TEXTURE_MIN_FILTER]) {
|
|
122
|
+
props.minFilter = convertToMinFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (params[_constants.default.TEXTURE_MIN_FILTER]) {
|
|
126
|
+
props.mipmapFilter = convertToMipmapFilterMode(params[_constants.default.TEXTURE_MIN_FILTER]);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (params[_constants.default.TEXTURE_MIN_LOD]) {
|
|
130
|
+
props.lodMinClamp = params[_constants.default.TEXTURE_MIN_LOD];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (params[_constants.default.TEXTURE_MAX_LOD]) {
|
|
134
|
+
props.lodMaxClamp = params[_constants.default.TEXTURE_MAX_LOD];
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
if (params[_constants.default.TEXTURE_COMPARE_MODE] === _constants.default.COMPARE_REF_TO_TEXTURE) {
|
|
138
|
+
props.compare = (0, _deviceParameters.convertToCompareFunction)('compare', params[_constants.default.TEXTURE_COMPARE_FUNC]);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT]) {
|
|
142
|
+
props.maxAnisotropy = params[_constants.default.TEXTURE_MAX_ANISOTROPY_EXT];
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
return props;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
function convertToAddressMode(addressMode) {
|
|
149
|
+
switch (addressMode) {
|
|
150
|
+
case _constants.default.CLAMP_TO_EDGE:
|
|
151
|
+
return 'clamp-to-edge';
|
|
152
|
+
|
|
153
|
+
case _constants.default.REPEAT:
|
|
154
|
+
return 'repeat';
|
|
155
|
+
|
|
156
|
+
case _constants.default.MIRRORED_REPEAT:
|
|
157
|
+
return 'mirror-repeat';
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
function convertToMaxFilterMode(filterMode) {
|
|
162
|
+
switch (filterMode) {
|
|
163
|
+
case _constants.default.NEAREST:
|
|
164
|
+
return 'nearest';
|
|
165
|
+
|
|
166
|
+
case _constants.default.LINEAR:
|
|
167
|
+
return 'linear';
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
function convertToMinFilterMode(filterMode) {
|
|
172
|
+
switch (filterMode) {
|
|
173
|
+
case _constants.default.NEAREST:
|
|
174
|
+
return 'nearest';
|
|
175
|
+
|
|
176
|
+
case _constants.default.LINEAR:
|
|
177
|
+
return 'linear';
|
|
178
|
+
|
|
179
|
+
case _constants.default.NEAREST_MIPMAP_NEAREST:
|
|
180
|
+
return 'nearest';
|
|
181
|
+
|
|
182
|
+
case _constants.default.LINEAR_MIPMAP_NEAREST:
|
|
183
|
+
return 'linear';
|
|
184
|
+
|
|
185
|
+
case _constants.default.NEAREST_MIPMAP_LINEAR:
|
|
186
|
+
return 'nearest';
|
|
187
|
+
|
|
188
|
+
case _constants.default.LINEAR_MIPMAP_LINEAR:
|
|
189
|
+
return 'linear';
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
function convertToMipmapFilterMode(filterMode) {
|
|
194
|
+
switch (filterMode) {
|
|
195
|
+
case _constants.default.NEAREST:
|
|
196
|
+
return 'nearest';
|
|
197
|
+
|
|
198
|
+
case _constants.default.LINEAR:
|
|
199
|
+
return 'linear';
|
|
200
|
+
|
|
201
|
+
case _constants.default.NEAREST_MIPMAP_NEAREST:
|
|
202
|
+
return 'nearest';
|
|
203
|
+
|
|
204
|
+
case _constants.default.LINEAR_MIPMAP_NEAREST:
|
|
205
|
+
return 'nearest';
|
|
206
|
+
|
|
207
|
+
case _constants.default.NEAREST_MIPMAP_LINEAR:
|
|
208
|
+
return 'linear';
|
|
209
|
+
|
|
210
|
+
case _constants.default.LINEAR_MIPMAP_LINEAR:
|
|
211
|
+
return 'linear';
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function updateSamplerParametersForNPOT(parameters) {
|
|
216
|
+
var newParameters = _objectSpread({}, parameters);
|
|
217
|
+
|
|
218
|
+
if (parameters[_constants.default.TEXTURE_MIN_FILTER] !== _constants.default.NEAREST) {
|
|
219
|
+
newParameters[_constants.default.TEXTURE_MIN_FILTER] = _constants.default.LINEAR;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
newParameters[_constants.default.TEXTURE_WRAP_S] = _constants.default.CLAMP_TO_EDGE;
|
|
223
|
+
newParameters[_constants.default.TEXTURE_WRAP_T] = _constants.default.CLAMP_TO_EDGE;
|
|
224
|
+
return newParameters;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=sampler-parameters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/adapter/converters/sampler-parameters.ts"],"names":["convertSamplerParametersToWebGL","props","params","addressModeU","GL","TEXTURE_WRAP_S","convertAddressMode","addressModeV","TEXTURE_WRAP_T","addressModeW","TEXTURE_WRAP_R","magFilter","TEXTURE_MAG_FILTER","convertMaxFilterMode","minFilter","mipmapFilter","TEXTURE_MIN_FILTER","convertMinFilterMode","lodMinClamp","undefined","TEXTURE_MIN_LOD","lodMaxClamp","TEXTURE_MAX_LOD","compare","TEXTURE_COMPARE_MODE","COMPARE_REF_TO_TEXTURE","TEXTURE_COMPARE_FUNC","maxAnisotropy","TEXTURE_MAX_ANISOTROPY_EXT","addressMode","CLAMP_TO_EDGE","REPEAT","MIRRORED_REPEAT","maxFilter","NEAREST","LINEAR","NEAREST_MIPMAP_NEAREST","NEAREST_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINEAR_MIPMAP_LINEAR","convertToSamplerParameters","convertToAddressMode","convertToMaxFilterMode","convertToMinFilterMode","convertToMipmapFilterMode","filterMode","updateSamplerParametersForNPOT","parameters","newParameters"],"mappings":";;;;;;;;;;;;;AAEA;;AAEA;;;;;;AAOO,SAASA,+BAAT,CAAyCC,KAAzC,EAA2F;AAChG,MAAMC,MAA8B,GAAG,EAAvC;;AACA,MAAID,KAAK,CAACE,YAAV,EAAwB;AACtBD,IAAAA,MAAM,CAACE,mBAAGC,cAAJ,CAAN,GAA4BC,kBAAkB,CAACL,KAAK,CAACE,YAAP,CAA9C;AACD;;AACD,MAAIF,KAAK,CAACM,YAAV,EAAwB;AACtBL,IAAAA,MAAM,CAACE,mBAAGI,cAAJ,CAAN,GAA4BF,kBAAkB,CAACL,KAAK,CAACM,YAAP,CAA9C;AACD;;AACD,MAAIN,KAAK,CAACQ,YAAV,EAAwB;AACtBP,IAAAA,MAAM,CAACE,mBAAGM,cAAJ,CAAN,GAA4BJ,kBAAkB,CAACL,KAAK,CAACQ,YAAP,CAA9C;AACD;;AACD,MAAIR,KAAK,CAACU,SAAV,EAAqB;AACnBT,IAAAA,MAAM,CAACE,mBAAGQ,kBAAJ,CAAN,GAAgCC,oBAAoB,CAACZ,KAAK,CAACU,SAAP,CAApD;AACD;;AACD,MAAIV,KAAK,CAACa,SAAN,IAAmBb,KAAK,CAACc,YAA7B,EAA2C;AAEzCb,IAAAA,MAAM,CAACE,mBAAGY,kBAAJ,CAAN,GAAgCC,oBAAoB,CAAChB,KAAK,CAACa,SAAN,IAAmB,QAApB,EAA8Bb,KAAK,CAACc,YAApC,CAApD;AACD;;AACD,MAAId,KAAK,CAACiB,WAAN,KAAsBC,SAA1B,EAAqC;AACnCjB,IAAAA,MAAM,CAACE,mBAAGgB,eAAJ,CAAN,GAA6BnB,KAAK,CAACiB,WAAnC;AACD;;AACD,MAAIjB,KAAK,CAACoB,WAAN,KAAsBF,SAA1B,EAAqC;AACnCjB,IAAAA,MAAM,CAACE,mBAAGkB,eAAJ,CAAN,GAA6BrB,KAAK,CAACoB,WAAnC;AACD;;AACD,MAAIpB,KAAK,CAACsB,OAAV,EAAmB;AAEjBrB,IAAAA,MAAM,CAACE,mBAAGoB,oBAAJ,CAAN,GAAkCpB,mBAAGqB,sBAArC;AACAvB,IAAAA,MAAM,CAACE,mBAAGsB,oBAAJ,CAAN,GAAkC,8CAAuB,SAAvB,EAAkCzB,KAAK,CAACsB,OAAxC,CAAlC;AACD;;AAED,MAAItB,KAAK,CAAC0B,aAAV,EAAyB;AACvB1B,IAAAA,KAAK,CAACG,mBAAGwB,0BAAJ,CAAL,GAAuC3B,KAAK,CAAC0B,aAA7C;AACD;;AACD,SAAOzB,MAAP;AACD;;AAGD,SAASI,kBAAT,CAA4BuB,WAA5B,EAA2F;AACzF,UAAQA,WAAR;AACE,SAAK,eAAL;AAAsB,aAAOzB,mBAAG0B,aAAV;;AACtB,SAAK,QAAL;AAAe,aAAO1B,mBAAG2B,MAAV;;AACf,SAAK,eAAL;AAAsB,aAAO3B,mBAAG4B,eAAV;AAHxB;AAKD;;AAED,SAASnB,oBAAT,CAA8BoB,SAA9B,EAAmE;AACjE,UAAQA,SAAR;AACE,SAAK,SAAL;AAAgB,aAAO7B,mBAAG8B,OAAV;;AAChB,SAAK,QAAL;AAAe,aAAO9B,mBAAG+B,MAAV;AAFjB;AAID;;AAMD,SAASlB,oBAAT,CAA8BH,SAA9B,EAA+DC,YAA/D,EAAwG;AACtG,MAAI,CAACA,YAAL,EAAmB;AACjB,WAAOF,oBAAoB,CAACC,SAAD,CAA3B;AACD;;AACD,UAAQA,SAAR;AACE,SAAK,SAAL;AAAgB,aAAOC,YAAY,KAAK,SAAjB,GAA6BX,mBAAGgC,sBAAhC,GAAyDhC,mBAAGiC,qBAAnE;;AAChB,SAAK,QAAL;AAAe,aAAOtB,YAAY,KAAK,SAAjB,GAA6BX,mBAAGkC,qBAAhC,GAAwDlC,mBAAGmC,oBAAlE;AAFjB;AAID;;AASO,SAASC,0BAAT,CAAoCtC,MAApC,EAAuF;AAC7F,MAAMD,KAAwB,GAAG,EAAjC;;AACA,MAAIC,MAAM,CAACE,mBAAGC,cAAJ,CAAV,EAA+B;AAC7BJ,IAAAA,KAAK,CAACE,YAAN,GAAqBsC,oBAAoB,CAACvC,MAAM,CAACE,mBAAGC,cAAJ,CAAP,CAAzC;AACD;;AACD,MAAIH,MAAM,CAACE,mBAAGI,cAAJ,CAAV,EAA+B;AAC7BP,IAAAA,KAAK,CAACM,YAAN,GAAqBkC,oBAAoB,CAACvC,MAAM,CAACE,mBAAGI,cAAJ,CAAP,CAAzC;AACD;;AACD,MAAIN,MAAM,CAACE,mBAAGM,cAAJ,CAAV,EAA+B;AAC7BT,IAAAA,KAAK,CAACQ,YAAN,GAAqBgC,oBAAoB,CAACvC,MAAM,CAACE,mBAAGM,cAAJ,CAAP,CAAzC;AACD;;AACD,MAAIR,MAAM,CAACE,mBAAGQ,kBAAJ,CAAV,EAAmC;AACjCX,IAAAA,KAAK,CAACU,SAAN,GAAkB+B,sBAAsB,CAACxC,MAAM,CAACE,mBAAGQ,kBAAJ,CAAP,CAAxC;AACD;;AACD,MAAIV,MAAM,CAACE,mBAAGY,kBAAJ,CAAV,EAAmC;AACjCf,IAAAA,KAAK,CAACa,SAAN,GAAkB6B,sBAAsB,CAACzC,MAAM,CAACE,mBAAGY,kBAAJ,CAAP,CAAxC;AACD;;AACD,MAAId,MAAM,CAACE,mBAAGY,kBAAJ,CAAV,EAAmC;AACjCf,IAAAA,KAAK,CAACc,YAAN,GAAqB6B,yBAAyB,CAAC1C,MAAM,CAACE,mBAAGY,kBAAJ,CAAP,CAA9C;AACD;;AACD,MAAId,MAAM,CAACE,mBAAGgB,eAAJ,CAAV,EAAgC;AAC9BnB,IAAAA,KAAK,CAACiB,WAAN,GAAoBhB,MAAM,CAACE,mBAAGgB,eAAJ,CAA1B;AACD;;AACD,MAAIlB,MAAM,CAACE,mBAAGkB,eAAJ,CAAV,EAAgC;AAC9BrB,IAAAA,KAAK,CAACoB,WAAN,GAAoBnB,MAAM,CAACE,mBAAGkB,eAAJ,CAA1B;AACD;;AACD,MAAIpB,MAAM,CAACE,mBAAGoB,oBAAJ,CAAN,KAAoCpB,mBAAGqB,sBAA3C,EAAmE;AACjExB,IAAAA,KAAK,CAACsB,OAAN,GAAgB,gDAAyB,SAAzB,EAAoCrB,MAAM,CAACE,mBAAGsB,oBAAJ,CAA1C,CAAhB;AACD;;AAED,MAAIxB,MAAM,CAACE,mBAAGwB,0BAAJ,CAAV,EAA2C;AACzC3B,IAAAA,KAAK,CAAC0B,aAAN,GAAsBzB,MAAM,CAACE,mBAAGwB,0BAAJ,CAA5B;AACD;;AACD,SAAO3B,KAAP;AACD;;AAGD,SAASwC,oBAAT,CAA8BZ,WAA9B,EAAiG;AAC/F,UAAQA,WAAR;AACE,SAAKzB,mBAAG0B,aAAR;AAAuB,aAAO,eAAP;;AACvB,SAAK1B,mBAAG2B,MAAR;AAAgB,aAAO,QAAP;;AAChB,SAAK3B,mBAAG4B,eAAR;AAAyB,aAAO,eAAP;AAH3B;AAKD;;AAED,SAASU,sBAAT,CAAgCG,UAAhC,EAA0E;AACxE,UAAQA,UAAR;AACE,SAAKzC,mBAAG8B,OAAR;AAAiB,aAAO,SAAP;;AACjB,SAAK9B,mBAAG+B,MAAR;AAAgB,aAAO,QAAP;AAFlB;AAID;;AAGD,SAASQ,sBAAT,CAAgCE,UAAhC,EAA0E;AACxE,UAAQA,UAAR;AAEE,SAAKzC,mBAAG8B,OAAR;AAAiB,aAAO,SAAP;;AACjB,SAAK9B,mBAAG+B,MAAR;AAAgB,aAAO,QAAP;;AAChB,SAAK/B,mBAAGgC,sBAAR;AAAgC,aAAO,SAAP;;AAChC,SAAKhC,mBAAGkC,qBAAR;AAA+B,aAAO,QAAP;;AAC/B,SAAKlC,mBAAGiC,qBAAR;AAA+B,aAAO,SAAP;;AAC/B,SAAKjC,mBAAGmC,oBAAR;AAA8B,aAAO,QAAP;AAPhC;AASD;;AAED,SAASK,yBAAT,CAAmCC,UAAnC,EAA6E;AAC3E,UAAQA,UAAR;AAEE,SAAKzC,mBAAG8B,OAAR;AAAiB,aAAO,SAAP;;AACjB,SAAK9B,mBAAG+B,MAAR;AAAgB,aAAO,QAAP;;AAChB,SAAK/B,mBAAGgC,sBAAR;AAAgC,aAAO,SAAP;;AAChC,SAAKhC,mBAAGkC,qBAAR;AAA+B,aAAO,SAAP;;AAC/B,SAAKlC,mBAAGiC,qBAAR;AAA+B,aAAO,QAAP;;AAC/B,SAAKjC,mBAAGmC,oBAAR;AAA8B,aAAO,QAAP;AAPhC;AASD;;AAKM,SAASO,8BAAT,CAAwCC,UAAxC,EAAoG;AACzG,MAAMC,aAAa,qBAAOD,UAAP,CAAnB;;AACA,MAAIA,UAAU,CAAC3C,mBAAGY,kBAAJ,CAAV,KAAsCZ,mBAAG8B,OAA7C,EAAsD;AAEpDc,IAAAA,aAAa,CAAC5C,mBAAGY,kBAAJ,CAAb,GAAuCZ,mBAAG+B,MAA1C;AACD;;AAEDa,EAAAA,aAAa,CAAC5C,mBAAGC,cAAJ,CAAb,GAAmCD,mBAAG0B,aAAtC;AACAkB,EAAAA,aAAa,CAAC5C,mBAAGI,cAAJ,CAAb,GAAmCJ,mBAAG0B,aAAtC;AACA,SAAOkB,aAAP;AACD","sourcesContent":["// SAMPLER FILTERS\nimport {SamplerParameters} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {WebGLSamplerParameters} from '../../types/webgl';\nimport {convertCompareFunction, convertToCompareFunction} from './device-parameters';\n\n/**\n * Convert WebGPU-style sampler props to WebGL\n * @param props\n * @returns\n */\nexport function convertSamplerParametersToWebGL(props: SamplerParameters): WebGLSamplerParameters {\n const params: Record<number, number> = {};\n if (props.addressModeU) {\n params[GL.TEXTURE_WRAP_S] = convertAddressMode(props.addressModeU);\n }\n if (props.addressModeV) {\n params[GL.TEXTURE_WRAP_T] = convertAddressMode(props.addressModeV);\n }\n if (props.addressModeW) {\n params[GL.TEXTURE_WRAP_R] = convertAddressMode(props.addressModeW);\n }\n if (props.magFilter) {\n params[GL.TEXTURE_MAG_FILTER] = convertMaxFilterMode(props.magFilter);\n }\n if (props.minFilter || props.mipmapFilter) {\n // TODO - arbitrary choice of linear?\n params[GL.TEXTURE_MIN_FILTER] = convertMinFilterMode(props.minFilter || 'linear', props.mipmapFilter);\n }\n if (props.lodMinClamp !== undefined) {\n params[GL.TEXTURE_MIN_LOD] = props.lodMinClamp;\n }\n if (props.lodMaxClamp !== undefined) {\n params[GL.TEXTURE_MAX_LOD] = props.lodMaxClamp;\n }\n if (props.compare) {\n // Setting prop.compare turns this into a comparison sampler\n params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;\n params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);\n }\n // Note depends on WebGL extension\n if (props.maxAnisotropy) {\n props[GL.TEXTURE_MAX_ANISOTROPY_EXT] = props.maxAnisotropy;\n }\n return params;\n}\n\n/** Convert address more */\nfunction convertAddressMode(addressMode: 'clamp-to-edge' | 'repeat' | 'mirror-repeat'): GL {\n switch (addressMode) {\n case 'clamp-to-edge': return GL.CLAMP_TO_EDGE;\n case 'repeat': return GL.REPEAT;\n case 'mirror-repeat': return GL.MIRRORED_REPEAT;\n }\n}\n\nfunction convertMaxFilterMode(maxFilter: 'nearest' | 'linear'): GL {\n switch (maxFilter) {\n case 'nearest': return GL.NEAREST;\n case 'linear': return GL.LINEAR;\n }\n}\n\n/** \n * WebGPU has separate min filter and mipmap filter, \n * WebGL is combined and effectively offers 6 options\n */\nfunction convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'nearest' | 'linear'): GL {\n if (!mipmapFilter) {\n return convertMaxFilterMode(minFilter);\n }\n switch (minFilter) {\n case 'nearest': return mipmapFilter === 'nearest' ? GL.NEAREST_MIPMAP_NEAREST : GL.NEAREST_MIPMAP_LINEAR;\n case 'linear': return mipmapFilter === 'nearest' ? GL.LINEAR_MIPMAP_NEAREST : GL.LINEAR_MIPMAP_LINEAR;\n }\n}\n\n// Convert from WebGL to WebGPU\n\n/**\n * Convert WebGL-style sampler props to WebGPU\n * @param props\n * @returns\n */\n export function convertToSamplerParameters(params: WebGLSamplerParameters): SamplerParameters {\n const props: SamplerParameters = {};\n if (params[GL.TEXTURE_WRAP_S]) {\n props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);\n }\n if (params[GL.TEXTURE_WRAP_T]) {\n props.addressModeV = convertToAddressMode(params[GL.TEXTURE_WRAP_T]);\n }\n if (params[GL.TEXTURE_WRAP_R]) {\n props.addressModeW = convertToAddressMode(params[GL.TEXTURE_WRAP_R]);\n }\n if (params[GL.TEXTURE_MAG_FILTER]) {\n props.magFilter = convertToMaxFilterMode(params[GL.TEXTURE_MAG_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.minFilter = convertToMinFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_FILTER]) {\n props.mipmapFilter = convertToMipmapFilterMode(params[GL.TEXTURE_MIN_FILTER]);\n }\n if (params[GL.TEXTURE_MIN_LOD]) {\n props.lodMinClamp = params[GL.TEXTURE_MIN_LOD];\n }\n if (params[GL.TEXTURE_MAX_LOD]) {\n props.lodMaxClamp = params[GL.TEXTURE_MAX_LOD];\n }\n if (params[GL.TEXTURE_COMPARE_MODE] === GL.COMPARE_REF_TO_TEXTURE) {\n props.compare = convertToCompareFunction('compare', params[GL.TEXTURE_COMPARE_FUNC]);\n }\n // NOTE depends on extension (very common)\n if (params[GL.TEXTURE_MAX_ANISOTROPY_EXT]) {\n props.maxAnisotropy = params[GL.TEXTURE_MAX_ANISOTROPY_EXT];\n }\n return props;\n}\n\n/** Convert address more */\nfunction convertToAddressMode(addressMode: number): 'clamp-to-edge' | 'repeat' | 'mirror-repeat' {\n switch (addressMode) {\n case GL.CLAMP_TO_EDGE: return 'clamp-to-edge';\n case GL.REPEAT: return 'repeat';\n case GL.MIRRORED_REPEAT: return 'mirror-repeat';\n }\n}\n\nfunction convertToMaxFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n }\n}\n\n/** WebGPU has separate min filter and mipmap filter, WebGL is combined */\nfunction convertToMinFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'linear';\n case GL.NEAREST_MIPMAP_LINEAR: return 'nearest';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n }\n}\n\nfunction convertToMipmapFilterMode(filterMode: number): 'nearest' | 'linear' {\n switch (filterMode) {\n // TODO is this correct?\n case GL.NEAREST: return 'nearest';\n case GL.LINEAR: return 'linear';\n case GL.NEAREST_MIPMAP_NEAREST: return 'nearest';\n case GL.LINEAR_MIPMAP_NEAREST: return 'nearest';\n case GL.NEAREST_MIPMAP_LINEAR: return 'linear';\n case GL.LINEAR_MIPMAP_LINEAR: return 'linear';\n }\n}\n\n/**\n * Override sampler settings that are not supported by Non-Power-of-Two textures in WebGL1.\n*/\nexport function updateSamplerParametersForNPOT(parameters: WebGLSamplerParameters): WebGLSamplerParameters {\n const newParameters = {...parameters};\n if (parameters[GL.TEXTURE_MIN_FILTER] !== GL.NEAREST) {\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_MIN_FILTER to LINEAR`)();\n newParameters[GL.TEXTURE_MIN_FILTER] = GL.LINEAR;\n }\n // log.warn(`texture: ${this} is Non-Power-Of-Two, forcing TEXTURE_WRAP_S to CLAMP_TO_EDGE`)();\n newParameters[GL.TEXTURE_WRAP_S] = GL.CLAMP_TO_EDGE;\n newParameters[GL.TEXTURE_WRAP_T] = GL.CLAMP_TO_EDGE;\n return newParameters;\n}\n"],"file":"sampler-parameters.js"}
|