@luma.gl/webgl 9.0.0-beta.5 → 9.0.0-beta.7

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.
Files changed (192) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  2. package/dist/adapter/converters/device-parameters.js +128 -71
  3. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  4. package/dist/adapter/converters/sampler-parameters.js +20 -19
  5. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  6. package/dist/adapter/converters/shader-formats.js +40 -20
  7. package/dist/adapter/converters/texture-formats.d.ts +16 -11
  8. package/dist/adapter/converters/texture-formats.d.ts.map +1 -1
  9. package/dist/adapter/converters/texture-formats.js +224 -205
  10. package/dist/adapter/converters/vertex-formats.d.ts.map +1 -1
  11. package/dist/adapter/converters/vertex-formats.js +22 -21
  12. package/dist/adapter/device-helpers/webgl-device-features.d.ts +19 -5
  13. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  14. package/dist/adapter/device-helpers/webgl-device-features.js +89 -43
  15. package/dist/adapter/device-helpers/webgl-device-info.d.ts +2 -1
  16. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
  17. package/dist/adapter/device-helpers/webgl-device-info.js +22 -19
  18. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +33 -48
  19. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
  20. package/dist/adapter/device-helpers/webgl-device-limits.js +42 -87
  21. package/dist/adapter/helpers/decode-webgl-types.d.ts.map +1 -1
  22. package/dist/adapter/helpers/decode-webgl-types.js +47 -46
  23. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  24. package/dist/adapter/helpers/get-shader-layout.js +35 -34
  25. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  26. package/dist/adapter/helpers/parse-shader-compiler-log.js +3 -2
  27. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  28. package/dist/adapter/helpers/set-uniform.js +42 -41
  29. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  30. package/dist/adapter/helpers/webgl-topology-utils.js +40 -39
  31. package/dist/adapter/objects/constants-to-keys.d.ts.map +1 -1
  32. package/dist/adapter/objects/constants-to-keys.js +2 -1
  33. package/dist/adapter/objects/webgl-renderbuffer.d.ts +2 -2
  34. package/dist/adapter/objects/webgl-renderbuffer.d.ts.map +1 -1
  35. package/dist/adapter/objects/webgl-renderbuffer.js +30 -17
  36. package/dist/adapter/objects/webgl-resource.d.ts +2 -24
  37. package/dist/adapter/objects/webgl-resource.d.ts.map +1 -1
  38. package/dist/adapter/objects/webgl-resource.js +6 -101
  39. package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
  40. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  41. package/dist/adapter/resources/webgl-buffer.js +16 -15
  42. package/dist/adapter/resources/webgl-command-buffer.d.ts +1 -1
  43. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgl-command-buffer.js +32 -31
  45. package/dist/adapter/resources/webgl-command-encoder.d.ts +8 -3
  46. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  47. package/dist/adapter/resources/webgl-command-encoder.js +4 -2
  48. package/dist/adapter/resources/webgl-external-texture.js +6 -5
  49. package/dist/adapter/resources/webgl-framebuffer.d.ts +6 -10
  50. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  51. package/dist/adapter/resources/webgl-framebuffer.js +60 -53
  52. package/dist/adapter/resources/webgl-query-set.d.ts +44 -0
  53. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -0
  54. package/dist/adapter/resources/webgl-query-set.js +136 -0
  55. package/dist/adapter/resources/webgl-render-pass.d.ts +3 -1
  56. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  57. package/dist/adapter/resources/webgl-render-pass.js +20 -12
  58. package/dist/adapter/resources/webgl-render-pipeline.d.ts +4 -5
  59. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  60. package/dist/adapter/resources/webgl-render-pipeline.js +52 -61
  61. package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
  62. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-sampler.js +5 -4
  64. package/dist/adapter/resources/webgl-shader.d.ts +3 -2
  65. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  66. package/dist/adapter/resources/webgl-shader.js +15 -9
  67. package/dist/adapter/resources/webgl-texture-view.d.ts +14 -0
  68. package/dist/adapter/resources/webgl-texture-view.d.ts.map +1 -0
  69. package/dist/adapter/resources/webgl-texture-view.js +18 -0
  70. package/dist/adapter/resources/webgl-texture.d.ts +6 -4
  71. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  72. package/dist/adapter/resources/webgl-texture.js +39 -32
  73. package/dist/adapter/resources/webgl-transform-feedback.d.ts +1 -1
  74. package/dist/adapter/resources/webgl-transform-feedback.d.ts.map +1 -1
  75. package/dist/adapter/resources/webgl-transform-feedback.js +10 -10
  76. package/dist/adapter/resources/webgl-vertex-array.d.ts +3 -3
  77. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  78. package/dist/adapter/resources/webgl-vertex-array.js +10 -9
  79. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  80. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  81. package/dist/adapter/webgl-canvas-context.js +3 -2
  82. package/dist/adapter/webgl-device.d.ts +35 -30
  83. package/dist/adapter/webgl-device.d.ts.map +1 -1
  84. package/dist/adapter/webgl-device.js +110 -109
  85. package/dist/classic/accessor.d.ts.map +1 -1
  86. package/dist/classic/accessor.js +8 -7
  87. package/dist/classic/clear.d.ts.map +1 -1
  88. package/dist/classic/clear.js +5 -4
  89. package/dist/classic/copy-and-blit.d.ts +1 -1
  90. package/dist/classic/copy-and-blit.d.ts.map +1 -1
  91. package/dist/classic/copy-and-blit.js +19 -19
  92. package/dist/classic/format-utils.d.ts.map +1 -1
  93. package/dist/classic/format-utils.js +16 -15
  94. package/dist/classic/typed-array-utils.d.ts.map +1 -1
  95. package/dist/classic/typed-array-utils.js +20 -19
  96. package/dist/context/debug/spector.d.ts.map +1 -1
  97. package/dist/context/debug/spector.js +2 -1
  98. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  99. package/dist/context/debug/webgl-developer-tools.js +7 -6
  100. package/dist/context/{context → helpers}/create-browser-context.d.ts.map +1 -1
  101. package/dist/context/{context → helpers}/create-browser-context.js +2 -1
  102. package/dist/context/{context/context-data.d.ts → helpers/webgl-context-data.d.ts} +2 -3
  103. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -0
  104. package/dist/context/helpers/webgl-context-data.js +21 -0
  105. package/dist/context/helpers/webgl-extensions.d.ts +4 -0
  106. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -0
  107. package/dist/context/helpers/webgl-extensions.js +10 -0
  108. package/dist/context/parameters/unified-parameter-api.d.ts +3 -4
  109. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  110. package/dist/context/parameters/unified-parameter-api.js +7 -11
  111. package/dist/context/parameters/webgl-parameter-tables.d.ts +12 -13
  112. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  113. package/dist/context/parameters/webgl-parameter-tables.js +302 -295
  114. package/dist/context/state-tracker/deep-array-equal.d.ts.map +1 -1
  115. package/dist/context/state-tracker/deep-array-equal.js +2 -1
  116. package/dist/context/state-tracker/track-context-state.d.ts.map +1 -1
  117. package/dist/context/state-tracker/track-context-state.js +5 -4
  118. package/dist/context/state-tracker/with-parameters.d.ts +2 -3
  119. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  120. package/dist/context/state-tracker/with-parameters.js +6 -8
  121. package/dist/dist.dev.js +1635 -1387
  122. package/dist/index.cjs +1766 -1534
  123. package/dist/index.cjs.map +4 -4
  124. package/dist/index.d.ts +25 -25
  125. package/dist/index.d.ts.map +1 -1
  126. package/dist/index.js +24 -23
  127. package/dist/types.d.ts.map +1 -1
  128. package/dist/types.js +2 -1
  129. package/dist.min.js +6 -6
  130. package/package.json +4 -4
  131. package/src/adapter/converters/device-parameters.ts +114 -27
  132. package/src/adapter/converters/sampler-parameters.ts +12 -3
  133. package/src/adapter/converters/shader-formats.ts +47 -22
  134. package/src/adapter/converters/texture-formats.ts +138 -114
  135. package/src/adapter/converters/vertex-formats.ts +3 -3
  136. package/src/adapter/device-helpers/webgl-device-features.ts +102 -50
  137. package/src/adapter/device-helpers/webgl-device-info.ts +28 -19
  138. package/src/adapter/device-helpers/webgl-device-limits.ts +46 -150
  139. package/src/adapter/helpers/decode-webgl-types.ts +13 -7
  140. package/src/adapter/helpers/get-shader-layout.ts +4 -3
  141. package/src/adapter/helpers/parse-shader-compiler-log.ts +10 -6
  142. package/src/adapter/helpers/set-uniform.ts +2 -1
  143. package/src/adapter/helpers/webgl-topology-utils.ts +10 -3
  144. package/src/adapter/objects/constants-to-keys.ts +2 -1
  145. package/src/adapter/objects/webgl-renderbuffer.ts +36 -14
  146. package/src/adapter/objects/webgl-resource.ts +7 -125
  147. package/src/adapter/resources/webgl-buffer.ts +4 -3
  148. package/src/adapter/resources/webgl-command-buffer.ts +5 -5
  149. package/src/adapter/resources/webgl-command-encoder.ts +14 -11
  150. package/src/adapter/resources/webgl-external-texture.ts +6 -5
  151. package/src/adapter/resources/webgl-framebuffer.ts +61 -53
  152. package/src/adapter/resources/webgl-query-set.ts +171 -0
  153. package/src/adapter/resources/webgl-render-pass.ts +20 -11
  154. package/src/adapter/resources/webgl-render-pipeline.ts +54 -54
  155. package/src/adapter/resources/webgl-sampler.ts +2 -1
  156. package/src/adapter/resources/webgl-shader.ts +12 -5
  157. package/src/adapter/resources/webgl-texture-view.ts +28 -0
  158. package/src/adapter/resources/webgl-texture.ts +14 -3
  159. package/src/adapter/resources/webgl-transform-feedback.ts +2 -7
  160. package/src/adapter/resources/webgl-vertex-array.ts +4 -3
  161. package/src/adapter/webgl-canvas-context.ts +6 -4
  162. package/src/adapter/webgl-device.ts +116 -107
  163. package/src/classic/accessor.ts +5 -4
  164. package/src/classic/clear.ts +14 -8
  165. package/src/classic/copy-and-blit.ts +11 -4
  166. package/src/classic/format-utils.ts +2 -1
  167. package/src/classic/typed-array-utils.ts +3 -7
  168. package/src/context/debug/spector.ts +9 -6
  169. package/src/context/debug/webgl-developer-tools.ts +27 -14
  170. package/src/context/{context → helpers}/create-browser-context.ts +3 -2
  171. package/src/context/helpers/webgl-context-data.ts +31 -0
  172. package/src/context/helpers/webgl-extensions.ts +17 -0
  173. package/src/context/parameters/unified-parameter-api.ts +6 -17
  174. package/src/context/parameters/webgl-parameter-tables.ts +69 -32
  175. package/src/context/state-tracker/deep-array-equal.ts +2 -1
  176. package/src/context/state-tracker/track-context-state.ts +11 -6
  177. package/src/context/state-tracker/with-parameters.ts +8 -8
  178. package/src/index.ts +7 -6
  179. package/src/types.ts +2 -1
  180. package/dist/adapter/device-helpers/device-features.d.ts +0 -6
  181. package/dist/adapter/device-helpers/device-features.d.ts.map +0 -1
  182. package/dist/adapter/device-helpers/device-features.js +0 -65
  183. package/dist/adapter/device-helpers/device-limits.d.ts +0 -50
  184. package/dist/adapter/device-helpers/device-limits.d.ts.map +0 -1
  185. package/dist/adapter/device-helpers/device-limits.js +0 -92
  186. package/dist/adapter/device-helpers/get-device-info.d.ts +0 -4
  187. package/dist/adapter/device-helpers/get-device-info.d.ts.map +0 -1
  188. package/dist/adapter/device-helpers/get-device-info.js +0 -87
  189. package/dist/context/context/context-data.d.ts.map +0 -1
  190. package/dist/context/context/context-data.js +0 -33
  191. package/src/context/context/context-data.ts +0 -44
  192. /package/dist/context/{context → helpers}/create-browser-context.d.ts +0 -0
@@ -1,16 +1,18 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
  import { RenderPipeline, cast, splitUniformsAndBindings, log } from '@luma.gl/core';
4
5
  import { mergeShaderLayout } from '@luma.gl/core';
5
6
  // import {mergeShaderLayout, getAttributeInfosFromLayouts} from '@luma.gl/core';
6
7
  import { GL } from '@luma.gl/constants';
7
- import { getShaderLayout } from '../helpers/get-shader-layout';
8
- import { withDeviceAndGLParameters } from '../converters/device-parameters';
9
- import { setUniform } from '../helpers/set-uniform';
10
- import { WEBGLBuffer } from './webgl-buffer';
11
- import { WEBGLFramebuffer } from './webgl-framebuffer';
12
- import { WEBGLTexture } from './webgl-texture';
13
- import { getGLDrawMode } from '../helpers/webgl-topology-utils';
8
+ import { getShaderLayout } from "../helpers/get-shader-layout.js";
9
+ import { withDeviceAndGLParameters } from "../converters/device-parameters.js";
10
+ import { setUniform } from "../helpers/set-uniform.js";
11
+ import { WEBGLBuffer } from "./webgl-buffer.js";
12
+ import { WEBGLFramebuffer } from "./webgl-framebuffer.js";
13
+ import { WEBGLTexture } from "./webgl-texture.js";
14
+ import { WEBGLTextureView } from "./webgl-texture-view.js";
15
+ import { getGLDrawMode } from "../helpers/webgl-topology-utils.js";
14
16
  const LOG_PROGRAM_PERF_PRIORITY = 4;
15
17
  /** Creates a new render pipeline */
16
18
  export class WEBGLRenderPipeline extends RenderPipeline {
@@ -44,13 +46,15 @@ export class WEBGLRenderPipeline extends RenderPipeline {
44
46
  // assert(this.fs.stage === 'fragment');
45
47
  // Setup varyings if supplied
46
48
  // @ts-expect-error WebGL only
47
- const { varyings, bufferMode = GL.SEPARATE_ATTRIBS } = props;
49
+ const { varyings, bufferMode = 35981 } = props;
48
50
  if (varyings && varyings.length > 0) {
49
51
  this.varyings = varyings;
50
52
  this.device.gl.transformFeedbackVaryings(this.handle, varyings, bufferMode);
51
53
  }
52
54
  this._linkShaders();
55
+ log.time(0, `RenderPipeline ${this.id} - shaderLayout introspection`)();
53
56
  this.introspectedLayout = getShaderLayout(this.device.gl, this.handle);
57
+ log.timeEnd(0, `RenderPipeline ${this.id} - shaderLayout introspection`)();
54
58
  // Merge provided layout with introspected layout
55
59
  this.shaderLayout = mergeShaderLayout(this.introspectedLayout, props.shaderLayout);
56
60
  // WebGPU has more restrictive topology support than WebGL
@@ -102,7 +106,9 @@ export class WEBGLRenderPipeline extends RenderPipeline {
102
106
  }
103
107
  break;
104
108
  case 'texture':
105
- if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {
109
+ if (!(value instanceof WEBGLTextureView ||
110
+ value instanceof WEBGLTexture ||
111
+ value instanceof WEBGLFramebuffer)) {
106
112
  throw new Error('texture value');
107
113
  }
108
114
  break;
@@ -115,24 +121,11 @@ export class WEBGLRenderPipeline extends RenderPipeline {
115
121
  this.bindings[name] = value;
116
122
  }
117
123
  }
118
- /** This function is @deprecated, use uniform buffers */
119
- setUniforms(uniforms) {
120
- const { bindings } = splitUniformsAndBindings(uniforms);
121
- Object.keys(bindings).forEach(name => {
122
- log.warn(`Unsupported value "${JSON.stringify(bindings[name])}" used in setUniforms() for key ${name}. Use setBindings() instead?`)();
123
- });
124
- // TODO - check against layout
125
- Object.assign(this.uniforms, uniforms);
126
- }
127
124
  /** @todo needed for portable model
128
125
  * @note The WebGL API is offers many ways to draw things
129
126
  * This function unifies those ways into a single call using common parameters with sane defaults
130
127
  */
131
128
  draw(options) {
132
- // If we are using async linking, we need to wait until linking completes
133
- if (this.linkStatus !== 'success') {
134
- return false;
135
- }
136
129
  const { renderPass, vertexArray, vertexCount,
137
130
  // indexCount,
138
131
  instanceCount, firstVertex = 0,
@@ -144,14 +137,24 @@ export class WEBGLRenderPipeline extends RenderPipeline {
144
137
  const isIndexed = Boolean(vertexArray.indexBuffer);
145
138
  const glIndexType = vertexArray.indexBuffer?.glIndexType;
146
139
  const isInstanced = Number(instanceCount) > 0;
140
+ // If we are using async linking, we need to wait until linking completes
141
+ if (this.linkStatus !== 'success') {
142
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)();
143
+ return false;
144
+ }
147
145
  // Avoid WebGL draw call when not rendering any data or values are incomplete
148
146
  // Note: async textures set as uniforms might still be loading.
149
147
  // Now that all uniforms have been updated, check if any texture
150
148
  // in the uniforms is not yet initialized, then we don't draw
151
149
  if (!this._areTexturesRenderable() || vertexCount === 0) {
152
- // (isInstanced && instanceCount === 0)
150
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)();
153
151
  return false;
154
152
  }
153
+ // (isInstanced && instanceCount === 0)
154
+ if (vertexCount === 0) {
155
+ log.info(2, `RenderPipeline:${this.id}.draw() aborted - no vertices to draw`)();
156
+ return true;
157
+ }
155
158
  this.device.gl.useProgram(this.handle);
156
159
  // Note: Rebinds constant attributes before each draw call
157
160
  vertexArray.bindBeforeRender(renderPass);
@@ -162,34 +165,8 @@ export class WEBGLRenderPipeline extends RenderPipeline {
162
165
  this._applyBindings();
163
166
  this._applyUniforms();
164
167
  const webglRenderPass = renderPass;
165
- // // TODO - Use polyfilled WebGL2RenderingContext instead of ANGLE extension
166
- // if (isIndexed && isInstanced) {
167
- // // ANGLE_instanced_arrays extension
168
- // this.device.gl.drawElementsInstanced(
169
- // drawMode,
170
- // vertexCount || 0, // indexCount?
171
- // indexType,
172
- // firstVertex,
173
- // instanceCount || 0
174
- // );
175
- // // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {
176
- // // this.device.gldrawRangeElements(drawMode, start, end, vertexCount, indexType, offset);
177
- // } else if (isIndexed) {
178
- // this.device.gl.drawElements(drawMode, vertexCount || 0, indexType, firstVertex); // indexCount?
179
- // } else if (isInstanced) {
180
- // this.device.gl.drawArraysInstanced(
181
- // drawMode,
182
- // firstVertex,
183
- // vertexCount || 0,
184
- // instanceCount || 0
185
- // );
186
- // } else {
187
- // this.device.gl.drawArrays(drawMode, firstVertex, vertexCount || 0);
188
- // }
189
- // });
190
168
  withDeviceAndGLParameters(this.device, this.props.parameters, webglRenderPass.glParameters, () => {
191
169
  if (isIndexed && isInstanced) {
192
- // ANGLE_instanced_arrays extension
193
170
  this.device.gl.drawElementsInstanced(glDrawMode, vertexCount || 0, // indexCount?
194
171
  glIndexType, firstVertex, instanceCount || 0);
195
172
  // } else if (isIndexed && this.device.isWebGL2 && !isNaN(start) && !isNaN(end)) {
@@ -211,6 +188,15 @@ export class WEBGLRenderPipeline extends RenderPipeline {
211
188
  vertexArray.unbindAfterRender(renderPass);
212
189
  return true;
213
190
  }
191
+ // DEPRECATED METHODS
192
+ setUniformsWebGL(uniforms) {
193
+ const { bindings } = splitUniformsAndBindings(uniforms);
194
+ Object.keys(bindings).forEach(name => {
195
+ log.warn(`Unsupported value "${JSON.stringify(bindings[name])}" used in setUniforms() for key ${name}. Use setBindings() instead?`)();
196
+ });
197
+ // TODO - check against layout
198
+ Object.assign(this.uniforms, uniforms);
199
+ }
214
200
  // PRIVATE METHODS
215
201
  // setAttributes(attributes: Record<string, Buffer>): void {}
216
202
  // setBindings(bindings: Record<string, Binding>): void {}
@@ -225,7 +211,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
225
211
  if (log.level === 0) {
226
212
  // return;
227
213
  }
228
- if (!this.device.features.has('shader-status-async-webgl')) {
214
+ if (!this.device.features.has('compilation-status-async-webgl')) {
229
215
  const status = this._getLinkStatus();
230
216
  this._reportLinkStatus(status);
231
217
  return;
@@ -262,13 +248,13 @@ export class WEBGLRenderPipeline extends RenderPipeline {
262
248
  */
263
249
  _getLinkStatus() {
264
250
  const { gl } = this.device;
265
- const linked = gl.getProgramParameter(this.handle, gl.LINK_STATUS);
251
+ const linked = gl.getProgramParameter(this.handle, 35714);
266
252
  if (!linked) {
267
253
  this.linkStatus = 'error';
268
254
  return 'linking';
269
255
  }
270
256
  gl.validateProgram(this.handle);
271
- const validated = gl.getProgramParameter(this.handle, gl.VALIDATE_STATUS);
257
+ const validated = gl.getProgramParameter(this.handle, 35715);
272
258
  if (!validated) {
273
259
  this.linkStatus = 'error';
274
260
  return 'validation';
@@ -281,13 +267,13 @@ export class WEBGLRenderPipeline extends RenderPipeline {
281
267
  const waitMs = async (ms) => await new Promise(resolve => setTimeout(resolve, ms));
282
268
  const DELAY_MS = 10; // Shader compilation is typically quite fast (with some exceptions)
283
269
  // If status polling is not available, we can't wait for completion. Just wait a little to minimize blocking
284
- if (!this.device.features.has('shader-status-async-webgl')) {
270
+ if (!this.device.features.has('compilation-status-async-webgl')) {
285
271
  await waitMs(DELAY_MS);
286
272
  return;
287
273
  }
288
274
  const { gl } = this.device;
289
275
  for (;;) {
290
- const complete = gl.getProgramParameter(this.handle, GL.COMPLETION_STATUS);
276
+ const complete = gl.getProgramParameter(this.handle, 37297);
291
277
  if (complete) {
292
278
  return;
293
279
  }
@@ -330,16 +316,16 @@ export class WEBGLRenderPipeline extends RenderPipeline {
330
316
  // Set buffer
331
317
  const { name } = binding;
332
318
  const location = gl.getUniformBlockIndex(this.handle, name);
333
- if (location === GL.INVALID_INDEX) {
319
+ if (location === 4294967295) {
334
320
  throw new Error(`Invalid uniform block name ${name}`);
335
321
  }
336
322
  gl.uniformBlockBinding(this.handle, uniformBufferIndex, location);
337
323
  // console.debug(binding, location);
338
324
  if (value instanceof WEBGLBuffer) {
339
- gl.bindBufferBase(GL.UNIFORM_BUFFER, uniformBufferIndex, value.handle);
325
+ gl.bindBufferBase(35345, uniformBufferIndex, value.handle);
340
326
  }
341
327
  else {
342
- gl.bindBufferRange(GL.UNIFORM_BUFFER, uniformBufferIndex,
328
+ gl.bindBufferRange(35345, uniformBufferIndex,
343
329
  // @ts-expect-error
344
330
  value.buffer.handle,
345
331
  // @ts-expect-error
@@ -350,11 +336,16 @@ export class WEBGLRenderPipeline extends RenderPipeline {
350
336
  uniformBufferIndex += 1;
351
337
  break;
352
338
  case 'texture':
353
- if (!(value instanceof WEBGLTexture || value instanceof WEBGLFramebuffer)) {
339
+ if (!(value instanceof WEBGLTextureView ||
340
+ value instanceof WEBGLTexture ||
341
+ value instanceof WEBGLFramebuffer)) {
354
342
  throw new Error('texture');
355
343
  }
356
344
  let texture;
357
- if (value instanceof WEBGLTexture) {
345
+ if (value instanceof WEBGLTextureView) {
346
+ texture = value.texture;
347
+ }
348
+ else if (value instanceof WEBGLTexture) {
358
349
  texture = value;
359
350
  }
360
351
  else if (value instanceof WEBGLFramebuffer &&
@@ -365,7 +356,7 @@ export class WEBGLRenderPipeline extends RenderPipeline {
365
356
  else {
366
357
  throw new Error('No texture');
367
358
  }
368
- gl.activeTexture(GL.TEXTURE0 + textureUnit);
359
+ gl.activeTexture(33984 + textureUnit);
369
360
  gl.bindTexture(texture.target, texture.handle);
370
361
  // gl.bindSampler(textureUnit, sampler.handle);
371
362
  textureUnit += 1;
@@ -1,6 +1,6 @@
1
1
  import { Sampler, SamplerProps } from '@luma.gl/core';
2
2
  import { GLSamplerParameters } from '@luma.gl/constants';
3
- import type { WebGLDevice } from '../webgl-device';
3
+ import type { WebGLDevice } from "../webgl-device.js";
4
4
  /**
5
5
  * Sampler object -
6
6
  * so that they can be set directly on the texture
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAK,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;gBAE7B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY;IAQ3C,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,MAAM;IAI3B,4CAA4C;IAC5C,OAAO,CAAC,qBAAqB;CAgB9B"}
1
+ {"version":3,"file":"webgl-sampler.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-sampler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAK,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAC,WAAW,EAAC,2BAAwB;AAEjD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,OAAO;IACvC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;gBAE7B,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY;IAQ3C,OAAO,IAAI,IAAI;IAQf,QAAQ,IAAI,MAAM;IAI3B,4CAA4C;IAC5C,OAAO,CAAC,qBAAqB;CAgB9B"}
@@ -1,8 +1,9 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
  import { Sampler } from '@luma.gl/core';
4
5
  import { GL } from '@luma.gl/constants';
5
- import { convertSamplerParametersToWebGL } from '../converters/sampler-parameters';
6
+ import { convertSamplerParametersToWebGL } from "../converters/sampler-parameters.js";
6
7
  /**
7
8
  * Sampler object -
8
9
  * so that they can be set directly on the texture
@@ -36,8 +37,8 @@ export class WEBGLSampler extends Sampler {
36
37
  // For now, pick the float version for parameters specified as GLfloat.
37
38
  const param = Number(pname);
38
39
  switch (param) {
39
- case GL.TEXTURE_MIN_LOD:
40
- case GL.TEXTURE_MAX_LOD:
40
+ case 33082:
41
+ case 33083:
41
42
  this.device.gl.samplerParameterf(this.handle, param, value);
42
43
  break;
43
44
  default:
@@ -1,5 +1,5 @@
1
1
  import { Shader, ShaderProps, CompilerMessage } from '@luma.gl/core';
2
- import { WebGLDevice } from '../webgl-device';
2
+ import { WebGLDevice } from "../webgl-device.js";
3
3
  /**
4
4
  * An immutable compiled shader program that execute portions of the GPU Pipeline
5
5
  */
@@ -10,6 +10,7 @@ export declare class WEBGLShader extends Shader {
10
10
  destroy(): void;
11
11
  getCompilationInfo(): Promise<readonly CompilerMessage[]>;
12
12
  getCompilationInfoSync(): readonly CompilerMessage[];
13
+ getTranslatedSource(): string | null;
13
14
  /** Compile a shader and get compilation status */
14
15
  protected _compile(source: string): Promise<void>;
15
16
  /** Use KHR_parallel_shader_compile extension if available */
@@ -18,7 +19,7 @@ export declare class WEBGLShader extends Shader {
18
19
  * Get the shader compilation status
19
20
  * TODO - Load log even when no error reported, to catch warnings?
20
21
  * https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
21
- */
22
+ */
22
23
  protected _getCompilationStatus(): void;
23
24
  }
24
25
  //# sourceMappingURL=webgl-shader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAM,MAAM,eAAe,CAAC;AAGxE,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;IAgB1C,OAAO,IAAI,IAAI;IAST,kBAAkB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAK/D,sBAAsB;IAO/B,kDAAkD;cAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCvD,6DAA6D;cAC7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5D;;;;MAIE;IACF,SAAS,CAAC,qBAAqB;CAKhC"}
1
+ {"version":3,"file":"webgl-shader.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-shader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,eAAe,EAAM,MAAM,eAAe,CAAC;AAGxE,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C;;GAEG;AACH,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;gBAEjB,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW;IAgB1C,OAAO,IAAI,IAAI;IAST,kBAAkB,IAAI,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC;IAK/D,sBAAsB;IAKtB,mBAAmB,IAAI,MAAM,GAAG,IAAI;IAQ7C,kDAAkD;cAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCvD,6DAA6D;cAC7C,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5D;;;;OAIG;IACH,SAAS,CAAC,qBAAqB;CAKhC"}
@@ -1,8 +1,9 @@
1
- // luma.gl, MIT license
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
2
3
  // Copyright (c) vis.gl contributors
3
4
  import { Shader, log } from '@luma.gl/core';
4
5
  import { GL } from '@luma.gl/constants';
5
- import { parseShaderCompilerLog } from '../helpers/parse-shader-compiler-log';
6
+ import { parseShaderCompilerLog } from "../helpers/parse-shader-compiler-log.js";
6
7
  /**
7
8
  * An immutable compiled shader program that execute portions of the GPU Pipeline
8
9
  */
@@ -14,10 +15,10 @@ export class WEBGLShader extends Shader {
14
15
  this.device = device;
15
16
  switch (this.props.stage) {
16
17
  case 'vertex':
17
- this.handle = this.props.handle || this.device.gl.createShader(GL.VERTEX_SHADER);
18
+ this.handle = this.props.handle || this.device.gl.createShader(35633);
18
19
  break;
19
20
  case 'fragment':
20
- this.handle = this.props.handle || this.device.gl.createShader(GL.FRAGMENT_SHADER);
21
+ this.handle = this.props.handle || this.device.gl.createShader(35632);
21
22
  break;
22
23
  default:
23
24
  throw new Error(this.props.stage);
@@ -40,6 +41,11 @@ export class WEBGLShader extends Shader {
40
41
  const log = this.device.gl.getShaderInfoLog(this.handle);
41
42
  return parseShaderCompilerLog(log);
42
43
  }
44
+ getTranslatedSource() {
45
+ const extensions = this.device.getExtension('WEBGL_debug_shaders');
46
+ const ext = extensions.WEBGL_debug_shaders;
47
+ return ext?.getTranslatedShaderSource(this.handle);
48
+ }
43
49
  // PRIVATE METHODS
44
50
  /** Compile a shader and get compilation status */
45
51
  async _compile(source) {
@@ -54,7 +60,7 @@ export class WEBGLShader extends Shader {
54
60
  return;
55
61
  }
56
62
  // Sync case - slower, but advantage is that it throws in the constructor, making break on error more useful
57
- if (!this.device.features.has('shader-status-async-webgl')) {
63
+ if (!this.device.features.has('compilation-status-async-webgl')) {
58
64
  this._getCompilationStatus();
59
65
  if (this.compilationStatus === 'error') {
60
66
  throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);
@@ -76,13 +82,13 @@ export class WEBGLShader extends Shader {
76
82
  const waitMs = async (ms) => await new Promise(resolve => setTimeout(resolve, ms));
77
83
  const DELAY_MS = 10; // Shader compilation is typically quite fast (with some exceptions)
78
84
  // If status polling is not available, we can't wait for completion. Just wait a little to minimize blocking
79
- if (!this.device.features.has('shader-status-async-webgl')) {
85
+ if (!this.device.features.has('compilation-status-async-webgl')) {
80
86
  await waitMs(DELAY_MS);
81
87
  return;
82
88
  }
83
89
  const { gl } = this.device;
84
90
  for (;;) {
85
- const complete = gl.getShaderParameter(this.handle, GL.COMPLETION_STATUS);
91
+ const complete = gl.getShaderParameter(this.handle, 37297);
86
92
  if (complete) {
87
93
  return;
88
94
  }
@@ -93,9 +99,9 @@ export class WEBGLShader extends Shader {
93
99
  * Get the shader compilation status
94
100
  * TODO - Load log even when no error reported, to catch warnings?
95
101
  * https://gamedev.stackexchange.com/questions/30429/how-to-detect-glsl-warnings
96
- */
102
+ */
97
103
  _getCompilationStatus() {
98
- this.compilationStatus = this.device.gl.getShaderParameter(this.handle, GL.COMPILE_STATUS)
104
+ this.compilationStatus = this.device.gl.getShaderParameter(this.handle, 35713)
99
105
  ? 'success'
100
106
  : 'error';
101
107
  }
@@ -0,0 +1,14 @@
1
+ import type { Device, TextureViewProps } from '@luma.gl/core';
2
+ import { TextureView } from '@luma.gl/core';
3
+ import { WebGLDevice } from "../webgl-device.js";
4
+ import { WEBGLTexture } from "./webgl-texture.js";
5
+ export declare class WEBGLTextureView extends TextureView {
6
+ readonly device: WebGLDevice;
7
+ readonly gl: WebGL2RenderingContext;
8
+ readonly handle: WebGLTexture;
9
+ readonly texture: WEBGLTexture;
10
+ constructor(device: Device, props: TextureViewProps & {
11
+ texture: WEBGLTexture;
12
+ });
13
+ }
14
+ //# sourceMappingURL=webgl-texture-view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-texture-view.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture-view.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAE5D,OAAO,EAAC,WAAW,EAAU,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAE7C,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAE9B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;gBAEnB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG;QAAC,OAAO,EAAE,YAAY,CAAA;KAAC;CAS9E"}
@@ -0,0 +1,18 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ // import {decodeTextureFormat} from '@luma.gl/core';
5
+ import { TextureView, Texture } from '@luma.gl/core';
6
+ export class WEBGLTextureView extends TextureView {
7
+ device;
8
+ gl;
9
+ handle;
10
+ texture;
11
+ constructor(device, props) {
12
+ super(device, { ...Texture.defaultProps, ...props });
13
+ this.device = device;
14
+ this.gl = this.device.gl;
15
+ this.handle = null;
16
+ this.texture = props.texture;
17
+ }
18
+ }
@@ -1,8 +1,9 @@
1
- import { Device, TextureProps, Sampler, SamplerProps, TypedArray } from '@luma.gl/core';
1
+ import { Device, TextureProps, TextureViewProps, Sampler, SamplerProps, TypedArray } from '@luma.gl/core';
2
2
  import { Texture } from '@luma.gl/core';
3
3
  import { GL, GLSamplerParameters } from '@luma.gl/constants';
4
- import { WebGLDevice } from '../webgl-device';
5
- import { WEBGLSampler } from './webgl-sampler';
4
+ import { WebGLDevice } from "../webgl-device.js";
5
+ import { WEBGLSampler } from "./webgl-sampler.js";
6
+ import { WEBGLTextureView } from "./webgl-texture-view.js";
6
7
  export type WEBGLTextureProps = TextureProps & {
7
8
  /** @deprecated use props.sampler */
8
9
  parameters?: Record<number, number>;
@@ -103,8 +104,8 @@ export declare class WEBGLTexture extends Texture<WEBGLTextureProps> {
103
104
  readonly device: WebGLDevice;
104
105
  readonly gl: WebGL2RenderingContext;
105
106
  readonly handle: WebGLTexture;
106
- /** Sampler object (currently unused) */
107
107
  sampler: WEBGLSampler;
108
+ view: WEBGLTextureView;
108
109
  glFormat: GL;
109
110
  type: GL;
110
111
  dataFormat: GL;
@@ -134,6 +135,7 @@ export declare class WEBGLTexture extends Texture<WEBGLTextureProps> {
134
135
  constructor(device: Device, props: WEBGLTextureProps);
135
136
  destroy(): void;
136
137
  toString(): string;
138
+ createView(props: TextureViewProps): WEBGLTextureView;
137
139
  initialize(props?: WEBGLTextureProps): this;
138
140
  initializeCube(props?: WEBGLTextureProps): this;
139
141
  setSampler(sampler?: Sampler | SamplerProps): this;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl-texture.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}