@luma.gl/webgl 9.0.0-alpha.5 → 9.0.0-alpha.50
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/LICENSE +3 -1
- package/dist/adapter/converters/device-parameters.d.ts +23 -4
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +101 -73
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +6 -6
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +74 -111
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +9 -0
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -0
- package/dist/adapter/converters/shader-formats.js +52 -0
- package/dist/adapter/converters/shader-formats.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +32 -44
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +309 -346
- package/dist/adapter/converters/texture-formats.js.map +1 -1
- package/dist/adapter/converters/vertex-formats.d.ts +9 -3
- package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/vertex-formats.js +53 -22
- package/dist/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-features.js +17 -23
- package/dist/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts +3 -3
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +54 -58
- package/dist/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/get-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/get-device-info.js +31 -22
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.d.ts.map +1 -1
- package/dist/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/adapter/helpers/decode-webgl-types.d.ts +26 -0
- package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -0
- package/dist/adapter/helpers/decode-webgl-types.js +89 -0
- package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
- package/dist/adapter/helpers/get-shader-info.d.ts +9 -0
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -0
- package/dist/adapter/helpers/get-shader-info.js +25 -0
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.d.ts +1 -48
- package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-layout.js +87 -143
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js +16 -11
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +3 -2
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +51 -82
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +16 -0
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -0
- package/dist/adapter/helpers/webgl-topology-utils.js +103 -0
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.d.ts +1 -3
- package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
- package/dist/adapter/objects/constants-to-keys.js +2 -29
- package/dist/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +15 -12
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +36 -44
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/adapter/objects/webgl-resource.d.ts +6 -9
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +26 -83
- package/dist/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +19 -11
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +60 -88
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +15 -9
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +175 -48
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +7 -6
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +10 -20
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts +21 -24
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +63 -173
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts +19 -4
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +99 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +55 -21
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +108 -270
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +6 -5
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +11 -21
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +3 -4
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +21 -34
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-texture.d.ts +62 -42
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +137 -256
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.d.ts +47 -0
- package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-transform-feedback.js +164 -0
- package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts +67 -0
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-vertex-array.js +167 -0
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts +6 -7
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +10 -23
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +76 -41
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +219 -129
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/classic/accessor.d.ts +3 -3
- package/dist/classic/accessor.d.ts.map +1 -1
- package/dist/classic/accessor.js +26 -52
- package/dist/classic/accessor.js.map +1 -1
- package/dist/classic/clear.d.ts +22 -0
- package/dist/classic/clear.d.ts.map +1 -0
- package/dist/classic/clear.js +88 -0
- package/dist/classic/clear.js.map +1 -0
- package/dist/classic/copy-and-blit.d.ts +62 -0
- package/dist/classic/copy-and-blit.d.ts.map +1 -0
- package/dist/classic/copy-and-blit.js +191 -0
- package/dist/classic/copy-and-blit.js.map +1 -0
- package/dist/classic/format-utils.d.ts +3 -0
- package/dist/classic/format-utils.d.ts.map +1 -0
- package/dist/classic/format-utils.js +37 -0
- package/dist/classic/format-utils.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +17 -17
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +18 -39
- package/dist/classic/typed-array-utils.js.map +1 -1
- package/dist/context/context/create-browser-context.d.ts +40 -0
- package/dist/context/context/create-browser-context.d.ts.map +1 -0
- package/dist/context/context/create-browser-context.js +53 -0
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +9 -0
- package/dist/context/context/create-headless-context.d.ts.map +1 -0
- package/dist/context/context/create-headless-context.js +42 -0
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.d.ts.map +1 -1
- package/dist/context/context/webgl-checks.js +1 -4
- package/dist/context/context/webgl-checks.js.map +1 -1
- package/dist/context/debug/spector.d.ts +1 -2
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +8 -20
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts +2 -2
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +15 -39
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +9 -8
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +9 -19
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts +105 -106
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +267 -286
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfill/context-data.d.ts +13 -0
- package/dist/context/polyfill/context-data.d.ts.map +1 -0
- package/dist/context/polyfill/context-data.js +12 -0
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.d.ts +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.d.ts.map +1 -1
- package/dist/context/polyfill/get-parameter-polyfill.js +37 -43
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/context/polyfill/polyfill-context.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-context.js +22 -30
- package/dist/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/context/polyfill/polyfill-table.d.ts +8 -8
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +18 -41
- package/dist/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +17 -87
- package/dist/context/polyfill/polyfill-vertex-array-object.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 +0 -4
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +26 -62
- package/dist/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/context/state-tracker/with-parameters.d.ts +2 -1
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +8 -10
- package/dist/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/dist.dev.js +8555 -0
- package/dist/index.cjs +6602 -0
- package/dist/index.d.ts +26 -24
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -26
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist.min.js +49 -0
- package/package.json +21 -9
- package/src/adapter/converters/device-parameters.ts +144 -41
- package/src/adapter/converters/sampler-parameters.ts +103 -41
- package/src/adapter/converters/shader-formats.ts +44 -0
- package/src/adapter/converters/texture-formats.ts +268 -195
- package/src/adapter/converters/vertex-formats.ts +71 -10
- package/src/adapter/device-helpers/device-features.ts +14 -3
- package/src/adapter/device-helpers/device-limits.ts +5 -3
- package/src/adapter/device-helpers/get-device-info.ts +53 -18
- package/src/adapter/device-helpers/is-old-ie.ts +3 -0
- package/src/adapter/helpers/{uniforms.ts → decode-webgl-types.ts} +39 -21
- package/src/adapter/helpers/get-shader-info.ts +41 -0
- package/src/adapter/helpers/get-shader-layout.ts +121 -146
- package/src/adapter/helpers/parse-shader-compiler-log.ts +24 -8
- package/src/adapter/helpers/set-uniform.ts +39 -35
- package/src/adapter/helpers/webgl-topology-utils.ts +103 -0
- package/src/adapter/objects/constants-to-keys.ts +6 -25
- package/src/adapter/objects/webgl-renderbuffer.ts +43 -37
- package/src/adapter/objects/webgl-resource.ts +16 -23
- package/src/adapter/resources/webgl-buffer.ts +67 -62
- package/src/adapter/resources/webgl-command-buffer.ts +327 -25
- package/src/adapter/resources/webgl-command-encoder.ts +20 -12
- package/src/adapter/resources/webgl-external-texture.ts +5 -2
- package/src/adapter/resources/webgl-framebuffer.ts +90 -134
- package/src/adapter/resources/webgl-render-pass.ts +166 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +256 -192
- package/src/adapter/resources/webgl-sampler.ts +16 -10
- package/src/adapter/resources/webgl-shader.ts +14 -11
- package/src/adapter/resources/webgl-texture.ts +138 -99
- package/src/adapter/resources/webgl-transform-feedback.ts +202 -0
- package/src/adapter/resources/webgl-vertex-array.ts +283 -0
- package/src/adapter/webgl-canvas-context.ts +16 -14
- package/src/adapter/webgl-device.ts +328 -79
- package/src/classic/accessor.ts +8 -18
- package/src/classic/clear.ts +113 -0
- package/src/classic/copy-and-blit.ts +311 -0
- package/src/classic/format-utils.ts +46 -0
- package/src/classic/typed-array-utils.ts +21 -27
- package/src/context/context/create-browser-context.ts +140 -0
- package/src/context/context/create-headless-context.ts +51 -0
- package/src/context/context/webgl-checks.ts +3 -1
- package/src/context/debug/spector.ts +9 -6
- package/src/context/debug/webgl-developer-tools.ts +23 -15
- package/src/context/parameters/unified-parameter-api.ts +23 -14
- package/src/context/parameters/webgl-parameter-tables.ts +120 -98
- package/src/context/polyfill/context-data.ts +30 -0
- package/src/context/polyfill/get-parameter-polyfill.ts +11 -7
- package/src/context/polyfill/polyfill-context.ts +10 -9
- package/src/context/polyfill/polyfill-table.ts +21 -16
- package/src/context/polyfill/polyfill-vertex-array-object.ts +5 -0
- package/src/context/state-tracker/deep-array-equal.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +14 -11
- package/src/context/state-tracker/with-parameters.ts +13 -4
- package/src/index.ts +70 -35
- package/src/types.ts +5 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +0 -16
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.d.ts +0 -11
- package/dist/adapter/helpers/attribute-utils.d.ts.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js +0 -81
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/uniforms.d.ts +0 -26
- package/dist/adapter/helpers/uniforms.d.ts.map +0 -1
- package/dist/adapter/helpers/uniforms.js +0 -99
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +0 -27
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -5
- package/dist/bundle.js.map +0 -1
- package/dist/classic/buffer.d.ts +0 -95
- package/dist/classic/buffer.d.ts.map +0 -1
- package/dist/classic/buffer.js +0 -384
- package/dist/classic/buffer.js.map +0 -1
- package/dist/context/context/context-state.d.ts +0 -18
- package/dist/context/context/context-state.d.ts.map +0 -1
- package/dist/context/context/context-state.js +0 -26
- package/dist/context/context/context-state.js.map +0 -1
- package/dist/context/context/create-context.d.ts +0 -41
- package/dist/context/context/create-context.d.ts.map +0 -1
- package/dist/context/context/create-context.js +0 -49
- package/dist/context/context/create-context.js.map +0 -1
- package/dist/context/context/device-pixels.d.ts +0 -25
- package/dist/context/context/device-pixels.d.ts.map +0 -1
- package/dist/context/context/device-pixels.js +0 -98
- package/dist/context/context/device-pixels.js.map +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -170
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -163
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -226
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -1031
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -45
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -144
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -64
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -55
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -16
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -91
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -371
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -72
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -125
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -112
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -54
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -150
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -292
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -137
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -243
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -96
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -98
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -345
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -61
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -505
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -96
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -149
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -986
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -97
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -399
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -7
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -181
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -470
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -126
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/context-state.js +0 -31
- package/dist/es5/context/context/context-state.js.map +0 -1
- package/dist/es5/context/context/create-context.js +0 -69
- package/dist/es5/context/context/create-context.js.map +0 -1
- package/dist/es5/context/context/device-pixels.js +0 -115
- package/dist/es5/context/context/device-pixels.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -54
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -133
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -198
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -97
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -392
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -81
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -135
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -166
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -341
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -28
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -211
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -44
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -276
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -10
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -6
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -155
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -185
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -208
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -954
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -35
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -102
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -91
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -44
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -8
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -81
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -306
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -37
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -115
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -99
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -42
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -94
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -216
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -84
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -164
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -65
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -53
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -265
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -19
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -400
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -50
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -75
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -833
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -54
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -280
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -5
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -144
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -384
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -112
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/context-state.js +0 -26
- package/dist/esm/context/context/context-state.js.map +0 -1
- package/dist/esm/context/context/create-context.js +0 -49
- package/dist/esm/context/context/create-context.js.map +0 -1
- package/dist/esm/context/context/device-pixels.js +0 -98
- package/dist/esm/context/context/device-pixels.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -34
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -76
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -121
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -65
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -445
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -91
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -92
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -160
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -335
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -21
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -183
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -36
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -4
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.d.ts +0 -145
- package/dist/types/webgl.d.ts.map +0 -1
- package/dist/types/webgl.js +0 -2
- package/dist/types/webgl.js.map +0 -1
- package/src/adapter/converters/renderbuffer-formats.ts +0 -92
- package/src/adapter/helpers/attribute-utils.ts +0 -61
- package/src/adapter/objects/webgl-vertex-array-object.ts +0 -111
- package/src/bundle.ts +0 -4
- package/src/classic/buffer.ts +0 -474
- package/src/context/context/context-state.ts +0 -41
- package/src/context/context/create-context.ts +0 -110
- package/src/context/context/device-pixels.ts +0 -152
- package/src/init.ts +0 -4
- package/src/types/webgl.ts +0 -284
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {Sampler, SamplerProps} from '@luma.gl/core';
|
|
5
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
4
6
|
import {convertSamplerParametersToWebGL} from '../converters/sampler-parameters';
|
|
5
|
-
import type WebGLDevice from '../webgl-device';
|
|
7
|
+
import type {WebGLDevice} from '../webgl-device';
|
|
6
8
|
|
|
7
9
|
/**
|
|
8
10
|
* Sampler object -
|
|
@@ -11,10 +13,10 @@ import type WebGLDevice from '../webgl-device';
|
|
|
11
13
|
* so that they can be set directly on the texture
|
|
12
14
|
* https://github.com/WebGLSamples/WebGL2Samples/blob/master/samples/sampler_object.html
|
|
13
15
|
*/
|
|
14
|
-
export
|
|
16
|
+
export class WEBGLSampler extends Sampler {
|
|
15
17
|
readonly device: WebGLDevice;
|
|
16
18
|
readonly handle: WebGLSampler;
|
|
17
|
-
readonly parameters:
|
|
19
|
+
readonly parameters: GLSamplerParameters;
|
|
18
20
|
|
|
19
21
|
constructor(device: WebGLDevice, props: SamplerProps) {
|
|
20
22
|
super(device, props);
|
|
@@ -26,20 +28,24 @@ export default class WEBGLSampler extends Sampler {
|
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
|
|
29
|
-
destroy(): void {
|
|
31
|
+
override destroy(): void {
|
|
30
32
|
if (this.handle) {
|
|
31
33
|
this.device.gl2.deleteSampler(this.handle);
|
|
32
|
-
// @ts-expect-error
|
|
34
|
+
// @ts-expect-error read-only/undefined
|
|
33
35
|
this.handle = undefined;
|
|
34
36
|
}
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
override toString(): string {
|
|
40
|
+
return `Sampler(${this.id},${JSON.stringify(this.props)})`;
|
|
41
|
+
}
|
|
42
|
+
|
|
37
43
|
/** Set sampler parameters on the sampler */
|
|
38
|
-
private _setSamplerParameters(parameters:
|
|
44
|
+
private _setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
39
45
|
for (const [pname, value] of Object.entries(parameters)) {
|
|
40
46
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
41
47
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
42
|
-
const param = Number(pname);
|
|
48
|
+
const param = Number(pname) as GL.TEXTURE_MIN_LOD | GL.TEXTURE_MAX_LOD;
|
|
43
49
|
switch (param) {
|
|
44
50
|
case GL.TEXTURE_MIN_LOD:
|
|
45
51
|
case GL.TEXTURE_MAX_LOD:
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
4
|
+
import {log, uid, Shader, ShaderProps, CompilerMessage, formatCompilerLog} from '@luma.gl/core';
|
|
5
|
+
import {GL} from '@luma.gl/constants';
|
|
6
|
+
import {getShaderInfo} from '../helpers/get-shader-info';
|
|
5
7
|
import {parseShaderCompilerLog} from '../helpers/parse-shader-compiler-log';
|
|
6
|
-
import WebGLDevice from '../webgl-device';
|
|
8
|
+
import {WebGLDevice} from '../webgl-device';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* An immutable compiled shader program that execute portions of the GPU Pipeline
|
|
10
12
|
*/
|
|
11
|
-
|
|
13
|
+
export class WEBGLShader extends Shader {
|
|
12
14
|
readonly device: WebGLDevice;
|
|
13
15
|
readonly handle: WebGLShader;
|
|
14
16
|
|
|
@@ -28,18 +30,18 @@ import WebGLDevice from '../webgl-device';
|
|
|
28
30
|
this._compile(this.source);
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
destroy(): void {
|
|
33
|
+
override destroy(): void {
|
|
32
34
|
if (this.handle) {
|
|
33
35
|
this.removeStats();
|
|
34
36
|
this.device.gl.deleteShader(this.handle);
|
|
35
|
-
//
|
|
36
|
-
this.
|
|
37
|
+
// this.handle = null;
|
|
38
|
+
this.destroyed = true;
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
|
|
40
42
|
async compilationInfo(): Promise<readonly CompilerMessage[]> {
|
|
41
43
|
const log = this.device.gl.getShaderInfoLog(this.handle);
|
|
42
|
-
return parseShaderCompilerLog(log);
|
|
44
|
+
return log ? parseShaderCompilerLog(log) : [];
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
// PRIVATE METHODS
|
|
@@ -58,8 +60,9 @@ import WebGLDevice from '../webgl-device';
|
|
|
58
60
|
const compileStatus = gl.getShaderParameter(this.handle, GL.COMPILE_STATUS);
|
|
59
61
|
if (!compileStatus) {
|
|
60
62
|
const shaderLog = gl.getShaderInfoLog(this.handle);
|
|
61
|
-
const
|
|
62
|
-
const
|
|
63
|
+
const parsedLog = shaderLog ? parseShaderCompilerLog(shaderLog) : [];
|
|
64
|
+
const messages = parsedLog.filter(message => message.type === 'error');
|
|
65
|
+
const formattedLog = formatCompilerLog(messages, source, {showSourceCode: true});
|
|
63
66
|
const shaderName: string = getShaderInfo(source).name;
|
|
64
67
|
const shaderDescription = `${this.stage} shader ${shaderName}`;
|
|
65
68
|
log.error(`GLSL compilation errors in ${shaderDescription}\n${formattedLog}`)();
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// luma.gl, MIT license
|
|
2
|
+
// Copyright (c) vis.gl contributors
|
|
3
|
+
|
|
2
4
|
// Texture class.
|
|
3
5
|
// @todo
|
|
4
6
|
// - [ ] cube texture init params
|
|
@@ -10,14 +12,14 @@ import {
|
|
|
10
12
|
Sampler,
|
|
11
13
|
SamplerProps,
|
|
12
14
|
SamplerParameters,
|
|
15
|
+
TypedArray,
|
|
13
16
|
isObjectEmpty
|
|
14
|
-
} from '@luma.gl/
|
|
15
|
-
import {Texture, cast, log, assert, isPowerOfTwo, loadImage} from '@luma.gl/
|
|
16
|
-
import GL from '@luma.gl/constants';
|
|
17
|
-
import
|
|
18
|
-
import {withParameters} from '../../context/state-tracker/with-parameters';
|
|
17
|
+
} from '@luma.gl/core';
|
|
18
|
+
import {Texture, cast, log, assert, isPowerOfTwo, loadImage} from '@luma.gl/core';
|
|
19
|
+
import {GL, GLSamplerParameters} from '@luma.gl/constants';
|
|
20
|
+
import {withGLParameters} from '../../context/state-tracker/with-parameters';
|
|
19
21
|
import {
|
|
20
|
-
|
|
22
|
+
convertTextureFormatToGL,
|
|
21
23
|
getWebGLTextureParameters,
|
|
22
24
|
getTextureFormatBytesPerPixel
|
|
23
25
|
} from '../converters/texture-formats';
|
|
@@ -25,23 +27,57 @@ import {
|
|
|
25
27
|
convertSamplerParametersToWebGL,
|
|
26
28
|
updateSamplerParametersForNPOT
|
|
27
29
|
} from '../converters/sampler-parameters';
|
|
28
|
-
import WebGLDevice from '../webgl-device';
|
|
29
|
-
import WEBGLBuffer from './webgl-buffer';
|
|
30
|
-
import WEBGLSampler from './webgl-sampler';
|
|
30
|
+
import {WebGLDevice} from '../webgl-device';
|
|
31
|
+
import {WEBGLBuffer} from './webgl-buffer';
|
|
32
|
+
import {WEBGLSampler} from './webgl-sampler';
|
|
33
|
+
|
|
34
|
+
export type WEBGLTextureProps = TextureProps & {
|
|
35
|
+
/** @deprecated use props.sampler */
|
|
36
|
+
parameters?: Record<number, number>;
|
|
37
|
+
/** @deprecated use props.data */
|
|
38
|
+
pixels?: any;
|
|
39
|
+
/** @deprecated use props.format */
|
|
40
|
+
dataFormat?: number | null;
|
|
41
|
+
/** @deprecated rarely supported */
|
|
42
|
+
border?: number;
|
|
43
|
+
/** @deprecated WebGL only. */
|
|
44
|
+
pixelStore?: object;
|
|
45
|
+
/** @deprecated WebGL only. */
|
|
46
|
+
textureUnit?: number;
|
|
47
|
+
/** @deprecated WebGL only. Use dimension. */
|
|
48
|
+
target?: number;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const DEFAULT_WEBGL_TEXTURE_PROPS = {
|
|
52
|
+
// deprecated
|
|
53
|
+
parameters: {},
|
|
54
|
+
pixelStore: {},
|
|
55
|
+
pixels: null,
|
|
56
|
+
border: 0,
|
|
57
|
+
dataFormat: undefined!,
|
|
58
|
+
textureUnit: undefined!,
|
|
59
|
+
target: undefined!
|
|
60
|
+
};
|
|
31
61
|
|
|
32
|
-
export type
|
|
62
|
+
export type TextureSourceData =
|
|
63
|
+
| TypedArray
|
|
64
|
+
| ImageData
|
|
65
|
+
| HTMLImageElement
|
|
66
|
+
| HTMLCanvasElement
|
|
67
|
+
| ImageBitmap
|
|
68
|
+
| HTMLVideoElement;
|
|
33
69
|
|
|
34
70
|
type SetImageDataOptions = {
|
|
35
71
|
target?: number;
|
|
36
72
|
level?: number;
|
|
37
73
|
dataFormat?: any;
|
|
38
|
-
width
|
|
39
|
-
height
|
|
74
|
+
width?: number;
|
|
75
|
+
height?: number;
|
|
40
76
|
depth?: number;
|
|
41
|
-
|
|
77
|
+
glFormat?: GL;
|
|
42
78
|
type?: any;
|
|
43
79
|
offset?: number;
|
|
44
|
-
data: any;
|
|
80
|
+
data: any; // TextureSourceData;
|
|
45
81
|
compressed?: boolean;
|
|
46
82
|
parameters?: Record<GL, any>;
|
|
47
83
|
/** @deprecated */
|
|
@@ -77,7 +113,7 @@ type SetSubImageDataOptions = {
|
|
|
77
113
|
width?: number;
|
|
78
114
|
height?: number;
|
|
79
115
|
depth?: number;
|
|
80
|
-
|
|
116
|
+
glFormat?: any;
|
|
81
117
|
type?: any;
|
|
82
118
|
offset?: number;
|
|
83
119
|
data: any;
|
|
@@ -92,19 +128,18 @@ type SetSubImageDataOptions = {
|
|
|
92
128
|
type SetImageData3DOptions = {
|
|
93
129
|
level?: number;
|
|
94
130
|
dataFormat?: any;
|
|
95
|
-
width
|
|
96
|
-
height
|
|
131
|
+
width?: number;
|
|
132
|
+
height?: number;
|
|
97
133
|
depth?: number;
|
|
98
|
-
format
|
|
134
|
+
format?: any;
|
|
99
135
|
type?: any;
|
|
100
136
|
offset?: number;
|
|
101
137
|
data: any;
|
|
102
138
|
parameters?: Record<GL, any>;
|
|
103
139
|
};
|
|
104
140
|
|
|
105
|
-
|
|
106
141
|
// Polyfill
|
|
107
|
-
export
|
|
142
|
+
export class WEBGLTexture extends Texture<WEBGLTextureProps> {
|
|
108
143
|
// TODO - remove?
|
|
109
144
|
static FACES: number[] = [
|
|
110
145
|
GL.TEXTURE_CUBE_MAP_POSITIVE_X,
|
|
@@ -121,13 +156,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
121
156
|
readonly gl2: WebGL2RenderingContext | null;
|
|
122
157
|
readonly handle: WebGLTexture;
|
|
123
158
|
|
|
124
|
-
|
|
159
|
+
/** Sampler object (currently unused) */
|
|
160
|
+
sampler: WEBGLSampler = undefined;
|
|
125
161
|
|
|
126
|
-
|
|
127
|
-
height: number = undefined;
|
|
128
|
-
depth: number = undefined;
|
|
162
|
+
// data;
|
|
129
163
|
|
|
130
|
-
|
|
164
|
+
glFormat: GL = undefined;
|
|
131
165
|
type: GL = undefined;
|
|
132
166
|
dataFormat: GL = undefined;
|
|
133
167
|
mipmaps: boolean = undefined;
|
|
@@ -144,9 +178,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
144
178
|
target: GL;
|
|
145
179
|
textureUnit: number = undefined;
|
|
146
180
|
|
|
147
|
-
/** Sampler object (currently unused) */
|
|
148
|
-
sampler: WEBGLSampler = undefined;
|
|
149
|
-
|
|
150
181
|
/**
|
|
151
182
|
* Program.draw() checks the loaded flag of all textures to avoid
|
|
152
183
|
* Textures that are still loading from promises
|
|
@@ -159,16 +190,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
159
190
|
lastTime: number;
|
|
160
191
|
};
|
|
161
192
|
|
|
162
|
-
constructor(device: Device, props:
|
|
163
|
-
super(device, {format:
|
|
193
|
+
constructor(device: Device, props: WEBGLTextureProps) {
|
|
194
|
+
super(device, {...DEFAULT_WEBGL_TEXTURE_PROPS, format: 'rgba8unorm', ...props});
|
|
164
195
|
|
|
165
196
|
this.device = cast<WebGLDevice>(device);
|
|
166
197
|
this.gl = this.device.gl;
|
|
167
198
|
this.gl2 = this.device.gl2;
|
|
168
199
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
169
|
-
|
|
170
|
-
this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
|
|
200
|
+
this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
|
|
171
201
|
|
|
202
|
+
this.glFormat = GL.RGBA;
|
|
172
203
|
this.target = getWebGLTextureTarget(this.props);
|
|
173
204
|
|
|
174
205
|
// Program.draw() checks the loaded flag of all textures
|
|
@@ -184,22 +215,22 @@ export default class WEBGLTexture extends Texture {
|
|
|
184
215
|
Object.seal(this);
|
|
185
216
|
}
|
|
186
217
|
|
|
187
|
-
destroy(): void {
|
|
218
|
+
override destroy(): void {
|
|
188
219
|
if (this.handle) {
|
|
189
220
|
this.gl.deleteTexture(this.handle);
|
|
190
221
|
this.removeStats();
|
|
191
222
|
this.trackDeallocatedMemory('Texture');
|
|
192
|
-
//
|
|
193
|
-
this.
|
|
223
|
+
// this.handle = null;
|
|
224
|
+
this.destroyed = true;
|
|
194
225
|
}
|
|
195
226
|
}
|
|
196
227
|
|
|
197
|
-
toString(): string {
|
|
228
|
+
override toString(): string {
|
|
198
229
|
return `Texture(${this.id},${this.width}x${this.height})`;
|
|
199
230
|
}
|
|
200
231
|
|
|
201
232
|
// eslint-disable-next-line max-statements
|
|
202
|
-
initialize(props:
|
|
233
|
+
initialize(props: WEBGLTextureProps = {}): this {
|
|
203
234
|
// Cube textures
|
|
204
235
|
if (this.props.dimension === 'cube') {
|
|
205
236
|
return this.initializeCube(props);
|
|
@@ -208,7 +239,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
208
239
|
let data = props.data;
|
|
209
240
|
|
|
210
241
|
if (data instanceof Promise) {
|
|
211
|
-
data.then(
|
|
242
|
+
data.then(resolvedImageData =>
|
|
212
243
|
this.initialize(
|
|
213
244
|
Object.assign({}, props, {
|
|
214
245
|
pixels: resolvedImageData,
|
|
@@ -228,10 +259,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
228
259
|
return this;
|
|
229
260
|
}
|
|
230
261
|
|
|
231
|
-
|
|
262
|
+
const {parameters = {} as Record<GL, any>} = props;
|
|
232
263
|
|
|
233
|
-
const {
|
|
234
|
-
pixels = null, recreate = false, pixelStore = {}, textureUnit = undefined} = props;
|
|
264
|
+
const {pixels = null, pixelStore = {}, textureUnit = undefined} = props;
|
|
235
265
|
|
|
236
266
|
// pixels variable is for API compatibility purpose
|
|
237
267
|
if (!data) {
|
|
@@ -244,6 +274,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
244
274
|
let {width, height, dataFormat, type, compressed = false, mipmaps = true} = props;
|
|
245
275
|
const {depth = 0} = props;
|
|
246
276
|
|
|
277
|
+
const glFormat = convertTextureFormatToGL(props.format, this.device.isWebGL2);
|
|
278
|
+
|
|
247
279
|
// Deduce width and height
|
|
248
280
|
({width, height, compressed, dataFormat, type} = this._deduceParameters({
|
|
249
281
|
format: props.format,
|
|
@@ -255,13 +287,11 @@ export default class WEBGLTexture extends Texture {
|
|
|
255
287
|
height
|
|
256
288
|
}));
|
|
257
289
|
|
|
258
|
-
const format = getWebGLTextureFormat(this.gl, props.format);
|
|
259
|
-
|
|
260
290
|
// Store opts for accessors
|
|
261
291
|
this.width = width;
|
|
262
292
|
this.height = height;
|
|
263
|
-
this.depth = depth;
|
|
264
|
-
this.
|
|
293
|
+
// this.depth = depth;
|
|
294
|
+
this.glFormat = glFormat;
|
|
265
295
|
this.type = type;
|
|
266
296
|
this.dataFormat = dataFormat;
|
|
267
297
|
this.textureUnit = textureUnit;
|
|
@@ -283,10 +313,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
283
313
|
width,
|
|
284
314
|
height,
|
|
285
315
|
depth,
|
|
286
|
-
format,
|
|
316
|
+
format: glFormat,
|
|
287
317
|
type,
|
|
288
318
|
dataFormat,
|
|
289
|
-
// @ts-expect-error
|
|
319
|
+
// @ts-expect-error
|
|
290
320
|
parameters: pixelStore,
|
|
291
321
|
compressed
|
|
292
322
|
});
|
|
@@ -299,10 +329,6 @@ export default class WEBGLTexture extends Texture {
|
|
|
299
329
|
this.generateMipmap();
|
|
300
330
|
}
|
|
301
331
|
|
|
302
|
-
// TODO - Store data to enable auto recreate on context loss
|
|
303
|
-
if (recreate) {
|
|
304
|
-
this.data = data;
|
|
305
|
-
}
|
|
306
332
|
if (isVideo) {
|
|
307
333
|
this._video = {
|
|
308
334
|
video: data as HTMLVideoElement,
|
|
@@ -315,8 +341,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
315
341
|
return this;
|
|
316
342
|
}
|
|
317
343
|
|
|
318
|
-
initializeCube(props?:
|
|
319
|
-
const {mipmaps = true, parameters = {}
|
|
344
|
+
initializeCube(props?: WEBGLTextureProps): this {
|
|
345
|
+
const {mipmaps = true, parameters = {} as Record<GL, any>} = props;
|
|
320
346
|
|
|
321
347
|
// Store props for accessors
|
|
322
348
|
// this.props = props;
|
|
@@ -357,7 +383,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
357
383
|
* If size has changed, reinitializes with current format
|
|
358
384
|
* @note note clears image and mipmaps
|
|
359
385
|
*/
|
|
360
|
-
resize(options: {height: number
|
|
386
|
+
resize(options: {height: number; width: number; mipmaps?: boolean}): this {
|
|
361
387
|
const {height, width, mipmaps = false} = options;
|
|
362
388
|
if (width !== this.width || height !== this.height) {
|
|
363
389
|
return this.initialize({
|
|
@@ -373,7 +399,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
373
399
|
}
|
|
374
400
|
|
|
375
401
|
/** Update external texture (video frame) */
|
|
376
|
-
update():
|
|
402
|
+
update(): void {
|
|
377
403
|
if (this._video) {
|
|
378
404
|
const {video, parameters, lastTime} = this._video;
|
|
379
405
|
// @ts-expect-error
|
|
@@ -401,7 +427,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
401
427
|
this.mipmaps = true;
|
|
402
428
|
|
|
403
429
|
this.gl.bindTexture(this.target, this.handle);
|
|
404
|
-
|
|
430
|
+
withGLParameters(this.gl, params, () => {
|
|
405
431
|
this.gl.generateMipmap(this.target);
|
|
406
432
|
});
|
|
407
433
|
this.gl.bindTexture(this.target, null);
|
|
@@ -430,7 +456,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
430
456
|
*/
|
|
431
457
|
// eslint-disable-next-line max-statements, complexity
|
|
432
458
|
setImageData(options: SetImageDataOptions) {
|
|
433
|
-
if (this.props.dimension === '3d') {
|
|
459
|
+
if (this.props.dimension === '3d' || this.props.dimension === '2d-array') {
|
|
434
460
|
return this.setImageData3D(options);
|
|
435
461
|
}
|
|
436
462
|
|
|
@@ -440,9 +466,9 @@ export default class WEBGLTexture extends Texture {
|
|
|
440
466
|
target = this.target,
|
|
441
467
|
pixels = null,
|
|
442
468
|
level = 0,
|
|
443
|
-
|
|
469
|
+
glFormat = this.glFormat,
|
|
444
470
|
offset = 0,
|
|
445
|
-
parameters = {}
|
|
471
|
+
parameters = {} as Record<GL, any>
|
|
446
472
|
} = options;
|
|
447
473
|
|
|
448
474
|
let {
|
|
@@ -477,10 +503,20 @@ export default class WEBGLTexture extends Texture {
|
|
|
477
503
|
|
|
478
504
|
let gl2;
|
|
479
505
|
|
|
480
|
-
|
|
506
|
+
withGLParameters(this.gl, parameters, () => {
|
|
481
507
|
switch (dataType) {
|
|
482
508
|
case 'null':
|
|
483
|
-
gl.texImage2D(
|
|
509
|
+
gl.texImage2D(
|
|
510
|
+
target,
|
|
511
|
+
level,
|
|
512
|
+
glFormat,
|
|
513
|
+
width,
|
|
514
|
+
height,
|
|
515
|
+
0 /* border*/,
|
|
516
|
+
dataFormat,
|
|
517
|
+
type,
|
|
518
|
+
data
|
|
519
|
+
);
|
|
484
520
|
break;
|
|
485
521
|
case 'typed-array':
|
|
486
522
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
@@ -488,7 +524,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
488
524
|
gl.texImage2D(
|
|
489
525
|
target,
|
|
490
526
|
level,
|
|
491
|
-
|
|
527
|
+
glFormat,
|
|
492
528
|
width,
|
|
493
529
|
height,
|
|
494
530
|
0, // border (must be 0)
|
|
@@ -506,10 +542,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
506
542
|
gl2.texImage2D(
|
|
507
543
|
target,
|
|
508
544
|
level,
|
|
509
|
-
|
|
545
|
+
glFormat,
|
|
510
546
|
width,
|
|
511
547
|
height,
|
|
512
|
-
0 /*border*/,
|
|
548
|
+
0 /* border*/,
|
|
513
549
|
dataFormat,
|
|
514
550
|
type,
|
|
515
551
|
offset
|
|
@@ -521,16 +557,16 @@ export default class WEBGLTexture extends Texture {
|
|
|
521
557
|
gl.texImage2D(
|
|
522
558
|
target,
|
|
523
559
|
level,
|
|
524
|
-
|
|
560
|
+
glFormat,
|
|
525
561
|
width,
|
|
526
562
|
height,
|
|
527
|
-
0 /*border*/,
|
|
563
|
+
0 /* border*/,
|
|
528
564
|
dataFormat,
|
|
529
565
|
type,
|
|
530
566
|
data
|
|
531
567
|
);
|
|
532
568
|
} else {
|
|
533
|
-
gl.texImage2D(target, level,
|
|
569
|
+
gl.texImage2D(target, level, glFormat, dataFormat, type, data);
|
|
534
570
|
}
|
|
535
571
|
break;
|
|
536
572
|
case 'compressed':
|
|
@@ -555,7 +591,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
555
591
|
if (data && data.byteLength) {
|
|
556
592
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
557
593
|
} else {
|
|
558
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
594
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
559
595
|
this.trackAllocatedMemory(this.width * this.height * bytesPerPixel, 'Texture');
|
|
560
596
|
}
|
|
561
597
|
|
|
@@ -578,7 +614,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
578
614
|
width = this.width,
|
|
579
615
|
height = this.height,
|
|
580
616
|
level = 0,
|
|
581
|
-
|
|
617
|
+
glFormat = this.glFormat,
|
|
582
618
|
type = this.type,
|
|
583
619
|
dataFormat = this.dataFormat,
|
|
584
620
|
compressed = false,
|
|
@@ -617,10 +653,10 @@ export default class WEBGLTexture extends Texture {
|
|
|
617
653
|
|
|
618
654
|
this.gl.bindTexture(this.target, this.handle);
|
|
619
655
|
|
|
620
|
-
|
|
656
|
+
withGLParameters(this.gl, parameters, () => {
|
|
621
657
|
// TODO - x,y parameters
|
|
622
658
|
if (compressed) {
|
|
623
|
-
this.gl.compressedTexSubImage2D(target, level, x, y, width, height,
|
|
659
|
+
this.gl.compressedTexSubImage2D(target, level, x, y, width, height, glFormat, data);
|
|
624
660
|
} else if (data === null) {
|
|
625
661
|
this.gl.texSubImage2D(target, level, x, y, width, height, dataFormat, type, null);
|
|
626
662
|
} else if (ArrayBuffer.isView(data)) {
|
|
@@ -714,12 +750,12 @@ export default class WEBGLTexture extends Texture {
|
|
|
714
750
|
|
|
715
751
|
// HELPER METHODS
|
|
716
752
|
|
|
717
|
-
_deduceParameters(opts) {
|
|
753
|
+
_deduceParameters(opts: WEBGLTextureProps) {
|
|
718
754
|
const {format, data} = opts;
|
|
719
755
|
let {width, height, dataFormat, type, compressed} = opts;
|
|
720
756
|
|
|
721
757
|
// Deduce format and type from format
|
|
722
|
-
const parameters = getWebGLTextureParameters(this.
|
|
758
|
+
const parameters = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
723
759
|
dataFormat = dataFormat || parameters.dataFormat;
|
|
724
760
|
type = type || parameters.type;
|
|
725
761
|
compressed = compressed || parameters.compressed;
|
|
@@ -792,7 +828,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
792
828
|
// ... }
|
|
793
829
|
|
|
794
830
|
const resolvedFaces = await Promise.all(
|
|
795
|
-
WEBGLTexture.FACES.map(
|
|
831
|
+
WEBGLTexture.FACES.map(face => {
|
|
796
832
|
const facePixels = imageDataMap[face];
|
|
797
833
|
return Promise.all(Array.isArray(facePixels) ? facePixels : [facePixels]);
|
|
798
834
|
})
|
|
@@ -809,7 +845,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
809
845
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
810
846
|
// TODO: adjust width & height for LOD!
|
|
811
847
|
if (width && height) {
|
|
812
|
-
gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
|
|
848
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
|
|
813
849
|
} else {
|
|
814
850
|
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
815
851
|
}
|
|
@@ -838,7 +874,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
838
874
|
|
|
839
875
|
this.bind();
|
|
840
876
|
if (imageData instanceof Promise) {
|
|
841
|
-
imageData.then(
|
|
877
|
+
imageData.then(resolvedImageData =>
|
|
842
878
|
this.setImageDataForFace(
|
|
843
879
|
Object.assign({}, options, {
|
|
844
880
|
face,
|
|
@@ -848,7 +884,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
848
884
|
)
|
|
849
885
|
);
|
|
850
886
|
} else if (this.width || this.height) {
|
|
851
|
-
gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
|
|
887
|
+
gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
|
|
852
888
|
} else {
|
|
853
889
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
854
890
|
}
|
|
@@ -857,25 +893,27 @@ export default class WEBGLTexture extends Texture {
|
|
|
857
893
|
}
|
|
858
894
|
|
|
859
895
|
/** Image 3D copies from Typed Array or WebGLBuffer */
|
|
860
|
-
setImageData3D({
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
896
|
+
setImageData3D(options: SetImageData3DOptions) {
|
|
897
|
+
const {
|
|
898
|
+
level = 0,
|
|
899
|
+
dataFormat,
|
|
900
|
+
format,
|
|
901
|
+
type, // = GL.UNSIGNED_BYTE,
|
|
902
|
+
width,
|
|
903
|
+
height,
|
|
904
|
+
depth = 1,
|
|
905
|
+
offset = 0,
|
|
906
|
+
data,
|
|
907
|
+
parameters = {}
|
|
908
|
+
} = options;
|
|
909
|
+
|
|
872
910
|
this.trackDeallocatedMemory('Texture');
|
|
873
911
|
|
|
874
912
|
this.gl.bindTexture(this.target, this.handle);
|
|
875
913
|
|
|
876
|
-
const webglTextureFormat = getWebGLTextureParameters(this.
|
|
914
|
+
const webglTextureFormat = getWebGLTextureParameters(format, this.device.isWebGL2);
|
|
877
915
|
|
|
878
|
-
|
|
916
|
+
withGLParameters(this.gl, parameters, () => {
|
|
879
917
|
if (ArrayBuffer.isView(data)) {
|
|
880
918
|
// @ts-expect-error
|
|
881
919
|
this.gl.texImage3D(
|
|
@@ -913,7 +951,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
913
951
|
if (data && data.byteLength) {
|
|
914
952
|
this.trackAllocatedMemory(data.byteLength, 'Texture');
|
|
915
953
|
} else {
|
|
916
|
-
const bytesPerPixel = getTextureFormatBytesPerPixel(this.
|
|
954
|
+
const bytesPerPixel = getTextureFormatBytesPerPixel(this.props.format, this.device.isWebGL2);
|
|
917
955
|
this.trackAllocatedMemory(this.width * this.height * this.depth * bytesPerPixel, 'Texture');
|
|
918
956
|
}
|
|
919
957
|
|
|
@@ -928,7 +966,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
928
966
|
* Sets sampler parameters on texture
|
|
929
967
|
* @note: Applies NPOT workaround if appropriate
|
|
930
968
|
*/
|
|
931
|
-
_setSamplerParameters(parameters:
|
|
969
|
+
_setSamplerParameters(parameters: GLSamplerParameters): void {
|
|
932
970
|
// Work around WebGL1 sampling restrictions on NPOT textures
|
|
933
971
|
if (this.device.isWebGL1 && isNPOT(this.width, this.height)) {
|
|
934
972
|
parameters = updateSamplerParametersForNPOT(parameters);
|
|
@@ -943,8 +981,8 @@ export default class WEBGLTexture extends Texture {
|
|
|
943
981
|
|
|
944
982
|
this.gl.bindTexture(this.target, this.handle);
|
|
945
983
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
946
|
-
const param = Number(pname);
|
|
947
|
-
|
|
984
|
+
const param = Number(pname) as GL.TEXTURE_MIN_LOD | GL.TEXTURE_MAX_LOD;
|
|
985
|
+
const value = pvalue;
|
|
948
986
|
|
|
949
987
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
950
988
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
@@ -960,11 +998,14 @@ export default class WEBGLTexture extends Texture {
|
|
|
960
998
|
}
|
|
961
999
|
}
|
|
962
1000
|
this.gl.bindTexture(this.target, null);
|
|
963
|
-
return
|
|
1001
|
+
return;
|
|
964
1002
|
}
|
|
965
1003
|
|
|
966
1004
|
/** @deprecated For LegacyTexture subclass */
|
|
967
|
-
protected _getWebGL1NPOTParameterOverride(
|
|
1005
|
+
protected _getWebGL1NPOTParameterOverride(
|
|
1006
|
+
pname: GL.TEXTURE_MIN_FILTER | GL.TEXTURE_WRAP_S | GL.TEXTURE_WRAP_T,
|
|
1007
|
+
value: GL.LINEAR | GL.NEAREST
|
|
1008
|
+
): number {
|
|
968
1009
|
// NOTE: Apply NPOT workaround
|
|
969
1010
|
const npot = this.device.isWebGL1 && isNPOT(this.width, this.height);
|
|
970
1011
|
if (npot) {
|
|
@@ -1019,6 +1060,4 @@ function isNPOT(width: number, height: number): boolean {
|
|
|
1019
1060
|
|
|
1020
1061
|
function logParameters(parameters: Record<number, GL | number>) {
|
|
1021
1062
|
log.log(1, 'texture sampler parameters', parameters)();
|
|
1022
|
-
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
1023
|
-
}
|
|
1024
1063
|
}
|