@luma.gl/webgl 9.2.5 → 9.3.0-alpha.10
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 +1 -1
- package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/device-parameters.js +4 -1
- package/dist/adapter/converters/device-parameters.js.map +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts +1 -1
- package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
- package/dist/adapter/converters/sampler-parameters.js +1 -1
- package/dist/adapter/converters/sampler-parameters.js.map +1 -1
- package/dist/adapter/converters/shader-formats.d.ts +1 -64
- package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
- package/dist/adapter/converters/shader-formats.js +1 -64
- package/dist/adapter/converters/shader-formats.js.map +1 -1
- package/dist/adapter/converters/webgl-shadertypes.d.ts +1 -3
- package/dist/adapter/converters/webgl-shadertypes.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-shadertypes.js +1 -6
- package/dist/adapter/converters/webgl-shadertypes.js.map +1 -1
- package/dist/adapter/converters/webgl-texture-table.d.ts +8 -4
- package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-texture-table.js +122 -58
- package/dist/adapter/converters/webgl-texture-table.js.map +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.d.ts +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.d.ts.map +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.js +1 -1
- package/dist/adapter/converters/webgl-vertex-formats.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
- package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-info.js +6 -1
- package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.js +1 -1
- package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -1
- package/dist/adapter/helpers/format-utils.d.ts +1 -1
- package/dist/adapter/helpers/format-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/format-utils.js +1 -1
- package/dist/adapter/helpers/format-utils.js.map +1 -1
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js +36 -22
- package/dist/adapter/helpers/get-shader-layout-from-glsl.js.map +1 -1
- 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 +20 -0
- package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts +1 -1
- package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
- package/dist/adapter/helpers/set-uniform.js +1 -1
- package/dist/adapter/helpers/set-uniform.js.map +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.d.ts +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-texture-utils.js +4 -4
- package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js +1 -1
- package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
- package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-buffer.js +21 -5
- package/dist/adapter/resources/webgl-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.d.ts +3 -4
- package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-buffer.js +29 -39
- package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.d.ts +6 -5
- package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-command-encoder.js +23 -8
- package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
- package/dist/adapter/resources/webgl-fence.d.ts +14 -0
- package/dist/adapter/resources/webgl-fence.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-fence.js +49 -0
- package/dist/adapter/resources/webgl-fence.js.map +1 -0
- package/dist/adapter/resources/webgl-framebuffer.d.ts +3 -1
- package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-framebuffer.js +10 -1
- package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
- package/dist/adapter/resources/webgl-query-set.d.ts +37 -31
- package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-query-set.js +247 -96
- package/dist/adapter/resources/webgl-query-set.js.map +1 -1
- 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 +28 -11
- package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.d.ts +17 -21
- package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pipeline.js +70 -169
- package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
- package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-sampler.js +1 -1
- package/dist/adapter/resources/webgl-sampler.js.map +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts +1 -1
- package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-shader.js +15 -8
- package/dist/adapter/resources/webgl-shader.js.map +1 -1
- package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts +24 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts.map +1 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.js +155 -0
- package/dist/adapter/resources/webgl-shared-render-pipeline.js.map +1 -0
- package/dist/adapter/resources/webgl-texture.d.ts +42 -4
- package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-texture.js +286 -62
- package/dist/adapter/resources/webgl-texture.js.map +1 -1
- package/dist/adapter/resources/webgl-transform-feedback.js +6 -6
- package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.d.ts +2 -2
- package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js +1 -1
- package/dist/adapter/resources/webgl-vertex-array.js.map +1 -1
- package/dist/adapter/webgl-adapter.d.ts.map +1 -1
- package/dist/adapter/webgl-adapter.js +22 -23
- package/dist/adapter/webgl-adapter.js.map +1 -1
- package/dist/adapter/webgl-canvas-context.d.ts +2 -2
- package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
- package/dist/adapter/webgl-canvas-context.js +16 -6
- package/dist/adapter/webgl-canvas-context.js.map +1 -1
- package/dist/adapter/webgl-device.d.ts +10 -5
- package/dist/adapter/webgl-device.d.ts.map +1 -1
- package/dist/adapter/webgl-device.js +75 -28
- package/dist/adapter/webgl-device.js.map +1 -1
- package/dist/adapter/webgl-presentation-context.d.ts +21 -0
- package/dist/adapter/webgl-presentation-context.d.ts.map +1 -0
- package/dist/adapter/webgl-presentation-context.js +64 -0
- package/dist/adapter/webgl-presentation-context.js.map +1 -0
- package/dist/constants/index.d.ts +3 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +5 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/webgl-constants.d.ts +822 -0
- package/dist/constants/webgl-constants.d.ts.map +1 -0
- package/dist/constants/webgl-constants.js +928 -0
- package/dist/constants/webgl-constants.js.map +1 -0
- package/dist/constants/webgl-types.d.ts +480 -0
- package/dist/constants/webgl-types.d.ts.map +1 -0
- package/dist/constants/webgl-types.js +6 -0
- package/dist/constants/webgl-types.js.map +1 -0
- package/dist/context/debug/spector.d.ts.map +1 -1
- package/dist/context/debug/spector.js +4 -4
- package/dist/context/debug/spector.js.map +1 -1
- package/dist/context/debug/webgl-developer-tools.js +7 -7
- package/dist/context/debug/webgl-developer-tools.js.map +1 -1
- package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
- package/dist/context/helpers/create-browser-context.js +46 -36
- package/dist/context/helpers/create-browser-context.js.map +1 -1
- package/dist/context/helpers/webgl-context-data.d.ts +5 -1
- package/dist/context/helpers/webgl-context-data.d.ts.map +1 -1
- package/dist/context/helpers/webgl-context-data.js +9 -10
- package/dist/context/helpers/webgl-context-data.js.map +1 -1
- package/dist/context/helpers/webgl-extensions.d.ts +1 -1
- package/dist/context/helpers/webgl-extensions.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.d.ts +2 -2
- package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
- package/dist/context/parameters/unified-parameter-api.js +2 -2
- package/dist/context/parameters/unified-parameter-api.js.map +1 -1
- 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 +1 -1
- package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
- package/dist/context/polyfills/polyfill-webgl1-extensions.js +1 -1
- package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -1
- package/dist/context/state-tracker/webgl-state-tracker.js +2 -2
- package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -1
- package/dist/dist.dev.js +1897 -999
- package/dist/dist.min.js +2 -2
- package/dist/index.cjs +3 -5255
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/fill-array.js +1 -1
- package/dist/utils/fill-array.js.map +1 -1
- package/dist/webgl-constants.d.ts +2 -0
- package/dist/webgl-constants.d.ts.map +1 -0
- package/dist/webgl-constants.js +5 -0
- package/dist/webgl-constants.js.map +1 -0
- package/dist/webgl-types.d.ts +2 -0
- package/dist/webgl-types.d.ts.map +1 -0
- package/dist/{types.js → webgl-types.js} +1 -1
- package/dist/webgl-types.js.map +1 -0
- package/package.json +19 -5
- package/src/adapter/converters/device-parameters.ts +6 -2
- package/src/adapter/converters/sampler-parameters.ts +1 -1
- package/src/adapter/converters/shader-formats.ts +1 -66
- package/src/adapter/converters/webgl-shadertypes.ts +1 -9
- package/src/adapter/converters/webgl-texture-table.ts +160 -68
- package/src/adapter/converters/webgl-vertex-formats.ts +1 -1
- package/src/adapter/device-helpers/webgl-device-features.ts +2 -3
- package/src/adapter/device-helpers/webgl-device-info.ts +7 -1
- package/src/adapter/device-helpers/webgl-device-limits.ts +1 -1
- package/src/adapter/helpers/format-utils.ts +1 -1
- package/src/adapter/helpers/get-shader-layout-from-glsl.ts +44 -24
- package/src/adapter/helpers/parse-shader-compiler-log.ts +23 -1
- package/src/adapter/helpers/set-uniform.ts +1 -1
- package/src/adapter/helpers/webgl-texture-utils.ts +4 -4
- package/src/adapter/helpers/webgl-topology-utils.ts +1 -1
- package/src/adapter/resources/webgl-buffer.ts +18 -5
- package/src/adapter/resources/webgl-command-buffer.ts +44 -48
- package/src/adapter/resources/webgl-command-encoder.ts +28 -11
- package/src/adapter/resources/webgl-fence.ts +55 -0
- package/src/adapter/resources/webgl-framebuffer.ts +12 -1
- package/src/adapter/resources/webgl-query-set.ts +295 -101
- package/src/adapter/resources/webgl-render-pass.ts +30 -13
- package/src/adapter/resources/webgl-render-pipeline.ts +102 -198
- package/src/adapter/resources/webgl-sampler.ts +1 -1
- package/src/adapter/resources/webgl-shader.ts +15 -8
- package/src/adapter/resources/webgl-shared-render-pipeline.ts +211 -0
- package/src/adapter/resources/webgl-texture.ts +455 -81
- package/src/adapter/resources/webgl-transform-feedback.ts +6 -6
- package/src/adapter/resources/webgl-vertex-array.ts +1 -1
- package/src/adapter/webgl-adapter.ts +26 -24
- package/src/adapter/webgl-canvas-context.ts +19 -8
- package/src/adapter/webgl-device.ts +91 -35
- package/src/adapter/webgl-presentation-context.ts +93 -0
- package/src/constants/index.d.ts.map +1 -0
- package/src/constants/index.js.map +1 -0
- package/src/constants/index.ts +31 -0
- package/src/constants/webgl-constants.d.ts.map +1 -0
- package/src/constants/webgl-constants.js.map +1 -0
- package/src/constants/webgl-constants.ts +1051 -0
- package/src/constants/webgl-types.d.ts.map +1 -0
- package/src/constants/webgl-types.js.map +1 -0
- package/src/constants/webgl-types.ts +813 -0
- package/src/context/debug/spector.ts +4 -4
- package/src/context/debug/webgl-developer-tools.ts +16 -7
- package/src/context/helpers/create-browser-context.ts +54 -43
- package/src/context/helpers/webgl-context-data.ts +17 -11
- package/src/context/helpers/webgl-extensions.ts +1 -1
- package/src/context/parameters/unified-parameter-api.ts +3 -3
- package/src/context/parameters/webgl-parameter-tables.ts +1 -1
- package/src/context/polyfills/polyfill-webgl1-extensions.ts +1 -1
- package/src/context/state-tracker/webgl-state-tracker.ts +2 -2
- package/src/index.ts +27 -0
- package/src/utils/fill-array.ts +1 -1
- package/src/webgl-constants.d.ts.map +1 -0
- package/src/webgl-constants.js.map +1 -0
- package/src/webgl-constants.ts +5 -0
- package/src/webgl-types.d.ts.map +1 -0
- package/src/webgl-types.js.map +1 -0
- package/src/webgl-types.ts +29 -0
- package/dist/types.d.ts +0 -11
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/src/types.ts +0 -14
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// luma.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { GL } from '@luma.gl/webgl/constants';
|
|
5
|
+
import { SharedRenderPipeline, log } from '@luma.gl/core';
|
|
6
|
+
import { getShaderLayoutFromGLSL } from "../helpers/get-shader-layout-from-glsl.js";
|
|
7
|
+
import { isGLSamplerType } from "../converters/webgl-shadertypes.js";
|
|
8
|
+
const LOG_PROGRAM_PERF_PRIORITY = 4;
|
|
9
|
+
export class WEBGLSharedRenderPipeline extends SharedRenderPipeline {
|
|
10
|
+
device;
|
|
11
|
+
handle;
|
|
12
|
+
vs;
|
|
13
|
+
fs;
|
|
14
|
+
introspectedLayout = { attributes: [], bindings: [], uniforms: [] };
|
|
15
|
+
linkStatus = 'pending';
|
|
16
|
+
constructor(device, props) {
|
|
17
|
+
super(device, props);
|
|
18
|
+
this.device = device;
|
|
19
|
+
this.handle = props.handle || this.device.gl.createProgram();
|
|
20
|
+
this.vs = props.vs;
|
|
21
|
+
this.fs = props.fs;
|
|
22
|
+
if (props.varyings && props.varyings.length > 0) {
|
|
23
|
+
this.device.gl.transformFeedbackVaryings(this.handle, props.varyings, props.bufferMode || 35981);
|
|
24
|
+
}
|
|
25
|
+
this._linkShaders();
|
|
26
|
+
// Introspection happens after linking to build wrapper-facing layout metadata.
|
|
27
|
+
// It is not a prerequisite for deciding whether a shared `WebGLProgram` can be
|
|
28
|
+
// reused; that decision must remain based on the shared-pipeline cache key alone.
|
|
29
|
+
log.time(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
30
|
+
this.introspectedLayout = getShaderLayoutFromGLSL(this.device.gl, this.handle);
|
|
31
|
+
log.timeEnd(3, `RenderPipeline ${this.id} - shaderLayout introspection`)();
|
|
32
|
+
}
|
|
33
|
+
destroy() {
|
|
34
|
+
if (this.destroyed) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
this.device.gl.useProgram(null);
|
|
38
|
+
this.device.gl.deleteProgram(this.handle);
|
|
39
|
+
// @ts-expect-error
|
|
40
|
+
this.handle.destroyed = true;
|
|
41
|
+
this.destroyResource();
|
|
42
|
+
}
|
|
43
|
+
async _linkShaders() {
|
|
44
|
+
const { gl } = this.device;
|
|
45
|
+
gl.attachShader(this.handle, this.vs.handle);
|
|
46
|
+
gl.attachShader(this.handle, this.fs.handle);
|
|
47
|
+
log.time(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
48
|
+
gl.linkProgram(this.handle);
|
|
49
|
+
log.timeEnd(LOG_PROGRAM_PERF_PRIORITY, `linkProgram for ${this.id}`)();
|
|
50
|
+
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
51
|
+
const status = this._getLinkStatus();
|
|
52
|
+
this._reportLinkStatus(status);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
log.once(1, 'RenderPipeline linking is asynchronous')();
|
|
56
|
+
await this._waitForLinkComplete();
|
|
57
|
+
log.info(2, `RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();
|
|
58
|
+
const status = this._getLinkStatus();
|
|
59
|
+
this._reportLinkStatus(status);
|
|
60
|
+
}
|
|
61
|
+
async _reportLinkStatus(status) {
|
|
62
|
+
switch (status) {
|
|
63
|
+
case 'success':
|
|
64
|
+
return;
|
|
65
|
+
default:
|
|
66
|
+
const errorType = status === 'link-error' ? 'Link error' : 'Validation error';
|
|
67
|
+
switch (this.vs.compilationStatus) {
|
|
68
|
+
case 'error':
|
|
69
|
+
this.vs.debugShader();
|
|
70
|
+
throw new Error(`${this} ${errorType} during compilation of ${this.vs}`);
|
|
71
|
+
case 'pending':
|
|
72
|
+
await this.vs.asyncCompilationStatus;
|
|
73
|
+
this.vs.debugShader();
|
|
74
|
+
break;
|
|
75
|
+
case 'success':
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
switch (this.fs?.compilationStatus) {
|
|
79
|
+
case 'error':
|
|
80
|
+
this.fs.debugShader();
|
|
81
|
+
throw new Error(`${this} ${errorType} during compilation of ${this.fs}`);
|
|
82
|
+
case 'pending':
|
|
83
|
+
await this.fs.asyncCompilationStatus;
|
|
84
|
+
this.fs.debugShader();
|
|
85
|
+
break;
|
|
86
|
+
case 'success':
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
const linkErrorLog = this.device.gl.getProgramInfoLog(this.handle);
|
|
90
|
+
this.device.reportError(new Error(`${errorType} during ${status}: ${linkErrorLog}`), this)();
|
|
91
|
+
this.device.debug();
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
_getLinkStatus() {
|
|
95
|
+
const { gl } = this.device;
|
|
96
|
+
const linked = gl.getProgramParameter(this.handle, 35714);
|
|
97
|
+
if (!linked) {
|
|
98
|
+
this.linkStatus = 'error';
|
|
99
|
+
return 'link-error';
|
|
100
|
+
}
|
|
101
|
+
this._initializeSamplerUniforms();
|
|
102
|
+
gl.validateProgram(this.handle);
|
|
103
|
+
const validated = gl.getProgramParameter(this.handle, 35715);
|
|
104
|
+
if (!validated) {
|
|
105
|
+
this.linkStatus = 'error';
|
|
106
|
+
return 'validation-error';
|
|
107
|
+
}
|
|
108
|
+
this.linkStatus = 'success';
|
|
109
|
+
return 'success';
|
|
110
|
+
}
|
|
111
|
+
_initializeSamplerUniforms() {
|
|
112
|
+
const { gl } = this.device;
|
|
113
|
+
gl.useProgram(this.handle);
|
|
114
|
+
let textureUnit = 0;
|
|
115
|
+
const uniformCount = gl.getProgramParameter(this.handle, 35718);
|
|
116
|
+
for (let uniformIndex = 0; uniformIndex < uniformCount; uniformIndex++) {
|
|
117
|
+
const activeInfo = gl.getActiveUniform(this.handle, uniformIndex);
|
|
118
|
+
if (activeInfo && isGLSamplerType(activeInfo.type)) {
|
|
119
|
+
const isArray = activeInfo.name.endsWith('[0]');
|
|
120
|
+
const uniformName = isArray ? activeInfo.name.slice(0, -3) : activeInfo.name;
|
|
121
|
+
const location = gl.getUniformLocation(this.handle, uniformName);
|
|
122
|
+
if (location !== null) {
|
|
123
|
+
textureUnit = this._assignSamplerUniform(location, activeInfo, isArray, textureUnit);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
_assignSamplerUniform(location, activeInfo, isArray, textureUnit) {
|
|
129
|
+
const { gl } = this.device;
|
|
130
|
+
if (isArray && activeInfo.size > 1) {
|
|
131
|
+
const textureUnits = Int32Array.from({ length: activeInfo.size }, (_, arrayIndex) => textureUnit + arrayIndex);
|
|
132
|
+
gl.uniform1iv(location, textureUnits);
|
|
133
|
+
return textureUnit + activeInfo.size;
|
|
134
|
+
}
|
|
135
|
+
gl.uniform1i(location, textureUnit);
|
|
136
|
+
return textureUnit + 1;
|
|
137
|
+
}
|
|
138
|
+
async _waitForLinkComplete() {
|
|
139
|
+
const waitMs = async (ms) => await new Promise(resolve => setTimeout(resolve, ms));
|
|
140
|
+
const DELAY_MS = 10;
|
|
141
|
+
if (!this.device.features.has('compilation-status-async-webgl')) {
|
|
142
|
+
await waitMs(DELAY_MS);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
const { gl } = this.device;
|
|
146
|
+
for (;;) {
|
|
147
|
+
const complete = gl.getProgramParameter(this.handle, 37297);
|
|
148
|
+
if (complete) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
await waitMs(DELAY_MS);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=webgl-shared-render-pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-shared-render-pipeline.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shared-render-pipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import {
|
|
3
|
-
import { GL, GLTextureTarget, GLTextureCubeMapTarget, GLTexelDataFormat, GLPixelType, GLSamplerParameters } from '@luma.gl/constants';
|
|
1
|
+
import { type Device, type TextureProps, type TextureViewProps, type Sampler, type SamplerProps, type CopyExternalImageOptions, type TextureReadOptions, type TextureWriteOptions, Buffer, Texture } from '@luma.gl/core';
|
|
2
|
+
import { GLSamplerParameters, GL, GLTextureTarget, GLTextureCubeMapTarget, GLTexelDataFormat, GLPixelType } from '@luma.gl/webgl/constants';
|
|
4
3
|
import { WebGLDevice } from "../webgl-device.js";
|
|
4
|
+
import { WEBGLFramebuffer } from "./webgl-framebuffer.js";
|
|
5
5
|
import { WEBGLSampler } from "./webgl-sampler.js";
|
|
6
6
|
import { WEBGLTextureView } from "./webgl-texture-view.js";
|
|
7
7
|
/**
|
|
@@ -33,15 +33,53 @@ export declare class WEBGLTexture extends Texture {
|
|
|
33
33
|
compressed: boolean;
|
|
34
34
|
/** Texture binding slot - TODO - move to texture view? */
|
|
35
35
|
_textureUnit: number;
|
|
36
|
+
/** Cached framebuffer reused for color texture readback. */
|
|
37
|
+
_framebuffer: WEBGLFramebuffer | null;
|
|
38
|
+
/** Cache key for the currently attached readback subresource `${mipLevel}:${layer}`. */
|
|
39
|
+
_framebufferAttachmentKey: string | null;
|
|
36
40
|
constructor(device: Device, props: TextureProps);
|
|
37
41
|
destroy(): void;
|
|
38
42
|
createView(props: TextureViewProps): WEBGLTextureView;
|
|
39
43
|
setSampler(sampler?: Sampler | SamplerProps): void;
|
|
40
|
-
copyImageData(options_: CopyImageDataOptions): void;
|
|
41
44
|
copyExternalImage(options_: CopyExternalImageOptions): {
|
|
42
45
|
width: number;
|
|
43
46
|
height: number;
|
|
44
47
|
};
|
|
48
|
+
copyImageData(options_: any): void;
|
|
49
|
+
/**
|
|
50
|
+
* Reads a color texture subresource into a GPU buffer using `PIXEL_PACK_BUFFER`.
|
|
51
|
+
*
|
|
52
|
+
* @note Only first-pass color readback is supported. Unsupported formats and aspects throw
|
|
53
|
+
* before any WebGL calls are issued.
|
|
54
|
+
*/
|
|
55
|
+
readBuffer(options?: TextureReadOptions & {
|
|
56
|
+
byteOffset?: number;
|
|
57
|
+
}, buffer?: Buffer): Buffer;
|
|
58
|
+
readDataAsync(options?: TextureReadOptions): Promise<ArrayBuffer>;
|
|
59
|
+
writeBuffer(buffer: Buffer, options_?: TextureWriteOptions): void;
|
|
60
|
+
writeData(data: ArrayBuffer | SharedArrayBuffer | ArrayBufferView, options_?: TextureWriteOptions): void;
|
|
61
|
+
/** @todo - for now we always use 1 for maximum compatibility, we can fine tune later */
|
|
62
|
+
private _getRowByteAlignment;
|
|
63
|
+
/**
|
|
64
|
+
* Wraps a given texture into a framebuffer object, that can be further used
|
|
65
|
+
* to read data from the texture object.
|
|
66
|
+
*/
|
|
67
|
+
_getFramebuffer(): WEBGLFramebuffer;
|
|
68
|
+
readDataSyncWebGL(options_?: TextureReadOptions): ArrayBuffer;
|
|
69
|
+
/**
|
|
70
|
+
* Iterates the requested mip/layer/slice range, reattaching the cached read framebuffer as
|
|
71
|
+
* needed before delegating the actual `readPixels()` call to the supplied callback.
|
|
72
|
+
*/
|
|
73
|
+
private _readColorTextureLayers;
|
|
74
|
+
/**
|
|
75
|
+
* Attaches a single color subresource to the cached read framebuffer.
|
|
76
|
+
*
|
|
77
|
+
* @note Repeated attachments of the same `(mipLevel, layer)` tuple are skipped.
|
|
78
|
+
*/
|
|
79
|
+
private _attachReadSubresource;
|
|
80
|
+
/**
|
|
81
|
+
* @note - this is used by the DynamicTexture class to generate mipmaps on WebGL
|
|
82
|
+
*/
|
|
45
83
|
generateMipmapsWebGL(options?: {
|
|
46
84
|
force?: boolean;
|
|
47
85
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
|