@luma.gl/webgl 9.0.0-alpha.16 → 9.0.0-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +117 -200
- package/dist/adapter/converters/device-parameters.js.map +1 -0
- package/dist/adapter/converters/renderbuffer-formats.d.ts +1 -1
- package/dist/adapter/converters/renderbuffer-formats.d.ts.map +1 -1
- package/dist/adapter/converters/renderbuffer-formats.js +172 -62
- package/dist/adapter/converters/renderbuffer-formats.js.map +1 -0
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +151 -149
- package/dist/adapter/converters/sampler-parameters.js.map +1 -0
- package/dist/adapter/converters/texture-formats.d.ts +2 -2
- package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
- package/dist/adapter/converters/texture-formats.js +847 -438
- package/dist/adapter/converters/texture-formats.js.map +1 -0
- package/dist/adapter/converters/vertex-formats.js +24 -15
- package/dist/adapter/converters/vertex-formats.js.map +1 -0
- package/dist/adapter/device-helpers/device-features.js +84 -120
- package/dist/adapter/device-helpers/device-features.js.map +1 -0
- package/dist/adapter/device-helpers/device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/device-limits.js +83 -88
- package/dist/adapter/device-helpers/device-limits.js.map +1 -0
- package/dist/adapter/device-helpers/get-device-info.js +37 -42
- package/dist/adapter/device-helpers/get-device-info.js.map +1 -0
- package/dist/adapter/device-helpers/is-old-ie.js +8 -10
- package/dist/adapter/device-helpers/is-old-ie.js.map +1 -0
- package/dist/adapter/helpers/attribute-utils.js +57 -50
- package/dist/adapter/helpers/attribute-utils.js.map +1 -0
- package/dist/adapter/helpers/get-shader-info.d.ts +1 -1
- package/dist/adapter/helpers/get-shader-info.d.ts.map +1 -1
- package/dist/adapter/helpers/get-shader-info.js +19 -21
- package/dist/adapter/helpers/get-shader-info.js.map +1 -0
- package/dist/adapter/helpers/get-shader-layout.js +251 -310
- package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js +26 -32
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +80 -67
- package/dist/adapter/helpers/set-uniform.js.map +1 -0
- package/dist/adapter/helpers/uniforms.js +75 -80
- package/dist/adapter/helpers/uniforms.js.map +1 -0
- package/dist/adapter/objects/constants-to-keys.js +26 -33
- package/dist/adapter/objects/constants-to-keys.js.map +1 -0
- package/dist/adapter/objects/webgl-renderbuffer.d.ts +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-renderbuffer.js +70 -67
- package/dist/adapter/objects/webgl-renderbuffer.js.map +1 -0
- package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-resource.js +158 -213
- package/dist/adapter/objects/webgl-resource.js.map +1 -0
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.d.ts.map +1 -1
- package/dist/adapter/objects/webgl-vertex-array-object.js +66 -74
- package/dist/adapter/objects/webgl-vertex-array-object.js.map +1 -0
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +118 -150
- package/dist/adapter/resources/webgl-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-buffer.d.ts +5 -5
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +41 -40
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
- package/dist/adapter/resources/webgl-command-encoder.js +37 -26
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
- package/dist/adapter/resources/webgl-external-texture.js +1 -91
- package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts +2 -2
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +198 -231
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pass.js +11 -8
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +289 -316
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-sampler.js +35 -42
- package/dist/adapter/resources/webgl-sampler.js.map +1 -0
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +53 -57
- package/dist/adapter/resources/webgl-shader.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +4 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +697 -661
- package/dist/adapter/resources/webgl-texture.js.map +1 -0
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +35 -55
- package/dist/adapter/webgl-canvas-context.js.map +1 -0
- package/dist/adapter/webgl-device.d.ts +5 -0
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +270 -287
- package/dist/adapter/webgl-device.js.map +1 -0
- package/dist/classic/accessor.js +103 -120
- package/dist/classic/accessor.js.map +1 -0
- package/dist/classic/buffer.d.ts +1 -1
- package/dist/classic/buffer.d.ts.map +1 -1
- package/dist/classic/buffer.js +300 -325
- package/dist/classic/buffer.js.map +1 -0
- package/dist/classic/typed-array-utils.d.ts +1 -1
- package/dist/classic/typed-array-utils.d.ts.map +1 -1
- package/dist/classic/typed-array-utils.js +81 -91
- package/dist/classic/typed-array-utils.js.map +1 -0
- package/dist/context/context/create-browser-context.d.ts +3 -1
- package/dist/context/context/create-browser-context.d.ts.map +1 -1
- package/dist/context/context/create-browser-context.js +49 -66
- package/dist/context/context/create-browser-context.js.map +1 -0
- package/dist/context/context/create-headless-context.d.ts +1 -1
- package/dist/context/context/create-headless-context.d.ts.map +1 -1
- package/dist/context/context/create-headless-context.js +30 -24
- package/dist/context/context/create-headless-context.js.map +1 -0
- package/dist/context/context/webgl-checks.js +17 -25
- package/dist/context/context/webgl-checks.js.map +1 -0
- package/dist/context/debug/spector.d.ts +3 -1
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +50 -53
- package/dist/context/debug/spector.js.map +1 -0
- package/dist/context/debug/webgl-developer-tools.d.ts +1 -1
- package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +76 -107
- package/dist/context/debug/webgl-developer-tools.js.map +1 -0
- package/dist/context/parameters/unified-parameter-api.js +46 -93
- package/dist/context/parameters/unified-parameter-api.js.map +1 -0
- package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
- package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js +404 -462
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
- package/dist/context/polyfill/context-data.js +10 -16
- package/dist/context/polyfill/context-data.js.map +1 -0
- package/dist/context/polyfill/get-parameter-polyfill.js +71 -91
- package/dist/context/polyfill/get-parameter-polyfill.js.map +1 -0
- package/dist/context/polyfill/polyfill-context.js +73 -75
- package/dist/context/polyfill/polyfill-context.js.map +1 -0
- package/dist/context/polyfill/polyfill-table.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-table.js +116 -133
- package/dist/context/polyfill/polyfill-table.js.map +1 -0
- package/dist/context/polyfill/polyfill-vertex-array-object.d.ts.map +1 -1
- package/dist/context/polyfill/polyfill-vertex-array-object.js +227 -255
- package/dist/context/polyfill/polyfill-vertex-array-object.js.map +1 -0
- package/dist/context/state-tracker/deep-array-equal.js +14 -16
- package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
- package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
- package/dist/context/state-tracker/track-context-state.js +127 -183
- package/dist/context/state-tracker/track-context-state.js.map +1 -0
- package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
- package/dist/context/state-tracker/with-parameters.js +29 -43
- package/dist/context/state-tracker/with-parameters.js.map +1 -0
- package/dist/dist.dev.js +9205 -0
- package/dist/index.cjs +5948 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -41
- package/dist/index.js.map +1 -0
- package/dist/types/webgl.d.ts +16 -16
- package/dist/types/webgl.d.ts.map +1 -1
- package/dist/types/webgl.js +1 -0
- package/dist/types/webgl.js.map +1 -0
- package/dist/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -0
- package/dist.min.js +36 -0
- package/package.json +18 -9
- package/src/adapter/converters/device-parameters.ts +5 -2
- package/src/adapter/converters/sampler-parameters.ts +4 -2
- package/src/adapter/converters/texture-formats.ts +3 -1
- package/src/adapter/device-helpers/get-device-info.ts +8 -8
- package/src/adapter/helpers/get-shader-info.ts +1 -1
- package/src/adapter/helpers/get-shader-layout.ts +4 -4
- package/src/adapter/helpers/parse-shader-compiler-log.ts +1 -1
- package/src/adapter/helpers/set-uniform.ts +2 -0
- package/src/adapter/objects/webgl-renderbuffer.ts +1 -1
- package/src/adapter/objects/webgl-resource.ts +1 -1
- package/src/adapter/objects/webgl-vertex-array-object.ts +1 -1
- package/src/adapter/resources/webgl-buffer.ts +6 -6
- package/src/adapter/resources/webgl-command-encoder.ts +1 -1
- package/src/adapter/resources/webgl-framebuffer.ts +3 -4
- package/src/adapter/resources/webgl-render-pipeline.ts +19 -20
- package/src/adapter/resources/webgl-shader.ts +1 -1
- package/src/adapter/resources/webgl-texture.ts +8 -9
- package/src/adapter/webgl-canvas-context.ts +2 -2
- package/src/adapter/webgl-device.ts +12 -2
- package/src/classic/accessor.ts +1 -1
- package/src/classic/buffer.ts +3 -3
- package/src/classic/typed-array-utils.ts +1 -1
- package/src/context/context/create-browser-context.ts +4 -2
- package/src/context/context/create-headless-context.ts +2 -2
- package/src/context/debug/spector.ts +5 -4
- package/src/context/debug/webgl-developer-tools.ts +1 -0
- package/src/context/polyfill/polyfill-table.ts +1 -0
- package/src/context/polyfill/polyfill-vertex-array-object.ts +2 -0
- package/src/context/state-tracker/track-context-state.ts +6 -5
- package/src/context/state-tracker/with-parameters.ts +1 -1
- package/src/index.ts +1 -5
- package/src/types/webgl.ts +2 -0
- package/dist/bundle.d.ts +0 -2
- package/dist/bundle.d.ts.map +0 -1
- package/dist/bundle.js +0 -4
- package/dist/dist.min.js +0 -1
- package/dist/es5/adapter/converters/device-parameters.js +0 -139
- package/dist/es5/adapter/converters/device-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/renderbuffer-formats.js +0 -151
- package/dist/es5/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/es5/adapter/converters/sampler-parameters.js +0 -182
- package/dist/es5/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/es5/adapter/converters/texture-formats.js +0 -950
- package/dist/es5/adapter/converters/texture-formats.js.map +0 -1
- package/dist/es5/adapter/converters/vertex-formats.js +0 -36
- package/dist/es5/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-features.js +0 -121
- package/dist/es5/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/es5/adapter/device-helpers/device-limits.js +0 -54
- package/dist/es5/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/es5/adapter/device-helpers/get-device-info.js +0 -49
- package/dist/es5/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/es5/adapter/device-helpers/is-old-ie.js +0 -15
- package/dist/es5/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/es5/adapter/helpers/attribute-utils.js +0 -69
- package/dist/es5/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-info.js +0 -31
- package/dist/es5/adapter/helpers/get-shader-info.js.map +0 -1
- package/dist/es5/adapter/helpers/get-shader-layout.js +0 -311
- package/dist/es5/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js +0 -54
- package/dist/es5/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/es5/adapter/helpers/set-uniform.js +0 -92
- package/dist/es5/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/es5/adapter/helpers/uniforms.js +0 -88
- package/dist/es5/adapter/helpers/uniforms.js.map +0 -1
- package/dist/es5/adapter/objects/constants-to-keys.js +0 -43
- package/dist/es5/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-renderbuffer.js +0 -122
- package/dist/es5/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-resource.js +0 -233
- package/dist/es5/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js +0 -109
- package/dist/es5/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-buffer.js +0 -196
- package/dist/es5/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-buffer.js +0 -70
- package/dist/es5/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-command-encoder.js +0 -80
- package/dist/es5/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/es5/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-framebuffer.js +0 -275
- package/dist/es5/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pass.js +0 -45
- package/dist/es5/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-render-pipeline.js +0 -385
- package/dist/es5/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-sampler.js +0 -75
- package/dist/es5/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-shader.js +0 -111
- package/dist/es5/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/es5/adapter/resources/webgl-texture.js +0 -826
- package/dist/es5/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/es5/adapter/webgl-canvas-context.js +0 -72
- package/dist/es5/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/es5/adapter/webgl-device.js +0 -387
- package/dist/es5/adapter/webgl-device.js.map +0 -1
- package/dist/es5/bundle.js +0 -6
- package/dist/es5/bundle.js.map +0 -1
- package/dist/es5/classic/accessor.js +0 -151
- package/dist/es5/classic/accessor.js.map +0 -1
- package/dist/es5/classic/buffer.js +0 -398
- package/dist/es5/classic/buffer.js.map +0 -1
- package/dist/es5/classic/typed-array-utils.js +0 -99
- package/dist/es5/classic/typed-array-utils.js.map +0 -1
- package/dist/es5/context/context/create-browser-context.js +0 -66
- package/dist/es5/context/context/create-browser-context.js.map +0 -1
- package/dist/es5/context/context/create-headless-context.js +0 -47
- package/dist/es5/context/context/create-headless-context.js.map +0 -1
- package/dist/es5/context/context/webgl-checks.js +0 -44
- package/dist/es5/context/context/webgl-checks.js.map +0 -1
- package/dist/es5/context/debug/spector.js +0 -99
- package/dist/es5/context/debug/spector.js.map +0 -1
- package/dist/es5/context/debug/webgl-developer-tools.js +0 -146
- package/dist/es5/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/es5/context/parameters/unified-parameter-api.js +0 -76
- package/dist/es5/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/es5/context/parameters/webgl-parameter-tables.js +0 -346
- package/dist/es5/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/es5/context/polyfill/context-data.js +0 -18
- package/dist/es5/context/polyfill/context-data.js.map +0 -1
- package/dist/es5/context/polyfill/get-parameter-polyfill.js +0 -69
- package/dist/es5/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-context.js +0 -109
- package/dist/es5/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-table.js +0 -143
- package/dist/es5/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js +0 -271
- package/dist/es5/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/es5/context/state-tracker/deep-array-equal.js +0 -23
- package/dist/es5/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/es5/context/state-tracker/track-context-state.js +0 -167
- package/dist/es5/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/es5/context/state-tracker/with-parameters.js +0 -40
- package/dist/es5/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/es5/index.js +0 -249
- package/dist/es5/index.js.map +0 -1
- package/dist/es5/init.js +0 -7
- package/dist/es5/init.js.map +0 -1
- package/dist/es5/types/webgl.js +0 -5
- package/dist/es5/types/webgl.js.map +0 -1
- package/dist/es5/types.js +0 -2
- package/dist/es5/types.js.map +0 -1
- package/dist/esm/adapter/converters/device-parameters.js +0 -137
- package/dist/esm/adapter/converters/device-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/renderbuffer-formats.js +0 -181
- package/dist/esm/adapter/converters/renderbuffer-formats.js.map +0 -1
- package/dist/esm/adapter/converters/sampler-parameters.js +0 -172
- package/dist/esm/adapter/converters/sampler-parameters.js.map +0 -1
- package/dist/esm/adapter/converters/texture-formats.js +0 -901
- package/dist/esm/adapter/converters/texture-formats.js.map +0 -1
- package/dist/esm/adapter/converters/vertex-formats.js +0 -29
- package/dist/esm/adapter/converters/vertex-formats.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-features.js +0 -95
- package/dist/esm/adapter/device-helpers/device-features.js.map +0 -1
- package/dist/esm/adapter/device-helpers/device-limits.js +0 -88
- package/dist/esm/adapter/device-helpers/device-limits.js.map +0 -1
- package/dist/esm/adapter/device-helpers/get-device-info.js +0 -42
- package/dist/esm/adapter/device-helpers/get-device-info.js.map +0 -1
- package/dist/esm/adapter/device-helpers/is-old-ie.js +0 -9
- package/dist/esm/adapter/device-helpers/is-old-ie.js.map +0 -1
- package/dist/esm/adapter/helpers/attribute-utils.js +0 -64
- package/dist/esm/adapter/helpers/attribute-utils.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-info.js +0 -25
- package/dist/esm/adapter/helpers/get-shader-info.js.map +0 -1
- package/dist/esm/adapter/helpers/get-shader-layout.js +0 -282
- package/dist/esm/adapter/helpers/get-shader-layout.js.map +0 -1
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js +0 -30
- package/dist/esm/adapter/helpers/parse-shader-compiler-log.js.map +0 -1
- package/dist/esm/adapter/helpers/set-uniform.js +0 -85
- package/dist/esm/adapter/helpers/set-uniform.js.map +0 -1
- package/dist/esm/adapter/helpers/uniforms.js +0 -89
- package/dist/esm/adapter/helpers/uniforms.js.map +0 -1
- package/dist/esm/adapter/objects/constants-to-keys.js +0 -35
- package/dist/esm/adapter/objects/constants-to-keys.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-renderbuffer.js +0 -78
- package/dist/esm/adapter/objects/webgl-renderbuffer.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-resource.js +0 -163
- package/dist/esm/adapter/objects/webgl-resource.js.map +0 -1
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js +0 -74
- package/dist/esm/adapter/objects/webgl-vertex-array-object.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-buffer.js +0 -134
- package/dist/esm/adapter/resources/webgl-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-buffer.js +0 -50
- package/dist/esm/adapter/resources/webgl-command-buffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-command-encoder.js +0 -41
- package/dist/esm/adapter/resources/webgl-command-encoder.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-external-texture.js +0 -2
- package/dist/esm/adapter/resources/webgl-external-texture.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-framebuffer.js +0 -207
- package/dist/esm/adapter/resources/webgl-framebuffer.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pass.js +0 -14
- package/dist/esm/adapter/resources/webgl-render-pass.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-render-pipeline.js +0 -311
- package/dist/esm/adapter/resources/webgl-render-pipeline.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-sampler.js +0 -42
- package/dist/esm/adapter/resources/webgl-sampler.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-shader.js +0 -62
- package/dist/esm/adapter/resources/webgl-shader.js.map +0 -1
- package/dist/esm/adapter/resources/webgl-texture.js +0 -714
- package/dist/esm/adapter/resources/webgl-texture.js.map +0 -1
- package/dist/esm/adapter/webgl-canvas-context.js +0 -41
- package/dist/esm/adapter/webgl-canvas-context.js.map +0 -1
- package/dist/esm/adapter/webgl-device.js +0 -276
- package/dist/esm/adapter/webgl-device.js.map +0 -1
- package/dist/esm/bundle.js +0 -4
- package/dist/esm/bundle.js.map +0 -1
- package/dist/esm/classic/accessor.js +0 -120
- package/dist/esm/classic/accessor.js.map +0 -1
- package/dist/esm/classic/buffer.js +0 -327
- package/dist/esm/classic/buffer.js.map +0 -1
- package/dist/esm/classic/typed-array-utils.js +0 -92
- package/dist/esm/classic/typed-array-utils.js.map +0 -1
- package/dist/esm/context/context/create-browser-context.js +0 -53
- package/dist/esm/context/context/create-browser-context.js.map +0 -1
- package/dist/esm/context/context/create-headless-context.js +0 -39
- package/dist/esm/context/context/create-headless-context.js.map +0 -1
- package/dist/esm/context/context/webgl-checks.js +0 -31
- package/dist/esm/context/context/webgl-checks.js.map +0 -1
- package/dist/esm/context/debug/spector.js +0 -64
- package/dist/esm/context/debug/spector.js.map +0 -1
- package/dist/esm/context/debug/webgl-developer-tools.js +0 -97
- package/dist/esm/context/debug/webgl-developer-tools.js.map +0 -1
- package/dist/esm/context/parameters/unified-parameter-api.js +0 -55
- package/dist/esm/context/parameters/unified-parameter-api.js.map +0 -1
- package/dist/esm/context/parameters/webgl-parameter-tables.js +0 -427
- package/dist/esm/context/parameters/webgl-parameter-tables.js.map +0 -1
- package/dist/esm/context/polyfill/context-data.js +0 -12
- package/dist/esm/context/polyfill/context-data.js.map +0 -1
- package/dist/esm/context/polyfill/get-parameter-polyfill.js +0 -86
- package/dist/esm/context/polyfill/get-parameter-polyfill.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-context.js +0 -84
- package/dist/esm/context/polyfill/polyfill-context.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-table.js +0 -138
- package/dist/esm/context/polyfill/polyfill-table.js.map +0 -1
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js +0 -265
- package/dist/esm/context/polyfill/polyfill-vertex-array-object.js.map +0 -1
- package/dist/esm/context/state-tracker/deep-array-equal.js +0 -17
- package/dist/esm/context/state-tracker/deep-array-equal.js.map +0 -1
- package/dist/esm/context/state-tracker/track-context-state.js +0 -148
- package/dist/esm/context/state-tracker/track-context-state.js.map +0 -1
- package/dist/esm/context/state-tracker/with-parameters.js +0 -34
- package/dist/esm/context/state-tracker/with-parameters.js.map +0 -1
- package/dist/esm/index.js +0 -27
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/init.js +0 -4
- package/dist/esm/init.js.map +0 -1
- package/dist/esm/types/webgl.js +0 -2
- package/dist/esm/types/webgl.js.map +0 -1
- package/dist/esm/types.js +0 -2
- package/dist/esm/types.js.map +0 -1
- package/dist/init.d.ts +0 -2
- package/dist/init.d.ts.map +0 -1
- package/dist/init.js +0 -3
- package/src/bundle.ts +0 -4
- package/src/init.ts +0 -4
|
@@ -1,75 +1,78 @@
|
|
|
1
|
-
/* eslint-disable no-inline-comments */
|
|
2
1
|
import { assert } from '@luma.gl/api';
|
|
3
2
|
import GL from '@luma.gl/constants';
|
|
4
|
-
import WebGLResource from
|
|
5
|
-
import { isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel } from
|
|
3
|
+
import WebGLResource from "./webgl-resource.js";
|
|
4
|
+
import { isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel } from "../converters/renderbuffer-formats.js";
|
|
6
5
|
const DEFAULT_RENDERBUFFER_PROPS = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
id: undefined,
|
|
7
|
+
handle: undefined,
|
|
8
|
+
userData: undefined,
|
|
9
|
+
format: 0,
|
|
10
|
+
width: 1,
|
|
11
|
+
height: 1,
|
|
12
|
+
samples: 0
|
|
14
13
|
};
|
|
15
|
-
/**
|
|
16
|
-
* Renderbuffers are GPU objects that contain images.
|
|
17
|
-
* In contrast to Textures they are optimized for use as render targets, with Framebuffers.
|
|
18
|
-
* while Textures may not be, and are the logical choice when
|
|
19
|
-
* you do not need to sample (i.e. in a post-pass shader)
|
|
20
|
-
* from the produced image. If you need to resample
|
|
21
|
-
* (such as when reading depth back in a second shader pass),
|
|
22
|
-
* use Textures instead.
|
|
23
|
-
* Renderbuffer objects also natively accommodate Multisampling (MSAA).
|
|
24
|
-
*/
|
|
25
14
|
export default class WEBGLRenderbuffer extends WebGLResource {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
15
|
+
get [Symbol.toStringTag]() {
|
|
16
|
+
return 'Renderbuffer';
|
|
17
|
+
}
|
|
18
|
+
get width() {
|
|
19
|
+
return this.props.width;
|
|
20
|
+
}
|
|
21
|
+
get height() {
|
|
22
|
+
return this.props.height;
|
|
23
|
+
}
|
|
24
|
+
get format() {
|
|
25
|
+
return this.props.format;
|
|
26
|
+
}
|
|
27
|
+
get samples() {
|
|
28
|
+
return this.props.samples;
|
|
29
|
+
}
|
|
30
|
+
static isSupported(gl, options) {
|
|
31
|
+
return !(options !== null && options !== void 0 && options.format) || isRenderbufferFormatSupported(gl, options.format);
|
|
32
|
+
}
|
|
33
|
+
constructor(device, props) {
|
|
34
|
+
super(device, props, DEFAULT_RENDERBUFFER_PROPS);
|
|
35
|
+
this._initialize(this.props);
|
|
36
|
+
}
|
|
37
|
+
resize(size) {
|
|
38
|
+
if (size.width !== this.width || size.height !== this.height) {
|
|
39
|
+
Object.assign(this.props, {
|
|
40
|
+
...size,
|
|
41
|
+
format: this.format,
|
|
42
|
+
samples: this.samples
|
|
43
|
+
});
|
|
44
|
+
this._initialize(this.props);
|
|
33
45
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
assert(format, 'Needs format');
|
|
51
|
-
this.trackDeallocatedMemory();
|
|
52
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
53
|
-
if (samples !== 0 && this.device.isWebGL2) {
|
|
54
|
-
// @ts-expect-error
|
|
55
|
-
this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
|
|
59
|
-
}
|
|
60
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
61
|
-
this.trackAllocatedMemory(width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format));
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
// RESOURCE IMPLEMENTATION
|
|
65
|
-
_createHandle() {
|
|
66
|
-
return this.gl.createRenderbuffer();
|
|
67
|
-
}
|
|
68
|
-
_deleteHandle() {
|
|
69
|
-
this.gl.deleteRenderbuffer(this.handle);
|
|
70
|
-
this.trackDeallocatedMemory();
|
|
71
|
-
}
|
|
72
|
-
_bindHandle(handle) {
|
|
73
|
-
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
_initialize(props) {
|
|
49
|
+
const {
|
|
50
|
+
format,
|
|
51
|
+
width,
|
|
52
|
+
height,
|
|
53
|
+
samples
|
|
54
|
+
} = props;
|
|
55
|
+
assert(format, 'Needs format');
|
|
56
|
+
this.trackDeallocatedMemory();
|
|
57
|
+
this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);
|
|
58
|
+
if (samples !== 0 && this.device.isWebGL2) {
|
|
59
|
+
this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);
|
|
60
|
+
} else {
|
|
61
|
+
this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);
|
|
74
62
|
}
|
|
63
|
+
this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);
|
|
64
|
+
this.trackAllocatedMemory(width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format));
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
_createHandle() {
|
|
68
|
+
return this.gl.createRenderbuffer();
|
|
69
|
+
}
|
|
70
|
+
_deleteHandle() {
|
|
71
|
+
this.gl.deleteRenderbuffer(this.handle);
|
|
72
|
+
this.trackDeallocatedMemory();
|
|
73
|
+
}
|
|
74
|
+
_bindHandle(handle) {
|
|
75
|
+
this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);
|
|
76
|
+
}
|
|
75
77
|
}
|
|
78
|
+
//# sourceMappingURL=webgl-renderbuffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-renderbuffer.js","names":["assert","GL","WebGLResource","isRenderbufferFormatSupported","getRenderbufferFormatBytesPerPixel","DEFAULT_RENDERBUFFER_PROPS","id","undefined","handle","userData","format","width","height","samples","WEBGLRenderbuffer","Symbol","toStringTag","props","isSupported","gl","options","constructor","device","_initialize","resize","size","Object","assign","trackDeallocatedMemory","bindRenderbuffer","RENDERBUFFER","isWebGL2","renderbufferStorageMultisample","renderbufferStorage","trackAllocatedMemory","_createHandle","createRenderbuffer","_deleteHandle","deleteRenderbuffer","_bindHandle"],"sources":["../../../src/adapter/objects/webgl-renderbuffer.ts"],"sourcesContent":["/* eslint-disable no-inline-comments */\nimport {assert, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport WebGLDevice from '../webgl-device';\nimport WebGLResource from './webgl-resource';\nimport {\n isRenderbufferFormatSupported, getRenderbufferFormatBytesPerPixel\n} from '../converters/renderbuffer-formats';\n\nexport type RenderbufferProps = ResourceProps & {\n format: number;\n width?: number;\n height?: number;\n samples?: number;\n};\n\nconst DEFAULT_RENDERBUFFER_PROPS: Required<RenderbufferProps> = {\n id: undefined,\n handle: undefined,\n userData: undefined,\n format: 0,\n width: 1, \n height: 1, \n samples: 0\n};\n\n/**\n * Renderbuffers are GPU objects that contain images.\n * In contrast to Textures they are optimized for use as render targets, with Framebuffers.\n * while Textures may not be, and are the logical choice when\n * you do not need to sample (i.e. in a post-pass shader)\n * from the produced image. If you need to resample\n * (such as when reading depth back in a second shader pass),\n * use Textures instead.\n * Renderbuffer objects also natively accommodate Multisampling (MSAA).\n */\nexport default class WEBGLRenderbuffer extends WebGLResource<RenderbufferProps> {\n override get [Symbol.toStringTag](): string { return 'Renderbuffer'; }\n\n get width(): number { return this.props.width; }\n get height(): number { return this.props.height; }\n get format(): number { return this.props.format; }\n get samples(): number { return this.props.samples; }\n\n static isSupported(gl: WebGLRenderingContext, options?: {format?: number}): boolean {\n return !options?.format || isRenderbufferFormatSupported(gl, options.format);\n }\n\n constructor(device: WebGLDevice, props: RenderbufferProps) {\n super(device, props, DEFAULT_RENDERBUFFER_PROPS);\n this._initialize(this.props);\n }\n\n resize(size: {width: number, height: number}): this {\n // Don't resize if width/height haven't changed\n if (size.width !== this.width || size.height !== this.height) {\n Object.assign(this.props, {...size, format: this.format, samples: this.samples});\n this._initialize(this.props);\n }\n return this;\n }\n\n // PRIVATE METHODS\n\n /** Creates and initializes a renderbuffer object's data store */\n protected _initialize(props: Required<RenderbufferProps>) {\n const {format, width, height, samples} = props;\n assert(format, 'Needs format');\n\n this.trackDeallocatedMemory();\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, this.handle);\n\n if (samples !== 0 && this.device.isWebGL2) {\n // @ts-expect-error\n this.gl.renderbufferStorageMultisample(GL.RENDERBUFFER, samples, format, width, height);\n } else {\n this.gl.renderbufferStorage(GL.RENDERBUFFER, format, width, height);\n }\n\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, null);\n\n this.trackAllocatedMemory(\n width * height * (samples || 1) * getRenderbufferFormatBytesPerPixel(format)\n );\n\n return this;\n }\n\n // RESOURCE IMPLEMENTATION\n\n override _createHandle() {\n return this.gl.createRenderbuffer();\n }\n\n override _deleteHandle(): void {\n this.gl.deleteRenderbuffer(this.handle);\n this.trackDeallocatedMemory();\n }\n\n override _bindHandle(handle: WEBGLRenderbuffer): void {\n this.gl.bindRenderbuffer(GL.RENDERBUFFER, handle);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAkC,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C;;GAEG;
|
|
1
|
+
{"version":3,"file":"webgl-resource.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAkC,MAAM,cAAc,CAAC;AACvE,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAEpC,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAO1C;;GAEG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,aAAa,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAC9F,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,qBAAqB,CAAC;IACnC,QAAQ,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACrC,OAAO,CAAC,OAAO,CAAM;IAErB,OAAO,CAAC,MAAM,CAAS;IAEvB,UAAU,SAAK;gBAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,CAAC;IA6B9D,QAAQ,IAAI,MAAM;IAI3B,IAAI,MAAM,QAWT;IAEQ,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,EAAC,cAAsB,EAAC;;KAAK;IAmB7C,IAAI,CAAC,YAAY,MAAc;IAuB/B,MAAM;IAIN;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAQ,GAAG,GAAG;IAiCjD,aAAa,CAAC,OAAO,GAAE;QAAC,UAAU,CAAC,EAAE,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAM;IAoC1D;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,IAAI;IAqClD,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAQzC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE;IAK5E,UAAU,CAAC,KAAK,EAAE,aAAa;IAG/B,aAAa;IAIb,aAAa;IAIb,WAAW,CAAC,MAAM,EAAE,GAAG;IAIvB,kBAAkB;IAIlB,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,GAAG;CAuC7C"}
|
|
@@ -1,218 +1,163 @@
|
|
|
1
|
-
|
|
1
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
2
2
|
import { Resource, assert, uid, stubRemovedMethods } from '@luma.gl/api';
|
|
3
|
-
import { isWebGL2, assertWebGLContext } from
|
|
4
|
-
import WebGLDevice from
|
|
5
|
-
|
|
6
|
-
import { getKey, getKeyValue } from './constants-to-keys.js';
|
|
3
|
+
import { isWebGL2, assertWebGLContext } from "../../context/context/webgl-checks.js";
|
|
4
|
+
import WebGLDevice from "../webgl-device.js";
|
|
5
|
+
import { getKey, getKeyValue } from "./constants-to-keys.js";
|
|
7
6
|
const ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';
|
|
8
|
-
/**
|
|
9
|
-
* Base class for WebGL object wrappers
|
|
10
|
-
*/
|
|
11
7
|
export default class WebGLResource extends Resource {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
8
|
+
constructor(device, props, defaultProps) {
|
|
9
|
+
super(device, props, defaultProps);
|
|
10
|
+
_defineProperty(this, "device", void 0);
|
|
11
|
+
_defineProperty(this, "gl", void 0);
|
|
12
|
+
_defineProperty(this, "gl2", void 0);
|
|
13
|
+
_defineProperty(this, "_handle", void 0);
|
|
14
|
+
_defineProperty(this, "_bound", false);
|
|
15
|
+
_defineProperty(this, "byteLength", 0);
|
|
16
|
+
this.device = WebGLDevice.attach(device);
|
|
17
|
+
const gl = this.device.gl;
|
|
18
|
+
assertWebGLContext(gl);
|
|
19
|
+
const {
|
|
20
|
+
id
|
|
21
|
+
} = props || {};
|
|
22
|
+
this.gl = gl;
|
|
23
|
+
this.gl2 = gl;
|
|
24
|
+
this.id = id || uid(this.constructor.name);
|
|
25
|
+
this._handle = props === null || props === void 0 ? void 0 : props.handle;
|
|
26
|
+
if (this._handle === undefined) {
|
|
27
|
+
this._handle = this._createHandle();
|
|
28
|
+
}
|
|
29
|
+
this.byteLength = 0;
|
|
30
|
+
}
|
|
31
|
+
toString() {
|
|
32
|
+
return "".concat(this.constructor.name, "(").concat(this.id, ")");
|
|
33
|
+
}
|
|
34
|
+
get handle() {
|
|
35
|
+
return this._handle;
|
|
36
|
+
}
|
|
37
|
+
destroy() {
|
|
38
|
+
this.delete();
|
|
39
|
+
}
|
|
40
|
+
delete() {
|
|
41
|
+
let {
|
|
42
|
+
deleteChildren = false
|
|
43
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
44
|
+
const children = this._handle && this._deleteHandle(this._handle);
|
|
45
|
+
if (this._handle) {
|
|
46
|
+
this.removeStats();
|
|
47
|
+
}
|
|
48
|
+
this._handle = null;
|
|
49
|
+
if (children && deleteChildren) {
|
|
50
|
+
children.filter(Boolean).forEach(child => child.delete());
|
|
51
|
+
}
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
bind() {
|
|
55
|
+
let funcOrHandle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.handle;
|
|
56
|
+
if (typeof funcOrHandle !== 'function') {
|
|
57
|
+
this._bindHandle(funcOrHandle);
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
let value;
|
|
61
|
+
if (!this._bound) {
|
|
62
|
+
this._bindHandle(this.handle);
|
|
63
|
+
this._bound = true;
|
|
64
|
+
value = funcOrHandle();
|
|
65
|
+
this._bound = false;
|
|
66
|
+
this._bindHandle(null);
|
|
67
|
+
} else {
|
|
68
|
+
value = funcOrHandle();
|
|
69
|
+
}
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
unbind() {
|
|
73
|
+
this.bind(null);
|
|
74
|
+
}
|
|
75
|
+
getParameter(pname) {
|
|
76
|
+
let props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
77
|
+
pname = getKeyValue(this.gl, pname);
|
|
78
|
+
assert(pname);
|
|
79
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
80
|
+
const parameter = parameters[pname];
|
|
81
|
+
if (parameter) {
|
|
82
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
83
|
+
const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
84
|
+
if (!parameterAvailable) {
|
|
85
|
+
const webgl1Default = parameter.webgl1;
|
|
86
|
+
const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
|
|
87
|
+
const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
|
|
88
|
+
return defaultValue;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return this._getParameter(pname, props);
|
|
92
|
+
}
|
|
93
|
+
getParameters() {
|
|
94
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
95
|
+
const {
|
|
96
|
+
parameters,
|
|
97
|
+
keys
|
|
98
|
+
} = options;
|
|
99
|
+
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
100
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
101
|
+
const values = {};
|
|
102
|
+
const parameterKeys = parameters || Object.keys(PARAMETERS);
|
|
103
|
+
for (const pname of parameterKeys) {
|
|
104
|
+
const parameter = PARAMETERS[pname];
|
|
105
|
+
const parameterAvailable = parameter && (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
106
|
+
if (parameterAvailable) {
|
|
107
|
+
const key = keys ? getKey(this.gl, pname) : pname;
|
|
108
|
+
values[key] = this.getParameter(pname, options);
|
|
109
|
+
if (keys && parameter.type === 'GLenum') {
|
|
110
|
+
values[key] = getKey(this.gl, values[key]);
|
|
33
111
|
}
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
value = funcOrHandle();
|
|
85
|
-
}
|
|
86
|
-
return value;
|
|
87
|
-
}
|
|
88
|
-
unbind() {
|
|
89
|
-
this.bind(null);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Query a Resource parameter
|
|
93
|
-
*
|
|
94
|
-
* @param name
|
|
95
|
-
* @return param
|
|
96
|
-
*/
|
|
97
|
-
getParameter(pname, props = {}) {
|
|
98
|
-
pname = getKeyValue(this.gl, pname);
|
|
99
|
-
assert(pname);
|
|
100
|
-
// @ts-expect-error
|
|
101
|
-
const parameters = this.constructor.PARAMETERS || {};
|
|
102
|
-
// Use parameter definitions to handle unsupported parameters
|
|
103
|
-
const parameter = parameters[pname];
|
|
104
|
-
if (parameter) {
|
|
105
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
106
|
-
// Check if we can query for this parameter
|
|
107
|
-
const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) &&
|
|
108
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
109
|
-
if (!parameterAvailable) {
|
|
110
|
-
const webgl1Default = parameter.webgl1;
|
|
111
|
-
const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;
|
|
112
|
-
const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;
|
|
113
|
-
return defaultValue;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
117
|
-
// Attempt to query for it and let WebGL report errors
|
|
118
|
-
return this._getParameter(pname, props);
|
|
119
|
-
}
|
|
120
|
-
// Many resources support a getParameter call -
|
|
121
|
-
// getParameters will get all parameters - slow but useful for debugging
|
|
122
|
-
// eslint-disable-next-line complexity
|
|
123
|
-
getParameters(options = {}) {
|
|
124
|
-
const { parameters, keys } = options;
|
|
125
|
-
// Get parameter definitions for this Resource
|
|
126
|
-
// @ts-expect-error
|
|
127
|
-
const PARAMETERS = this.constructor.PARAMETERS || {};
|
|
128
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
129
|
-
const values = {};
|
|
130
|
-
// Query all parameters if no list provided
|
|
131
|
-
const parameterKeys = parameters || Object.keys(PARAMETERS);
|
|
132
|
-
// WEBGL limits
|
|
133
|
-
for (const pname of parameterKeys) {
|
|
134
|
-
const parameter = PARAMETERS[pname];
|
|
135
|
-
// Check if this parameter is available on this platform
|
|
136
|
-
const parameterAvailable = parameter &&
|
|
137
|
-
(!('webgl2' in parameter) || isWebgl2) &&
|
|
138
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
139
|
-
if (parameterAvailable) {
|
|
140
|
-
const key = keys ? getKey(this.gl, pname) : pname;
|
|
141
|
-
values[key] = this.getParameter(pname, options);
|
|
142
|
-
if (keys && parameter.type === 'GLenum') {
|
|
143
|
-
values[key] = getKey(this.gl, values[key]);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return values;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Update a Resource setting
|
|
151
|
-
*
|
|
152
|
-
* @todo - cache parameter to avoid issuing WebGL calls?
|
|
153
|
-
*
|
|
154
|
-
* @param pname - parameter (GL constant, value or key)
|
|
155
|
-
* @param value {GLint|GLfloat|GLenum}
|
|
156
|
-
* @return returns self to enable chaining
|
|
157
|
-
*/
|
|
158
|
-
setParameter(pname, value) {
|
|
159
|
-
pname = getKeyValue(this.gl, pname);
|
|
160
|
-
assert(pname);
|
|
161
|
-
// @ts-expect-error
|
|
162
|
-
const parameters = this.constructor.PARAMETERS || {};
|
|
163
|
-
const parameter = parameters[pname];
|
|
164
|
-
if (parameter) {
|
|
165
|
-
const isWebgl2 = isWebGL2(this.gl);
|
|
166
|
-
// Check if this parameter is available on this platform
|
|
167
|
-
const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) &&
|
|
168
|
-
(!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
169
|
-
if (!parameterAvailable) {
|
|
170
|
-
throw new Error('Parameter not available on this platform');
|
|
171
|
-
}
|
|
172
|
-
// Handle string keys
|
|
173
|
-
if (parameter.type === 'GLenum') {
|
|
174
|
-
// @ts-expect-error
|
|
175
|
-
value = getKeyValue(value);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
// If unknown parameter - Could be a valid parameter not covered by PARAMS
|
|
179
|
-
// attempt to set it and let WebGL report errors
|
|
180
|
-
this._setParameter(pname, value);
|
|
181
|
-
return this;
|
|
182
|
-
}
|
|
183
|
-
/*
|
|
184
|
-
* Batch update resource parameters
|
|
185
|
-
* Assumes the subclass supports a setParameter call
|
|
186
|
-
*/
|
|
187
|
-
setParameters(parameters) {
|
|
188
|
-
for (const pname in parameters) {
|
|
189
|
-
this.setParameter(pname, parameters[pname]);
|
|
190
|
-
}
|
|
191
|
-
return this;
|
|
192
|
-
}
|
|
193
|
-
// Install stubs for removed methods
|
|
194
|
-
stubRemovedMethods(className, version, methodNames) {
|
|
195
|
-
return stubRemovedMethods(this, className, version, methodNames);
|
|
196
|
-
}
|
|
197
|
-
// PUBLIC VIRTUAL METHODS
|
|
198
|
-
initialize(props) { }
|
|
199
|
-
// PROTECTED METHODS - These must be overridden by subclass
|
|
200
|
-
_createHandle() {
|
|
201
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
202
|
-
}
|
|
203
|
-
_deleteHandle() {
|
|
204
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
205
|
-
}
|
|
206
|
-
_bindHandle(handle) {
|
|
207
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
208
|
-
}
|
|
209
|
-
_getOptsFromHandle() {
|
|
210
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
211
|
-
}
|
|
212
|
-
_getParameter(pname, props) {
|
|
213
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
214
|
-
}
|
|
215
|
-
_setParameter(pname, value) {
|
|
216
|
-
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
217
|
-
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return values;
|
|
115
|
+
}
|
|
116
|
+
setParameter(pname, value) {
|
|
117
|
+
pname = getKeyValue(this.gl, pname);
|
|
118
|
+
assert(pname);
|
|
119
|
+
const parameters = this.constructor.PARAMETERS || {};
|
|
120
|
+
const parameter = parameters[pname];
|
|
121
|
+
if (parameter) {
|
|
122
|
+
const isWebgl2 = isWebGL2(this.gl);
|
|
123
|
+
const parameterAvailable = (!('webgl2' in parameter) || isWebgl2) && (!('extension' in parameter) || this.gl.getExtension(parameter.extension));
|
|
124
|
+
if (!parameterAvailable) {
|
|
125
|
+
throw new Error('Parameter not available on this platform');
|
|
126
|
+
}
|
|
127
|
+
if (parameter.type === 'GLenum') {
|
|
128
|
+
value = getKeyValue(value);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
this._setParameter(pname, value);
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
setParameters(parameters) {
|
|
135
|
+
for (const pname in parameters) {
|
|
136
|
+
this.setParameter(pname, parameters[pname]);
|
|
137
|
+
}
|
|
138
|
+
return this;
|
|
139
|
+
}
|
|
140
|
+
stubRemovedMethods(className, version, methodNames) {
|
|
141
|
+
return stubRemovedMethods(this, className, version, methodNames);
|
|
142
|
+
}
|
|
143
|
+
initialize(props) {}
|
|
144
|
+
_createHandle() {
|
|
145
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
146
|
+
}
|
|
147
|
+
_deleteHandle() {
|
|
148
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
149
|
+
}
|
|
150
|
+
_bindHandle(handle) {
|
|
151
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
152
|
+
}
|
|
153
|
+
_getOptsFromHandle() {
|
|
154
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
155
|
+
}
|
|
156
|
+
_getParameter(pname, props) {
|
|
157
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
158
|
+
}
|
|
159
|
+
_setParameter(pname, value) {
|
|
160
|
+
throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);
|
|
161
|
+
}
|
|
218
162
|
}
|
|
163
|
+
//# sourceMappingURL=webgl-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-resource.js","names":["Resource","assert","uid","stubRemovedMethods","isWebGL2","assertWebGLContext","WebGLDevice","getKey","getKeyValue","ERR_RESOURCE_METHOD_UNDEFINED","WebGLResource","constructor","device","props","defaultProps","_defineProperty","attach","gl","id","gl2","name","_handle","handle","undefined","_createHandle","byteLength","toString","concat","destroy","delete","deleteChildren","arguments","length","children","_deleteHandle","removeStats","filter","Boolean","forEach","child","bind","funcOrHandle","_bindHandle","value","_bound","unbind","getParameter","pname","parameters","PARAMETERS","parameter","isWebgl2","parameterAvailable","getExtension","extension","webgl1Default","webgl1","webgl2Default","webgl2","defaultValue","_getParameter","getParameters","options","keys","values","parameterKeys","Object","key","type","setParameter","Error","_setParameter","setParameters","className","version","methodNames","initialize","_getOptsFromHandle"],"sources":["../../../src/adapter/objects/webgl-resource.ts"],"sourcesContent":["// luma.gl, MIT license\nimport {Resource, assert, uid, stubRemovedMethods} from '@luma.gl/api';\nimport type {Device, ResourceProps} from '@luma.gl/api';\nimport GL from '@luma.gl/constants';\nimport {isWebGL2, assertWebGLContext} from '../../context/context/webgl-checks';\nimport WebGLDevice from '../webgl-device';\n\n// Requires full GL enum to be bundled... Make these bindings dependent on dynamic import (debug)?\nimport {getKey, getKeyValue} from './constants-to-keys';\n\nconst ERR_RESOURCE_METHOD_UNDEFINED = 'Resource subclass must define virtual methods';\n\n/**\n * Base class for WebGL object wrappers\n */\nexport default abstract class WebGLResource<Props extends ResourceProps> extends Resource<Props> {\n readonly device: WebGLDevice;\n readonly gl: WebGLRenderingContext;\n readonly gl2: WebGL2RenderingContext;\n private _handle: any;\n\n private _bound = false;\n // Only meaningful for resources that allocate GPU memory\n byteLength = 0;\n\n constructor(device: Device, props: Props, defaultProps: Required<Props>) {\n super(device, props, defaultProps);\n\n this.device = WebGLDevice.attach(device);\n const gl = this.device.gl;\n\n assertWebGLContext(gl);\n\n // extends \n const {id} = props || {};\n this.gl = gl;\n this.gl2 = gl as WebGL2RenderingContext;\n this.id = id || uid(this.constructor.name);\n\n // Set the handle\n // If handle was provided, use it, otherwise create a new handle\n\n // TODO - Stores the handle with context loss information\n // this.glCount = glGetContextLossCount(this.gl);\n\n // Default VertexArray needs to be created with null handle, so compare against undefined\n this._handle = props?.handle;\n if (this._handle === undefined) {\n this._handle = this._createHandle();\n }\n\n this.byteLength = 0;\n }\n\n override toString(): string {\n return `${this.constructor.name}(${this.id})`;\n }\n\n get handle() {\n // TODO - Add context loss handling\n // Will regenerate and reinitialize the handle if necessary\n // const glCount = glGetContextLossCount(this.gl);\n // if (this.glCount !== glCount) {\n // this._handle = this._createHandle(this.props);\n // this._glCount = glCount;\n // // Reinitialize object\n // this.initialize(this.props);\n // }\n return this._handle;\n }\n\n override destroy(): void {\n this.delete();\n }\n\n override delete({deleteChildren = false} = {}) {\n // Delete this object, and get refs to any children\n // @ts-expect-error\n const children = this._handle && this._deleteHandle(this._handle);\n if (this._handle) {\n this.removeStats();\n }\n this._handle = null;\n\n // Optionally, recursively delete the children\n // @ts-expect-error\n if (children && deleteChildren) {\n // @ts-expect-error\n children.filter(Boolean).forEach((child) => child.delete());\n }\n\n return this;\n }\n\n bind(funcOrHandle = this.handle) {\n if (typeof funcOrHandle !== 'function') {\n this._bindHandle(funcOrHandle);\n return this;\n }\n\n let value;\n\n if (!this._bound) {\n this._bindHandle(this.handle);\n this._bound = true;\n\n value = funcOrHandle();\n\n this._bound = false;\n this._bindHandle(null);\n } else {\n value = funcOrHandle();\n }\n\n return value;\n }\n\n unbind() {\n this.bind(null);\n }\n\n /**\n * Query a Resource parameter\n *\n * @param name\n * @return param\n */\n getParameter(pname: number, props: any = {}): any {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n // Use parameter definitions to handle unsupported parameters\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if we can query for this parameter\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n const webgl1Default = parameter.webgl1;\n const webgl2Default = 'webgl2' in parameter ? parameter.webgl2 : parameter.webgl1;\n const defaultValue = isWebgl2 ? webgl2Default : webgl1Default;\n return defaultValue;\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // Attempt to query for it and let WebGL report errors\n return this._getParameter(pname, props);\n }\n\n // Many resources support a getParameter call -\n // getParameters will get all parameters - slow but useful for debugging\n // eslint-disable-next-line complexity\n getParameters(options: {parameters?: any, keys?: any} = {}) {\n const {parameters, keys} = options;\n\n // Get parameter definitions for this Resource\n // @ts-expect-error\n const PARAMETERS = this.constructor.PARAMETERS || {};\n\n const isWebgl2 = isWebGL2(this.gl);\n\n const values: Record<string, any> = {};\n\n // Query all parameters if no list provided\n const parameterKeys = parameters || Object.keys(PARAMETERS);\n\n // WEBGL limits\n for (const pname of parameterKeys) {\n const parameter = PARAMETERS[pname];\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n parameter &&\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (parameterAvailable) {\n const key = keys ? getKey(this.gl, pname) : pname;\n values[key] = this.getParameter(pname, options);\n if (keys && parameter.type === 'GLenum') {\n values[key] = getKey(this.gl, values[key]);\n }\n }\n }\n\n return values;\n }\n\n /**\n * Update a Resource setting\n *\n * @todo - cache parameter to avoid issuing WebGL calls?\n *\n * @param pname - parameter (GL constant, value or key)\n * @param value {GLint|GLfloat|GLenum} \n * @return returns self to enable chaining\n */\n setParameter(pname: GL | string, value: any): this {\n pname = getKeyValue(this.gl, pname);\n assert(pname);\n\n // @ts-expect-error\n const parameters = this.constructor.PARAMETERS || {};\n\n const parameter = parameters[pname];\n if (parameter) {\n const isWebgl2 = isWebGL2(this.gl);\n\n // Check if this parameter is available on this platform\n const parameterAvailable =\n (!('webgl2' in parameter) || isWebgl2) &&\n (!('extension' in parameter) || this.gl.getExtension(parameter.extension));\n\n if (!parameterAvailable) {\n throw new Error('Parameter not available on this platform');\n }\n\n // Handle string keys\n if (parameter.type === 'GLenum') {\n // @ts-expect-error\n value = getKeyValue(value);\n }\n }\n\n // If unknown parameter - Could be a valid parameter not covered by PARAMS\n // attempt to set it and let WebGL report errors\n this._setParameter(pname, value);\n return this;\n }\n\n /*\n * Batch update resource parameters\n * Assumes the subclass supports a setParameter call\n */\n setParameters(parameters: Record<GL, any>) {\n for (const pname in parameters) {\n this.setParameter(pname, parameters[pname]);\n }\n return this;\n }\n\n // Install stubs for removed methods\n stubRemovedMethods(className: string, version: string, methodNames: string[]) {\n return stubRemovedMethods(this, className, version, methodNames);\n }\n\n // PUBLIC VIRTUAL METHODS\n initialize(props: ResourceProps) {}\n\n // PROTECTED METHODS - These must be overridden by subclass\n _createHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _deleteHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _bindHandle(handle: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getOptsFromHandle() {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _getParameter(pname: GL, props: Record<string, any>): number {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n _setParameter(pname: GL | string, value: any) {\n throw new Error(ERR_RESOURCE_METHOD_UNDEFINED);\n }\n\n // PRIVATE METHODS\n\n /*\n _addStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get('Resources Created').incrementCount();\n stats.get(`${name}s Created`).incrementCount();\n stats.get(`${name}s Active`).incrementCount();\n }\n\n _removeStats() {\n const name = this.constructor.name;\n const stats = lumaStats.get('Resource Counts');\n\n stats.get(`${name}s Active`).decrementCount();\n }\n\n trackAllocatedMemory(bytes, name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').addCount(bytes);\n stats.get(`${name} Memory`).addCount(bytes);\n this.byteLength = bytes;\n }\n\n trackDeallocatedMemory(name = this.constructor.name) {\n const stats = lumaStats.get('Memory Usage');\n\n stats.get('GPU Memory').subtractCount(this.byteLength);\n stats.get(`${name} Memory`).subtractCount(this.byteLength);\n this.byteLength = 0;\n }\n */\n}\n"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import Buffer from '../resources/webgl-buffer';
|
|
|
5
5
|
/**
|
|
6
6
|
* VertexArrayObject properties
|
|
7
7
|
*/
|
|
8
|
-
export type VertexArrayObjectProps = ResourceProps & {};
|
|
8
|
+
export declare type VertexArrayObjectProps = ResourceProps & {};
|
|
9
9
|
/** VertexArrayObject wrapper */
|
|
10
10
|
export default class WEBGLVertexArrayObject extends WebGLResource<VertexArrayObjectProps> {
|
|
11
11
|
get [Symbol.toStringTag](): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-vertex-array-object.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-vertex-array-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAInD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAI/C;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"webgl-vertex-array-object.d.ts","sourceRoot":"","sources":["../../../src/adapter/objects/webgl-vertex-array-object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAC,MAAM,cAAc,CAAC;AAInD,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAC1C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAE7C,OAAO,MAAM,MAAM,2BAA2B,CAAC;AAI/C;;GAEG;AACH,oBAAY,sBAAsB,GAAG,aAAa,GAAG,EACpD,CAAC;AAEF,gCAAgC;AAChC,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;IACvF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;gBAEW,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,sBAAsB;IAKtD,aAAa;IAIb,aAAa,IAAI,IAAI;IAOrB,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI;IAM1D,gBAAgB,CAAC,aAAa,GAAE,MAAM,GAAG,IAAW,EAAE,IAAI,KAAK;IAW/D,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAgChE;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;CAe9C"}
|