@luma.gl/webgl 9.3.0-alpha.2 → 9.3.0-alpha.6

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 (106) hide show
  1. package/dist/adapter/converters/webgl-texture-table.d.ts +7 -1
  2. package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -1
  3. package/dist/adapter/converters/webgl-texture-table.js +121 -43
  4. package/dist/adapter/converters/webgl-texture-table.js.map +1 -1
  5. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  6. package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
  7. package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -1
  8. package/dist/adapter/device-helpers/webgl-device-info.js +5 -0
  9. package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -1
  10. package/dist/adapter/helpers/get-shader-layout-from-glsl.js +23 -21
  11. package/dist/adapter/helpers/get-shader-layout-from-glsl.js.map +1 -1
  12. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  13. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  14. package/dist/adapter/helpers/parse-shader-compiler-log.js +20 -0
  15. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  16. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  17. package/dist/adapter/resources/webgl-buffer.js +19 -4
  18. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  19. package/dist/adapter/resources/webgl-command-buffer.d.ts +3 -4
  20. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  21. package/dist/adapter/resources/webgl-command-buffer.js +11 -7
  22. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  23. package/dist/adapter/resources/webgl-command-encoder.d.ts +5 -4
  24. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  25. package/dist/adapter/resources/webgl-command-encoder.js +20 -7
  26. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  27. package/dist/adapter/resources/webgl-query-set.d.ts +29 -31
  28. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -1
  29. package/dist/adapter/resources/webgl-query-set.js +193 -97
  30. package/dist/adapter/resources/webgl-query-set.js.map +1 -1
  31. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  32. package/dist/adapter/resources/webgl-render-pass.js +17 -0
  33. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  34. package/dist/adapter/resources/webgl-render-pipeline.d.ts +13 -19
  35. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  36. package/dist/adapter/resources/webgl-render-pipeline.js +36 -154
  37. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  38. package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts +24 -0
  39. package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts.map +1 -0
  40. package/dist/adapter/resources/webgl-shared-render-pipeline.js +152 -0
  41. package/dist/adapter/resources/webgl-shared-render-pipeline.js.map +1 -0
  42. package/dist/adapter/resources/webgl-texture.d.ts +23 -4
  43. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  44. package/dist/adapter/resources/webgl-texture.js +203 -100
  45. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  46. package/dist/adapter/resources/webgl-transform-feedback.js +5 -5
  47. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -1
  48. package/dist/adapter/webgl-adapter.d.ts.map +1 -1
  49. package/dist/adapter/webgl-adapter.js +3 -4
  50. package/dist/adapter/webgl-adapter.js.map +1 -1
  51. package/dist/adapter/webgl-device.d.ts +6 -3
  52. package/dist/adapter/webgl-device.d.ts.map +1 -1
  53. package/dist/adapter/webgl-device.js +56 -14
  54. package/dist/adapter/webgl-device.js.map +1 -1
  55. package/dist/adapter/webgl-presentation-context.d.ts +21 -0
  56. package/dist/adapter/webgl-presentation-context.d.ts.map +1 -0
  57. package/dist/adapter/webgl-presentation-context.js +64 -0
  58. package/dist/adapter/webgl-presentation-context.js.map +1 -0
  59. package/dist/context/debug/spector.d.ts.map +1 -1
  60. package/dist/context/debug/spector.js +4 -4
  61. package/dist/context/debug/spector.js.map +1 -1
  62. package/dist/context/debug/webgl-developer-tools.js +2 -0
  63. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  64. package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
  65. package/dist/context/helpers/create-browser-context.js +6 -8
  66. package/dist/context/helpers/create-browser-context.js.map +1 -1
  67. package/dist/context/helpers/webgl-context-data.d.ts +5 -1
  68. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -1
  69. package/dist/context/helpers/webgl-context-data.js +9 -10
  70. package/dist/context/helpers/webgl-context-data.js.map +1 -1
  71. package/dist/context/parameters/unified-parameter-api.d.ts +1 -1
  72. package/dist/context/parameters/unified-parameter-api.js +2 -2
  73. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  74. package/dist/context/state-tracker/webgl-state-tracker.js +2 -2
  75. package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -1
  76. package/dist/dist.dev.js +1427 -828
  77. package/dist/dist.min.js +2 -2
  78. package/dist/index.cjs +1325 -811
  79. package/dist/index.cjs.map +4 -4
  80. package/dist/utils/fill-array.js +1 -1
  81. package/dist/utils/fill-array.js.map +1 -1
  82. package/package.json +4 -4
  83. package/src/adapter/converters/webgl-texture-table.ts +159 -47
  84. package/src/adapter/device-helpers/webgl-device-features.ts +1 -2
  85. package/src/adapter/device-helpers/webgl-device-info.ts +6 -0
  86. package/src/adapter/helpers/get-shader-layout-from-glsl.ts +25 -24
  87. package/src/adapter/helpers/parse-shader-compiler-log.ts +23 -1
  88. package/src/adapter/resources/webgl-buffer.ts +16 -4
  89. package/src/adapter/resources/webgl-command-buffer.ts +21 -24
  90. package/src/adapter/resources/webgl-command-encoder.ts +22 -7
  91. package/src/adapter/resources/webgl-query-set.ts +229 -102
  92. package/src/adapter/resources/webgl-render-pass.ts +19 -0
  93. package/src/adapter/resources/webgl-render-pipeline.ts +46 -181
  94. package/src/adapter/resources/webgl-shared-render-pipeline.ts +208 -0
  95. package/src/adapter/resources/webgl-texture.ts +326 -121
  96. package/src/adapter/resources/webgl-transform-feedback.ts +5 -5
  97. package/src/adapter/webgl-adapter.ts +3 -4
  98. package/src/adapter/webgl-device.ts +66 -19
  99. package/src/adapter/webgl-presentation-context.ts +93 -0
  100. package/src/context/debug/spector.ts +4 -4
  101. package/src/context/debug/webgl-developer-tools.ts +2 -0
  102. package/src/context/helpers/create-browser-context.ts +8 -8
  103. package/src/context/helpers/webgl-context-data.ts +17 -11
  104. package/src/context/parameters/unified-parameter-api.ts +2 -2
  105. package/src/context/state-tracker/webgl-state-tracker.ts +2 -2
  106. package/src/utils/fill-array.ts +1 -1
@@ -2,15 +2,14 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  // @ts-nocheck
5
- import { Texture, log } from '@luma.gl/core';
5
+ import { Buffer, Texture, log } from '@luma.gl/core';
6
6
  import { GL } from '@luma.gl/constants';
7
7
  import { getTextureFormatWebGL } from "../converters/webgl-texture-table.js";
8
8
  import { convertSamplerParametersToWebGL } from "../converters/sampler-parameters.js";
9
9
  import { withGLParameters } from "../../context/state-tracker/with-parameters.js";
10
10
  import { WEBGLTextureView } from "./webgl-texture-view.js";
11
- import { convertDataTypeToGLDataType } from "../converters/webgl-shadertypes.js";
12
11
  import { convertGLDataTypeToDataType } from "../converters/shader-formats.js";
13
- import { getTypedArrayConstructor, getDataType } from '@luma.gl/core';
12
+ import { getTypedArrayConstructor } from '@luma.gl/core';
14
13
  /**
15
14
  * WebGL... the texture API from hell... hopefully made simpler
16
15
  */
@@ -43,8 +42,10 @@ export class WEBGLTexture extends Texture {
43
42
  // state
44
43
  /** Texture binding slot - TODO - move to texture view? */
45
44
  _textureUnit = 0;
46
- /** Chached framebuffer */
45
+ /** Cached framebuffer reused for color texture readback. */
47
46
  _framebuffer = null;
47
+ /** Cache key for the currently attached readback subresource `${mipLevel}:${layer}`. */
48
+ _framebufferAttachmentKey = null;
48
49
  constructor(device, props) {
49
50
  // const byteAlignment = this._getRowByteAlignment(props.format, props.width);
50
51
  super(device, props, { byteAlignment: 1 });
@@ -67,21 +68,29 @@ export class WEBGLTexture extends Texture {
67
68
  */
68
69
  this.gl.bindTexture(this.glTarget, this.handle);
69
70
  const { dimension, width, height, depth, mipLevels, glTarget, glInternalFormat } = this;
70
- switch (dimension) {
71
- case '2d':
72
- case 'cube':
73
- this.gl.texStorage2D(glTarget, mipLevels, glInternalFormat, width, height);
74
- break;
75
- case '2d-array':
76
- case '3d':
77
- this.gl.texStorage3D(glTarget, mipLevels, glInternalFormat, width, height, depth);
78
- break;
79
- default:
80
- throw new Error(dimension);
71
+ if (!this.compressed) {
72
+ switch (dimension) {
73
+ case '2d':
74
+ case 'cube':
75
+ this.gl.texStorage2D(glTarget, mipLevels, glInternalFormat, width, height);
76
+ break;
77
+ case '2d-array':
78
+ case '3d':
79
+ this.gl.texStorage3D(glTarget, mipLevels, glInternalFormat, width, height, depth);
80
+ break;
81
+ default:
82
+ throw new Error(dimension);
83
+ }
81
84
  }
82
85
  this.gl.bindTexture(this.glTarget, null);
83
86
  // Set data
84
87
  this._initializeData(props.data);
88
+ if (!this.props.handle) {
89
+ this.trackAllocatedMemory(this.getAllocatedByteLength(), 'Texture');
90
+ }
91
+ else {
92
+ this.trackReferencedMemory(this.getAllocatedByteLength(), 'Texture');
93
+ }
85
94
  // Set texture sampler parameters
86
95
  this.setSampler(this.props.sampler);
87
96
  // @ts-ignore TODO - fix types
@@ -93,9 +102,15 @@ export class WEBGLTexture extends Texture {
93
102
  // Destroy any cached framebuffer
94
103
  this._framebuffer?.destroy();
95
104
  this._framebuffer = null;
96
- this.gl.deleteTexture(this.handle);
105
+ this._framebufferAttachmentKey = null;
97
106
  this.removeStats();
98
- this.trackDeallocatedMemory('Texture');
107
+ if (!this.props.handle) {
108
+ this.gl.deleteTexture(this.handle);
109
+ this.trackDeallocatedMemory('Texture');
110
+ }
111
+ else {
112
+ this.trackDeallocatedReferencedMemory('Texture');
113
+ }
99
114
  // this.handle = null;
100
115
  this.destroyed = true;
101
116
  }
@@ -141,117 +156,148 @@ export class WEBGLTexture extends Texture {
141
156
  return { width: options.width, height: options.height };
142
157
  }
143
158
  copyImageData(options_) {
144
- const options = this._normalizeCopyImageDataOptions(options_);
145
- const typedArray = options.data;
146
- const { width, height, depth, z = 0 } = options;
147
- const { mipLevel = 0, byteOffset = 0, x = 0, y = 0 } = options;
159
+ super.copyImageData(options_);
160
+ }
161
+ /**
162
+ * Reads a color texture subresource into a GPU buffer using `PIXEL_PACK_BUFFER`.
163
+ *
164
+ * @note Only first-pass color readback is supported. Unsupported formats and aspects throw
165
+ * before any WebGL calls are issued.
166
+ */
167
+ readBuffer(options = {}, buffer) {
168
+ const normalizedOptions = this._getSupportedColorReadOptions(options);
169
+ const memoryLayout = this.computeMemoryLayout(normalizedOptions);
170
+ const readBuffer = buffer ||
171
+ this.device.createBuffer({
172
+ byteLength: memoryLayout.byteLength,
173
+ usage: Buffer.COPY_DST | Buffer.MAP_READ
174
+ });
175
+ if (readBuffer.byteLength < memoryLayout.byteLength) {
176
+ throw new Error(`${this} readBuffer target is too small (${readBuffer.byteLength} < ${memoryLayout.byteLength})`);
177
+ }
178
+ const webglBuffer = readBuffer;
179
+ this.gl.bindBuffer(35051, webglBuffer.handle);
180
+ try {
181
+ this._readColorTextureLayers(normalizedOptions, memoryLayout, destinationByteOffset => {
182
+ this.gl.readPixels(normalizedOptions.x, normalizedOptions.y, normalizedOptions.width, normalizedOptions.height, this.glFormat, this.glType, destinationByteOffset);
183
+ });
184
+ }
185
+ finally {
186
+ this.gl.bindBuffer(35051, null);
187
+ }
188
+ return readBuffer;
189
+ }
190
+ async readDataAsync(options = {}) {
191
+ const buffer = this.readBuffer(options);
192
+ const data = await buffer.readAsync();
193
+ buffer.destroy();
194
+ return data.buffer;
195
+ }
196
+ writeBuffer(buffer, options_ = {}) {
197
+ const options = this._normalizeTextureWriteOptions(options_);
198
+ const { width, height, depthOrArrayLayers, mipLevel, byteOffset, x, y, z } = options;
148
199
  const { glFormat, glType, compressed } = this;
149
- // Target used for face updates, but not for binding
150
200
  const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, z);
151
- let unpackRowLength;
152
- if (!this.compressed) {
153
- const { bytesPerPixel } = this.device.getTextureFormatInfo(this.format);
154
- if (bytesPerPixel) {
155
- if (options.bytesPerRow % bytesPerPixel !== 0) {
156
- throw new Error(`bytesPerRow (${options.bytesPerRow}) must be a multiple of bytesPerPixel (${bytesPerPixel}) for ${this.format}`);
157
- }
158
- unpackRowLength = options.bytesPerRow / bytesPerPixel;
159
- }
201
+ if (compressed) {
202
+ throw new Error('writeBuffer for compressed textures is not implemented in WebGL');
160
203
  }
161
- const glParameters = !this.compressed
162
- ? {
163
- [3317]: this.byteAlignment,
164
- ...(unpackRowLength !== undefined ? { [3314]: unpackRowLength } : {}),
165
- [32878]: options.rowsPerImage
166
- }
167
- : {};
204
+ const { bytesPerPixel } = this.device.getTextureFormatInfo(this.format);
205
+ const unpackRowLength = bytesPerPixel ? options.bytesPerRow / bytesPerPixel : undefined;
206
+ const glParameters = {
207
+ [3317]: this.byteAlignment,
208
+ ...(unpackRowLength !== undefined ? { [3314]: unpackRowLength } : {}),
209
+ [32878]: options.rowsPerImage
210
+ };
168
211
  this.gl.bindTexture(this.glTarget, this.handle);
212
+ this.gl.bindBuffer(35052, buffer.handle);
169
213
  withGLParameters(this.gl, glParameters, () => {
170
214
  switch (this.dimension) {
171
215
  case '2d':
172
216
  case 'cube':
173
- if (compressed) {
174
- // prettier-ignore
175
- this.gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, typedArray, byteOffset); // , byteLength
176
- }
177
- else {
178
- // prettier-ignore
179
- this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray, byteOffset); // , byteLength
180
- }
217
+ this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, byteOffset);
181
218
  break;
182
219
  case '2d-array':
183
220
  case '3d':
184
- if (compressed) {
185
- // prettier-ignore
186
- this.gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, typedArray, byteOffset); // , byteLength
187
- }
188
- else {
189
- // prettier-ignore
190
- this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, typedArray, byteOffset); // , byteLength
191
- }
221
+ this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, glType, byteOffset);
192
222
  break;
193
223
  default:
194
- // Can never happen in WebGL
195
224
  }
196
225
  });
226
+ this.gl.bindBuffer(35052, null);
197
227
  this.gl.bindTexture(this.glTarget, null);
198
228
  }
199
- readBuffer(options = {}, buffer) {
200
- throw new Error('readBuffer not implemented');
201
- }
202
- async readDataAsync(options = {}) {
203
- return this.readDataSyncWebGL(options);
204
- }
205
- writeBuffer(buffer, options_ = {}) { }
206
229
  writeData(data, options_ = {}) {
207
230
  const options = this._normalizeTextureWriteOptions(options_);
208
231
  const typedArray = ArrayBuffer.isView(data) ? data : new Uint8Array(data);
209
- const {} = this;
210
- const { width, height, mipLevel, x, y, z } = options;
232
+ const { width, height, depthOrArrayLayers, mipLevel, x, y, z, byteOffset } = options;
211
233
  const { glFormat, glType, compressed } = this;
212
- const depth = 0; // TODO - fix
213
- const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, depth);
214
- // const byteOffset = 0;
215
- // const {bytesPerRow, rowsPerImage} = this.computeMemoryLayout(options);
234
+ const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, z);
235
+ let unpackRowLength;
236
+ if (!compressed) {
237
+ const { bytesPerPixel } = this.device.getTextureFormatInfo(this.format);
238
+ if (bytesPerPixel) {
239
+ unpackRowLength = options.bytesPerRow / bytesPerPixel;
240
+ }
241
+ }
216
242
  const glParameters = !this.compressed
217
243
  ? {
218
- // WebGL does not require byte alignment, but allows it to be specified
219
- [3317]: this.byteAlignment
220
- // [GL.UNPACK_ROW_LENGTH]: bytesPerRow,
221
- // [GL.UNPACK_IMAGE_HEIGHT]: rowsPerImage
244
+ [3317]: this.byteAlignment,
245
+ ...(unpackRowLength !== undefined ? { [3314]: unpackRowLength } : {}),
246
+ [32878]: options.rowsPerImage
222
247
  }
223
248
  : {};
224
- this.gl.bindTexture(glTarget, this.handle);
249
+ const sourceElementOffset = getWebGLTextureSourceElementOffset(typedArray, byteOffset);
250
+ const compressedData = compressed ? getArrayBufferView(typedArray, byteOffset) : typedArray;
251
+ const mipLevelSize = this._getMipLevelSize(mipLevel);
252
+ const isFullMipUpload = x === 0 &&
253
+ y === 0 &&
254
+ z === 0 &&
255
+ width === mipLevelSize.width &&
256
+ height === mipLevelSize.height &&
257
+ depthOrArrayLayers === mipLevelSize.depthOrArrayLayers;
258
+ this.gl.bindTexture(this.glTarget, this.handle);
225
259
  this.gl.bindBuffer(35052, null);
226
260
  withGLParameters(this.gl, glParameters, () => {
227
261
  switch (this.dimension) {
228
262
  case '2d':
229
263
  case 'cube':
230
264
  if (compressed) {
231
- // prettier-ignore
232
- this.gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, typedArray);
265
+ if (isFullMipUpload) {
266
+ // prettier-ignore
267
+ this.gl.compressedTexImage2D(glTarget, mipLevel, glFormat, width, height, 0, compressedData);
268
+ }
269
+ else {
270
+ // prettier-ignore
271
+ this.gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, compressedData);
272
+ }
233
273
  }
234
274
  else {
235
275
  // prettier-ignore
236
- this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray);
276
+ this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray, sourceElementOffset);
237
277
  }
238
278
  break;
239
279
  case '2d-array':
240
280
  case '3d':
241
281
  if (compressed) {
242
- // prettier-ignore
243
- this.gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, typedArray);
282
+ if (isFullMipUpload) {
283
+ // prettier-ignore
284
+ this.gl.compressedTexImage3D(glTarget, mipLevel, glFormat, width, height, depthOrArrayLayers, 0, compressedData);
285
+ }
286
+ else {
287
+ // prettier-ignore
288
+ this.gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, compressedData);
289
+ }
244
290
  }
245
291
  else {
246
292
  // prettier-ignore
247
- this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, typedArray);
293
+ this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, glType, typedArray, sourceElementOffset);
248
294
  }
249
295
  break;
250
296
  default:
251
297
  // Can never happen in WebGL
252
298
  }
253
299
  });
254
- this.gl.bindTexture(glTarget, null);
300
+ this.gl.bindTexture(this.glTarget, null);
255
301
  }
256
302
  // IMPLEMENTATION SPECIFIC
257
303
  /** @todo - for now we always use 1 for maximum compatibility, we can fine tune later */
@@ -281,33 +327,78 @@ export class WEBGLTexture extends Texture {
281
327
  }
282
328
  // WEBGL SPECIFIC
283
329
  readDataSyncWebGL(options_ = {}) {
284
- const options = this._normalizeTextureReadOptions(options_);
330
+ const options = this._getSupportedColorReadOptions(options_);
285
331
  const memoryLayout = this.computeMemoryLayout(options);
286
332
  // const formatInfo = getTextureFormatInfo(format);
287
333
  // Allocate pixel array if not already available, using supplied type
288
334
  const shaderType = convertGLDataTypeToDataType(this.glType);
289
335
  const ArrayType = getTypedArrayConstructor(shaderType);
290
- // const components = glFormatToComponents(this.glFormat);
291
- // TODO - check for composite type (components = 1).
292
- const targetArray = new ArrayType(memoryLayout.byteLength);
293
- // Pixel array available, if necessary, deduce type from it.
294
- const signedType = getDataType(targetArray);
295
- const sourceType = convertDataTypeToGLDataType(signedType);
296
- // There is a lot of hedging in the WebGL2 spec about what formats are guaranteed to be readable
297
- // (It should always be possible to read RGBA/UNSIGNED_BYTE, but most other combinations are not guaranteed)
298
- // Querying is possible but expensive:
299
- // const {device} = framebuffer;
300
- // texture.glReadFormat ||= gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT);
301
- // texture.glReadType ||= gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE);
302
- // console.log('params', device.getGLKey(texture.glReadFormat), device.getGLKey(texture.glReadType));
336
+ const targetArray = new ArrayType(memoryLayout.byteLength / ArrayType.BYTES_PER_ELEMENT);
337
+ this._readColorTextureLayers(options, memoryLayout, destinationByteOffset => {
338
+ const layerView = new ArrayType(targetArray.buffer, targetArray.byteOffset + destinationByteOffset, memoryLayout.bytesPerImage / ArrayType.BYTES_PER_ELEMENT);
339
+ this.gl.readPixels(options.x, options.y, options.width, options.height, this.glFormat, this.glType, layerView);
340
+ });
341
+ return targetArray.buffer;
342
+ }
343
+ /**
344
+ * Iterates the requested mip/layer/slice range, reattaching the cached read framebuffer as
345
+ * needed before delegating the actual `readPixels()` call to the supplied callback.
346
+ */
347
+ _readColorTextureLayers(options, memoryLayout, readLayer) {
303
348
  const framebuffer = this._getFramebuffer();
304
- // Note: luma.gl overrides bindFramebuffer so that we can reliably restore the previous framebuffer (this is the only function for which we do that)
349
+ const packRowLength = memoryLayout.bytesPerRow / memoryLayout.bytesPerPixel;
350
+ const glParameters = {
351
+ [3333]: this.byteAlignment,
352
+ ...(packRowLength !== options.width ? { [3330]: packRowLength } : {})
353
+ };
354
+ // Note: luma.gl overrides bindFramebuffer so that we can reliably restore the previous framebuffer.
355
+ const prevReadBuffer = this.gl.getParameter(3074);
305
356
  const prevHandle = this.gl.bindFramebuffer(36160, framebuffer.handle);
306
- // Select the color attachment to read from
307
- this.gl.readBuffer(36064);
308
- this.gl.readPixels(options.x, options.y, options.width, options.height, this.glFormat, sourceType, targetArray);
309
- this.gl.bindFramebuffer(36160, prevHandle || null);
310
- return targetArray.buffer;
357
+ try {
358
+ this.gl.readBuffer(36064);
359
+ withGLParameters(this.gl, glParameters, () => {
360
+ for (let layerIndex = 0; layerIndex < options.depthOrArrayLayers; layerIndex++) {
361
+ this._attachReadSubresource(framebuffer, options.mipLevel, options.z + layerIndex);
362
+ readLayer(layerIndex * memoryLayout.bytesPerImage);
363
+ }
364
+ });
365
+ }
366
+ finally {
367
+ this.gl.bindFramebuffer(36160, prevHandle || null);
368
+ this.gl.readBuffer(prevReadBuffer);
369
+ }
370
+ }
371
+ /**
372
+ * Attaches a single color subresource to the cached read framebuffer.
373
+ *
374
+ * @note Repeated attachments of the same `(mipLevel, layer)` tuple are skipped.
375
+ */
376
+ _attachReadSubresource(framebuffer, mipLevel, layer) {
377
+ const attachmentKey = `${mipLevel}:${layer}`;
378
+ if (this._framebufferAttachmentKey === attachmentKey) {
379
+ return;
380
+ }
381
+ switch (this.dimension) {
382
+ case '2d':
383
+ this.gl.framebufferTexture2D(36160, 36064, 3553, this.handle, mipLevel);
384
+ break;
385
+ case 'cube':
386
+ this.gl.framebufferTexture2D(36160, 36064, getWebGLCubeFaceTarget(this.glTarget, this.dimension, layer), this.handle, mipLevel);
387
+ break;
388
+ case '2d-array':
389
+ case '3d':
390
+ this.gl.framebufferTextureLayer(36160, 36064, this.handle, mipLevel, layer);
391
+ break;
392
+ default:
393
+ throw new Error(`${this} color readback does not support ${this.dimension} textures`);
394
+ }
395
+ if (this.device.props.debug) {
396
+ const status = Number(this.gl.checkFramebufferStatus(36160));
397
+ if (status !== Number(36053)) {
398
+ throw new Error(`${framebuffer} incomplete for ${this} readback (${status})`);
399
+ }
400
+ }
401
+ this._framebufferAttachmentKey = attachmentKey;
311
402
  }
312
403
  /**
313
404
  * @note - this is used by the DynamicTexture class to generate mipmaps on WebGL
@@ -395,6 +486,18 @@ export class WEBGLTexture extends Texture {
395
486
  return _textureUnit;
396
487
  }
397
488
  }
489
+ function getArrayBufferView(typedArray, byteOffset = 0) {
490
+ if (!byteOffset) {
491
+ return typedArray;
492
+ }
493
+ return new typedArray.constructor(typedArray.buffer, typedArray.byteOffset + byteOffset, (typedArray.byteLength - byteOffset) / typedArray.BYTES_PER_ELEMENT);
494
+ }
495
+ function getWebGLTextureSourceElementOffset(typedArray, byteOffset) {
496
+ if (byteOffset % typedArray.BYTES_PER_ELEMENT !== 0) {
497
+ throw new Error(`Texture byteOffset ${byteOffset} must align to typed array element size ${typedArray.BYTES_PER_ELEMENT}`);
498
+ }
499
+ return byteOffset / typedArray.BYTES_PER_ELEMENT;
500
+ }
398
501
  // INTERNAL HELPERS
399
502
  /** Convert a WebGPU style texture constant to a WebGL style texture constant */
400
503
  export function getWebGLTextureTarget(dimension) {
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl-texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-texture.ts"],"names":[],"mappings":"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"}
@@ -55,8 +55,8 @@ export class WEBGLTransformFeedback extends TransformFeedback {
55
55
  this.buffers = {};
56
56
  this.unusedBuffers = {};
57
57
  this.bind(() => {
58
- for (const bufferName in buffers) {
59
- this.setBuffer(bufferName, buffers[bufferName]);
58
+ for (const [bufferName, buffer] of Object.entries(buffers)) {
59
+ this.setBuffer(bufferName, buffer);
60
60
  }
61
61
  });
62
62
  }
@@ -80,7 +80,7 @@ export class WEBGLTransformFeedback extends TransformFeedback {
80
80
  return this.buffers[locationOrName] || null;
81
81
  }
82
82
  const location = this._getVaryingIndex(locationOrName);
83
- return location >= 0 ? this.buffers[location] : null;
83
+ return this.buffers[location] ?? null;
84
84
  }
85
85
  bind(funcOrHandle = this.handle) {
86
86
  if (typeof funcOrHandle !== 'function') {
@@ -130,8 +130,8 @@ export class WEBGLTransformFeedback extends TransformFeedback {
130
130
  * cannot be bound to 'TRANSFORM_FEEDBACK_BUFFER' target.
131
131
  */
132
132
  _bindBuffers() {
133
- for (const bufferIndex in this.buffers) {
134
- const { buffer, byteLength, byteOffset } = this._getBufferRange(this.buffers[bufferIndex]);
133
+ for (const [bufferIndex, bufferEntry] of Object.entries(this.buffers)) {
134
+ const { buffer, byteLength, byteOffset } = this._getBufferRange(bufferEntry);
135
135
  this._bindBuffer(Number(bufferIndex), buffer, byteOffset, byteLength);
136
136
  }
137
137
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-transform-feedback.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-transform-feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl-transform-feedback.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-transform-feedback.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAC,0BAAuB;AAChD,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AAOhE,qBAAa,YAAa,SAAQ,OAAO;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAW;;IAQxC,gGAAgG;IAChG,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC,oCAAoC;IACpC,WAAW,IAAI,OAAO;IAIb,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAajD;;;;;;OAMG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB1F,MAAM,CAAC,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CA2C5D;AAUD,eAAO,MAAM,aAAa,cAAqB,CAAC"}
1
+ {"version":3,"file":"webgl-adapter.d.ts","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAC,0BAAuB;AAChD,OAAO,EAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAM,MAAM,eAAe,CAAC;AAOhE,qBAAa,YAAa,SAAQ,OAAO;IACvC,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAW;;IAQxC,gGAAgG;IAChG,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAIpC,oCAAoC;IACpC,WAAW,IAAI,OAAO;IAIb,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAajD;;;;;;OAMG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,EAAE,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwB1F,MAAM,CAAC,KAAK,GAAE,WAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;CA2C5D;AAUD,eAAO,MAAM,aAAa,cAAqB,CAAC"}
@@ -44,10 +44,9 @@ export class WebGLAdapter extends Adapter {
44
44
  if (gl instanceof WebGLDevice) {
45
45
  return gl;
46
46
  }
47
- // @ts-expect-error
48
- if (gl?.device instanceof WebGLDevice) {
49
- // @ts-expect-error
50
- return gl.device;
47
+ const existingDevice = WebGLDevice.getDeviceFromContext(gl);
48
+ if (existingDevice) {
49
+ return existingDevice;
51
50
  }
52
51
  if (!isWebGL(gl)) {
53
52
  throw new Error('Invalid WebGL2RenderingContext');
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-adapter.js","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webgl-adapter.js","sourceRoot":"","sources":["../../src/adapter/webgl-adapter.ts"],"names":[],"mappings":"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"}