@luma.gl/webgl 9.0.0-alpha.14 → 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,56 +1,33 @@
|
|
|
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
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 _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
17
|
-
|
|
18
12
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
19
|
-
|
|
20
13
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
21
|
-
|
|
22
14
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
|
-
|
|
24
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
16
|
var _api = require("@luma.gl/api");
|
|
27
|
-
|
|
28
17
|
var _constants = _interopRequireDefault(require("@luma.gl/constants"));
|
|
29
|
-
|
|
30
18
|
var _webglTexture = _interopRequireDefault(require("./webgl-texture"));
|
|
31
|
-
|
|
32
19
|
var _webglRenderbuffer = _interopRequireDefault(require("../objects/webgl-renderbuffer"));
|
|
33
|
-
|
|
34
20
|
var _textureFormats = require("../converters/texture-formats");
|
|
35
|
-
|
|
36
21
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
37
|
-
|
|
38
22
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
39
|
-
|
|
40
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
41
|
-
|
|
23
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
42
24
|
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); }; }
|
|
43
|
-
|
|
44
25
|
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; } }
|
|
45
|
-
|
|
46
26
|
var WEBGLFramebuffer = function (_Framebuffer) {
|
|
47
27
|
(0, _inherits2.default)(WEBGLFramebuffer, _Framebuffer);
|
|
48
|
-
|
|
49
28
|
var _super = _createSuper(WEBGLFramebuffer);
|
|
50
|
-
|
|
51
29
|
function WEBGLFramebuffer(device, props) {
|
|
52
30
|
var _this;
|
|
53
|
-
|
|
54
31
|
(0, _classCallCheck2.default)(this, WEBGLFramebuffer);
|
|
55
32
|
_this = _super.call(this, device, props);
|
|
56
33
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
@@ -62,41 +39,31 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
62
39
|
_this.device = device;
|
|
63
40
|
_this.gl = device.gl;
|
|
64
41
|
_this.handle = _this.props.handle !== undefined ? _this.props.handle : _this.gl.createFramebuffer();
|
|
65
|
-
|
|
66
42
|
if (_this.handle) {
|
|
67
43
|
_this.handle.__SPECTOR_Metadata = {
|
|
68
44
|
id: _this.props.id,
|
|
69
45
|
props: _this.props
|
|
70
46
|
};
|
|
71
47
|
}
|
|
72
|
-
|
|
73
48
|
_this.colorAttachments = _this._createColorAttachments();
|
|
74
49
|
_this.depthStencilAttachment = _this._createDepthStencilAttachment();
|
|
75
|
-
|
|
76
50
|
var prevHandle = _this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, _this.handle);
|
|
77
|
-
|
|
78
51
|
for (var i = 0; i < _this.colorAttachments.length; ++i) {
|
|
79
52
|
var attachment = _this.colorAttachments[i];
|
|
80
53
|
var attachmentPoint = _constants.default.COLOR_ATTACHMENT0 + i;
|
|
81
|
-
|
|
82
54
|
if (attachment) {
|
|
83
55
|
_this._attachOne(attachmentPoint, attachment);
|
|
84
56
|
}
|
|
85
57
|
}
|
|
86
|
-
|
|
87
58
|
if (_this.props.depthStencilAttachment) {
|
|
88
59
|
_this._attachOne((0, _textureFormats.getWebGLDepthStencilAttachment)(_this.depthStencilAttachment.format), _this.depthStencilAttachment);
|
|
89
60
|
}
|
|
90
|
-
|
|
91
61
|
_this.gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
|
|
92
|
-
|
|
93
62
|
if (props.check !== false) {
|
|
94
63
|
_this._checkStatus();
|
|
95
64
|
}
|
|
96
|
-
|
|
97
65
|
return _this;
|
|
98
66
|
}
|
|
99
|
-
|
|
100
67
|
(0, _createClass2.default)(WEBGLFramebuffer, [{
|
|
101
68
|
key: "texture",
|
|
102
69
|
get: function get() {
|
|
@@ -107,8 +74,7 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
107
74
|
value: function destroy() {
|
|
108
75
|
if (this.handle !== null) {
|
|
109
76
|
var _iterator = _createForOfIteratorHelper(this._ownResources),
|
|
110
|
-
|
|
111
|
-
|
|
77
|
+
_step;
|
|
112
78
|
try {
|
|
113
79
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
114
80
|
var resource = _step.value;
|
|
@@ -119,7 +85,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
119
85
|
} finally {
|
|
120
86
|
_iterator.f();
|
|
121
87
|
}
|
|
122
|
-
|
|
123
88
|
this.gl.deleteFramebuffer(this.handle);
|
|
124
89
|
this.destroyed = true;
|
|
125
90
|
}
|
|
@@ -131,7 +96,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
131
96
|
var prevHandle = gl.bindFramebuffer(_constants.default.FRAMEBUFFER, this.handle);
|
|
132
97
|
var status = gl.checkFramebufferStatus(_constants.default.FRAMEBUFFER);
|
|
133
98
|
gl.bindFramebuffer(_constants.default.FRAMEBUFFER, prevHandle || null);
|
|
134
|
-
|
|
135
99
|
if (status !== gl.FRAMEBUFFER_COMPLETE) {
|
|
136
100
|
throw new Error("Framebuffer ".concat(_getFrameBufferStatus(status)));
|
|
137
101
|
}
|
|
@@ -140,16 +104,13 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
140
104
|
key: "_createColorAttachments",
|
|
141
105
|
value: function _createColorAttachments() {
|
|
142
106
|
var _this2 = this;
|
|
143
|
-
|
|
144
107
|
return this.props.colorAttachments.map(function (colorAttachment) {
|
|
145
108
|
if (!colorAttachment) {
|
|
146
109
|
return undefined;
|
|
147
110
|
}
|
|
148
|
-
|
|
149
111
|
if (colorAttachment instanceof _webglTexture.default) {
|
|
150
112
|
return colorAttachment;
|
|
151
113
|
}
|
|
152
|
-
|
|
153
114
|
return _this2._createColorAttachment(colorAttachment, _this2.width, _this2.height);
|
|
154
115
|
});
|
|
155
116
|
}
|
|
@@ -170,9 +131,7 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
170
131
|
addressModeV: 'clamp-to-edge'
|
|
171
132
|
}
|
|
172
133
|
});
|
|
173
|
-
|
|
174
134
|
this._ownResources.push(texture);
|
|
175
|
-
|
|
176
135
|
return texture;
|
|
177
136
|
}
|
|
178
137
|
}, {
|
|
@@ -181,15 +140,12 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
181
140
|
if (!this.props.depthStencilAttachment) {
|
|
182
141
|
return undefined;
|
|
183
142
|
}
|
|
184
|
-
|
|
185
143
|
if (this.props.depthStencilAttachment instanceof _webglRenderbuffer.default) {
|
|
186
144
|
return this.props.depthStencilAttachment;
|
|
187
145
|
}
|
|
188
|
-
|
|
189
146
|
if (this.props.depthStencilAttachment instanceof _api.Texture) {
|
|
190
147
|
return this.props.depthStencilAttachment;
|
|
191
148
|
}
|
|
192
|
-
|
|
193
149
|
var format = this.props.depthStencilAttachment;
|
|
194
150
|
var webglFormat = (0, _textureFormats.getWebGLTextureFormat)(this.gl, format);
|
|
195
151
|
var texture = new _webglRenderbuffer.default(this.device, {
|
|
@@ -198,37 +154,29 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
198
154
|
width: this.width,
|
|
199
155
|
height: this.height
|
|
200
156
|
});
|
|
201
|
-
|
|
202
157
|
this._ownResources.push(texture);
|
|
203
|
-
|
|
204
158
|
return texture;
|
|
205
159
|
}
|
|
206
160
|
}, {
|
|
207
161
|
key: "_resizeAttachments",
|
|
208
162
|
value: function _resizeAttachments(width, height) {
|
|
209
163
|
var _this$depthStencilAtt;
|
|
210
|
-
|
|
211
164
|
if (this.handle === null) {
|
|
212
165
|
this.width = this.gl.drawingBufferWidth;
|
|
213
166
|
this.height = this.gl.drawingBufferHeight;
|
|
214
167
|
return this;
|
|
215
168
|
}
|
|
216
|
-
|
|
217
169
|
if (width === undefined) {
|
|
218
170
|
width = this.gl.drawingBufferWidth;
|
|
219
171
|
}
|
|
220
|
-
|
|
221
172
|
if (height === undefined) {
|
|
222
173
|
height = this.gl.drawingBufferHeight;
|
|
223
174
|
}
|
|
224
|
-
|
|
225
175
|
if (width !== this.width && height !== this.height) {
|
|
226
176
|
_api.log.log(2, "Resizing framebuffer ".concat(this.id, " to ").concat(width, "x").concat(height))();
|
|
227
177
|
}
|
|
228
|
-
|
|
229
178
|
var _iterator2 = _createForOfIteratorHelper(this.colorAttachments),
|
|
230
|
-
|
|
231
|
-
|
|
179
|
+
_step2;
|
|
232
180
|
try {
|
|
233
181
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
234
182
|
var colorAttachment = _step2.value;
|
|
@@ -242,7 +190,6 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
242
190
|
} finally {
|
|
243
191
|
_iterator2.f();
|
|
244
192
|
}
|
|
245
|
-
|
|
246
193
|
(_this$depthStencilAtt = this.depthStencilAttachment) === null || _this$depthStencilAtt === void 0 ? void 0 : _this$depthStencilAtt.resize({
|
|
247
194
|
width: width,
|
|
248
195
|
height: height
|
|
@@ -254,25 +201,20 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
254
201
|
value: function _attachOne(attachmentPoint, attachment) {
|
|
255
202
|
if (attachment instanceof _webglRenderbuffer.default) {
|
|
256
203
|
this._attachRenderbuffer(attachmentPoint, attachment);
|
|
257
|
-
|
|
258
204
|
return attachment;
|
|
259
205
|
} else if (Array.isArray(attachment)) {
|
|
260
206
|
var _attachment = (0, _slicedToArray2.default)(attachment, 3),
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
207
|
+
texture = _attachment[0],
|
|
208
|
+
_attachment$ = _attachment[1],
|
|
209
|
+
layer = _attachment$ === void 0 ? 0 : _attachment$,
|
|
210
|
+
_attachment$2 = _attachment[2],
|
|
211
|
+
level = _attachment$2 === void 0 ? 0 : _attachment$2;
|
|
267
212
|
this._attachTexture(attachmentPoint, texture, layer, level);
|
|
268
|
-
|
|
269
213
|
return texture;
|
|
270
214
|
} else if (attachment instanceof _webglTexture.default) {
|
|
271
215
|
this._attachTexture(attachmentPoint, attachment, 0, 0);
|
|
272
|
-
|
|
273
216
|
return attachment;
|
|
274
217
|
}
|
|
275
|
-
|
|
276
218
|
throw new Error('attach');
|
|
277
219
|
}
|
|
278
220
|
}, {
|
|
@@ -284,62 +226,48 @@ var WEBGLFramebuffer = function (_Framebuffer) {
|
|
|
284
226
|
key: "_attachTexture",
|
|
285
227
|
value: function _attachTexture(attachment, texture, layer, level) {
|
|
286
228
|
var _this$device = this.device,
|
|
287
|
-
|
|
288
|
-
|
|
229
|
+
gl = _this$device.gl,
|
|
230
|
+
gl2 = _this$device.gl2;
|
|
289
231
|
gl.bindTexture(texture.target, texture.handle);
|
|
290
|
-
|
|
291
232
|
switch (texture.target) {
|
|
292
233
|
case _constants.default.TEXTURE_2D_ARRAY:
|
|
293
234
|
case _constants.default.TEXTURE_3D:
|
|
294
235
|
this.device.assertWebGL2();
|
|
295
236
|
gl2 === null || gl2 === void 0 ? void 0 : gl2.framebufferTextureLayer(_constants.default.FRAMEBUFFER, attachment, texture.target, level, layer);
|
|
296
237
|
break;
|
|
297
|
-
|
|
298
238
|
case _constants.default.TEXTURE_CUBE_MAP:
|
|
299
239
|
var face = mapIndexToCubeMapFace(layer);
|
|
300
240
|
gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, face, texture.handle, level);
|
|
301
241
|
break;
|
|
302
|
-
|
|
303
242
|
case _constants.default.TEXTURE_2D:
|
|
304
243
|
gl.framebufferTexture2D(_constants.default.FRAMEBUFFER, attachment, _constants.default.TEXTURE_2D, texture.handle, level);
|
|
305
244
|
break;
|
|
306
|
-
|
|
307
245
|
default:
|
|
308
246
|
(0, _api.assert)(false, 'Illegal texture type');
|
|
309
247
|
}
|
|
310
|
-
|
|
311
248
|
gl.bindTexture(texture.target, null);
|
|
312
249
|
}
|
|
313
250
|
}]);
|
|
314
251
|
return WEBGLFramebuffer;
|
|
315
252
|
}(_api.Framebuffer);
|
|
316
|
-
|
|
317
253
|
exports.default = WEBGLFramebuffer;
|
|
318
|
-
|
|
319
254
|
function mapIndexToCubeMapFace(layer) {
|
|
320
255
|
return layer < _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + _constants.default.TEXTURE_CUBE_MAP_POSITIVE_X : layer;
|
|
321
256
|
}
|
|
322
|
-
|
|
323
257
|
function _getFrameBufferStatus(status) {
|
|
324
258
|
switch (status) {
|
|
325
259
|
case _constants.default.FRAMEBUFFER_COMPLETE:
|
|
326
260
|
return 'success';
|
|
327
|
-
|
|
328
261
|
case _constants.default.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
|
|
329
262
|
return 'Mismatched attachments';
|
|
330
|
-
|
|
331
263
|
case _constants.default.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
|
|
332
264
|
return 'No attachments';
|
|
333
|
-
|
|
334
265
|
case _constants.default.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
|
|
335
266
|
return 'Height/width mismatch';
|
|
336
|
-
|
|
337
267
|
case _constants.default.FRAMEBUFFER_UNSUPPORTED:
|
|
338
268
|
return 'Unsupported or split attachments';
|
|
339
|
-
|
|
340
269
|
case _constants.default.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:
|
|
341
270
|
return 'Samples mismatch';
|
|
342
|
-
|
|
343
271
|
default:
|
|
344
272
|
return "".concat(status);
|
|
345
273
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/resources/webgl-framebuffer.ts"],"names":["WEBGLFramebuffer","device","props","gl","handle","undefined","createFramebuffer","__SPECTOR_Metadata","id","colorAttachments","_createColorAttachments","depthStencilAttachment","_createDepthStencilAttachment","prevHandle","bindFramebuffer","GL","FRAMEBUFFER","i","length","attachment","attachmentPoint","COLOR_ATTACHMENT0","_attachOne","format","check","_checkStatus","_ownResources","resource","destroy","deleteFramebuffer","destroyed","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","Error","_getFrameBufferStatus","map","colorAttachment","WebGLTexture","_createColorAttachment","width","height","texture","_createTexture","data","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV","push","Renderbuffer","Texture","webglFormat","drawingBufferWidth","drawingBufferHeight","log","resize","_attachRenderbuffer","Array","isArray","layer","level","_attachTexture","renderbuffer","framebufferRenderbuffer","RENDERBUFFER","gl2","bindTexture","target","TEXTURE_2D_ARRAY","TEXTURE_3D","assertWebGL2","framebufferTextureLayer","TEXTURE_CUBE_MAP","face","mapIndexToCubeMapFace","framebufferTexture2D","TEXTURE_2D","Framebuffer","TEXTURE_CUBE_MAP_POSITIVE_X","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"],"mappings":"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","sourcesContent":["// luma.gl, MIT license\n\nimport type {FramebufferProps, ColorTextureFormat} from '@luma.gl/api';\nimport {Framebuffer, Texture, log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\nimport WebGLTexture from './webgl-texture';\nimport Renderbuffer from '../objects/webgl-renderbuffer';\nimport {getWebGLTextureFormat, getWebGLDepthStencilAttachment} from '../converters/texture-formats';\n\nexport type TextureAttachment = [Texture, number?, number?];\nexport type Attachment = WebGLTexture | Renderbuffer | TextureAttachment;\n\n/** luma.gl Framebuffer, WebGL implementation */\nexport default class WEBGLFramebuffer extends Framebuffer {\n device: WebGLDevice;\n gl: WebGLRenderingContext;\n handle: WebGLFramebuffer;\n\n get texture() { return this.colorAttachments[0]; }\n readonly colorAttachments: WebGLTexture[] = [];\n readonly depthStencilAttachment: WebGLTexture | null = null;\n protected _ownResources: (WebGLTexture | Renderbuffer)[] = [];\n\n constructor(device: WebGLDevice, props: FramebufferProps) {\n super(device, props);\n this.device = device;\n this.gl = device.gl;\n this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();\n\n if (this.handle) { // default framebuffer is null...\n // @ts-expect-error Per SPECTOR docs\n this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};\n }\n\n this.colorAttachments = this._createColorAttachments();\n // @ts-expect-error\n this.depthStencilAttachment = this._createDepthStencilAttachment();\n\n /** Attach from a map of attachments */\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (let i = 0; i < this.colorAttachments.length; ++i) {\n const attachment = this.colorAttachments[i];\n const attachmentPoint = GL.COLOR_ATTACHMENT0 + i;\n if (attachment) {\n this._attachOne(attachmentPoint, attachment);\n }\n }\n\n if (this.props.depthStencilAttachment) {\n this._attachOne(getWebGLDepthStencilAttachment(this.depthStencilAttachment.format), this.depthStencilAttachment);\n }\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n // @ts-expect-error\n if (props.check !== false) {\n this._checkStatus();\n }\n }\n\n override destroy(): void {\n if (this.handle !== null) {\n for (const resource of this._ownResources) {\n resource.destroy();\n }\n this.gl.deleteFramebuffer(this.handle);\n // this.handle = null;\n this.destroyed = true;\n }\n }\n\n // PRIVATE\n\n /** Check the status */\n protected _checkStatus(): void {\n const {gl} = this;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (status !== gl.FRAMEBUFFER_COMPLETE) {\n throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);\n }\n }\n\n _createColorAttachments(): WebGLTexture[] {\n return this.props.colorAttachments.map(colorAttachment => {\n if (!colorAttachment) {\n return undefined;\n }\n if (colorAttachment instanceof WebGLTexture) {\n return colorAttachment;\n }\n // if (typeof colorAttachment === 'default') {\n // return this._createColorAttachment('rgba8unorm', this.width, this.height);\n // }\n // @ts-expect-error\n return this._createColorAttachment(colorAttachment, this.width, this.height);\n });\n }\n\n /** Create a color attachment */\n protected _createColorAttachment(format: ColorTextureFormat, width: number, height: number): WebGLTexture {\n const texture = this.device._createTexture({\n id: `${this.id}-color`,\n data: null, // reserves texture memory, but texels are undefined\n format,\n // type: GL.UNSIGNED_BYTE,\n width,\n height,\n // Note: Mipmapping can be disabled by texture resource when we resize the texture\n // to a non-power-of-two dimenstion (NPOT texture) under WebGL1. To have consistant\n // behavior we always disable mipmaps.\n mipmaps: false,\n // Set MIN and MAG filtering parameters so mipmaps are not used in sampling.\n // Use LINEAR so subpixel algos like fxaa work.\n // Set WRAP modes that support NPOT textures too.\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n },\n // parameters: {\n // [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n // [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n // }\n }) as WebGLTexture;\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Create a depth stencil attachment GL.DEPTH24_STENCIL8 */\n protected _createDepthStencilAttachment(): Renderbuffer | WebGLTexture {\n if (!this.props.depthStencilAttachment) {\n return undefined;\n }\n if (this.props.depthStencilAttachment instanceof Renderbuffer) {\n return this.props.depthStencilAttachment;\n }\n if (this.props.depthStencilAttachment instanceof Texture) {\n return this.props.depthStencilAttachment as unknown as WebGLTexture;\n }\n const format = this.props.depthStencilAttachment;\n const webglFormat = getWebGLTextureFormat(this.gl, format);\n\n const texture = new Renderbuffer(this.device, {\n id: `${this.id}-depth-stencil`, // TODO misleading if not depth and stencil?\n format: webglFormat,\n // dataFormat: GL.DEPTH_STENCIL,\n // type: GL.UNSIGNED_INT_24_8,\n width: this.width,\n height: this.height\n });\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Attachment resize is expected to be a noop if size is same */\n protected _resizeAttachments(width: number, height: number): this {\n // for default framebuffer, just update the stored size\n if (this.handle === null) {\n // assert(width === undefined && height === undefined);\n this.width = this.gl.drawingBufferWidth;\n this.height = this.gl.drawingBufferHeight;\n return this;\n }\n if (width === undefined) {\n width = this.gl.drawingBufferWidth;\n }\n if (height === undefined) {\n height = this.gl.drawingBufferHeight;\n }\n\n if (width !== this.width && height !== this.height) {\n log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();\n }\n\n for (const colorAttachment of this.colorAttachments) {\n colorAttachment.resize({width, height});\n }\n this.depthStencilAttachment?.resize({width, height});\n return this;\n }\n\n /** Attach one attachment */\n protected _attachOne(attachmentPoint: GL, attachment: Attachment): WebGLTexture | Renderbuffer {\n if (attachment instanceof Renderbuffer) {\n this._attachRenderbuffer(attachmentPoint, attachment);\n return attachment;\n } else if (Array.isArray(attachment)) {\n const [texture, layer = 0, level = 0] = attachment;\n this._attachTexture(attachmentPoint, texture as unknown as WebGLTexture, layer, level);\n return texture as unknown as WebGLTexture;\n } else if (attachment instanceof WebGLTexture) {\n this._attachTexture(attachmentPoint, attachment, 0, 0);\n return attachment;\n }\n throw new Error('attach');\n }\n\n protected _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {\n this.gl.framebufferRenderbuffer(\n GL.FRAMEBUFFER,\n attachment,\n GL.RENDERBUFFER,\n renderbuffer.handle\n );\n }\n\n /**\n * @param attachment\n * @param texture\n * @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`\n * @param level = 0 - mipmapLevel (must be 0 in WebGL1)\n */\n protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {\n const {gl, gl2} = this.device;\n gl.bindTexture(texture.target, texture.handle);\n\n switch (texture.target) {\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n this.device.assertWebGL2();\n gl2?.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);\n break;\n\n case GL.TEXTURE_CUBE_MAP:\n // layer must be a cubemap face (or if index, converted to cube map face)\n const face = mapIndexToCubeMapFace(layer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);\n break;\n\n case GL.TEXTURE_2D:\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);\n break;\n\n default:\n assert(false, 'Illegal texture type');\n }\n\n gl.bindTexture(texture.target, null);\n }\n}\n\n// Helper functions\n\n// Map an index to a cube map face constant\nfunction mapIndexToCubeMapFace(layer: number | GL): GL {\n // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)\n // if smaller assume layer is index, otherwise assume it is already a cube map face constant\n return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;\n}\n\n// Helper METHODS\n// Get a string describing the framebuffer error if installed\nfunction _getFrameBufferStatus(status: GL) {\n switch (status) {\n case GL.FRAMEBUFFER_COMPLETE:\n return 'success';\n case GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n return 'Mismatched attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n return 'No attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n return 'Height/width mismatch';\n case GL.FRAMEBUFFER_UNSUPPORTED:\n return 'Unsupported or split attachments';\n // WebGL2\n case GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:\n return 'Samples mismatch';\n // OVR_multiview2 extension\n // case GL.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: return 'baseViewIndex mismatch';\n default:\n return `${status}`;\n }\n}\n"],"file":"webgl-framebuffer.js"}
|
|
1
|
+
{"version":3,"file":"webgl-framebuffer.js","names":["_api","require","_constants","_interopRequireDefault","_webglTexture","_webglRenderbuffer","_textureFormats","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","WEBGLFramebuffer","_Framebuffer","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","gl","handle","undefined","createFramebuffer","__SPECTOR_Metadata","id","colorAttachments","_createColorAttachments","depthStencilAttachment","_createDepthStencilAttachment","prevHandle","bindFramebuffer","GL","FRAMEBUFFER","attachment","attachmentPoint","COLOR_ATTACHMENT0","_attachOne","getWebGLDepthStencilAttachment","format","check","_checkStatus","_createClass2","key","get","destroy","_iterator","_ownResources","_step","resource","deleteFramebuffer","destroyed","status","checkFramebufferStatus","FRAMEBUFFER_COMPLETE","Error","concat","_getFrameBufferStatus","_this2","map","colorAttachment","WebGLTexture","_createColorAttachment","width","height","texture","_createTexture","data","mipmaps","sampler","minFilter","magFilter","addressModeU","addressModeV","push","Renderbuffer","Texture","webglFormat","getWebGLTextureFormat","_resizeAttachments","_this$depthStencilAtt","drawingBufferWidth","drawingBufferHeight","log","_iterator2","_step2","resize","_attachRenderbuffer","_attachment","_slicedToArray2","_attachment$","layer","_attachment$2","level","_attachTexture","renderbuffer","framebufferRenderbuffer","RENDERBUFFER","_this$device","gl2","bindTexture","target","TEXTURE_2D_ARRAY","TEXTURE_3D","assertWebGL2","framebufferTextureLayer","TEXTURE_CUBE_MAP","face","mapIndexToCubeMapFace","framebufferTexture2D","TEXTURE_2D","assert","Framebuffer","exports","TEXTURE_CUBE_MAP_POSITIVE_X","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_UNSUPPORTED","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"],"sources":["../../../../src/adapter/resources/webgl-framebuffer.ts"],"sourcesContent":["// luma.gl, MIT license\n\nimport type {FramebufferProps, ColorTextureFormat} from '@luma.gl/api';\nimport {Framebuffer, Texture, log, assert} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\nimport WebGLTexture from './webgl-texture';\nimport Renderbuffer from '../objects/webgl-renderbuffer';\nimport {getWebGLTextureFormat, getWebGLDepthStencilAttachment} from '../converters/texture-formats';\n\nexport type TextureAttachment = [Texture, number?, number?];\nexport type Attachment = WebGLTexture | Renderbuffer | TextureAttachment;\n\n/** luma.gl Framebuffer, WebGL implementation */\nexport default class WEBGLFramebuffer extends Framebuffer {\n device: WebGLDevice;\n gl: WebGLRenderingContext;\n handle: WebGLFramebuffer;\n\n get texture() { return this.colorAttachments[0]; }\n readonly colorAttachments: WebGLTexture[] = [];\n readonly depthStencilAttachment: WebGLTexture | null = null;\n protected _ownResources: (WebGLTexture | Renderbuffer)[] = [];\n\n constructor(device: WebGLDevice, props: FramebufferProps) {\n super(device, props);\n this.device = device;\n this.gl = device.gl;\n this.handle = this.props.handle !== undefined ? this.props.handle : this.gl.createFramebuffer();\n\n if (this.handle) { // default framebuffer is null...\n // @ts-expect-error Per SPECTOR docs\n this.handle.__SPECTOR_Metadata = {id: this.props.id, props: this.props};\n }\n\n this.colorAttachments = this._createColorAttachments();\n // @ts-expect-error\n this.depthStencilAttachment = this._createDepthStencilAttachment();\n\n /** Attach from a map of attachments */\n const prevHandle = this.gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n\n // Walk the attachments\n for (let i = 0; i < this.colorAttachments.length; ++i) {\n const attachment = this.colorAttachments[i];\n const attachmentPoint = GL.COLOR_ATTACHMENT0 + i;\n if (attachment) {\n this._attachOne(attachmentPoint, attachment);\n }\n }\n\n if (this.props.depthStencilAttachment) {\n this._attachOne(getWebGLDepthStencilAttachment(this.depthStencilAttachment.format), this.depthStencilAttachment);\n }\n\n // @ts-expect-error\n this.gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n\n // @ts-expect-error\n if (props.check !== false) {\n this._checkStatus();\n }\n }\n\n override destroy(): void {\n if (this.handle !== null) {\n for (const resource of this._ownResources) {\n resource.destroy();\n }\n this.gl.deleteFramebuffer(this.handle);\n // this.handle = null;\n this.destroyed = true;\n }\n }\n\n // PRIVATE\n\n /** Check the status */\n protected _checkStatus(): void {\n const {gl} = this;\n const prevHandle = gl.bindFramebuffer(GL.FRAMEBUFFER, this.handle);\n const status = gl.checkFramebufferStatus(GL.FRAMEBUFFER);\n // @ts-expect-error\n gl.bindFramebuffer(GL.FRAMEBUFFER, prevHandle || null);\n if (status !== gl.FRAMEBUFFER_COMPLETE) {\n throw new Error(`Framebuffer ${_getFrameBufferStatus(status)}`);\n }\n }\n\n _createColorAttachments(): WebGLTexture[] {\n return this.props.colorAttachments.map(colorAttachment => {\n if (!colorAttachment) {\n return undefined;\n }\n if (colorAttachment instanceof WebGLTexture) {\n return colorAttachment;\n }\n // if (typeof colorAttachment === 'default') {\n // return this._createColorAttachment('rgba8unorm', this.width, this.height);\n // }\n // @ts-expect-error\n return this._createColorAttachment(colorAttachment, this.width, this.height);\n });\n }\n\n /** Create a color attachment */\n protected _createColorAttachment(format: ColorTextureFormat, width: number, height: number): WebGLTexture {\n const texture = this.device._createTexture({\n id: `${this.id}-color`,\n data: null, // reserves texture memory, but texels are undefined\n format,\n // type: GL.UNSIGNED_BYTE,\n width,\n height,\n // Note: Mipmapping can be disabled by texture resource when we resize the texture\n // to a non-power-of-two dimenstion (NPOT texture) under WebGL1. To have consistant\n // behavior we always disable mipmaps.\n mipmaps: false,\n // Set MIN and MAG filtering parameters so mipmaps are not used in sampling.\n // Use LINEAR so subpixel algos like fxaa work.\n // Set WRAP modes that support NPOT textures too.\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n },\n // parameters: {\n // [GL.TEXTURE_MIN_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_MAG_FILTER]: GL.LINEAR,\n // [GL.TEXTURE_WRAP_S]: GL.CLAMP_TO_EDGE,\n // [GL.TEXTURE_WRAP_T]: GL.CLAMP_TO_EDGE\n // }\n }) as WebGLTexture;\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Create a depth stencil attachment GL.DEPTH24_STENCIL8 */\n protected _createDepthStencilAttachment(): Renderbuffer | WebGLTexture {\n if (!this.props.depthStencilAttachment) {\n return undefined;\n }\n if (this.props.depthStencilAttachment instanceof Renderbuffer) {\n return this.props.depthStencilAttachment;\n }\n if (this.props.depthStencilAttachment instanceof Texture) {\n return this.props.depthStencilAttachment as unknown as WebGLTexture;\n }\n const format = this.props.depthStencilAttachment;\n const webglFormat = getWebGLTextureFormat(this.gl, format);\n\n const texture = new Renderbuffer(this.device, {\n id: `${this.id}-depth-stencil`, // TODO misleading if not depth and stencil?\n format: webglFormat,\n // dataFormat: GL.DEPTH_STENCIL,\n // type: GL.UNSIGNED_INT_24_8,\n width: this.width,\n height: this.height\n });\n this._ownResources.push(texture);\n return texture;\n }\n\n /** Attachment resize is expected to be a noop if size is same */\n protected _resizeAttachments(width: number, height: number): this {\n // for default framebuffer, just update the stored size\n if (this.handle === null) {\n // assert(width === undefined && height === undefined);\n this.width = this.gl.drawingBufferWidth;\n this.height = this.gl.drawingBufferHeight;\n return this;\n }\n if (width === undefined) {\n width = this.gl.drawingBufferWidth;\n }\n if (height === undefined) {\n height = this.gl.drawingBufferHeight;\n }\n\n if (width !== this.width && height !== this.height) {\n log.log(2, `Resizing framebuffer ${this.id} to ${width}x${height}`)();\n }\n\n for (const colorAttachment of this.colorAttachments) {\n colorAttachment.resize({width, height});\n }\n this.depthStencilAttachment?.resize({width, height});\n return this;\n }\n\n /** Attach one attachment */\n protected _attachOne(attachmentPoint: GL, attachment: Attachment): WebGLTexture | Renderbuffer {\n if (attachment instanceof Renderbuffer) {\n this._attachRenderbuffer(attachmentPoint, attachment);\n return attachment;\n } else if (Array.isArray(attachment)) {\n const [texture, layer = 0, level = 0] = attachment;\n this._attachTexture(attachmentPoint, texture as unknown as WebGLTexture, layer, level);\n return texture as unknown as WebGLTexture;\n } else if (attachment instanceof WebGLTexture) {\n this._attachTexture(attachmentPoint, attachment, 0, 0);\n return attachment;\n }\n throw new Error('attach');\n }\n\n protected _attachRenderbuffer(attachment: GL, renderbuffer: Renderbuffer): void {\n this.gl.framebufferRenderbuffer(\n GL.FRAMEBUFFER,\n attachment,\n GL.RENDERBUFFER,\n renderbuffer.handle\n );\n }\n\n /**\n * @param attachment\n * @param texture\n * @param layer = 0 - index into WebGLTextureArray and Texture3D or face for `TextureCubeMap`\n * @param level = 0 - mipmapLevel (must be 0 in WebGL1)\n */\n protected _attachTexture(attachment: GL, texture: WebGLTexture, layer: number, level: number): void {\n const {gl, gl2} = this.device;\n gl.bindTexture(texture.target, texture.handle);\n\n switch (texture.target) {\n case GL.TEXTURE_2D_ARRAY:\n case GL.TEXTURE_3D:\n this.device.assertWebGL2();\n gl2?.framebufferTextureLayer(GL.FRAMEBUFFER, attachment, texture.target, level, layer);\n break;\n\n case GL.TEXTURE_CUBE_MAP:\n // layer must be a cubemap face (or if index, converted to cube map face)\n const face = mapIndexToCubeMapFace(layer);\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, face, texture.handle, level);\n break;\n\n case GL.TEXTURE_2D:\n gl.framebufferTexture2D(GL.FRAMEBUFFER, attachment, GL.TEXTURE_2D, texture.handle, level);\n break;\n\n default:\n assert(false, 'Illegal texture type');\n }\n\n gl.bindTexture(texture.target, null);\n }\n}\n\n// Helper functions\n\n// Map an index to a cube map face constant\nfunction mapIndexToCubeMapFace(layer: number | GL): GL {\n // TEXTURE_CUBE_MAP_POSITIVE_X is a big value (0x8515)\n // if smaller assume layer is index, otherwise assume it is already a cube map face constant\n return layer < GL.TEXTURE_CUBE_MAP_POSITIVE_X ? layer + GL.TEXTURE_CUBE_MAP_POSITIVE_X : layer;\n}\n\n// Helper METHODS\n// Get a string describing the framebuffer error if installed\nfunction _getFrameBufferStatus(status: GL) {\n switch (status) {\n case GL.FRAMEBUFFER_COMPLETE:\n return 'success';\n case GL.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:\n return 'Mismatched attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:\n return 'No attachments';\n case GL.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:\n return 'Height/width mismatch';\n case GL.FRAMEBUFFER_UNSUPPORTED:\n return 'Unsupported or split attachments';\n // WebGL2\n case GL.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:\n return 'Samples mismatch';\n // OVR_multiview2 extension\n // case GL.FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR: return 'baseViewIndex mismatch';\n default:\n return `${status}`;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,50 +1,34 @@
|
|
|
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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
10
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
11
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
14
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
15
|
var _api = require("@luma.gl/api");
|
|
25
|
-
|
|
26
16
|
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); }; }
|
|
27
|
-
|
|
28
17
|
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; } }
|
|
29
|
-
|
|
30
18
|
var WEBGLRenderPass = function (_RenderPass) {
|
|
31
19
|
(0, _inherits2.default)(WEBGLRenderPass, _RenderPass);
|
|
32
|
-
|
|
33
20
|
var _super = _createSuper(WEBGLRenderPass);
|
|
34
|
-
|
|
35
21
|
function WEBGLRenderPass(device, props) {
|
|
36
22
|
var _this;
|
|
37
|
-
|
|
38
23
|
(0, _classCallCheck2.default)(this, WEBGLRenderPass);
|
|
39
24
|
_this = _super.call(this, device, props);
|
|
40
25
|
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "device", void 0);
|
|
41
26
|
_this.device = device;
|
|
42
27
|
return _this;
|
|
43
28
|
}
|
|
44
|
-
|
|
45
29
|
(0, _createClass2.default)(WEBGLRenderPass, [{
|
|
46
|
-
key: "
|
|
47
|
-
value: function
|
|
30
|
+
key: "end",
|
|
31
|
+
value: function end() {}
|
|
48
32
|
}, {
|
|
49
33
|
key: "pushDebugGroup",
|
|
50
34
|
value: function pushDebugGroup(groupLabel) {}
|
|
@@ -57,6 +41,5 @@ var WEBGLRenderPass = function (_RenderPass) {
|
|
|
57
41
|
}]);
|
|
58
42
|
return WEBGLRenderPass;
|
|
59
43
|
}(_api.RenderPass);
|
|
60
|
-
|
|
61
44
|
exports.default = WEBGLRenderPass;
|
|
62
45
|
//# sourceMappingURL=webgl-render-pass.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"webgl-render-pass.js","names":["_api","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","WEBGLRenderPass","_RenderPass","_inherits2","_super","device","props","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","_createClass2","key","value","end","pushDebugGroup","groupLabel","popDebugGroup","insertDebugMarker","markerLabel","RenderPass","exports"],"sources":["../../../../src/adapter/resources/webgl-render-pass.ts"],"sourcesContent":["import {RenderPass, RenderPassProps} from '@luma.gl/api';\nimport WebGLDevice from '../webgl-device';\n\nexport default class WEBGLRenderPass extends RenderPass {\n readonly device: WebGLDevice;\n\n constructor(device: WebGLDevice, props: RenderPassProps) {\n super(device, props);\n this.device = device;\n }\n\n end(): void {}\n\n pushDebugGroup(groupLabel: string): void {}\n popDebugGroup(): void {}\n insertDebugMarker(markerLabel: string): void {}\n\n // writeTimestamp(querySet: GPUQuerySet, queryIndex: number): void;\n\n // beginOcclusionQuery(queryIndex: number): void;\n // endOcclusionQuery(): void;\n\n // executeBundles(bundles: Iterable<GPURenderBundle>): void;\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,OAAA;AAAyD,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,OAAA,CAAAC,SAAA,CAAAP,KAAA,EAAAQ,SAAA,EAAAJ,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAS,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAR,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAQ,OAAA,qBAAAA,OAAA,CAAAC,SAAA,oBAAAD,OAAA,CAAAC,SAAA,CAAAI,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,OAAA,CAAAC,SAAA,CAAAM,OAAA,8CAAAI,CAAA;AAAA,IAGpCC,eAAe,aAAAC,WAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,eAAA,EAAAC,WAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,eAAA;EAGlC,SAAAA,gBAAYI,MAAmB,EAAEC,KAAsB,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAvB,OAAA,QAAAgB,eAAA;IACvDM,KAAA,GAAAH,MAAA,CAAAL,IAAA,OAAMM,MAAM,EAAEC,KAAK;IAAE,IAAAG,gBAAA,CAAAxB,OAAA,MAAAyB,uBAAA,CAAAzB,OAAA,EAAAsB,KAAA;IACrBA,KAAA,CAAKF,MAAM,GAAGA,MAAM;IAAC,OAAAE,KAAA;EACvB;EAAC,IAAAI,aAAA,CAAA1B,OAAA,EAAAgB,eAAA;IAAAW,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAA,EAAY,CAAC;EAAC;IAAAF,GAAA;IAAAC,KAAA,EAEd,SAAAE,eAAeC,UAAkB,EAAQ,CAAC;EAAC;IAAAJ,GAAA;IAAAC,KAAA,EAC3C,SAAAI,cAAA,EAAsB,CAAC;EAAC;IAAAL,GAAA;IAAAC,KAAA,EACxB,SAAAK,kBAAkBC,WAAmB,EAAQ,CAAC;EAAC;EAAA,OAAAlB,eAAA;AAAA,EAZJmB,eAAU;AAAAC,OAAA,CAAApC,OAAA,GAAAgB,eAAA"}
|