@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,90 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
-
|
|
12
9
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
-
|
|
20
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
-
|
|
22
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
-
|
|
24
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
-
|
|
26
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
-
|
|
28
17
|
var _api = require("@luma.gl/api");
|
|
29
|
-
|
|
30
18
|
var _env = require("@probe.gl/env");
|
|
31
|
-
|
|
32
19
|
var _polyfillContext = require("../context/polyfill/polyfill-context");
|
|
33
|
-
|
|
34
20
|
var _trackContextState = require("../context/state-tracker/track-context-state");
|
|
35
|
-
|
|
36
21
|
var _createBrowserContext = require("../context/context/create-browser-context");
|
|
37
|
-
|
|
38
22
|
var _createHeadlessContext = require("../context/context/create-headless-context");
|
|
39
|
-
|
|
40
23
|
var _getDeviceInfo = require("./device-helpers/get-device-info");
|
|
41
|
-
|
|
42
24
|
var _deviceFeatures = require("./device-helpers/device-features");
|
|
43
|
-
|
|
44
25
|
var _deviceLimits = require("./device-helpers/device-limits");
|
|
45
|
-
|
|
46
26
|
var _webglCanvasContext = _interopRequireDefault(require("./webgl-canvas-context"));
|
|
47
|
-
|
|
48
27
|
var _spector = require("../context/debug/spector");
|
|
49
|
-
|
|
50
28
|
var _webglDeveloperTools = require("../context/debug/webgl-developer-tools");
|
|
51
|
-
|
|
52
29
|
var _textureFormats = require("./converters/texture-formats");
|
|
53
|
-
|
|
54
30
|
var _buffer = _interopRequireDefault(require("../classic/buffer"));
|
|
55
|
-
|
|
56
31
|
var _webglShader = _interopRequireDefault(require("./resources/webgl-shader"));
|
|
57
|
-
|
|
58
32
|
var _webglSampler = _interopRequireDefault(require("./resources/webgl-sampler"));
|
|
59
|
-
|
|
60
33
|
var _webglTexture = _interopRequireDefault(require("./resources/webgl-texture"));
|
|
61
|
-
|
|
62
34
|
var _webglFramebuffer = _interopRequireDefault(require("./resources/webgl-framebuffer"));
|
|
63
|
-
|
|
64
35
|
var _webglRenderPass = _interopRequireDefault(require("./resources/webgl-render-pass"));
|
|
65
|
-
|
|
66
36
|
var _webglRenderPipeline = _interopRequireDefault(require("./resources/webgl-render-pipeline"));
|
|
67
|
-
|
|
68
|
-
function
|
|
69
|
-
|
|
70
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
71
|
-
|
|
37
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
38
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
72
39
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
73
|
-
|
|
74
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
75
|
-
|
|
76
41
|
var LOG_LEVEL = 1;
|
|
77
|
-
|
|
78
42
|
var WebGLDevice = function (_Device) {
|
|
79
43
|
(0, _inherits2.default)(WebGLDevice, _Device);
|
|
80
|
-
|
|
81
44
|
var _super = _createSuper(WebGLDevice);
|
|
82
|
-
|
|
83
45
|
function WebGLDevice(props) {
|
|
84
46
|
var _props$gl;
|
|
85
|
-
|
|
86
47
|
var _this;
|
|
87
|
-
|
|
88
48
|
(0, _classCallCheck2.default)(this, WebGLDevice);
|
|
89
49
|
_this = _super.call(this, _objectSpread(_objectSpread({}, props), {}, {
|
|
90
50
|
id: props.id || (0, _api.uid)('webgl-device')
|
|
@@ -112,25 +72,20 @@ var WebGLDevice = function (_Device) {
|
|
|
112
72
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "spector", void 0);
|
|
113
73
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "_webglLimits", void 0);
|
|
114
74
|
var device = (_props$gl = props.gl) === null || _props$gl === void 0 ? void 0 : _props$gl.device;
|
|
115
|
-
|
|
116
75
|
if (device) {
|
|
117
76
|
throw new Error("WebGL context already attached to device ".concat(device.id));
|
|
118
77
|
}
|
|
119
|
-
|
|
120
78
|
_this.canvasContext = new _webglCanvasContext.default((0, _assertThisInitialized2.default)(_this), props);
|
|
121
79
|
_this.lost = new Promise(function (resolve) {
|
|
122
80
|
_this._resolveContextLost = resolve;
|
|
123
81
|
});
|
|
124
|
-
|
|
125
82
|
var onContextLost = function onContextLost(event) {
|
|
126
83
|
var _this$_resolveContext, _this2;
|
|
127
|
-
|
|
128
84
|
return (_this$_resolveContext = (_this2 = _this)._resolveContextLost) === null || _this$_resolveContext === void 0 ? void 0 : _this$_resolveContext.call(_this2, {
|
|
129
85
|
reason: 'destroyed',
|
|
130
86
|
message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'
|
|
131
87
|
});
|
|
132
88
|
};
|
|
133
|
-
|
|
134
89
|
var gl = props.gl || null;
|
|
135
90
|
gl = gl || ((0, _env.isBrowser)() ? (0, _createBrowserContext.createBrowserContext)(_this.canvasContext.canvas, _objectSpread(_objectSpread({}, props), {}, {
|
|
136
91
|
onContextLost: onContextLost
|
|
@@ -138,11 +93,9 @@ var WebGLDevice = function (_Device) {
|
|
|
138
93
|
gl = gl || (!(0, _env.isBrowser)() ? (0, _createHeadlessContext.createHeadlessContext)(_objectSpread(_objectSpread({}, props), {}, {
|
|
139
94
|
onContextLost: onContextLost
|
|
140
95
|
})) : null);
|
|
141
|
-
|
|
142
96
|
if (!gl) {
|
|
143
97
|
throw new Error('WebGL context creation failed');
|
|
144
98
|
}
|
|
145
|
-
|
|
146
99
|
_this.handle = gl;
|
|
147
100
|
_this.gl = _this.handle;
|
|
148
101
|
_this.gl2 = _this.gl;
|
|
@@ -153,9 +106,9 @@ var WebGLDevice = function (_Device) {
|
|
|
153
106
|
_this.gl._version = _this.isWebGL2 ? 2 : 1;
|
|
154
107
|
(0, _polyfillContext.polyfillContext)(_this.gl);
|
|
155
108
|
var _props$enable = props.enable,
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
109
|
+
enable = _props$enable === void 0 ? true : _props$enable,
|
|
110
|
+
_props$copyState = props.copyState,
|
|
111
|
+
copyState = _props$copyState === void 0 ? false : _props$copyState;
|
|
159
112
|
(0, _trackContextState.trackContextState)(_this.gl, {
|
|
160
113
|
enable: enable,
|
|
161
114
|
copyState: copyState,
|
|
@@ -163,11 +116,9 @@ var WebGLDevice = function (_Device) {
|
|
|
163
116
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
164
117
|
args[_key] = arguments[_key];
|
|
165
118
|
}
|
|
166
|
-
|
|
167
119
|
return _api.log.log.apply(_api.log, [1].concat(args))();
|
|
168
120
|
}
|
|
169
121
|
});
|
|
170
|
-
|
|
171
122
|
if ((0, _env.isBrowser)() && props.debug) {
|
|
172
123
|
_this.gl = (0, _webglDeveloperTools.makeDebugContext)(_this.gl, _objectSpread(_objectSpread({}, props), {}, {
|
|
173
124
|
webgl2: _this.isWebGL2,
|
|
@@ -176,26 +127,19 @@ var WebGLDevice = function (_Device) {
|
|
|
176
127
|
_this.gl2 = _this.gl;
|
|
177
128
|
_this.debug = true;
|
|
178
129
|
_api.log.level = Math.max(_api.log.level, 1);
|
|
179
|
-
|
|
180
130
|
_api.log.warn('WebGL debug mode activated. Performance reduced.')();
|
|
181
131
|
}
|
|
182
|
-
|
|
183
132
|
if ((0, _env.isBrowser)() && props.spector) {
|
|
184
133
|
var canvas = _this.handle.canvas || props.canvas;
|
|
185
134
|
_this.spector = (0, _spector.initializeSpectorJS)(_objectSpread(_objectSpread({}, _this.props), {}, {
|
|
186
135
|
canvas: canvas
|
|
187
136
|
}));
|
|
188
137
|
}
|
|
189
|
-
|
|
190
138
|
var message = "Created ".concat(_this.info.type).concat(_this.debug ? ' debug' : '', " context: ").concat(_this.info.vendor, ", ").concat(_this.info.renderer, " for canvas: ").concat(_this.canvasContext.id);
|
|
191
|
-
|
|
192
139
|
_api.log.probe(LOG_LEVEL, message)();
|
|
193
|
-
|
|
194
140
|
_api.log.groupEnd(LOG_LEVEL)();
|
|
195
|
-
|
|
196
141
|
return _this;
|
|
197
142
|
}
|
|
198
|
-
|
|
199
143
|
(0, _createClass2.default)(WebGLDevice, [{
|
|
200
144
|
key: "features",
|
|
201
145
|
get: function get() {
|
|
@@ -212,7 +156,6 @@ var WebGLDevice = function (_Device) {
|
|
|
212
156
|
key: "destroy",
|
|
213
157
|
value: function destroy() {
|
|
214
158
|
var ext = this.gl.getExtension('STACKGL_destroy_context');
|
|
215
|
-
|
|
216
159
|
if (ext) {
|
|
217
160
|
ext.destroy();
|
|
218
161
|
}
|
|
@@ -248,7 +191,6 @@ var WebGLDevice = function (_Device) {
|
|
|
248
191
|
if (!this.gl2) {
|
|
249
192
|
throw new Error('Requires WebGL2');
|
|
250
193
|
}
|
|
251
|
-
|
|
252
194
|
return this.gl2;
|
|
253
195
|
}
|
|
254
196
|
}, {
|
|
@@ -318,8 +260,7 @@ var WebGLDevice = function (_Device) {
|
|
|
318
260
|
key: "submit",
|
|
319
261
|
value: function submit() {
|
|
320
262
|
var _this$renderPass;
|
|
321
|
-
|
|
322
|
-
(_this$renderPass = this.renderPass) === null || _this$renderPass === void 0 ? void 0 : _this$renderPass.endPass();
|
|
263
|
+
(_this$renderPass = this.renderPass) === null || _this$renderPass === void 0 ? void 0 : _this$renderPass.end();
|
|
323
264
|
this.renderPass = null;
|
|
324
265
|
}
|
|
325
266
|
}, {
|
|
@@ -332,13 +273,10 @@ var WebGLDevice = function (_Device) {
|
|
|
332
273
|
key: "loseDevice",
|
|
333
274
|
value: function loseDevice() {
|
|
334
275
|
var _this$_resolveContext2;
|
|
335
|
-
|
|
336
276
|
var ext = this.gl.getExtension('WEBGL_lose_context');
|
|
337
|
-
|
|
338
277
|
if (ext) {
|
|
339
278
|
ext.loseContext();
|
|
340
279
|
}
|
|
341
|
-
|
|
342
280
|
(_this$_resolveContext2 = this._resolveContextLost) === null || _this$_resolveContext2 === void 0 ? void 0 : _this$_resolveContext2.call(this, {
|
|
343
281
|
reason: 'destroyed',
|
|
344
282
|
message: 'Application triggered context loss'
|
|
@@ -365,15 +303,12 @@ var WebGLDevice = function (_Device) {
|
|
|
365
303
|
if (gl instanceof WebGLDevice) {
|
|
366
304
|
return gl;
|
|
367
305
|
}
|
|
368
|
-
|
|
369
306
|
if ((gl === null || gl === void 0 ? void 0 : gl.device) instanceof _api.Device) {
|
|
370
307
|
return gl.device;
|
|
371
308
|
}
|
|
372
|
-
|
|
373
309
|
if (!isWebGL(gl)) {
|
|
374
310
|
throw new Error('Invalid WebGLRenderingContext');
|
|
375
311
|
}
|
|
376
|
-
|
|
377
312
|
return new WebGLDevice({
|
|
378
313
|
gl: gl
|
|
379
314
|
});
|
|
@@ -383,92 +318,70 @@ var WebGLDevice = function (_Device) {
|
|
|
383
318
|
value: function () {
|
|
384
319
|
var _create = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {
|
|
385
320
|
var props,
|
|
386
|
-
|
|
321
|
+
_args = arguments;
|
|
387
322
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
388
|
-
while (1) {
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
_api.log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');
|
|
394
|
-
|
|
395
|
-
if (!(typeof props.canvas === 'string')) {
|
|
396
|
-
_context.next = 5;
|
|
397
|
-
break;
|
|
398
|
-
}
|
|
399
|
-
|
|
323
|
+
while (1) switch (_context.prev = _context.next) {
|
|
324
|
+
case 0:
|
|
325
|
+
props = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
|
|
326
|
+
_api.log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');
|
|
327
|
+
if (!(typeof props.canvas === 'string')) {
|
|
400
328
|
_context.next = 5;
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
}
|
|
408
|
-
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
_context.next = 5;
|
|
332
|
+
return _api.CanvasContext.pageLoaded;
|
|
333
|
+
case 5:
|
|
334
|
+
if (!props.debug) {
|
|
409
335
|
_context.next = 8;
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
}
|
|
417
|
-
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
_context.next = 8;
|
|
339
|
+
return (0, _webglDeveloperTools.loadWebGLDeveloperTools)();
|
|
340
|
+
case 8:
|
|
341
|
+
if (!props.spector) {
|
|
418
342
|
_context.next = 11;
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
case "end":
|
|
436
|
-
return _context.stop();
|
|
437
|
-
}
|
|
343
|
+
break;
|
|
344
|
+
}
|
|
345
|
+
_context.next = 11;
|
|
346
|
+
return (0, _spector.loadSpectorJS)();
|
|
347
|
+
case 11:
|
|
348
|
+
_api.log.probe(LOG_LEVEL + 1, 'DOM is loaded')();
|
|
349
|
+
if (!(props.gl && props.gl.device)) {
|
|
350
|
+
_context.next = 14;
|
|
351
|
+
break;
|
|
352
|
+
}
|
|
353
|
+
return _context.abrupt("return", WebGLDevice.attach(props.gl));
|
|
354
|
+
case 14:
|
|
355
|
+
return _context.abrupt("return", new WebGLDevice(props));
|
|
356
|
+
case 15:
|
|
357
|
+
case "end":
|
|
358
|
+
return _context.stop();
|
|
438
359
|
}
|
|
439
360
|
}, _callee);
|
|
440
361
|
}));
|
|
441
|
-
|
|
442
362
|
function create() {
|
|
443
363
|
return _create.apply(this, arguments);
|
|
444
364
|
}
|
|
445
|
-
|
|
446
365
|
return create;
|
|
447
366
|
}()
|
|
448
367
|
}]);
|
|
449
368
|
return WebGLDevice;
|
|
450
369
|
}(_api.Device);
|
|
451
|
-
|
|
452
370
|
exports.default = WebGLDevice;
|
|
453
371
|
(0, _defineProperty2.default)(WebGLDevice, "type", 'webgl');
|
|
454
|
-
|
|
455
372
|
function isWebGL(gl) {
|
|
456
373
|
if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {
|
|
457
374
|
return true;
|
|
458
375
|
}
|
|
459
|
-
|
|
460
376
|
if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
|
|
461
377
|
return true;
|
|
462
378
|
}
|
|
463
|
-
|
|
464
379
|
return Boolean(gl && Number.isFinite(gl._version));
|
|
465
380
|
}
|
|
466
|
-
|
|
467
381
|
function isWebGL2(gl) {
|
|
468
382
|
if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {
|
|
469
383
|
return true;
|
|
470
384
|
}
|
|
471
|
-
|
|
472
385
|
return Boolean(gl && gl._version === 2);
|
|
473
386
|
}
|
|
474
387
|
//# sourceMappingURL=webgl-device.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/webgl-device.ts"],"names":["LOG_LEVEL","WebGLDevice","props","id","clientWidth","clientHeight","devicePixelRatio","device","gl","Error","canvasContext","WebGLCanvasContext","lost","Promise","resolve","_resolveContextLost","onContextLost","event","reason","message","canvas","handle","gl2","isWebGL2","isWebGL1","info","_version","enable","copyState","log","args","debug","webgl2","throwOnError","level","Math","max","warn","spector","type","vendor","renderer","probe","groupEnd","_features","_limits","ext","getExtension","destroy","isContextLost","drawingBufferWidth","drawingBufferHeight","format","ClassicBuffer","WEBGLTexture","WEBGLSampler","WEBGLShader","WEBGLFramebuffer","WEBGLRenderPipeline","WEBGLRenderPass","renderPass","beginRenderPass","framebuffer","getCurrentFramebuffer","endPass","_webglLimits","loseContext","WebGLRenderingContext","Device","isWebGL","groupCollapsed","CanvasContext","pageLoaded","attach","WebGL2RenderingContext","Boolean","Number","isFinite"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\nimport type {\n DeviceProps,\n DeviceInfo,\n DeviceLimits,\n DeviceFeature,\n CanvasContextProps,\n TextureFormat\n} from '@luma.gl/api';\nimport {Device, CanvasContext, log, uid} from '@luma.gl/api';\nimport {isBrowser} from '@probe.gl/env';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {popContextState, pushContextState, trackContextState} from '../context/state-tracker/track-context-state';\nimport {createBrowserContext} from '../context/context/create-browser-context';\nimport {\n createHeadlessContext,\n isHeadlessGLRegistered\n} from '../context/context/create-headless-context';\nimport {getDeviceInfo} from './device-helpers/get-device-info';\nimport {getDeviceFeatures} from './device-helpers/device-features';\nimport {getDeviceLimits, getWebGLLimits, WebGLLimits} from './device-helpers/device-limits';\nimport WebGLCanvasContext from './webgl-canvas-context';\nimport {loadSpectorJS, initializeSpectorJS} from '../context/debug/spector';\nimport {loadWebGLDeveloperTools, makeDebugContext} from '../context/debug/webgl-developer-tools';\nimport {\n isTextureFormatSupported,\n isTextureFormatRenderable,\n isTextureFormatFilterable\n} from './converters/texture-formats';\n\n// WebGL classes\nimport type {\n BufferProps,\n ShaderProps,\n // Sampler,\n SamplerProps,\n TextureProps,\n ExternalTexture,\n ExternalTextureProps,\n FramebufferProps,\n // RenderPipeline,\n RenderPipelineProps,\n ComputePipeline,\n ComputePipelineProps,\n // RenderPass,\n RenderPassProps,\n ComputePass,\n ComputePassProps\n} from '@luma.gl/api';\n\nimport ClassicBuffer from '../classic/buffer';\nimport WEBGLBuffer from './resources/webgl-buffer';\nimport WEBGLShader from './resources/webgl-shader';\nimport WEBGLSampler from './resources/webgl-sampler';\nimport WEBGLTexture from './resources/webgl-texture';\nimport WEBGLFramebuffer from './resources/webgl-framebuffer';\nimport WEBGLRenderPass from './resources/webgl-render-pass';\nimport WEBGLRenderPipeline from './resources/webgl-render-pipeline';\n\nconst LOG_LEVEL = 1;\n\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device {\n //\n // Public `Device` API\n //\n\n static type: string = 'webgl';\n\n static isSupported(): boolean {\n return typeof WebGLRenderingContext !== 'undefined' || isHeadlessGLRegistered();\n }\n\n readonly info: DeviceInfo;\n readonly canvasContext: WebGLCanvasContext;\n\n readonly handle: WebGLRenderingContext;\n\n get features(): Set<DeviceFeature> {\n this._features = this._features || getDeviceFeatures(this.gl);\n return this._features;\n }\n\n get limits(): DeviceLimits {\n this._limits = this._limits || getDeviceLimits(this.gl);\n return this._limits;\n }\n\n readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n private _resolveContextLost?: (value: {reason: 'destroyed'; message: string}) => void;\n private _features?: Set<DeviceFeature>;\n private _limits?: DeviceLimits;\n\n //\n // Static methods, expected to be present by `luma.createDevice()`\n //\n\n /**\n * Get a device instance from a GL context\n * Creates and instruments the device if not already created\n * @param gl\n * @returns\n */\n static attach(gl: Device | WebGLRenderingContext | WebGL2RenderingContext): WebGLDevice {\n if (gl instanceof WebGLDevice) {\n return gl;\n }\n // @ts-expect-error\n if (gl?.device instanceof Device) {\n // @ts-expect-error\n return gl.device as WebGLDevice;\n }\n if (!isWebGL(gl)) {\n throw new Error('Invalid WebGLRenderingContext');\n }\n return new WebGLDevice({gl: gl as WebGLRenderingContext});\n }\n\n static async create(props: DeviceProps = {}): Promise<WebGLDevice> {\n log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');\n\n // Wait for page to load. Only wait when props. canvas is string\n // to avoid setting page onload callback unless necessary\n if (typeof props.canvas === 'string') {\n await CanvasContext.pageLoaded;\n }\n\n // Load webgl and spector debug scripts from CDN if requested\n if (props.debug) {\n await loadWebGLDeveloperTools();\n }\n // @ts-expect-error spector not on props\n if (props.spector) {\n await loadSpectorJS();\n }\n\n log.probe(LOG_LEVEL + 1, 'DOM is loaded')();\n\n // @ts-expect-error\n if (props.gl && props.gl.device) {\n return WebGLDevice.attach(props.gl);\n }\n\n return new WebGLDevice(props);\n }\n\n //\n // Public API\n //\n\n constructor(props: DeviceProps) {\n super({...props, id: props.id || uid('webgl-device')});\n\n // If attaching to an already attached context, return the attached device\n // @ts-expect-error device is attached to context\n const device: WebGLDevice | undefined = props.gl?.device;\n if (device) {\n throw new Error(`WebGL context already attached to device ${device.id}`);\n }\n\n // Create and instrument context\n this.canvasContext = new WebGLCanvasContext(this, props);\n\n this.lost = new Promise<{reason: 'destroyed'; message: string}>((resolve) => {\n this._resolveContextLost = resolve;\n });\n\n const onContextLost = (event: Event) =>\n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'\n });\n\n let gl: WebGLRenderingContext | WebGL2RenderingContext | null = props.gl || null;\n gl =\n gl ||\n (isBrowser() ? createBrowserContext(this.canvasContext.canvas, {...props, onContextLost}) : null);\n gl = gl || (!isBrowser() ? createHeadlessContext({...props, onContextLost}) : null);\n\n if (!gl) {\n throw new Error('WebGL context creation failed');\n }\n\n this.handle = gl;\n this.gl = this.handle;\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.isWebGL2 = isWebGL2(this.gl);\n this.isWebGL1 = !this.isWebGL2;\n\n // luma Device fields\n this.info = getDeviceInfo(this.gl);\n\n // @ts-expect-error Link webgl context back to device\n this.gl.device = this;\n // @ts-expect-error Annotate webgl context to handle\n this.gl._version = this.isWebGL2 ? 2 : 1;\n\n // Add subset of WebGL2 methods to WebGL1 context\n polyfillContext(this.gl);\n\n // Install context state tracking\n // @ts-expect-error - hidden parameters\n const {enable = true, copyState = false} = props;\n trackContextState(this.gl, {\n enable,\n copyState,\n log: (...args: any[]) => log.log(1, ...args)()\n });\n\n // DEBUG contexts: Add debug instrumentation to the context, force log level to at least 1\n if (isBrowser() && props.debug) {\n this.gl = makeDebugContext(this.gl, {...props, webgl2: this.isWebGL2, throwOnError: true});\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.debug = true;\n log.level = Math.max(log.level, 1);\n log.warn('WebGL debug mode activated. Performance reduced.')();\n }\n\n // @ts-expect-error spector not on props\n if (isBrowser() && props.spector) {\n const canvas = this.handle.canvas || (props.canvas as HTMLCanvasElement);\n this.spector = initializeSpectorJS({...this.props, canvas});\n }\n\n // Log some debug info about the newly created context\n const message = `\\\nCreated ${this.info.type}${this.debug ? ' debug' : ''} context: \\\n${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;\n log.probe(LOG_LEVEL, message)();\n\n log.groupEnd(LOG_LEVEL)();\n }\n\n /**\n * Destroys the context\n * @note Has no effect for browser contexts, there is no browser API for destroying contexts\n */\n destroy(): void {\n const ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\n }\n }\n\n get isLost(): boolean {\n return this.gl.isContextLost();\n }\n\n getSize(): [number, number] {\n return [this.gl.drawingBufferWidth, this.gl.drawingBufferHeight];\n }\n\n isTextureFormatSupported(format: TextureFormat): boolean {\n return isTextureFormatSupported(this.gl, format);\n }\n\n isTextureFormatFilterable(format: TextureFormat): boolean {\n return isTextureFormatFilterable(this.gl, format);\n }\n\n isTextureFormatRenderable(format: TextureFormat): boolean {\n return isTextureFormatRenderable(this.gl, format);\n }\n\n // WEBGL SPECIFIC METHODS\n\n /** Returns a WebGL2RenderingContext or throws an error */\n assertWebGL2(): WebGL2RenderingContext {\n if (!this.gl2) {\n throw new Error('Requires WebGL2');\n }\n return this.gl2;\n }\n\n // IMPLEMENTATION OF ABSTRACT DEVICE\n\n createCanvasContext(props?: CanvasContextProps): CanvasContext {\n throw new Error('WebGL only supports a single canvas');\n }\n\n _createBuffer(props: BufferProps): WEBGLBuffer {\n return new ClassicBuffer(this, props);\n }\n\n _createTexture(props: TextureProps): WEBGLTexture {\n return new WEBGLTexture(this, props);\n }\n\n createExternalTexture(props: ExternalTextureProps): ExternalTexture {\n throw new Error('createExternalTexture() not implemented'); // return new Program(props);\n }\n\n createSampler(props: SamplerProps): WEBGLSampler {\n return new WEBGLSampler(this, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n createFramebuffer(props: FramebufferProps): WEBGLFramebuffer {\n return new WEBGLFramebuffer(this, props);\n }\n\n createRenderPipeline(props: RenderPipelineProps): WEBGLRenderPipeline {\n return new WEBGLRenderPipeline(this, props);\n }\n\n beginRenderPass(props: RenderPassProps): WEBGLRenderPass {\n return new WEBGLRenderPass(this, props);\n }\n\n createComputePipeline(props?: ComputePipelineProps): ComputePipeline {\n throw new Error('ComputePipeline not supported in WebGL');\n }\n\n beginComputePass(props: ComputePassProps): ComputePass {\n throw new Error('compute shaders not supported in WebGL');\n }\n\n private renderPass: WEBGLRenderPass | null = null;\n\n getDefaultRenderPass(): WEBGLRenderPass {\n this.renderPass =\n this.renderPass ||\n this.beginRenderPass({\n framebuffer: this.canvasContext.getCurrentFramebuffer()\n });\n return this.renderPass;\n }\n\n /**\n * Offscreen Canvas Support: Commit the frame\n * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n * Chrome's offscreen canvas does not require gl.commit\n */\n submit(): void {\n this.renderPass?.endPass();\n this.renderPass = null;\n // this.canvasContext.commit();\n }\n\n //\n // WebGL-only API (not part of `Device` API)\n //\n\n /** WebGL1 typed context. Can always be used. */\n readonly gl: WebGLRenderingContext;\n /** WebGL2 typed context. Need to check isWebGL2 or isWebGL1 before using. */\n readonly gl2: WebGL2RenderingContext | null = null;\n readonly debug: boolean = false;\n\n /** `true` if this is a WebGL1 context. @note `false` if WebGL2 */\n readonly isWebGL1: boolean;\n /** `true` if this is a WebGL2 context. @note `false` if WebGL1 */\n readonly isWebGL2: boolean;\n\n /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** State used by luma.gl classes - TODO - not used? */\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /** Instance of Spector.js (if initialized) */\n spector;\n\n private _webglLimits?: WebGLLimits;\n\n /** Return WebGL specific limits */\n get webglLimits() : WebGLLimits {\n this._webglLimits = this._webglLimits || getWebGLLimits(this.gl);\n return this._webglLimits;\n }\n\n /**\n * Loses the context\n * @note Triggers context loss, mainly for testing\n * @todo Promote to `Device` API?\n */\n loseDevice(): void {\n const ext = this.gl.getExtension('WEBGL_lose_context');\n if (ext) {\n ext.loseContext();\n }\n // loseContext should trigger context loss callback but \n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Application triggered context loss'\n });\n }\n\n /** Save current WebGL context state onto an internal stack */\n pushState(): void {\n pushContextState(this.gl);\n }\n\n /** Restores previously saved context state */\n popState(): void {\n popContextState(this.gl);\n }\n}\n\n/** Check if supplied parameter is a WebGLRenderingContext */\nfunction isWebGL(gl: any): boolean {\n if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {\n return true;\n }\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && Number.isFinite(gl._version));\n}\n\n/** Check if supplied parameter is a WebGL2RenderingContext */\nfunction isWebGL2(gl: any): boolean {\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && gl._version === 2);\n}\n"],"file":"webgl-device.js"}
|
|
1
|
+
{"version":3,"file":"webgl-device.js","names":["_api","require","_env","_polyfillContext","_trackContextState","_createBrowserContext","_createHeadlessContext","_getDeviceInfo","_deviceFeatures","_deviceLimits","_webglCanvasContext","_interopRequireDefault","_spector","_webglDeveloperTools","_textureFormats","_buffer","_webglShader","_webglSampler","_webglTexture","_webglFramebuffer","_webglRenderPass","_webglRenderPipeline","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","LOG_LEVEL","WebGLDevice","_Device","_inherits2","_super","props","_props$gl","_this","_classCallCheck2","id","uid","_assertThisInitialized2","clientWidth","clientHeight","devicePixelRatio","device","gl","Error","concat","canvasContext","WebGLCanvasContext","lost","Promise","resolve","_resolveContextLost","onContextLost","event","_this$_resolveContext","_this2","reason","message","isBrowser","createBrowserContext","canvas","createHeadlessContext","handle","gl2","isWebGL2","isWebGL1","info","getDeviceInfo","_version","polyfillContext","_props$enable","enable","_props$copyState","copyState","trackContextState","log","_len","args","Array","_key","debug","makeDebugContext","webgl2","throwOnError","level","Math","max","warn","spector","initializeSpectorJS","type","vendor","renderer","probe","groupEnd","_createClass2","get","_features","getDeviceFeatures","_limits","getDeviceLimits","value","destroy","ext","getExtension","isContextLost","getSize","drawingBufferWidth","drawingBufferHeight","isTextureFormatSupported","format","isTextureFormatFilterable","isTextureFormatRenderable","assertWebGL2","createCanvasContext","_createBuffer","ClassicBuffer","_createTexture","WEBGLTexture","createExternalTexture","createSampler","WEBGLSampler","createShader","WEBGLShader","createFramebuffer","WEBGLFramebuffer","createRenderPipeline","WEBGLRenderPipeline","beginRenderPass","WEBGLRenderPass","createComputePipeline","beginComputePass","getDefaultRenderPass","renderPass","framebuffer","getCurrentFramebuffer","submit","_this$renderPass","end","_webglLimits","getWebGLLimits","loseDevice","_this$_resolveContext2","loseContext","pushState","pushContextState","popState","popContextState","isSupported","WebGLRenderingContext","isHeadlessGLRegistered","attach","Device","isWebGL","_create","_asyncToGenerator2","_regenerator","mark","_callee","_args","wrap","_callee$","_context","prev","next","undefined","groupCollapsed","CanvasContext","pageLoaded","loadWebGLDeveloperTools","loadSpectorJS","abrupt","stop","create","exports","WebGL2RenderingContext","Number","isFinite"],"sources":["../../../src/adapter/webgl-device.ts"],"sourcesContent":["// luma.gl, MIT license\nimport type {\n DeviceProps,\n DeviceInfo,\n DeviceLimits,\n DeviceFeature,\n CanvasContextProps,\n TextureFormat\n} from '@luma.gl/api';\nimport {Device, CanvasContext, log, uid} from '@luma.gl/api';\nimport {isBrowser} from '@probe.gl/env';\nimport {polyfillContext} from '../context/polyfill/polyfill-context';\nimport {popContextState, pushContextState, trackContextState} from '../context/state-tracker/track-context-state';\nimport {createBrowserContext} from '../context/context/create-browser-context';\nimport {\n createHeadlessContext,\n isHeadlessGLRegistered\n} from '../context/context/create-headless-context';\nimport {getDeviceInfo} from './device-helpers/get-device-info';\nimport {getDeviceFeatures} from './device-helpers/device-features';\nimport {getDeviceLimits, getWebGLLimits, WebGLLimits} from './device-helpers/device-limits';\nimport WebGLCanvasContext from './webgl-canvas-context';\nimport {loadSpectorJS, initializeSpectorJS} from '../context/debug/spector';\nimport {loadWebGLDeveloperTools, makeDebugContext} from '../context/debug/webgl-developer-tools';\nimport {\n isTextureFormatSupported,\n isTextureFormatRenderable,\n isTextureFormatFilterable\n} from './converters/texture-formats';\n\n// WebGL classes\nimport type {\n BufferProps,\n ShaderProps,\n // Sampler,\n SamplerProps,\n TextureProps,\n ExternalTexture,\n ExternalTextureProps,\n FramebufferProps,\n // RenderPipeline,\n RenderPipelineProps,\n ComputePipeline,\n ComputePipelineProps,\n // RenderPass,\n RenderPassProps,\n ComputePass,\n ComputePassProps\n} from '@luma.gl/api';\n\nimport ClassicBuffer from '../classic/buffer';\nimport WEBGLBuffer from './resources/webgl-buffer';\nimport WEBGLShader from './resources/webgl-shader';\nimport WEBGLSampler from './resources/webgl-sampler';\nimport WEBGLTexture from './resources/webgl-texture';\nimport WEBGLFramebuffer from './resources/webgl-framebuffer';\nimport WEBGLRenderPass from './resources/webgl-render-pass';\nimport WEBGLRenderPipeline from './resources/webgl-render-pipeline';\n\nconst LOG_LEVEL = 1;\n\n/** WebGPU style Device API for a WebGL context */\nexport default class WebGLDevice extends Device {\n //\n // Public `Device` API\n //\n\n static type: string = 'webgl';\n\n static isSupported(): boolean {\n return typeof WebGLRenderingContext !== 'undefined' || isHeadlessGLRegistered();\n }\n\n readonly info: DeviceInfo;\n readonly canvasContext: WebGLCanvasContext;\n\n readonly handle: WebGLRenderingContext;\n\n get features(): Set<DeviceFeature> {\n this._features = this._features || getDeviceFeatures(this.gl);\n return this._features;\n }\n\n get limits(): DeviceLimits {\n this._limits = this._limits || getDeviceLimits(this.gl);\n return this._limits;\n }\n\n readonly lost: Promise<{reason: 'destroyed'; message: string}>;\n\n private _resolveContextLost?: (value: {reason: 'destroyed'; message: string}) => void;\n private _features?: Set<DeviceFeature>;\n private _limits?: DeviceLimits;\n\n //\n // Static methods, expected to be present by `luma.createDevice()`\n //\n\n /**\n * Get a device instance from a GL context\n * Creates and instruments the device if not already created\n * @param gl\n * @returns\n */\n static attach(gl: Device | WebGLRenderingContext | WebGL2RenderingContext): WebGLDevice {\n if (gl instanceof WebGLDevice) {\n return gl;\n }\n // @ts-expect-error\n if (gl?.device instanceof Device) {\n // @ts-expect-error\n return gl.device as WebGLDevice;\n }\n if (!isWebGL(gl)) {\n throw new Error('Invalid WebGLRenderingContext');\n }\n return new WebGLDevice({gl: gl as WebGLRenderingContext});\n }\n\n static async create(props: DeviceProps = {}): Promise<WebGLDevice> {\n log.groupCollapsed(LOG_LEVEL, 'WebGLDevice created');\n\n // Wait for page to load. Only wait when props. canvas is string\n // to avoid setting page onload callback unless necessary\n if (typeof props.canvas === 'string') {\n await CanvasContext.pageLoaded;\n }\n\n // Load webgl and spector debug scripts from CDN if requested\n if (props.debug) {\n await loadWebGLDeveloperTools();\n }\n // @ts-expect-error spector not on props\n if (props.spector) {\n await loadSpectorJS();\n }\n\n log.probe(LOG_LEVEL + 1, 'DOM is loaded')();\n\n // @ts-expect-error\n if (props.gl && props.gl.device) {\n return WebGLDevice.attach(props.gl);\n }\n\n return new WebGLDevice(props);\n }\n\n //\n // Public API\n //\n\n constructor(props: DeviceProps) {\n super({...props, id: props.id || uid('webgl-device')});\n\n // If attaching to an already attached context, return the attached device\n // @ts-expect-error device is attached to context\n const device: WebGLDevice | undefined = props.gl?.device;\n if (device) {\n throw new Error(`WebGL context already attached to device ${device.id}`);\n }\n\n // Create and instrument context\n this.canvasContext = new WebGLCanvasContext(this, props);\n\n this.lost = new Promise<{reason: 'destroyed'; message: string}>((resolve) => {\n this._resolveContextLost = resolve;\n });\n\n const onContextLost = (event: Event) =>\n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Computer entered sleep mode, or too many apps or browser tabs are using the GPU.'\n });\n\n let gl: WebGLRenderingContext | WebGL2RenderingContext | null = props.gl || null;\n gl =\n gl ||\n (isBrowser() ? createBrowserContext(this.canvasContext.canvas, {...props, onContextLost}) : null);\n gl = gl || (!isBrowser() ? createHeadlessContext({...props, onContextLost}) : null);\n\n if (!gl) {\n throw new Error('WebGL context creation failed');\n }\n\n this.handle = gl;\n this.gl = this.handle;\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.isWebGL2 = isWebGL2(this.gl);\n this.isWebGL1 = !this.isWebGL2;\n\n // luma Device fields\n this.info = getDeviceInfo(this.gl);\n\n // @ts-expect-error Link webgl context back to device\n this.gl.device = this;\n // @ts-expect-error Annotate webgl context to handle\n this.gl._version = this.isWebGL2 ? 2 : 1;\n\n // Add subset of WebGL2 methods to WebGL1 context\n polyfillContext(this.gl);\n\n // Install context state tracking\n // @ts-expect-error - hidden parameters\n const {enable = true, copyState = false} = props;\n trackContextState(this.gl, {\n enable,\n copyState,\n log: (...args: any[]) => log.log(1, ...args)()\n });\n\n // DEBUG contexts: Add debug instrumentation to the context, force log level to at least 1\n if (isBrowser() && props.debug) {\n this.gl = makeDebugContext(this.gl, {...props, webgl2: this.isWebGL2, throwOnError: true});\n this.gl2 = this.gl as WebGL2RenderingContext;\n this.debug = true;\n log.level = Math.max(log.level, 1);\n log.warn('WebGL debug mode activated. Performance reduced.')();\n }\n\n // @ts-expect-error spector not on props\n if (isBrowser() && props.spector) {\n const canvas = this.handle.canvas || (props.canvas as HTMLCanvasElement);\n this.spector = initializeSpectorJS({...this.props, canvas});\n }\n\n // Log some debug info about the newly created context\n const message = `\\\nCreated ${this.info.type}${this.debug ? ' debug' : ''} context: \\\n${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;\n log.probe(LOG_LEVEL, message)();\n\n log.groupEnd(LOG_LEVEL)();\n }\n\n /**\n * Destroys the context\n * @note Has no effect for browser contexts, there is no browser API for destroying contexts\n */\n destroy(): void {\n const ext = this.gl.getExtension('STACKGL_destroy_context');\n if (ext) {\n ext.destroy();\n }\n }\n\n get isLost(): boolean {\n return this.gl.isContextLost();\n }\n\n getSize(): [number, number] {\n return [this.gl.drawingBufferWidth, this.gl.drawingBufferHeight];\n }\n\n isTextureFormatSupported(format: TextureFormat): boolean {\n return isTextureFormatSupported(this.gl, format);\n }\n\n isTextureFormatFilterable(format: TextureFormat): boolean {\n return isTextureFormatFilterable(this.gl, format);\n }\n\n isTextureFormatRenderable(format: TextureFormat): boolean {\n return isTextureFormatRenderable(this.gl, format);\n }\n\n // WEBGL SPECIFIC METHODS\n\n /** Returns a WebGL2RenderingContext or throws an error */\n assertWebGL2(): WebGL2RenderingContext {\n if (!this.gl2) {\n throw new Error('Requires WebGL2');\n }\n return this.gl2;\n }\n\n // IMPLEMENTATION OF ABSTRACT DEVICE\n\n createCanvasContext(props?: CanvasContextProps): CanvasContext {\n throw new Error('WebGL only supports a single canvas');\n }\n\n _createBuffer(props: BufferProps): WEBGLBuffer {\n return new ClassicBuffer(this, props);\n }\n\n _createTexture(props: TextureProps): WEBGLTexture {\n return new WEBGLTexture(this, props);\n }\n\n createExternalTexture(props: ExternalTextureProps): ExternalTexture {\n throw new Error('createExternalTexture() not implemented'); // return new Program(props);\n }\n\n createSampler(props: SamplerProps): WEBGLSampler {\n return new WEBGLSampler(this, props);\n }\n\n createShader(props: ShaderProps): WEBGLShader {\n return new WEBGLShader(this, props);\n }\n\n createFramebuffer(props: FramebufferProps): WEBGLFramebuffer {\n return new WEBGLFramebuffer(this, props);\n }\n\n createRenderPipeline(props: RenderPipelineProps): WEBGLRenderPipeline {\n return new WEBGLRenderPipeline(this, props);\n }\n\n beginRenderPass(props: RenderPassProps): WEBGLRenderPass {\n return new WEBGLRenderPass(this, props);\n }\n\n createComputePipeline(props?: ComputePipelineProps): ComputePipeline {\n throw new Error('ComputePipeline not supported in WebGL');\n }\n\n beginComputePass(props: ComputePassProps): ComputePass {\n throw new Error('compute shaders not supported in WebGL');\n }\n\n private renderPass: WEBGLRenderPass | null = null;\n\n getDefaultRenderPass(): WEBGLRenderPass {\n this.renderPass =\n this.renderPass ||\n this.beginRenderPass({\n framebuffer: this.canvasContext.getCurrentFramebuffer()\n });\n return this.renderPass;\n }\n\n /**\n * Offscreen Canvas Support: Commit the frame\n * https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/commit\n * Chrome's offscreen canvas does not require gl.commit\n */\n submit(): void {\n this.renderPass?.end();\n this.renderPass = null;\n // this.canvasContext.commit();\n }\n\n //\n // WebGL-only API (not part of `Device` API)\n //\n\n /** WebGL1 typed context. Can always be used. */\n readonly gl: WebGLRenderingContext;\n /** WebGL2 typed context. Need to check isWebGL2 or isWebGL1 before using. */\n readonly gl2: WebGL2RenderingContext | null = null;\n readonly debug: boolean = false;\n\n /** `true` if this is a WebGL1 context. @note `false` if WebGL2 */\n readonly isWebGL1: boolean;\n /** `true` if this is a WebGL2 context. @note `false` if WebGL1 */\n readonly isWebGL2: boolean;\n\n /** State used by luma.gl classes: TODO - move to canvasContext*/\n readonly _canvasSizeInfo = {clientWidth: 0, clientHeight: 0, devicePixelRatio: 1};\n\n /** State used by luma.gl classes - TODO - not used? */\n readonly _extensions: Record<string, any> = {};\n _polyfilled: boolean = false;\n\n /** Instance of Spector.js (if initialized) */\n spector;\n\n private _webglLimits?: WebGLLimits;\n\n /** Return WebGL specific limits */\n get webglLimits() : WebGLLimits {\n this._webglLimits = this._webglLimits || getWebGLLimits(this.gl);\n return this._webglLimits;\n }\n\n /**\n * Loses the context\n * @note Triggers context loss, mainly for testing\n * @todo Promote to `Device` API?\n */\n loseDevice(): void {\n const ext = this.gl.getExtension('WEBGL_lose_context');\n if (ext) {\n ext.loseContext();\n }\n // loseContext should trigger context loss callback but \n this._resolveContextLost?.({\n reason: 'destroyed',\n message: 'Application triggered context loss'\n });\n }\n\n /** Save current WebGL context state onto an internal stack */\n pushState(): void {\n pushContextState(this.gl);\n }\n\n /** Restores previously saved context state */\n popState(): void {\n popContextState(this.gl);\n }\n}\n\n/** Check if supplied parameter is a WebGLRenderingContext */\nfunction isWebGL(gl: any): boolean {\n if (typeof WebGLRenderingContext !== 'undefined' && gl instanceof WebGLRenderingContext) {\n return true;\n }\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && Number.isFinite(gl._version));\n}\n\n/** Check if supplied parameter is a WebGL2RenderingContext */\nfunction isWebGL2(gl: any): boolean {\n if (typeof WebGL2RenderingContext !== 'undefined' && gl instanceof WebGL2RenderingContext) {\n return true;\n }\n // Look for debug contexts, headless gl etc\n return Boolean(gl && gl._version === 2);\n}\n"],"mappings":"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"}
|
package/dist/es5/bundle.js
CHANGED
package/dist/es5/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"bundle.js","names":["moduleExports","require","globalThis","luma","module","exports","Object","assign"],"sources":["../../src/bundle.ts"],"sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.luma = globalThis.luma || {};\nmodule.exports = Object.assign(globalThis.luma, moduleExports);\n"],"mappings":";;AACA,IAAMA,aAAa,GAAGC,OAAO,CAAC,SAAS,CAAC;AACxCC,UAAU,CAACC,IAAI,GAAGD,UAAU,CAACC,IAAI,IAAI,CAAC,CAAC;AACvCC,MAAM,CAACC,OAAO,GAAGC,MAAM,CAACC,MAAM,CAACL,UAAU,CAACC,IAAI,EAAEH,aAAa,CAAC"}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports.
|
|
9
|
-
|
|
7
|
+
exports.default = exports.DEFAULT_ACCESSOR_VALUES = void 0;
|
|
10
8
|
var _construct2 = _interopRequireDefault(require("@babel/runtime/helpers/construct"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
|
|
18
12
|
var _api = require("@luma.gl/api");
|
|
19
|
-
|
|
20
13
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
21
|
-
|
|
22
14
|
var _typedArrayUtils = require("./typed-array-utils");
|
|
23
|
-
|
|
24
15
|
var DEFAULT_ACCESSOR_VALUES = {
|
|
25
16
|
offset: 0,
|
|
26
17
|
stride: 0,
|
|
@@ -37,11 +28,9 @@ var PROP_CHECKS = {
|
|
|
37
28
|
isInstanced: 'divisor'
|
|
38
29
|
}
|
|
39
30
|
};
|
|
40
|
-
|
|
41
31
|
var Accessor = function () {
|
|
42
32
|
function Accessor() {
|
|
43
33
|
var _this = this;
|
|
44
|
-
|
|
45
34
|
(0, _classCallCheck2.default)(this, Accessor);
|
|
46
35
|
(0, _defineProperty2.default)(this, "offset", void 0);
|
|
47
36
|
(0, _defineProperty2.default)(this, "stride", void 0);
|
|
@@ -52,17 +41,14 @@ var Accessor = function () {
|
|
|
52
41
|
(0, _defineProperty2.default)(this, "integer", void 0);
|
|
53
42
|
(0, _defineProperty2.default)(this, "buffer", void 0);
|
|
54
43
|
(0, _defineProperty2.default)(this, "index", void 0);
|
|
55
|
-
|
|
56
44
|
for (var _len = arguments.length, accessors = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
57
45
|
accessors[_key] = arguments[_key];
|
|
58
46
|
}
|
|
59
|
-
|
|
60
47
|
accessors.forEach(function (accessor) {
|
|
61
48
|
return _this._assign(accessor);
|
|
62
49
|
});
|
|
63
50
|
Object.freeze(this);
|
|
64
51
|
}
|
|
65
|
-
|
|
66
52
|
(0, _createClass2.default)(Accessor, [{
|
|
67
53
|
key: "toString",
|
|
68
54
|
value: function toString() {
|
|
@@ -83,47 +69,36 @@ var Accessor = function () {
|
|
|
83
69
|
value: function _assign() {
|
|
84
70
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
85
71
|
props = (0, _api.checkProps)('Accessor', props, PROP_CHECKS);
|
|
86
|
-
|
|
87
72
|
if (props.type !== undefined) {
|
|
88
73
|
this.type = props.type;
|
|
89
|
-
|
|
90
74
|
if (props.type === _constants.default.INT || props.type === _constants.default.UNSIGNED_INT) {
|
|
91
75
|
this.integer = true;
|
|
92
76
|
}
|
|
93
77
|
}
|
|
94
|
-
|
|
95
78
|
if (props.size !== undefined) {
|
|
96
79
|
this.size = props.size;
|
|
97
80
|
}
|
|
98
|
-
|
|
99
81
|
if (props.offset !== undefined) {
|
|
100
82
|
this.offset = props.offset;
|
|
101
83
|
}
|
|
102
|
-
|
|
103
84
|
if (props.stride !== undefined) {
|
|
104
85
|
this.stride = props.stride;
|
|
105
86
|
}
|
|
106
|
-
|
|
107
87
|
if (props.normalize !== undefined) {
|
|
108
88
|
this.normalized = props.normalize;
|
|
109
89
|
}
|
|
110
|
-
|
|
111
90
|
if (props.normalized !== undefined) {
|
|
112
91
|
this.normalized = props.normalized;
|
|
113
92
|
}
|
|
114
|
-
|
|
115
93
|
if (props.integer !== undefined) {
|
|
116
94
|
this.integer = props.integer;
|
|
117
95
|
}
|
|
118
|
-
|
|
119
96
|
if (props.divisor !== undefined) {
|
|
120
97
|
this.divisor = props.divisor;
|
|
121
98
|
}
|
|
122
|
-
|
|
123
99
|
if (props.buffer !== undefined) {
|
|
124
100
|
this.buffer = props.buffer;
|
|
125
101
|
}
|
|
126
|
-
|
|
127
102
|
if (props.index !== undefined) {
|
|
128
103
|
if (typeof props.index === 'boolean') {
|
|
129
104
|
this.index = props.index ? 1 : 0;
|
|
@@ -131,15 +106,12 @@ var Accessor = function () {
|
|
|
131
106
|
this.index = props.index;
|
|
132
107
|
}
|
|
133
108
|
}
|
|
134
|
-
|
|
135
109
|
if (props.instanced !== undefined) {
|
|
136
110
|
this.divisor = props.instanced ? 1 : 0;
|
|
137
111
|
}
|
|
138
|
-
|
|
139
112
|
if (props.isInstanced !== undefined) {
|
|
140
113
|
this.divisor = props.isInstanced ? 1 : 0;
|
|
141
114
|
}
|
|
142
|
-
|
|
143
115
|
if (this.offset === undefined) delete this.offset;
|
|
144
116
|
if (this.stride === undefined) delete this.stride;
|
|
145
117
|
if (this.type === undefined) delete this.type;
|
|
@@ -170,12 +142,10 @@ var Accessor = function () {
|
|
|
170
142
|
for (var _len2 = arguments.length, accessors = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
171
143
|
accessors[_key2] = arguments[_key2];
|
|
172
144
|
}
|
|
173
|
-
|
|
174
145
|
return (0, _construct2.default)(Accessor, [DEFAULT_ACCESSOR_VALUES].concat(accessors));
|
|
175
146
|
}
|
|
176
147
|
}]);
|
|
177
148
|
return Accessor;
|
|
178
149
|
}();
|
|
179
|
-
|
|
180
150
|
exports.default = Accessor;
|
|
181
151
|
//# sourceMappingURL=accessor.js.map
|