@luma.gl/webgl 9.0.0-alpha.16 → 9.0.0-alpha.19
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/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +117 -200
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +172 -62
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +151 -149
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +2 -2
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +847 -438
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +24 -15
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.js +84 -120
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +83 -88
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.js +37 -42
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/is-old-ie.js +8 -10
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +57 -50
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-info.js +19 -21
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +251 -310
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +80 -67
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.js +75 -80
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.js +26 -33
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +158 -213
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +118 -150
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +41 -40
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +37 -26
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +1 -91
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +198 -231
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +11 -8
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +35 -42
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +53 -57
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +4 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +697 -661
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +35 -55
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +5 -0
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +270 -287
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/classic/accessor.js +103 -120
- package/dist/classic/accessor.js.map +1 -0
- package/dist/classic/buffer.d.ts +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +300 -325
- package/dist/classic/buffer.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +81 -91
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/create-browser-context.d.ts +3 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +49 -66
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/context/create-headless-context.js +30 -24
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.js +17 -25
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/debug/spector.d.ts +3 -1
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +50 -53
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +76 -107
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +46 -93
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +404 -462
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/polyfill/context-data.js +10 -16
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +73 -75
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +116 -133
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +14 -16
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +127 -183
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +29 -43
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/dist.dev.js +9205 -0
- package/dist/index.cjs +5948 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -41
- package/dist/index.js.map +1 -0
- package/dist/types/webgl.d.ts +16 -16
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js +1 -0
- package/dist/types/webgl.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist.min.js +36 -0
- package/package.json +18 -9
- package/src/adapter/converters/device-parameters.ts +5 -2
- package/src/adapter/converters/sampler-parameters.ts +4 -2
- package/src/adapter/converters/texture-formats.ts +3 -1
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/get-shader-info.ts +1 -1
- package/src/adapter/helpers/get-shader-layout.ts +4 -4
- package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
- package/src/adapter/helpers/set-uniform.ts +2 -0
- package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
- package/src/adapter/objects/webgl-resource.ts +1 -1
- package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
- package/src/adapter/resources/webgl-buffer.ts +6 -6
- package/src/adapter/resources/webgl-command-encoder.ts +1 -1
- package/src/adapter/resources/webgl-framebuffer.ts +3 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
- package/src/adapter/resources/webgl-shader.ts +1 -1
- package/src/adapter/resources/webgl-texture.ts +8 -9
- package/src/adapter/webgl-canvas-context.ts +2 -2
- package/src/adapter/webgl-device.ts +12 -2
- package/src/classic/accessor.ts +1 -1
- package/src/classic/buffer.ts +3 -3
- package/src/classic/typed-array-utils.ts +1 -1
- package/src/context/context/create-browser-context.ts +4 -2
- package/src/context/context/create-headless-context.ts +2 -2
- package/src/context/debug/spector.ts +5 -4
- package/src/context/debug/webgl-developer-tools.ts +1 -0
- package/src/context/polyfill/polyfill-table.ts +1 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +6 -5
- package/src/context/state-tracker/with-parameters.ts +1 -1
- package/src/index.ts +1 -5
- package/src/types/webgl.ts +2 -0
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -4
- package/dist/dist.min.js +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -139
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -950
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -36
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -121
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
- package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -92
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -88
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -233
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
- 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 -275
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -111
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -826
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -72
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -387
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -151
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -398
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -99
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/create-browser-context.js +0 -66
- package/dist/es5/context/context/create-browser-context.js.map +0 -1
- package/dist/es5/context/context/create-headless-context.js +0 -47
- package/dist/es5/context/context/create-headless-context.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -44
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -99
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/context-data.js +0 -18
- package/dist/es5/context/polyfill/context-data.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -109
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -143
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -167
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -40
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -249
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -7
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -5
- 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 -137
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -901
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -29
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -95
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
- package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -85
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -89
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -163
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
- 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 -207
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -62
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -714
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -41
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -276
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -120
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -327
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -92
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/create-browser-context.js +0 -53
- package/dist/esm/context/context/create-browser-context.js.map +0 -1
- package/dist/esm/context/context/create-headless-context.js +0 -39
- package/dist/esm/context/context/create-headless-context.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -31
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -64
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/context-data.js +0 -12
- package/dist/esm/context/polyfill/context-data.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -84
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -138
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -148
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -34
- 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 -3
- package/src/bundle.ts +0 -4
- package/src/init.ts +0 -4
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/webgl",
|
|
3
|
-
"version": "9.0.0-alpha.
|
|
3
|
+
"version": "9.0.0-alpha.19",
|
|
4
4
|
"description": "WebGL2 adapter for the luma.gl API",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"license": "MIT",
|
|
6
7
|
"publishConfig": {
|
|
7
8
|
"access": "public"
|
|
@@ -17,11 +18,19 @@
|
|
|
17
18
|
"3d"
|
|
18
19
|
],
|
|
19
20
|
"types": "dist/index.d.ts",
|
|
20
|
-
"main": "dist/
|
|
21
|
-
"module": "dist/
|
|
21
|
+
"main": "dist/index.cjs",
|
|
22
|
+
"module": "dist/index.js",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"import": "./dist/index.js",
|
|
26
|
+
"require": "./dist/index.cjs",
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
|
+
}
|
|
29
|
+
},
|
|
22
30
|
"files": [
|
|
23
31
|
"src",
|
|
24
32
|
"dist",
|
|
33
|
+
"dist.min.js",
|
|
25
34
|
"README.md"
|
|
26
35
|
],
|
|
27
36
|
"sideEffects": false,
|
|
@@ -30,14 +39,14 @@
|
|
|
30
39
|
"gl/wrap": false
|
|
31
40
|
},
|
|
32
41
|
"scripts": {
|
|
33
|
-
"
|
|
34
|
-
"build
|
|
42
|
+
"build-bundle": "ocular-bundle ./src/index.ts",
|
|
43
|
+
"pre-build": "npm run build-bundle && npm run build-bundle -- --env=dev"
|
|
35
44
|
},
|
|
36
45
|
"dependencies": {
|
|
37
46
|
"@babel/runtime": "^7.0.0",
|
|
38
|
-
"@luma.gl/api": "9.0.0-alpha.
|
|
39
|
-
"@luma.gl/constants": "9.0.0-alpha.
|
|
40
|
-
"@probe.gl/env": "^4.0.
|
|
47
|
+
"@luma.gl/api": "9.0.0-alpha.19",
|
|
48
|
+
"@luma.gl/constants": "9.0.0-alpha.19",
|
|
49
|
+
"@probe.gl/env": "^4.0.2"
|
|
41
50
|
},
|
|
42
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "d57e5fd81825ae4c7c23040ba63f54ad4ea7e972"
|
|
43
52
|
}
|
|
@@ -5,6 +5,8 @@ import {pushContextState, popContextState} from '../../context/state-tracker/tra
|
|
|
5
5
|
import {setParameters} from '../../context/parameters/unified-parameter-api';
|
|
6
6
|
import WebGLDevice from '../webgl-device';
|
|
7
7
|
|
|
8
|
+
/* eslint-disable no-unused-expressions */ // For expression ? gl.enable() : gl.disable()
|
|
9
|
+
|
|
8
10
|
/**
|
|
9
11
|
* Execute a function with a set of temporary WebGL parameter overrides
|
|
10
12
|
* - Saves current "global" WebGL context settings
|
|
@@ -14,7 +16,7 @@ import WebGLDevice from '../webgl-device';
|
|
|
14
16
|
* - Returns the return value of the supplied function
|
|
15
17
|
* @deprecated use withDeviceParameters instead
|
|
16
18
|
*/
|
|
17
|
-
|
|
19
|
+
export function withGLParameters<T = unknown>(device: Device, parameters: GLParameters, func: (device?: Device) => T): T {
|
|
18
20
|
if (isObjectEmpty(parameters)) {
|
|
19
21
|
// Avoid setting state if no parameters provided. Just call and return
|
|
20
22
|
return func(device);
|
|
@@ -102,7 +104,8 @@ export function setDeviceParameters(device: Device, parameters: Parameters) {
|
|
|
102
104
|
gl.depthMask(mapBoolean('depthWriteEnabled', parameters.depthWriteEnabled));
|
|
103
105
|
}
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
if (parameters.depthCompare) {
|
|
108
|
+
|
|
106
109
|
parameters.depthCompare !== 'always' ? gl.enable(GL.DEPTH_TEST) : gl.disable(GL.DEPTH_TEST);
|
|
107
110
|
gl.depthFunc(convertCompareFunction('depthCompare', parameters.depthCompare));
|
|
108
111
|
}
|
|
@@ -4,6 +4,8 @@ import GL from '@luma.gl/constants';
|
|
|
4
4
|
import {GLSamplerParameters} from '../../types/webgl';
|
|
5
5
|
import {convertCompareFunction, convertToCompareFunction} from './device-parameters';
|
|
6
6
|
|
|
7
|
+
/* eslint-disable consistent-return */
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Convert WebGPU-style sampler props to WebGL
|
|
9
11
|
* @param props
|
|
@@ -38,7 +40,7 @@ export function convertSamplerParametersToWebGL(props: SamplerParameters): GLSam
|
|
|
38
40
|
params[GL.TEXTURE_COMPARE_MODE] = GL.COMPARE_REF_TO_TEXTURE;
|
|
39
41
|
}
|
|
40
42
|
if (props.compare) {
|
|
41
|
-
|
|
43
|
+
params[GL.TEXTURE_COMPARE_FUNC] = convertCompareFunction('compare', props.compare);
|
|
42
44
|
}
|
|
43
45
|
// Note depends on WebGL extension
|
|
44
46
|
if (props.maxAnisotropy) {
|
|
@@ -84,7 +86,7 @@ function convertMinFilterMode(minFilter: 'nearest' | 'linear', mipmapFilter?: 'n
|
|
|
84
86
|
* @param props
|
|
85
87
|
* @returns
|
|
86
88
|
*/
|
|
87
|
-
|
|
89
|
+
export function convertToSamplerParameters(params: GLSamplerParameters): SamplerParameters {
|
|
88
90
|
const props: SamplerParameters = {};
|
|
89
91
|
if (params[GL.TEXTURE_WRAP_S]) {
|
|
90
92
|
props.addressModeU = convertToAddressMode(params[GL.TEXTURE_WRAP_S]);
|
|
@@ -3,6 +3,8 @@ import {decodeTextureFormat} from '@luma.gl/api';
|
|
|
3
3
|
import GL from '@luma.gl/constants';
|
|
4
4
|
import {isWebGL2} from '../../context/context/webgl-checks';
|
|
5
5
|
|
|
6
|
+
/* eslint-disable camelcase */
|
|
7
|
+
|
|
6
8
|
// TEXTURE FEATURES
|
|
7
9
|
|
|
8
10
|
// Define local device feature strings to optimize minification
|
|
@@ -240,7 +242,7 @@ export const TEXTURE_FORMATS: Record<TextureFormat, Format> = {
|
|
|
240
242
|
// "depth24unorm-stencil8" feature
|
|
241
243
|
'depth24unorm-stencil8': {gl: GL.DEPTH24_STENCIL8, b: 4, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
|
|
242
244
|
// "depth32float-stencil8" feature
|
|
243
|
-
|
|
245
|
+
'depth32float-stencil8': {gl: GL.DEPTH32F_STENCIL8, b: 5, c: 2, p: 1, attachment: GL.DEPTH_STENCIL_ATTACHMENT},
|
|
244
246
|
|
|
245
247
|
// BC compressed formats: check device.features.has("texture-compression-bc");
|
|
246
248
|
|
|
@@ -28,24 +28,24 @@ export function getDeviceInfo(gl: WebGLRenderingContext): DeviceInfo {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
function identifyGPUVendor(vendor: string, renderer: string): 'nvidia' | 'intel' | 'apple' | 'amd' | 'software' | 'unknown' {
|
|
31
|
-
if (
|
|
31
|
+
if ((/NVIDIA/i.exec(vendor)) || (/NVIDIA/i.exec(renderer))) {
|
|
32
32
|
return 'nvidia';
|
|
33
33
|
}
|
|
34
|
-
if (
|
|
34
|
+
if ((/INTEL/i.exec(vendor)) || (/INTEL/i.exec(renderer))) {
|
|
35
35
|
return 'intel';
|
|
36
36
|
}
|
|
37
|
-
if (
|
|
37
|
+
if ((/Apple/i.exec(vendor)) || (/Apple/i.exec(renderer))) {
|
|
38
38
|
return 'apple';
|
|
39
39
|
}
|
|
40
40
|
if (
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
(/AMD/i.exec(vendor)) ||
|
|
42
|
+
(/AMD/i.exec(renderer)) ||
|
|
43
|
+
(/ATI/i.exec(vendor)) ||
|
|
44
|
+
(/ATI/i.exec(renderer))
|
|
45
45
|
) {
|
|
46
46
|
return 'amd';
|
|
47
47
|
}
|
|
48
|
-
if (
|
|
48
|
+
if ((/SwiftShader/i.exec(vendor)) || (/SwiftShader/i.exec(renderer))) {
|
|
49
49
|
return 'software';
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -19,7 +19,7 @@ export function getShaderInfo(source: string, defaultName?: string): ShaderInfo
|
|
|
19
19
|
/** Extracts GLSLIFY style naming of shaders: `#define SHADER_NAME ...` */
|
|
20
20
|
function getShaderName(shader: string, defaultName: string = 'unnamed'): string {
|
|
21
21
|
const SHADER_NAME_REGEXP = /#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/;
|
|
22
|
-
const match =
|
|
22
|
+
const match = SHADER_NAME_REGEXP.exec(shader);
|
|
23
23
|
return match ? match[1] : defaultName;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -137,7 +137,7 @@ function readAttributeBindings(
|
|
|
137
137
|
// Add only user provided attributes, for built-in attributes like
|
|
138
138
|
// `gl_InstanceID` locaiton will be < 0
|
|
139
139
|
if (location >= 0) {
|
|
140
|
-
const {glType, components} = decodeAttributeType(compositeType)
|
|
140
|
+
const {glType, components} = decodeAttributeType(compositeType);
|
|
141
141
|
const accessor: AccessorObject = {type: glType, size: size * components};
|
|
142
142
|
// Any attribute name containing the word "instance" will be assumed to be instanced
|
|
143
143
|
if (/instance/i.test(name)) {
|
|
@@ -172,7 +172,7 @@ function readVaryings(gl: WebGLRenderingContext, program: WebGLProgram): Varying
|
|
|
172
172
|
throw new Error('activeInfo');
|
|
173
173
|
}
|
|
174
174
|
const {name, type: compositeType, size} = activeInfo;
|
|
175
|
-
const {glType, components} = decodeUniformType(compositeType)
|
|
175
|
+
const {glType, components} = decodeUniformType(compositeType);
|
|
176
176
|
const accessor = new Accessor({type: glType, size: size * components});
|
|
177
177
|
const varying = {location, name, accessor}; // Base values
|
|
178
178
|
varyings.push(varying);
|
|
@@ -333,7 +333,7 @@ type SamplerInfo = | {
|
|
|
333
333
|
};
|
|
334
334
|
|
|
335
335
|
function getSamplerInfo(type: GL): SamplerInfo {
|
|
336
|
-
|
|
336
|
+
const sampler = SAMPLER_UNIFORMS_GL_TO_GPU[type];
|
|
337
337
|
if (!sampler) {
|
|
338
338
|
throw new Error('sampler');
|
|
339
339
|
}
|
|
@@ -355,7 +355,7 @@ function parseUniformName(name: string): {name: string; length: number; isArray:
|
|
|
355
355
|
|
|
356
356
|
// if array name then clean the array brackets
|
|
357
357
|
const UNIFORM_NAME_REGEXP = /([^[]*)(\[[0-9]+\])?/;
|
|
358
|
-
const matches =
|
|
358
|
+
const matches = UNIFORM_NAME_REGEXP.exec(name);
|
|
359
359
|
if (!matches || matches.length < 2) {
|
|
360
360
|
throw new Error(`Failed to parse GLSL uniform name ${name}`);
|
|
361
361
|
}
|
|
@@ -35,7 +35,7 @@ const DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {
|
|
|
35
35
|
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
36
36
|
*/
|
|
37
37
|
export default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {
|
|
38
|
-
|
|
38
|
+
override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }
|
|
39
39
|
|
|
40
40
|
get width(): number { return this.props.width; }
|
|
41
41
|
get height(): number { return this.props.height; }
|
|
@@ -13,7 +13,7 @@ const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual met
|
|
|
13
13
|
/**
|
|
14
14
|
* Base class for WebGL object wrappers
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
export default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {
|
|
17
17
|
readonly device: WebGLDevice;
|
|
18
18
|
readonly gl: WebGLRenderingContext;
|
|
19
19
|
readonly gl2: WebGL2RenderingContext;
|
|
@@ -17,7 +17,7 @@ export type VertexArrayObjectProps = ResourceProps & {
|
|
|
17
17
|
|
|
18
18
|
/** VertexArrayObject wrapper */
|
|
19
19
|
export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
20
|
-
|
|
20
|
+
override get [Symbol.toStringTag](): string {
|
|
21
21
|
return 'BaseVertexArrayObject';
|
|
22
22
|
}
|
|
23
23
|
|
|
@@ -21,6 +21,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
21
21
|
|
|
22
22
|
// accessor: {};
|
|
23
23
|
|
|
24
|
+
|
|
24
25
|
constructor(device: WebGLDevice, props: BufferProps = {}) {
|
|
25
26
|
super(device, props);
|
|
26
27
|
|
|
@@ -28,10 +29,9 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
28
29
|
this.gl = this.device.gl;
|
|
29
30
|
this.gl2 = this.device.gl2;
|
|
30
31
|
|
|
31
|
-
const handle = typeof props === 'object' ? (props
|
|
32
|
+
const handle = typeof props === 'object' ? (props ).handle : undefined;
|
|
32
33
|
this.handle = handle || this.gl.createBuffer();
|
|
33
|
-
|
|
34
|
-
this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
|
|
34
|
+
device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data});
|
|
35
35
|
|
|
36
36
|
// In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
|
|
37
37
|
// otherwise buffer type will lock to generic (non-element) buffer
|
|
@@ -55,7 +55,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
55
55
|
// Object.seal(this);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
// PRIVATE METHODS
|
|
59
59
|
|
|
60
60
|
// Allocate a new buffer and initialize to contents of typed array
|
|
61
61
|
_initWithData(data, byteOffset: number = 0, byteLength: number = data.byteLength + byteOffset): this {
|
|
@@ -124,7 +124,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
124
124
|
this.device.assertWebGL2();
|
|
125
125
|
|
|
126
126
|
// @ts-expect-error
|
|
127
|
-
this.gl.bufferSubData(this.target,
|
|
127
|
+
this.gl.bufferSubData(this.target, byteOffset, data, srcOffset, byteLength);
|
|
128
128
|
} else {
|
|
129
129
|
this.gl.bufferSubData(target, byteOffset, data);
|
|
130
130
|
}
|
|
@@ -168,7 +168,7 @@ export default class WEBGLBuffer extends Buffer {
|
|
|
168
168
|
|
|
169
169
|
_getReadTarget() {
|
|
170
170
|
return this.target;
|
|
171
|
-
return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;
|
|
171
|
+
// return this.device.isWebGL2 ? GL.COPY_READ_BUFFER : this.target;
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -29,8 +29,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
29
29
|
this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();
|
|
30
30
|
|
|
31
31
|
if (this.handle) { // default framebuffer is null...
|
|
32
|
-
|
|
33
|
-
this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};
|
|
32
|
+
device.setSpectorMetadata(this.handle, {id: this.props.id, props: this.props});
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
this.colorAttachments = this._createColorAttachments();
|
|
@@ -131,7 +130,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
131
130
|
// [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,
|
|
132
131
|
// [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE
|
|
133
132
|
// }
|
|
134
|
-
})
|
|
133
|
+
}) ;
|
|
135
134
|
this._ownResources.push(texture);
|
|
136
135
|
return texture;
|
|
137
136
|
}
|
|
@@ -220,7 +219,7 @@ export default class WEBGLFramebuffer extends Framebuffer {
|
|
|
220
219
|
* @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`
|
|
221
220
|
* @param level = 0 - mipmapLevel (must be 0 in WebGL1)
|
|
222
221
|
*/
|
|
223
|
-
|
|
222
|
+
protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {
|
|
224
223
|
const {gl, gl2} = this.device;
|
|
225
224
|
gl.bindTexture(texture.target, texture.handle);
|
|
226
225
|
|
|
@@ -49,8 +49,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
49
49
|
super(device, props);
|
|
50
50
|
this.device = device;
|
|
51
51
|
this.handle = this.props.handle || this.device.gl.createProgram();
|
|
52
|
-
|
|
53
|
-
this.handle.__SPECTOR_Metadata = {id: this.props.id};
|
|
52
|
+
this.device.setSpectorMetadata(this.handle, {id: this.props.id});
|
|
54
53
|
|
|
55
54
|
// Create shaders if needed
|
|
56
55
|
this.vs = cast<WEBGLShader>(props.vs);
|
|
@@ -94,7 +93,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
94
93
|
const attribute = getAttributeLayout(this.layout, name);
|
|
95
94
|
if (!attribute) {
|
|
96
95
|
log.warn(`Ignoring buffer supplied for unknown attribute "${name}" in pipeline "${this.id}" (buffer "${buffer.id}")`)();
|
|
97
|
-
continue;
|
|
96
|
+
continue; // eslint-disable-line no-continue
|
|
98
97
|
}
|
|
99
98
|
const decoded = decodeVertexFormat(attribute.format);
|
|
100
99
|
const {type: typeString, components: size, byteLength: stride, normalized, integer} = decoded;
|
|
@@ -122,7 +121,7 @@ export default class WEBGLRenderPipeline extends RenderPipeline {
|
|
|
122
121
|
const binding = this.layout.bindings.find((binding) => binding.name === name);
|
|
123
122
|
if (!binding) {
|
|
124
123
|
log.warn(`Unknown binding ${name} in render pipeline ${this.id}`)();
|
|
125
|
-
continue;
|
|
124
|
+
continue; // eslint-disable-line no-continue
|
|
126
125
|
}
|
|
127
126
|
if (!value) {
|
|
128
127
|
log.warn(`Unsetting binding ${name} in render pipeline ${this.id}`)();
|
|
@@ -371,14 +370,14 @@ function getDrawMode(
|
|
|
371
370
|
): GL.POINTS | GL.LINES | GL.LINE_STRIP | GL.LINE_LOOP | GL.TRIANGLES | GL.TRIANGLE_STRIP | GL.TRIANGLE_FAN {
|
|
372
371
|
// prettier-ignore
|
|
373
372
|
switch (topology) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
373
|
+
case 'point-list': return GL.POINTS;
|
|
374
|
+
case 'line-list': return GL.LINES;
|
|
375
|
+
case 'line-strip': return GL.LINE_STRIP;
|
|
376
|
+
case 'line-loop': return GL.LINE_LOOP;
|
|
377
|
+
case 'triangle-list': return GL.TRIANGLES;
|
|
378
|
+
case 'triangle-strip': return GL.TRIANGLE_STRIP;
|
|
379
|
+
case 'triangle-fan': return GL.TRIANGLE_FAN;
|
|
380
|
+
default: throw new Error(topology);
|
|
382
381
|
}
|
|
383
382
|
}
|
|
384
383
|
|
|
@@ -386,14 +385,14 @@ function getDrawMode(
|
|
|
386
385
|
function getGLPrimitive(topology: PrimitiveTopology): GL.POINTS | GL.LINES | GL.TRIANGLES {
|
|
387
386
|
// prettier-ignore
|
|
388
387
|
switch (topology) {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
388
|
+
case 'point-list': return GL.POINTS;
|
|
389
|
+
case 'line-list': return GL.LINES;
|
|
390
|
+
case 'line-strip': return GL.LINES;
|
|
391
|
+
case 'line-loop': return GL.LINES;
|
|
392
|
+
case 'triangle-list': return GL.TRIANGLES;
|
|
393
|
+
case 'triangle-strip': return GL.TRIANGLES;
|
|
394
|
+
case 'triangle-fan': return GL.TRIANGLES;
|
|
395
|
+
default: throw new Error(topology);
|
|
397
396
|
}
|
|
398
397
|
}
|
|
399
398
|
|
|
@@ -8,7 +8,7 @@ import WebGLDevice from '../webgl-device';
|
|
|
8
8
|
/**
|
|
9
9
|
* An immutable compiled shader program that execute portions of the GPU Pipeline
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
export default class WEBGLShader extends Shader {
|
|
12
12
|
readonly device: WebGLDevice;
|
|
13
13
|
readonly handle: WebGLShader;
|
|
14
14
|
|
|
@@ -176,8 +176,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
176
176
|
this.gl = this.device.gl;
|
|
177
177
|
this.gl2 = this.device.gl2;
|
|
178
178
|
this.handle = this.props.handle || this.gl.createTexture();
|
|
179
|
-
|
|
180
|
-
this.handle.__SPECTOR_Metadata = {...this.props, data: typeof this.props.data}; // {name: this.props.id};
|
|
179
|
+
this.device.setSpectorMetadata(this.handle, {...this.props, data: typeof this.props.data}); // {name: this.props.id};
|
|
181
180
|
|
|
182
181
|
this.target = getWebGLTextureTarget(this.props);
|
|
183
182
|
|
|
@@ -238,7 +237,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
238
237
|
return this;
|
|
239
238
|
}
|
|
240
239
|
|
|
241
|
-
|
|
240
|
+
const {parameters = {} as Record<GL, any>} = props;
|
|
242
241
|
|
|
243
242
|
const {
|
|
244
243
|
pixels = null, recreate = false, pixelStore = {}, textureUnit = undefined} = props;
|
|
@@ -490,7 +489,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
490
489
|
withParameters(this.gl, parameters, () => {
|
|
491
490
|
switch (dataType) {
|
|
492
491
|
case 'null':
|
|
493
|
-
gl.texImage2D(target, level, format, width, height, 0 /*border*/, dataFormat, type, data);
|
|
492
|
+
gl.texImage2D(target, level, format, width, height, 0 /* border*/, dataFormat, type, data);
|
|
494
493
|
break;
|
|
495
494
|
case 'typed-array':
|
|
496
495
|
// Looks like this assert is not necessary, as offset is ignored under WebGL1
|
|
@@ -519,7 +518,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
519
518
|
format,
|
|
520
519
|
width,
|
|
521
520
|
height,
|
|
522
|
-
0 /*border*/,
|
|
521
|
+
0 /* border*/,
|
|
523
522
|
dataFormat,
|
|
524
523
|
type,
|
|
525
524
|
offset
|
|
@@ -534,7 +533,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
534
533
|
format,
|
|
535
534
|
width,
|
|
536
535
|
height,
|
|
537
|
-
0 /*border*/,
|
|
536
|
+
0 /* border*/,
|
|
538
537
|
dataFormat,
|
|
539
538
|
type,
|
|
540
539
|
data
|
|
@@ -819,7 +818,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
819
818
|
resolvedFaces[index].forEach((image, lodLevel) => {
|
|
820
819
|
// TODO: adjust width & height for LOD!
|
|
821
820
|
if (width && height) {
|
|
822
|
-
gl.texImage2D(face, lodLevel, format, width, height, 0 /*border*/, format, type, image);
|
|
821
|
+
gl.texImage2D(face, lodLevel, format, width, height, 0 /* border*/, format, type, image);
|
|
823
822
|
} else {
|
|
824
823
|
gl.texImage2D(face, lodLevel, format, format, type, image);
|
|
825
824
|
}
|
|
@@ -858,7 +857,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
858
857
|
)
|
|
859
858
|
);
|
|
860
859
|
} else if (this.width || this.height) {
|
|
861
|
-
gl.texImage2D(face, 0, format, width, height, 0 /*border*/, format, type, imageData);
|
|
860
|
+
gl.texImage2D(face, 0, format, width, height, 0 /* border*/, format, type, imageData);
|
|
862
861
|
} else {
|
|
863
862
|
gl.texImage2D(face, 0, format, format, type, imageData);
|
|
864
863
|
}
|
|
@@ -956,7 +955,7 @@ export default class WEBGLTexture extends Texture {
|
|
|
956
955
|
this.gl.bindTexture(this.target, this.handle);
|
|
957
956
|
for (const [pname, pvalue] of Object.entries(parameters)) {
|
|
958
957
|
const param = Number(pname);
|
|
959
|
-
|
|
958
|
+
const value = pvalue;
|
|
960
959
|
|
|
961
960
|
// Apparently there are integer/float conversion issues requires two parameter setting functions in JavaScript.
|
|
962
961
|
// For now, pick the float version for parameters specified as GLfloat.
|
|
@@ -49,7 +49,7 @@ export default class WebGLCanvasContext extends CanvasContext {
|
|
|
49
49
|
* canvas CSS width * devicePixelRatio x canvas CSS height * devicePixelRatio
|
|
50
50
|
* See http://webgl2fundamentals.org/webgl/lessons/webgl-resizing-the-canvas.html
|
|
51
51
|
*/
|
|
52
|
-
|
|
52
|
+
resize(options?: {width?: number; height?: number; useDevicePixels?: boolean | number}): void {
|
|
53
53
|
// Resize browser context .
|
|
54
54
|
if (this.canvas) {
|
|
55
55
|
this.setDevicePixelRatio(devicePixelRatio, options);
|
|
@@ -58,7 +58,7 @@ export default class WebGLCanvasContext extends CanvasContext {
|
|
|
58
58
|
|
|
59
59
|
// Resize headless gl context
|
|
60
60
|
const ext = this.device.gl.getExtension('STACKGL_resize_drawingbuffer');
|
|
61
|
-
if (ext && options &&
|
|
61
|
+
if (ext && options && 'width' in options && 'height' in options) {
|
|
62
62
|
ext.resize(options.width, options.height);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -341,7 +341,7 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
|
|
|
341
341
|
// this.canvasContext.commit();
|
|
342
342
|
}
|
|
343
343
|
|
|
344
|
-
|
|
344
|
+
//
|
|
345
345
|
// WebGL-only API (not part of `Device` API)
|
|
346
346
|
//
|
|
347
347
|
|
|
@@ -379,7 +379,7 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
|
|
|
379
379
|
* @note Triggers context loss, mainly for testing
|
|
380
380
|
* @todo Promote to `Device` API?
|
|
381
381
|
*/
|
|
382
|
-
|
|
382
|
+
loseDevice(): void {
|
|
383
383
|
const ext = this.gl.getExtension('WEBGL_lose_context');
|
|
384
384
|
if (ext) {
|
|
385
385
|
ext.loseContext();
|
|
@@ -400,6 +400,16 @@ ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`
|
|
|
400
400
|
popState(): void {
|
|
401
401
|
popContextState(this.gl);
|
|
402
402
|
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Storing data on a special field on WebGLObjects makes that data visible in SPECTOR chrome debug extension
|
|
406
|
+
* luma.gl ids and props can be inspected
|
|
407
|
+
*/
|
|
408
|
+
setSpectorMetadata(handle: unknown, props: Record<string, unknown>) {
|
|
409
|
+
// @ts-expect-error
|
|
410
|
+
// eslint-disable-next-line camelcase
|
|
411
|
+
handle.__SPECTOR_Metadata = props;
|
|
412
|
+
}
|
|
403
413
|
}
|
|
404
414
|
|
|
405
415
|
/** Check if supplied parameter is a WebGLRenderingContext */
|
package/src/classic/accessor.ts
CHANGED
package/src/classic/buffer.ts
CHANGED
|
@@ -50,11 +50,11 @@ function getWEBGLBufferProps(props: ClassicBufferProps | ArrayBufferView | numbe
|
|
|
50
50
|
|
|
51
51
|
// Signature: `new Buffer(gl, 100)`
|
|
52
52
|
else if (typeof props === 'number') {
|
|
53
|
-
return {byteLength: props
|
|
53
|
+
return {byteLength: props };
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
props = checkProps('Buffer', props, PROP_CHECKS_INITIALIZE);
|
|
57
|
-
const bufferProps = {...props
|
|
57
|
+
const bufferProps = {...props };
|
|
58
58
|
if (bufferProps.offset) {
|
|
59
59
|
bufferProps.byteOffset = bufferProps.offset;
|
|
60
60
|
}
|
|
@@ -362,7 +362,7 @@ export default class ClassicBuffer extends WEBGLBuffer {
|
|
|
362
362
|
getDebugData(): {
|
|
363
363
|
data: any;
|
|
364
364
|
changed: boolean;
|
|
365
|
-
|
|
365
|
+
} {
|
|
366
366
|
if (!this.debugData) {
|
|
367
367
|
this.debugData = this.getData({length: Math.min(DEBUG_DATA_LENGTH, this.byteLength)});
|
|
368
368
|
return {data: this.debugData, changed: true};
|
|
@@ -37,7 +37,9 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
37
37
|
webgl2: true, // Attempt to create a WebGL2 context
|
|
38
38
|
webgl1: true, // Attempt to create a WebGL1 context (false to fail if webgl2 not available)
|
|
39
39
|
powerPreference: 'high-performance', // After all, most apps are using WebGL for performance reasons
|
|
40
|
+
// eslint-disable-next-line no-console
|
|
40
41
|
onContextLost: () => console.error('WebGL context lost'),
|
|
42
|
+
// eslint-disable-next-line no-console
|
|
41
43
|
onContextRestored: () => console.info('WebGL context restored'),
|
|
42
44
|
};
|
|
43
45
|
|
|
@@ -46,8 +48,8 @@ const DEFAULT_CONTEXT_PROPS: ContextProps = {
|
|
|
46
48
|
* Note calling this multiple time on the same canvas does return the same context
|
|
47
49
|
* @param canvas A canvas element or offscreen canvas
|
|
48
50
|
*/
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
export function createBrowserContext(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): WebGLRenderingContext {
|
|
52
|
+
props = {...DEFAULT_CONTEXT_PROPS, ...props};
|
|
51
53
|
|
|
52
54
|
// Try to extract any extra information about why context creation failed
|
|
53
55
|
let errorMessage = null;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
const ERR_HEADLESSGL_FAILED =
|
|
2
2
|
'Failed to create WebGL context in Node.js, headless gl returned null';
|
|
3
3
|
|
|
4
|
-
const ERR_HEADLESSGL_LOAD =
|
|
4
|
+
const ERR_HEADLESSGL_LOAD = '\
|
|
5
5
|
luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL \
|
|
6
6
|
contexts can not be created. This may not be an error. For example, this is a \
|
|
7
|
-
typical configuration for isorender applications running on the server
|
|
7
|
+
typical configuration for isorender applications running on the server.';
|
|
8
8
|
|
|
9
9
|
const CONTEXT_DEFAULTS = {
|
|
10
10
|
width: 1,
|