@luma.gl/webgl 9.0.0-alpha.15 → 9.0.0-alpha.16
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.js +199 -136
- 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 +62 -176
- package/dist/adapter/converters/sampler-parameters.js +149 -206
- 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 +437 -890
- package/dist/adapter/converters/vertex-formats.js +15 -33
- package/dist/adapter/device-helpers/device-features.js +119 -100
- 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 +88 -86
- package/dist/adapter/device-helpers/get-device-info.js +42 -43
- package/dist/adapter/device-helpers/is-old-ie.js +9 -6
- package/dist/adapter/helpers/attribute-utils.js +50 -74
- 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 +27 -0
- package/dist/adapter/helpers/get-shader-layout.js +307 -296
- 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 +32 -33
- package/dist/adapter/helpers/set-uniform.js +67 -110
- package/dist/adapter/helpers/uniforms.js +80 -85
- package/dist/adapter/objects/constants-to-keys.js +33 -33
- 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 +67 -86
- package/dist/adapter/objects/webgl-resource.js +213 -205
- 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 +74 -76
- package/dist/adapter/resources/webgl-buffer.js +150 -147
- 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 +39 -55
- package/dist/adapter/resources/webgl-command-encoder.js +25 -49
- package/dist/adapter/resources/webgl-external-texture.js +91 -1
- 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 +231 -258
- package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +8 -18
- package/dist/adapter/resources/webgl-render-pipeline.js +316 -378
- package/dist/adapter/resources/webgl-sampler.js +42 -47
- package/dist/adapter/resources/webgl-shader.d.ts +1 -2
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +58 -68
- package/dist/adapter/resources/webgl-texture.d.ts +5 -5
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +661 -815
- package/dist/adapter/webgl-canvas-context.js +55 -49
- package/dist/adapter/webgl-device.js +288 -338
- package/dist/bundle.js +1 -2
- package/dist/classic/accessor.js +120 -127
- package/dist/classic/buffer.d.ts +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +325 -356
- 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 +91 -101
- package/dist/context/context/create-browser-context.d.ts +1 -2
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +61 -52
- 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 +26 -33
- package/dist/context/context/webgl-checks.js +25 -20
- 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 +53 -62
- 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 +106 -93
- package/dist/context/parameters/unified-parameter-api.js +91 -55
- 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 +462 -423
- package/dist/context/polyfill/context-data.js +16 -12
- package/dist/context/polyfill/get-parameter-polyfill.js +91 -76
- package/dist/context/polyfill/polyfill-context.js +75 -80
- package/dist/context/polyfill/polyfill-table.js +133 -139
- package/dist/context/polyfill/polyfill-vertex-array-object.js +255 -297
- package/dist/context/state-tracker/deep-array-equal.js +16 -18
- package/dist/context/state-tracker/track-context-state.js +183 -161
- package/dist/context/state-tracker/with-parameters.js +43 -35
- package/dist/dist.min.js +1 -0
- package/dist/es5/adapter/converters/device-parameters.js +3 -38
- package/dist/es5/adapter/converters/device-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +2 -14
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +2 -65
- package/dist/es5/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/es5/adapter/converters/texture-formats.js +9 -81
- package/dist/es5/adapter/converters/texture-formats.js.map +1 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -12
- package/dist/es5/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-features.js +6 -40
- package/dist/es5/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -10
- package/dist/es5/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -10
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +3 -25
- package/dist/es5/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/es5/adapter/helpers/get-shader-info.js +31 -0
- package/dist/es5/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/es5/adapter/helpers/get-shader-layout.js +23 -101
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +6 -24
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -33
- package/dist/es5/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/es5/adapter/helpers/uniforms.js +13 -37
- package/dist/es5/adapter/helpers/uniforms.js.map +1 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +1 -12
- package/dist/es5/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +5 -33
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-resource.js +6 -60
- package/dist/es5/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +7 -35
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +20 -66
- package/dist/es5/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +6 -32
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -18
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +10 -82
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +2 -19
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +24 -133
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +2 -28
- package/dist/es5/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-shader.js +13 -52
- package/dist/es5/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/es5/adapter/resources/webgl-texture.js +137 -291
- package/dist/es5/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -24
- package/dist/es5/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/es5/adapter/webgl-device.js +40 -127
- package/dist/es5/adapter/webgl-device.js.map +1 -1
- package/dist/es5/bundle.js +0 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/classic/accessor.js +1 -31
- package/dist/es5/classic/accessor.js.map +1 -1
- package/dist/es5/classic/buffer.js +32 -102
- package/dist/es5/classic/buffer.js.map +1 -1
- package/dist/es5/classic/typed-array-utils.js +10 -37
- package/dist/es5/classic/typed-array-utils.js.map +1 -1
- package/dist/es5/context/context/create-browser-context.js +4 -21
- package/dist/es5/context/context/create-browser-context.js.map +1 -1
- package/dist/es5/context/context/create-headless-context.js +8 -21
- package/dist/es5/context/context/create-headless-context.js.map +1 -1
- package/dist/es5/context/context/webgl-checks.js +4 -14
- package/dist/es5/context/context/webgl-checks.js.map +1 -1
- package/dist/es5/context/debug/spector.js +20 -54
- package/dist/es5/context/debug/spector.js.map +1 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +19 -65
- package/dist/es5/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +3 -28
- package/dist/es5/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +18 -65
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/es5/context/polyfill/context-data.js +0 -3
- package/dist/es5/context/polyfill/context-data.js.map +1 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -12
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-context.js +8 -33
- package/dist/es5/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-table.js +3 -27
- package/dist/es5/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -5
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/es5/context/state-tracker/track-context-state.js +10 -53
- package/dist/es5/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/es5/context/state-tracker/with-parameters.js +1 -13
- package/dist/es5/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/es5/index.js +72 -99
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/init.js +0 -3
- package/dist/es5/init.js.map +1 -1
- package/dist/es5/types/webgl.js +0 -1
- package/dist/es5/types/webgl.js.map +1 -1
- package/dist/es5/types.js.map +1 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -20
- package/dist/esm/adapter/converters/device-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -4
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +1 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +2 -57
- package/dist/esm/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/esm/adapter/converters/texture-formats.js +8 -52
- package/dist/esm/adapter/converters/texture-formats.js.map +1 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -9
- package/dist/esm/adapter/converters/vertex-formats.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-features.js +2 -19
- package/dist/esm/adapter/device-helpers/device-features.js.map +1 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -3
- package/dist/esm/adapter/device-helpers/device-limits.js.map +1 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -6
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +1 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +2 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +1 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -17
- package/dist/esm/adapter/helpers/attribute-utils.js.map +1 -1
- package/dist/esm/adapter/helpers/get-shader-info.js +25 -0
- package/dist/esm/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/esm/adapter/helpers/get-shader-layout.js +2 -48
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +1 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -7
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -30
- package/dist/esm/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -10
- package/dist/esm/adapter/helpers/uniforms.js.map +1 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -7
- package/dist/esm/adapter/objects/constants-to-keys.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +2 -18
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-resource.js +10 -57
- package/dist/esm/adapter/objects/webgl-resource.js.map +1 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +5 -15
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +12 -40
- package/dist/esm/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +2 -17
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -12
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -60
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +1 -8
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -89
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -12
- package/dist/esm/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-shader.js +2 -16
- package/dist/esm/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/esm/adapter/resources/webgl-texture.js +36 -154
- package/dist/esm/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -14
- package/dist/esm/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/esm/adapter/webgl-device.js +19 -89
- package/dist/esm/adapter/webgl-device.js.map +1 -1
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/bundle.js.map +1 -1
- package/dist/esm/classic/accessor.js +10 -34
- package/dist/esm/classic/accessor.js.map +1 -1
- package/dist/esm/classic/buffer.js +15 -71
- package/dist/esm/classic/buffer.js.map +1 -1
- package/dist/esm/classic/typed-array-utils.js +0 -20
- package/dist/esm/classic/typed-array-utils.js.map +1 -1
- package/dist/esm/context/context/create-browser-context.js +6 -14
- package/dist/esm/context/context/create-browser-context.js.map +1 -1
- package/dist/esm/context/context/create-headless-context.js +2 -6
- package/dist/esm/context/context/create-headless-context.js.map +1 -1
- package/dist/esm/context/context/webgl-checks.js +0 -3
- package/dist/esm/context/context/webgl-checks.js.map +1 -1
- package/dist/esm/context/debug/spector.js +2 -14
- package/dist/esm/context/debug/spector.js.map +1 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +4 -22
- package/dist/esm/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +2 -13
- package/dist/esm/context/parameters/unified-parameter-api.js.map +1 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -19
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/esm/context/polyfill/context-data.js +0 -2
- package/dist/esm/context/polyfill/context-data.js.map +1 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -5
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-context.js +14 -21
- package/dist/esm/context/polyfill/polyfill-context.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -23
- package/dist/esm/context/polyfill/polyfill-table.js.map +1 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -70
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +1 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -4
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +1 -1
- package/dist/esm/context/state-tracker/track-context-state.js +11 -45
- package/dist/esm/context/state-tracker/track-context-state.js.map +1 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -6
- package/dist/esm/context/state-tracker/with-parameters.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/init.js.map +1 -1
- package/dist/esm/types/webgl.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/index.js +39 -25
- package/dist/init.js +1 -2
- package/dist/types/webgl.d.ts +20 -20
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js +0 -1
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/package.json +8 -8
- package/src/adapter/helpers/get-shader-info.ts +37 -0
- package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
- package/src/adapter/resources/webgl-render-pass.ts +1 -1
- package/src/adapter/resources/webgl-shader.ts +2 -2
- package/src/adapter/webgl-device.ts +1 -1
- package/src/context/debug/webgl-developer-tools.ts +0 -1
- package/src/types/webgl.ts +4 -4
- package/dist/adapter/converters/device-parameters.js.map +0 -1
- package/dist/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/adapter/converters/texture-formats.js.map +0 -1
- package/dist/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/adapter/helpers/uniforms.js.map +0 -1
- package/dist/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/adapter/webgl-device.js.map +0 -1
- package/dist/bundle.js.map +0 -1
- package/dist/classic/accessor.js.map +0 -1
- package/dist/classic/buffer.js.map +0 -1
- package/dist/classic/typed-array-utils.js.map +0 -1
- package/dist/context/context/create-browser-context.js.map +0 -1
- package/dist/context/context/create-headless-context.js.map +0 -1
- package/dist/context/context/webgl-checks.js.map +0 -1
- package/dist/context/debug/spector.js.map +0 -1
- package/dist/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/context/polyfill/context-data.js.map +0 -1
- package/dist/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init.js.map +0 -1
- package/dist/types/webgl.js.map +0 -1
- package/dist/types.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TypedArray } from '@luma.gl/api';
|
|
2
2
|
import { GLType } from '../types/webgl';
|
|
3
|
-
|
|
3
|
+
type TypedArrayConstructor = Float32ArrayConstructor | Uint16ArrayConstructor | Uint32ArrayConstructor | Uint8ArrayConstructor | Uint8ClampedArrayConstructor | Int8ArrayConstructor | Int16ArrayConstructor | Int32ArrayConstructor;
|
|
4
4
|
/**
|
|
5
5
|
* Converts TYPED ARRAYS to corresponding GL constant
|
|
6
6
|
* Used to auto deduce gl parameter types
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typed-array-utils.d.ts","sourceRoot":"","sources":["../../src/classic/typed-array-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAIrC,
|
|
1
|
+
{"version":3,"file":"typed-array-utils.d.ts","sourceRoot":"","sources":["../../src/classic/typed-array-utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AAExC,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAIrC,KAAK,qBAAqB,GACtB,uBAAuB,GACvB,sBAAsB,GACtB,sBAAsB,GACtB,qBAAqB,GACrB,4BAA4B,GAC5B,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,CAAC;AAE1B;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,UAAU,GAAG,MAAM,CAuBvE;AAED;;;;;;GAMG;AAEH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,GAAG,EACX,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,GACA,qBAAqB,CAwBvB;AAED;;;;;GAKG;AACF,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IACjC,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;IACZ,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,GAAG,IAAI,CAgBP;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE;IACnC,IAAI,EAAE,GAAG,CAAC;IACV,KAAK,EAAE,GAAG,CAAC;IACX,MAAM,EAAE,GAAG,CAAC;CACb,GAAG;IACF,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB,CAaA"}
|
|
@@ -1,112 +1,102 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
1
2
|
import GL from '@luma.gl/constants';
|
|
2
3
|
const ERR_TYPE_DEDUCTION = 'Failed to deduce GL constant from typed array';
|
|
4
|
+
/**
|
|
5
|
+
* Converts TYPED ARRAYS to corresponding GL constant
|
|
6
|
+
* Used to auto deduce gl parameter types
|
|
7
|
+
* @param {*} arrayOrType
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
3
10
|
export function getGLTypeFromTypedArray(arrayOrType) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return GL.SHORT;
|
|
27
|
-
|
|
28
|
-
case Int32Array:
|
|
29
|
-
return GL.INT;
|
|
30
|
-
|
|
31
|
-
default:
|
|
32
|
-
throw new Error(ERR_TYPE_DEDUCTION);
|
|
33
|
-
}
|
|
11
|
+
// If typed array, look up constructor
|
|
12
|
+
const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
|
|
13
|
+
switch (type) {
|
|
14
|
+
case Float32Array:
|
|
15
|
+
return GL.FLOAT;
|
|
16
|
+
case Uint16Array:
|
|
17
|
+
return GL.UNSIGNED_SHORT;
|
|
18
|
+
case Uint32Array:
|
|
19
|
+
return GL.UNSIGNED_INT;
|
|
20
|
+
case Uint8Array:
|
|
21
|
+
return GL.UNSIGNED_BYTE;
|
|
22
|
+
case Uint8ClampedArray:
|
|
23
|
+
return GL.UNSIGNED_BYTE;
|
|
24
|
+
case Int8Array:
|
|
25
|
+
return GL.BYTE;
|
|
26
|
+
case Int16Array:
|
|
27
|
+
return GL.SHORT;
|
|
28
|
+
case Int32Array:
|
|
29
|
+
return GL.INT;
|
|
30
|
+
default:
|
|
31
|
+
throw new Error(ERR_TYPE_DEDUCTION);
|
|
32
|
+
}
|
|
34
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Converts GL constant to corresponding TYPED ARRAY
|
|
36
|
+
* Used to auto deduce gl parameter types
|
|
37
|
+
* @param {*} glType
|
|
38
|
+
* @param {*} param1
|
|
39
|
+
* @returns
|
|
40
|
+
*/
|
|
41
|
+
// eslint-disable-next-line complexity
|
|
35
42
|
export function getTypedArrayFromGLType(glType, options) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
case GL.SHORT:
|
|
60
|
-
return Int16Array;
|
|
61
|
-
|
|
62
|
-
case GL.INT:
|
|
63
|
-
return Int32Array;
|
|
64
|
-
|
|
65
|
-
default:
|
|
66
|
-
throw new Error('Failed to deduce typed array type from GL constant');
|
|
67
|
-
}
|
|
43
|
+
const { clamped = true } = options || {};
|
|
44
|
+
// Sorted in some order of likelihood to reduce amount of comparisons
|
|
45
|
+
switch (glType) {
|
|
46
|
+
case GL.FLOAT:
|
|
47
|
+
return Float32Array;
|
|
48
|
+
case GL.UNSIGNED_SHORT:
|
|
49
|
+
case GL.UNSIGNED_SHORT_5_6_5:
|
|
50
|
+
case GL.UNSIGNED_SHORT_4_4_4_4:
|
|
51
|
+
case GL.UNSIGNED_SHORT_5_5_5_1:
|
|
52
|
+
return Uint16Array;
|
|
53
|
+
case GL.UNSIGNED_INT:
|
|
54
|
+
return Uint32Array;
|
|
55
|
+
case GL.UNSIGNED_BYTE:
|
|
56
|
+
return clamped ? Uint8ClampedArray : Uint8Array;
|
|
57
|
+
case GL.BYTE:
|
|
58
|
+
return Int8Array;
|
|
59
|
+
case GL.SHORT:
|
|
60
|
+
return Int16Array;
|
|
61
|
+
case GL.INT:
|
|
62
|
+
return Int32Array;
|
|
63
|
+
default:
|
|
64
|
+
throw new Error('Failed to deduce typed array type from GL constant');
|
|
65
|
+
}
|
|
68
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Flip rows (can be used on arrays returned from `Framebuffer.readPixels`)
|
|
69
|
+
* https: *stackoverflow.com/questions/41969562/
|
|
70
|
+
* how-can-i-flip-the-result-of-webglrenderingcontext-readpixels
|
|
71
|
+
* @param {*} param0
|
|
72
|
+
*/
|
|
69
73
|
export function flipRows(options) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);
|
|
85
|
-
data.set(tempBuffer, bottomOffset);
|
|
86
|
-
}
|
|
74
|
+
const { data, width, height, bytesPerPixel = 4, temp } = options;
|
|
75
|
+
const bytesPerRow = width * bytesPerPixel;
|
|
76
|
+
// make a temp buffer to hold one row
|
|
77
|
+
const tempBuffer = temp || new Uint8Array(bytesPerRow);
|
|
78
|
+
for (let y = 0; y < height / 2; ++y) {
|
|
79
|
+
const topOffset = y * bytesPerRow;
|
|
80
|
+
const bottomOffset = (height - y - 1) * bytesPerRow;
|
|
81
|
+
// make copy of a row on the top half
|
|
82
|
+
tempBuffer.set(data.subarray(topOffset, topOffset + bytesPerRow));
|
|
83
|
+
// copy a row from the bottom half to the top
|
|
84
|
+
data.copyWithin(topOffset, bottomOffset, bottomOffset + bytesPerRow);
|
|
85
|
+
// copy the copy of the top half row to the bottom half
|
|
86
|
+
data.set(tempBuffer, bottomOffset);
|
|
87
|
+
}
|
|
87
88
|
}
|
|
88
89
|
export function scalePixels(options) {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
for (let x = 0; x < newWidth; x++) {
|
|
100
|
-
for (let c = 0; c < 4; c++) {
|
|
101
|
-
newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];
|
|
102
|
-
}
|
|
90
|
+
const { data, width, height } = options;
|
|
91
|
+
const newWidth = Math.round(width / 2);
|
|
92
|
+
const newHeight = Math.round(height / 2);
|
|
93
|
+
const newData = new Uint8Array(newWidth * newHeight * 4);
|
|
94
|
+
for (let y = 0; y < newHeight; y++) {
|
|
95
|
+
for (let x = 0; x < newWidth; x++) {
|
|
96
|
+
for (let c = 0; c < 4; c++) {
|
|
97
|
+
newData[(y * newWidth + x) * 4 + c] = data[(y * 2 * width + x * 2) * 4 + c];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
103
100
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return {
|
|
107
|
-
data: newData,
|
|
108
|
-
width: newWidth,
|
|
109
|
-
height: newHeight
|
|
110
|
-
};
|
|
101
|
+
return { data: newData, width: newWidth, height: newHeight };
|
|
111
102
|
}
|
|
112
|
-
//# sourceMappingURL=typed-array-utils.js.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="offscreencanvas" />
|
|
2
1
|
/**
|
|
3
2
|
* ContextProps
|
|
4
3
|
* @param webgl2 Set to false to not create a WebGL2 context (force webgl1)
|
|
@@ -16,7 +15,7 @@
|
|
|
16
15
|
* @param preserveDrawingBuffer Default render target buffers will not be automatically cleared and will preserve their values until cleared or overwritten
|
|
17
16
|
* @param failIfMajorPerformanceCaveat Do not create if the system performance is low.
|
|
18
17
|
*/
|
|
19
|
-
|
|
18
|
+
type ContextProps = {
|
|
20
19
|
type?: 'webgl' | 'webgl1' | 'webgl2' | string;
|
|
21
20
|
webgl1?: boolean;
|
|
22
21
|
webgl2?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-browser-context.d.ts","sourceRoot":"","sources":["../../../src/context/context/create-browser-context.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create-browser-context.d.ts","sourceRoot":"","sources":["../../../src/context/context/create-browser-context.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;EAgBE;AACF,KAAK,YAAY,GAAG;IAClB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACvC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,4BAA4B,CAAC,EAAE,OAAO,CAAC;IACvC,eAAe,CAAC,EAAE,SAAS,GAAI,kBAAkB,GAAG,WAAW,CAAC;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAC;AAUF;;;;GAIG;AACF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,qBAAqB,CAiD7H"}
|
|
@@ -1,61 +1,70 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
1
2
|
const DEFAULT_CONTEXT_PROPS = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
webgl2: true,
|
|
4
|
+
webgl1: true,
|
|
5
|
+
powerPreference: 'high-performance',
|
|
6
|
+
onContextLost: () => console.error('WebGL context lost'),
|
|
7
|
+
onContextRestored: () => console.info('WebGL context restored'),
|
|
7
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Create a WebGL context for a canvas
|
|
11
|
+
* Note calling this multiple time on the same canvas does return the same context
|
|
12
|
+
* @param canvas A canvas element or offscreen canvas
|
|
13
|
+
*/
|
|
8
14
|
export function createBrowserContext(canvas, props) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
props
|
|
27
|
-
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
15
|
+
props = { ...DEFAULT_CONTEXT_PROPS, ...props };
|
|
16
|
+
// Try to extract any extra information about why context creation failed
|
|
17
|
+
let errorMessage = null;
|
|
18
|
+
const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
|
|
19
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
20
|
+
// Create the desired context
|
|
21
|
+
let gl = null;
|
|
22
|
+
if (props.type === 'webgl2') {
|
|
23
|
+
props = { ...props, webgl1: false };
|
|
24
|
+
}
|
|
25
|
+
if (props.type === 'webgl1') {
|
|
26
|
+
props = { ...props, webgl2: false };
|
|
27
|
+
}
|
|
28
|
+
// Prefer webgl2 over webgl1 if both are acceptable
|
|
29
|
+
if (props.webgl2) {
|
|
30
|
+
gl = gl || canvas.getContext('webgl2', props);
|
|
31
|
+
}
|
|
32
|
+
if (props.webgl1) {
|
|
33
|
+
gl = gl || canvas.getContext('webgl', props);
|
|
34
|
+
}
|
|
35
|
+
// TODO are we removing this listener before giving it a chance to fire?
|
|
36
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
37
|
+
if (!gl) {
|
|
38
|
+
throw new Error(`Failed to create ${props.webgl2 && !props.webgl1 ? 'WebGL2' : 'WebGL'} context: ${errorMessage || 'Unknown error'}`);
|
|
39
|
+
}
|
|
40
|
+
if (props.onContextLost) {
|
|
41
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
42
|
+
const { onContextLost } = props;
|
|
43
|
+
canvas.addEventListener('webglcontextlost', (event) => onContextLost(event), false);
|
|
44
|
+
}
|
|
45
|
+
if (props.onContextRestored) {
|
|
46
|
+
// Carefully extract and wrap callbacks to prevent addEventListener from rebinding them.
|
|
47
|
+
const { onContextRestored } = props;
|
|
48
|
+
canvas.addEventListener('webglcontextrestored', (event) => onContextRestored(event), false);
|
|
49
|
+
}
|
|
50
|
+
return gl;
|
|
51
|
+
}
|
|
52
|
+
/* TODO - can we call this asynchronously to catch the error events?
|
|
53
|
+
export async function createBrowserContextAsync(canvas: HTMLCanvasElement | OffscreenCanvas, props: ContextProps): Promise<WebGLRenderingContext> {
|
|
54
|
+
props = {...DEFAULT_CONTEXT_PROPS, ...props};
|
|
38
55
|
|
|
39
|
-
|
|
56
|
+
// Try to extract any extra information about why context creation failed
|
|
57
|
+
let errorMessage = null;
|
|
58
|
+
const onCreateError = (error) => (errorMessage = error.statusMessage || errorMessage);
|
|
59
|
+
canvas.addEventListener('webglcontextcreationerror', onCreateError, false);
|
|
40
60
|
|
|
41
|
-
|
|
42
|
-
throw new Error("Failed to create ".concat(props.webgl2 && !props.webgl1 ? 'WebGL2' : 'WebGL', " context: ").concat(errorMessage || 'Unknown error'));
|
|
43
|
-
}
|
|
61
|
+
const gl = createBrowserContext(canvas, props);
|
|
44
62
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
onContextLost
|
|
48
|
-
} = props;
|
|
49
|
-
canvas.addEventListener('webglcontextlost', event => onContextLost(event), false);
|
|
50
|
-
}
|
|
63
|
+
// Give the listener a chance to fire
|
|
64
|
+
await new Promise(resolve => setTimeout(resolve, 0));
|
|
51
65
|
|
|
52
|
-
|
|
53
|
-
const {
|
|
54
|
-
onContextRestored
|
|
55
|
-
} = props;
|
|
56
|
-
canvas.addEventListener('webglcontextrestored', event => onContextRestored(event), false);
|
|
57
|
-
}
|
|
66
|
+
canvas.removeEventListener('webglcontextcreationerror', onCreateError, false);
|
|
58
67
|
|
|
59
|
-
|
|
68
|
+
return gl;
|
|
60
69
|
}
|
|
61
|
-
|
|
70
|
+
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** Duck typing for the main headless gl export, a function to create contexts */
|
|
2
|
-
export
|
|
2
|
+
export type HeadlessGL = (width: number, height: number, options: Record<string, unknown>) => WebGLRenderingContext;
|
|
3
3
|
/** By importing `gl` and registering it with this function, contexts can be created under Node.js */
|
|
4
4
|
export declare function registerHeadlessGL(headlessgl: HeadlessGL): void;
|
|
5
5
|
/** @returns true if headless gl is registered */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-headless-context.d.ts","sourceRoot":"","sources":["../../../src/context/context/create-headless-context.ts"],"names":[],"mappings":"AAeA,iFAAiF;AACjF,
|
|
1
|
+
{"version":3,"file":"create-headless-context.d.ts","sourceRoot":"","sources":["../../../src/context/context/create-headless-context.ts"],"names":[],"mappings":"AAeA,iFAAiF;AACjF,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,qBAAqB,CAAC;AAIpH,qGAAqG;AACrG,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,QAExD;AAED,iDAAiD;AACjD,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED,6DAA6D;AAC7D,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAgB1F"}
|
|
@@ -1,43 +1,36 @@
|
|
|
1
1
|
const ERR_HEADLESSGL_FAILED = 'Failed to create WebGL context in Node.js, headless gl returned null';
|
|
2
|
-
const ERR_HEADLESSGL_LOAD =
|
|
2
|
+
const ERR_HEADLESSGL_LOAD = `\
|
|
3
|
+
luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL \
|
|
4
|
+
contexts can not be created. This may not be an error. For example, this is a \
|
|
5
|
+
typical configuration for isorender applications running on the server.`;
|
|
3
6
|
const CONTEXT_DEFAULTS = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
width: 1,
|
|
8
|
+
height: 1,
|
|
9
|
+
debug: true,
|
|
10
|
+
throwOnError: false
|
|
8
11
|
};
|
|
9
12
|
let headlessGL = null;
|
|
13
|
+
/** By importing `gl` and registering it with this function, contexts can be created under Node.js */
|
|
10
14
|
export function registerHeadlessGL(headlessgl) {
|
|
11
|
-
|
|
15
|
+
headlessGL = headlessgl;
|
|
12
16
|
}
|
|
17
|
+
/** @returns true if headless gl is registered */
|
|
13
18
|
export function isHeadlessGLRegistered() {
|
|
14
|
-
|
|
19
|
+
return headlessGL !== null;
|
|
15
20
|
}
|
|
21
|
+
/** Create headless gl context (for running under Node.js) */
|
|
16
22
|
export function createHeadlessContext(options) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (!headlessGL) {
|
|
32
|
-
throw new Error(ERR_HEADLESSGL_LOAD);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const gl = headlessGL(width, height, options);
|
|
36
|
-
|
|
37
|
-
if (!gl) {
|
|
38
|
-
throw new Error(ERR_HEADLESSGL_FAILED);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return gl;
|
|
23
|
+
options = { ...CONTEXT_DEFAULTS, ...options };
|
|
24
|
+
const { width, height, webgl1, webgl2 } = options;
|
|
25
|
+
if (webgl2 && !webgl1) {
|
|
26
|
+
throw new Error('headless-gl does not support WebGL2');
|
|
27
|
+
}
|
|
28
|
+
if (!headlessGL) {
|
|
29
|
+
throw new Error(ERR_HEADLESSGL_LOAD);
|
|
30
|
+
}
|
|
31
|
+
const gl = headlessGL(width, height, options);
|
|
32
|
+
if (!gl) {
|
|
33
|
+
throw new Error(ERR_HEADLESSGL_FAILED);
|
|
34
|
+
}
|
|
35
|
+
return gl;
|
|
42
36
|
}
|
|
43
|
-
//# sourceMappingURL=create-headless-context.js.map
|
|
@@ -1,34 +1,39 @@
|
|
|
1
|
+
// luma.gl, MIT license
|
|
1
2
|
import { assert } from '@luma.gl/api';
|
|
2
3
|
const ERR_CONTEXT = 'Invalid WebGLRenderingContext';
|
|
3
4
|
export const ERR_WEBGL = ERR_CONTEXT;
|
|
4
5
|
export const ERR_WEBGL2 = 'Requires WebGL2';
|
|
6
|
+
/** Check if supplied parameter is a WebGLRenderingContext */
|
|
5
7
|
export function isWebGL(gl) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
return Boolean(gl && Number.isFinite(gl._version));
|
|
8
|
+
if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
// Look for debug contexts, headless gl etc
|
|
15
|
+
return Boolean(gl && Number.isFinite(gl._version));
|
|
15
16
|
}
|
|
17
|
+
/** Check if supplied parameter is a WebGL2RenderingContext */
|
|
16
18
|
export function isWebGL2(gl) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
// Look for debug contexts, headless gl etc
|
|
23
|
+
return Boolean(gl && gl._version === 2);
|
|
22
24
|
}
|
|
25
|
+
/** Returns a properly typed WebGL2RenderingContext from a WebGL1 context, or null */
|
|
23
26
|
export function getWebGL2Context(gl) {
|
|
24
|
-
|
|
27
|
+
// @ts-expect-error
|
|
28
|
+
return isWebGL2(gl) ? gl : null;
|
|
25
29
|
}
|
|
30
|
+
/** Throw if supplied parameter is not a WebGLRenderingContext, otherwise return properly typed value */
|
|
26
31
|
export function assertWebGLContext(gl) {
|
|
27
|
-
|
|
28
|
-
|
|
32
|
+
assert(isWebGL(gl), ERR_CONTEXT);
|
|
33
|
+
return gl;
|
|
29
34
|
}
|
|
35
|
+
/** Throw if supplied parameter is not a WebGL2RenderingContext, otherwise return properly typed value */
|
|
30
36
|
export function assertWebGL2Context(gl) {
|
|
31
|
-
|
|
32
|
-
|
|
37
|
+
assert(isWebGL2(gl), ERR_WEBGL2);
|
|
38
|
+
return gl;
|
|
33
39
|
}
|
|
34
|
-
//# sourceMappingURL=webgl-checks.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
/// <reference types="offscreencanvas" />
|
|
2
1
|
/** Spector debug initialization options */
|
|
3
|
-
|
|
2
|
+
type SpectorProps = {
|
|
4
3
|
/** Canvas to monitor */
|
|
5
4
|
canvas?: HTMLCanvasElement | OffscreenCanvas;
|
|
6
5
|
/** Whether debug is enabled. Auto-detected if ommitted */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spector.d.ts","sourceRoot":"","sources":["../../../src/context/debug/spector.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spector.d.ts","sourceRoot":"","sources":["../../../src/context/debug/spector.ts"],"names":[],"mappings":"AAGA,2CAA2C;AAC3C,KAAK,YAAY,GAAG;IAClB,wBAAwB;IACxB,MAAM,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAC7C,0DAA0D;IAC1D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;CACrC,CAAC;AAaF,OAAO,CAAC,MAAM,CAAC;IACb,IAAI,OAAO,EAAE,GAAG,CAAC;CAClB;AAED,sDAAsD;AACtD,wBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,YAAY,iBAQvD;AAED,wBAAgB,mBAAmB,CAAC,KAAK,CAAC,EAAE,YAAY,OAoDvD"}
|