@luma.gl/webgl 9.1.0-alpha.9 → 9.1.0-beta.3

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 (200) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts +3 -3
  2. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  3. package/dist/adapter/converters/device-parameters.js +1 -0
  4. package/dist/adapter/converters/device-parameters.js.map +1 -0
  5. package/dist/adapter/converters/sampler-parameters.js +7 -4
  6. package/dist/adapter/converters/sampler-parameters.js.map +1 -0
  7. package/dist/adapter/converters/shader-formats.js +1 -0
  8. package/dist/adapter/converters/shader-formats.js.map +1 -0
  9. package/dist/adapter/converters/vertex-formats.js +1 -0
  10. package/dist/adapter/converters/vertex-formats.js.map +1 -0
  11. package/dist/adapter/converters/webgl-texture-table.d.ts +40 -0
  12. package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -0
  13. package/dist/adapter/converters/webgl-texture-table.js +304 -0
  14. package/dist/adapter/converters/webgl-texture-table.js.map +1 -0
  15. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  16. package/dist/adapter/device-helpers/webgl-device-features.js +2 -2
  17. package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -0
  18. package/dist/adapter/device-helpers/webgl-device-info.js +1 -0
  19. package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -0
  20. package/dist/adapter/device-helpers/webgl-device-limits.js +1 -0
  21. package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -0
  22. package/dist/adapter/helpers/decode-webgl-types.js +1 -0
  23. package/dist/adapter/helpers/decode-webgl-types.js.map +1 -0
  24. package/dist/adapter/helpers/format-utils.d.ts.map +1 -0
  25. package/dist/{classic → adapter/helpers}/format-utils.js +7 -0
  26. package/dist/adapter/helpers/format-utils.js.map +1 -0
  27. package/dist/adapter/helpers/get-shader-layout.d.ts +1 -1
  28. package/dist/adapter/helpers/get-shader-layout.d.ts.map +1 -1
  29. package/dist/adapter/helpers/get-shader-layout.js +5 -4
  30. package/dist/adapter/helpers/get-shader-layout.js.map +1 -0
  31. package/dist/adapter/helpers/parse-shader-compiler-log.js +1 -0
  32. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -0
  33. package/dist/adapter/helpers/set-uniform.js +1 -0
  34. package/dist/adapter/helpers/set-uniform.js.map +1 -0
  35. package/dist/adapter/helpers/typed-array-utils.d.ts.map +1 -0
  36. package/dist/{classic → adapter/helpers}/typed-array-utils.js +1 -0
  37. package/dist/adapter/helpers/typed-array-utils.js.map +1 -0
  38. package/dist/adapter/helpers/webgl-texture-utils.d.ts +96 -25
  39. package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
  40. package/dist/adapter/helpers/webgl-texture-utils.js +225 -236
  41. package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -0
  42. package/dist/adapter/helpers/webgl-topology-utils.js +1 -0
  43. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -0
  44. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  45. package/dist/adapter/resources/webgl-buffer.js +4 -1
  46. package/dist/adapter/resources/webgl-buffer.js.map +1 -0
  47. package/dist/adapter/resources/webgl-command-buffer.d.ts +59 -2
  48. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  49. package/dist/adapter/resources/webgl-command-buffer.js +89 -32
  50. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -0
  51. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  52. package/dist/adapter/resources/webgl-command-encoder.js +4 -0
  53. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -0
  54. package/dist/adapter/resources/webgl-external-texture.js +15 -0
  55. package/dist/adapter/resources/webgl-external-texture.js.map +1 -0
  56. package/dist/adapter/resources/webgl-framebuffer.d.ts +33 -35
  57. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  58. package/dist/adapter/resources/webgl-framebuffer.js +70 -75
  59. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -0
  60. package/dist/adapter/resources/webgl-query-set.js +1 -0
  61. package/dist/adapter/resources/webgl-query-set.js.map +1 -0
  62. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  63. package/dist/adapter/resources/webgl-render-pass.js +33 -18
  64. package/dist/adapter/resources/webgl-render-pass.js.map +1 -0
  65. package/dist/adapter/resources/webgl-render-pipeline.d.ts +3 -4
  66. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  67. package/dist/adapter/resources/webgl-render-pipeline.js +44 -22
  68. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -0
  69. package/dist/adapter/resources/webgl-sampler.js +1 -0
  70. package/dist/adapter/resources/webgl-sampler.js.map +1 -0
  71. package/dist/adapter/resources/webgl-shader.d.ts +1 -0
  72. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  73. package/dist/adapter/resources/webgl-shader.js +13 -6
  74. package/dist/adapter/resources/webgl-shader.js.map +1 -0
  75. package/dist/adapter/resources/webgl-texture-view.js +1 -0
  76. package/dist/adapter/resources/webgl-texture-view.js.map +1 -0
  77. package/dist/adapter/resources/webgl-texture.d.ts +32 -20
  78. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-texture.js +163 -218
  80. package/dist/adapter/resources/webgl-texture.js.map +1 -0
  81. package/dist/adapter/resources/webgl-transform-feedback.js +1 -0
  82. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -0
  83. package/dist/adapter/resources/webgl-vertex-array.js +1 -0
  84. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -0
  85. package/dist/adapter/webgl-adapter.d.ts.map +1 -1
  86. package/dist/adapter/webgl-adapter.js +5 -10
  87. package/dist/adapter/webgl-adapter.js.map +1 -0
  88. package/dist/adapter/webgl-canvas-context.d.ts +4 -6
  89. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  90. package/dist/adapter/webgl-canvas-context.js +13 -17
  91. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  92. package/dist/adapter/webgl-device.d.ts +20 -19
  93. package/dist/adapter/webgl-device.d.ts.map +1 -1
  94. package/dist/adapter/webgl-device.js +75 -51
  95. package/dist/adapter/webgl-device.js.map +1 -0
  96. package/dist/context/debug/spector-types.js +2 -1
  97. package/dist/context/debug/spector-types.js.map +1 -0
  98. package/dist/context/debug/spector.d.ts +5 -5
  99. package/dist/context/debug/spector.d.ts.map +1 -1
  100. package/dist/context/debug/spector.js +7 -6
  101. package/dist/context/debug/spector.js.map +1 -0
  102. package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
  103. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  104. package/dist/context/debug/webgl-developer-tools.js +7 -19
  105. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  106. package/dist/context/helpers/create-browser-context.d.ts +6 -22
  107. package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
  108. package/dist/context/helpers/create-browser-context.js +41 -32
  109. package/dist/context/helpers/create-browser-context.js.map +1 -0
  110. package/dist/context/helpers/webgl-context-data.js +1 -0
  111. package/dist/context/helpers/webgl-context-data.js.map +1 -0
  112. package/dist/context/helpers/webgl-extensions.js +1 -0
  113. package/dist/context/helpers/webgl-extensions.js.map +1 -0
  114. package/dist/context/parameters/unified-parameter-api.js +1 -0
  115. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  116. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  117. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  118. package/dist/context/parameters/webgl-parameter-tables.js +3 -2
  119. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  120. package/dist/context/polyfills/polyfill-webgl1-extensions.js +1 -0
  121. package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -0
  122. package/dist/context/state-tracker/deep-array-equal.js +1 -0
  123. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  124. package/dist/context/state-tracker/webgl-state-tracker.js +1 -0
  125. package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -0
  126. package/dist/context/state-tracker/with-parameters.js +1 -0
  127. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  128. package/dist/deprecated/accessor.d.ts.map +1 -0
  129. package/dist/{classic → deprecated}/accessor.js +37 -1
  130. package/dist/deprecated/accessor.js.map +1 -0
  131. package/dist/dist.dev.js +2234 -2373
  132. package/dist/dist.min.js +2 -2
  133. package/dist/index.cjs +2124 -2256
  134. package/dist/index.cjs.map +4 -4
  135. package/dist/index.d.ts +2 -3
  136. package/dist/index.d.ts.map +1 -1
  137. package/dist/index.js +3 -4
  138. package/dist/index.js.map +1 -0
  139. package/dist/types.js +1 -0
  140. package/dist/types.js.map +1 -0
  141. package/dist/utils/fill-array.d.ts +4 -4
  142. package/dist/utils/fill-array.d.ts.map +1 -1
  143. package/dist/utils/fill-array.js +1 -0
  144. package/dist/utils/fill-array.js.map +1 -0
  145. package/dist/utils/load-script.js +1 -0
  146. package/dist/utils/load-script.js.map +1 -0
  147. package/dist/utils/split-uniforms-and-bindings.d.ts +1 -1
  148. package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -1
  149. package/dist/utils/split-uniforms-and-bindings.js +1 -0
  150. package/dist/utils/split-uniforms-and-bindings.js.map +1 -0
  151. package/dist/utils/uid.js +1 -0
  152. package/dist/utils/uid.js.map +1 -0
  153. package/package.json +5 -5
  154. package/src/adapter/converters/device-parameters.ts +3 -3
  155. package/src/adapter/converters/sampler-parameters.ts +6 -4
  156. package/src/adapter/converters/webgl-texture-table.ts +404 -0
  157. package/src/adapter/device-helpers/webgl-device-features.ts +5 -2
  158. package/src/{classic → adapter/helpers}/format-utils.ts +6 -0
  159. package/src/adapter/helpers/get-shader-layout.ts +7 -4
  160. package/src/adapter/helpers/webgl-texture-utils.ts +400 -57
  161. package/src/adapter/resources/webgl-buffer.ts +3 -1
  162. package/src/adapter/resources/webgl-command-buffer.ts +125 -41
  163. package/src/adapter/resources/webgl-command-encoder.ts +6 -0
  164. package/src/adapter/resources/webgl-external-texture.ts +14 -0
  165. package/src/adapter/resources/webgl-framebuffer.ts +79 -85
  166. package/src/adapter/resources/webgl-render-pass.ts +56 -42
  167. package/src/adapter/resources/webgl-render-pipeline.ts +56 -26
  168. package/src/adapter/resources/webgl-shader.ts +15 -7
  169. package/src/adapter/resources/webgl-texture.ts +188 -250
  170. package/src/adapter/webgl-adapter.ts +4 -12
  171. package/src/adapter/webgl-canvas-context.ts +16 -19
  172. package/src/adapter/webgl-device.ts +125 -88
  173. package/src/context/debug/spector-types.ts +1 -1
  174. package/src/context/debug/spector.ts +11 -11
  175. package/src/context/debug/webgl-developer-tools.ts +8 -31
  176. package/src/context/helpers/create-browser-context.ts +53 -63
  177. package/src/context/parameters/webgl-parameter-tables.ts +2 -2
  178. package/src/{classic → deprecated}/accessor.ts +44 -3
  179. package/src/index.ts +2 -5
  180. package/src/utils/fill-array.ts +4 -4
  181. package/src/utils/split-uniforms-and-bindings.ts +3 -3
  182. package/dist/adapter/converters/texture-formats.d.ts +0 -83
  183. package/dist/adapter/converters/texture-formats.d.ts.map +0 -1
  184. package/dist/adapter/converters/texture-formats.js +0 -511
  185. package/dist/classic/accessor.d.ts.map +0 -1
  186. package/dist/classic/clear.d.ts +0 -22
  187. package/dist/classic/clear.d.ts.map +0 -1
  188. package/dist/classic/clear.js +0 -86
  189. package/dist/classic/copy-and-blit.d.ts +0 -64
  190. package/dist/classic/copy-and-blit.d.ts.map +0 -1
  191. package/dist/classic/copy-and-blit.js +0 -194
  192. package/dist/classic/format-utils.d.ts.map +0 -1
  193. package/dist/classic/typed-array-utils.d.ts.map +0 -1
  194. package/src/adapter/converters/texture-formats.ts +0 -657
  195. package/src/classic/clear.ts +0 -115
  196. package/src/classic/copy-and-blit.ts +0 -323
  197. /package/dist/{classic → adapter/helpers}/format-utils.d.ts +0 -0
  198. /package/dist/{classic → adapter/helpers}/typed-array-utils.d.ts +0 -0
  199. /package/dist/{classic → deprecated}/accessor.d.ts +0 -0
  200. /package/src/{classic → adapter/helpers}/typed-array-utils.ts +0 -0
@@ -1,8 +1,12 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- // import {Buffer} from '@luma.gl/core';
4
+ import { Framebuffer } from '@luma.gl/core';
5
5
  import { GL } from '@luma.gl/constants';
6
+ import { getGLTypeFromTypedArray, getTypedArrayFromGLType } from "./typed-array-utils.js";
7
+ import { glFormatToComponents, glTypeToBytes } from "./format-utils.js";
8
+ import { WEBGLTexture } from "../resources/webgl-texture.js";
9
+ import { withGLParameters } from "../../context/state-tracker/with-parameters.js";
6
10
  /** A "border" parameter is required in many WebGL texture APIs, but must always be 0... */
7
11
  const BORDER = 0;
8
12
  /**
@@ -32,33 +36,39 @@ export function initializeTextureStorage(gl, levels, options) {
32
36
  /**
33
37
  * Copy a region of compressed data from a GPU memory buffer into this texture.
34
38
  */
35
- export function copyCPUImageToMipLevel(gl, image, options) {
36
- const { dimension, width, height, depth = 0, level = 0 } = options;
39
+ export function copyExternalImageToMipLevel(gl, handle, image, options) {
40
+ const { width, height } = options;
41
+ const { dimension, depth = 0, mipLevel = 0 } = options;
37
42
  const { x = 0, y = 0, z = 0 } = options;
38
43
  const { glFormat, glType } = options;
39
44
  const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
40
- // width = size.width,
41
- // height = size.height
42
- switch (dimension) {
43
- case '2d-array':
44
- case '3d':
45
- // prettier-ignore
46
- gl.texSubImage3D(glTarget, level, x, y, z, width, height, depth, glFormat, glType, image);
47
- break;
48
- case '2d':
49
- case 'cube':
50
- // prettier-ignore
51
- gl.texSubImage2D(glTarget, level, x, y, width, height, glFormat, glType, image);
52
- break;
53
- default:
54
- throw new Error(dimension);
55
- }
45
+ const glParameters = options.flipY ? { [37440]: true } : {};
46
+ withGLParameters(gl, glParameters, () => {
47
+ switch (dimension) {
48
+ case '2d-array':
49
+ case '3d':
50
+ gl.bindTexture(glTarget, handle);
51
+ // prettier-ignore
52
+ gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, image);
53
+ gl.bindTexture(glTarget, null);
54
+ break;
55
+ case '2d':
56
+ case 'cube':
57
+ gl.bindTexture(glTarget, handle);
58
+ // prettier-ignore
59
+ gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, image);
60
+ gl.bindTexture(glTarget, null);
61
+ break;
62
+ default:
63
+ throw new Error(dimension);
64
+ }
65
+ });
56
66
  }
57
67
  /**
58
68
  * Copy a region of data from a CPU memory buffer into this texture.
59
69
  */
60
70
  export function copyCPUDataToMipLevel(gl, typedArray, options) {
61
- const { dimension, width, height, depth = 0, level = 0, byteOffset = 0 } = options;
71
+ const { dimension, width, height, depth = 0, mipLevel = 0, byteOffset = 0 } = options;
62
72
  const { x = 0, y = 0, z = 0 } = options;
63
73
  const { glFormat, glType, compressed } = options;
64
74
  const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
@@ -68,22 +78,22 @@ export function copyCPUDataToMipLevel(gl, typedArray, options) {
68
78
  case '3d':
69
79
  if (compressed) {
70
80
  // prettier-ignore
71
- gl.compressedTexSubImage3D(glTarget, level, x, y, z, width, height, depth, glFormat, typedArray, byteOffset); // , byteLength
81
+ gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, typedArray, byteOffset); // , byteLength
72
82
  }
73
83
  else {
74
84
  // prettier-ignore
75
- gl.texSubImage3D(glTarget, level, x, y, z, width, height, depth, glFormat, glType, typedArray, byteOffset); // , byteLength
85
+ gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, typedArray, byteOffset); // , byteLength
76
86
  }
77
87
  break;
78
88
  case '2d':
79
89
  case 'cube':
80
90
  if (compressed) {
81
91
  // prettier-ignore
82
- gl.compressedTexSubImage2D(glTarget, level, x, y, width, height, glFormat, typedArray, byteOffset); // , byteLength
92
+ gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, typedArray, byteOffset); // , byteLength
83
93
  }
84
94
  else {
85
95
  // prettier-ignore
86
- gl.texSubImage2D(glTarget, level, x, y, width, height, glFormat, glType, typedArray, byteOffset); // , byteLength
96
+ gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray, byteOffset); // , byteLength
87
97
  }
88
98
  break;
89
99
  default:
@@ -94,7 +104,7 @@ export function copyCPUDataToMipLevel(gl, typedArray, options) {
94
104
  * Copy a region of compressed data from a GPU memory buffer into this texture.
95
105
  */
96
106
  export function copyGPUBufferToMipLevel(gl, webglBuffer, byteLength, options) {
97
- const { dimension, width, height, depth = 0, level = 0, byteOffset = 0 } = options;
107
+ const { dimension, width, height, depth = 0, mipLevel = 0, byteOffset = 0 } = options;
98
108
  const { x = 0, y = 0, z = 0 } = options;
99
109
  const { glFormat, glType, compressed } = options;
100
110
  const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
@@ -106,22 +116,22 @@ export function copyGPUBufferToMipLevel(gl, webglBuffer, byteLength, options) {
106
116
  if (compressed) {
107
117
  // TODO enable extension?
108
118
  // prettier-ignore
109
- gl.compressedTexSubImage3D(glTarget, level, x, y, z, width, height, depth, glFormat, byteLength, byteOffset);
119
+ gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, byteLength, byteOffset);
110
120
  }
111
121
  else {
112
122
  // prettier-ignore
113
- gl.texSubImage3D(glTarget, level, x, y, z, width, height, depth, glFormat, glType, byteOffset);
123
+ gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, byteOffset);
114
124
  }
115
125
  break;
116
126
  case '2d':
117
127
  case 'cube':
118
128
  if (compressed) {
119
129
  // prettier-ignore
120
- gl.compressedTexSubImage2D(glTarget, level, x, y, width, height, glFormat, byteLength, byteOffset);
130
+ gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, byteLength, byteOffset);
121
131
  }
122
132
  else {
123
133
  // prettier-ignore
124
- gl.texSubImage2D(glTarget, level, x, y, width, height, BORDER, glFormat, byteOffset);
134
+ gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, BORDER, glFormat, byteOffset);
125
135
  }
126
136
  break;
127
137
  default:
@@ -147,224 +157,203 @@ export function getWebGLTextureTarget(dimension) {
147
157
  * @note We still bind the texture using GL.TEXTURE_CUBE_MAP, but we need to use the face-specific target when setting mip levels.
148
158
  * @returns glTarget unchanged, if dimension !== 'cube'.
149
159
  */
150
- function getWebGLCubeFaceTarget(glTarget, dimension, level) {
160
+ export function getWebGLCubeFaceTarget(glTarget, dimension, level) {
151
161
  return dimension === 'cube' ? 34069 + level : glTarget;
152
162
  }
153
- // texImage methods
154
163
  /**
155
- * Clear a texture mip level.
156
- * Wrapper for the messy WebGL texture API
164
+ * Copies data from a type or a Texture object into ArrayBuffer object.
165
+ * App can provide targetPixelArray or have it auto allocated by this method
166
+ * newly allocated by this method unless provided by app.
167
+ * @deprecated Use CommandEncoder.copyTextureToBuffer and Buffer.read
168
+ * @note Slow requires roundtrip to GPU
157
169
  *
158
- export function clearMipLevel(gl: WebGL2RenderingContext, options: WebGLSetTextureOptions): void {
159
- const {dimension, width, height, depth = 0, level = 0} = options;
160
- const {glInternalFormat, glFormat, glType, compressed} = options;
161
- const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
162
-
163
- switch (dimension) {
164
- case '2d-array':
165
- case '3d':
166
- if (compressed) {
167
- // prettier-ignore
168
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, null);
169
- } else {
170
- // prettier-ignore
171
- gl.texImage3D( glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, null);
172
- }
173
- break;
174
-
175
- case '2d':
176
- case 'cube':
177
- if (compressed) {
178
- // prettier-ignore
179
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, null);
180
- } else {
181
- // prettier-ignore
182
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glFormat, glType, null);
183
- }
184
- break;
185
-
186
- default:
187
- throw new Error(dimension);
188
- }
170
+ * @param source
171
+ * @param options
172
+ * @returns pixel array,
173
+ */
174
+ export function readPixelsToArray(source, options) {
175
+ const { sourceX = 0, sourceY = 0, sourceAttachment = 0 // TODO - support gl.readBuffer
176
+ } = options || {};
177
+ let { target = null,
178
+ // following parameters are auto deduced if not provided
179
+ sourceWidth, sourceHeight, sourceDepth, sourceFormat, sourceType } = options || {};
180
+ const { framebuffer, deleteFramebuffer } = getFramebuffer(source);
181
+ // assert(framebuffer);
182
+ const { gl, handle } = framebuffer;
183
+ sourceWidth ||= framebuffer.width;
184
+ sourceHeight ||= framebuffer.height;
185
+ const texture = framebuffer.colorAttachments[sourceAttachment]?.texture;
186
+ if (!texture) {
187
+ throw new Error(`Invalid framebuffer attachment ${sourceAttachment}`);
188
+ }
189
+ sourceDepth = texture?.depth || 1;
190
+ sourceFormat ||= texture?.glFormat || 6408;
191
+ // Deduce the type from color attachment if not provided.
192
+ sourceType ||= texture?.glType || 5121;
193
+ // Deduce type and allocated pixelArray if needed
194
+ target = getPixelArray(target, sourceType, sourceFormat, sourceWidth, sourceHeight, sourceDepth);
195
+ // Pixel array available, if necessary, deduce type from it.
196
+ sourceType = sourceType || getGLTypeFromTypedArray(target);
197
+ // Note: luma.gl overrides bindFramebuffer so that we can reliably restore the previous framebuffer (this is the only function for which we do that)
198
+ const prevHandle = gl.bindFramebuffer(36160, handle);
199
+ // Select the color attachment to read from
200
+ gl.readBuffer(36064 + sourceAttachment);
201
+ // There is a lot of hedging in the WebGL2 spec about what formats are guaranteed to be readable
202
+ // (It should always be possible to read RGBA/UNSIGNED_BYTE, but most other combinations are not guaranteed)
203
+ // Querying is possible but expensive:
204
+ // const {device} = framebuffer;
205
+ // texture.glReadFormat ||= gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_FORMAT);
206
+ // texture.glReadType ||= gl.getParameter(gl.IMPLEMENTATION_COLOR_READ_TYPE);
207
+ // console.log('params', device.getGLKey(texture.glReadFormat), device.getGLKey(texture.glReadType));
208
+ gl.readPixels(sourceX, sourceY, sourceWidth, sourceHeight, sourceFormat, sourceType, target);
209
+ gl.readBuffer(36064);
210
+ gl.bindFramebuffer(36160, prevHandle || null);
211
+ if (deleteFramebuffer) {
212
+ framebuffer.destroy();
213
+ }
214
+ return target;
189
215
  }
190
-
191
216
  /**
192
- * Set a texture mip level to the contents of an external image.
193
- * Wrapper for the messy WebGL texture API
194
- * @note Corresponds to WebGPU device.queue.copyExternalImageToTexture()
195
- *
196
- export function setMipLevelFromExternalImage(
197
- gl: WebGL2RenderingContext,
198
- image: ExternalImage,
199
- options: WebGLSetTextureOptions
200
- ): void {
201
- const {dimension, width, height, depth = 0, level = 0} = options;
202
- const {glInternalFormat, glType} = options;
203
-
204
- const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
205
-
206
- // TODO - we can't change texture width (due to WebGPU limitations) -
207
- // and the width/heigh of an external image is implicit, so why do we need to extract it?
208
- // So what width height do we supply? The image size or the texture size?
209
- // const {width, height} = Texture.getExternalImageSize(image);
210
-
211
- switch (dimension) {
212
- case '2d-array':
213
- case '3d':
214
- // prettier-ignore
215
- gl.texImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, glInternalFormat, glType, image);
216
- break;
217
-
218
- case '2d':
219
- case 'cube':
220
- // prettier-ignore
221
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glInternalFormat, glType, image);
222
- break;
223
-
224
- default:
225
- throw new Error(dimension);
226
- }
217
+ * Copies data from a Framebuffer or a Texture object into a Buffer object.
218
+ * NOTE: doesn't wait for copy to be complete, it programs GPU to perform a DMA transffer.
219
+ * @deprecated Use CommandEncoder
220
+ * @param source
221
+ * @param options
222
+ */
223
+ export function readPixelsToBuffer(source, options) {
224
+ const { target, sourceX = 0, sourceY = 0, sourceFormat = 6408, targetByteOffset = 0 } = options || {};
225
+ // following parameters are auto deduced if not provided
226
+ let { sourceWidth, sourceHeight, sourceType } = options || {};
227
+ const { framebuffer, deleteFramebuffer } = getFramebuffer(source);
228
+ // assert(framebuffer);
229
+ sourceWidth = sourceWidth || framebuffer.width;
230
+ sourceHeight = sourceHeight || framebuffer.height;
231
+ // Asynchronous read (PIXEL_PACK_BUFFER) is WebGL2 only feature
232
+ const webglFramebuffer = framebuffer;
233
+ // deduce type if not available.
234
+ sourceType = sourceType || 5121;
235
+ let webglBufferTarget = target;
236
+ if (!webglBufferTarget) {
237
+ // Create new buffer with enough size
238
+ const components = glFormatToComponents(sourceFormat);
239
+ const byteCount = glTypeToBytes(sourceType);
240
+ const byteLength = targetByteOffset + sourceWidth * sourceHeight * components * byteCount;
241
+ webglBufferTarget = webglFramebuffer.device.createBuffer({ byteLength });
242
+ }
243
+ // TODO(donmccurdy): Do we have tests to confirm this is working?
244
+ const commandEncoder = source.device.createCommandEncoder();
245
+ commandEncoder.copyTextureToBuffer({
246
+ sourceTexture: source,
247
+ width: sourceWidth,
248
+ height: sourceHeight,
249
+ origin: [sourceX, sourceY],
250
+ destinationBuffer: webglBufferTarget,
251
+ byteOffset: targetByteOffset
252
+ });
253
+ commandEncoder.destroy();
254
+ if (deleteFramebuffer) {
255
+ framebuffer.destroy();
256
+ }
257
+ return webglBufferTarget;
227
258
  }
228
-
229
259
  /**
230
- * Set a texture mip level from CPU memory
231
- * Wrapper for the messy WebGL texture API
232
- * @note Not available (directly) in WebGPU
233
- *
234
- export function setMipLevelFromTypedArray(
235
- gl: WebGL2RenderingContext,
236
- data: TypedArray,
237
- parameters: {},
238
- options: {
239
- dimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';
240
- height: number;
241
- width: number;
242
- depth?: number;
243
- level?: number;
244
- offset?: number;
245
- glTarget: GLTextureTarget;
246
- glInternalFormat: GL;
247
- glFormat: GL;
248
- glType: GL;
249
- compressed?: boolean;
250
- }
251
- ): void {
252
- const {dimension, width, height, depth = 0, level = 0, offset = 0} = options;
253
- const {glInternalFormat, glFormat, glType, compressed} = options;
254
-
255
- const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
256
-
257
- withGLParameters(gl, parameters, () => {
258
- switch (dimension) {
259
- case '2d-array':
260
- case '3d':
261
- if (compressed) {
262
- // prettier-ignore
263
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, data);
264
- } else {
265
- // prettier-ignore
266
- gl.texImage3D( glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, data);
267
- }
268
- break;
269
-
270
- case '2d':
271
- if (compressed) {
272
- // prettier-ignore
273
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, data);
274
- } else {
275
- // prettier-ignore
276
- gl.texImage2D( glTarget, level, glInternalFormat, width, height, BORDER, glFormat, glType, data, offset);
260
+ * Copy a rectangle from a Framebuffer or Texture object into a texture (at an offset)
261
+ * @deprecated Use CommandEncoder
262
+ */
263
+ // eslint-disable-next-line complexity, max-statements
264
+ export function copyToTexture(sourceTexture, destinationTexture, options) {
265
+ const { sourceX = 0, sourceY = 0,
266
+ // attachment = GL.COLOR_ATTACHMENT0, // TODO - support gl.readBuffer
267
+ targetMipmaplevel = 0, targetInternalFormat = 6408 } = options || {};
268
+ let { targetX, targetY, targetZ, width, // defaults to target width
269
+ height // defaults to target height
270
+ } = options || {};
271
+ const { framebuffer, deleteFramebuffer } = getFramebuffer(sourceTexture);
272
+ // assert(framebuffer);
273
+ const webglFramebuffer = framebuffer;
274
+ const { device, handle } = webglFramebuffer;
275
+ const isSubCopy = typeof targetX !== 'undefined' ||
276
+ typeof targetY !== 'undefined' ||
277
+ typeof targetZ !== 'undefined';
278
+ targetX = targetX || 0;
279
+ targetY = targetY || 0;
280
+ targetZ = targetZ || 0;
281
+ const prevHandle = device.gl.bindFramebuffer(36160, handle);
282
+ // TODO - support gl.readBuffer (WebGL2 only)
283
+ // const prevBuffer = gl.readBuffer(attachment);
284
+ // assert(target);
285
+ let texture = null;
286
+ let textureTarget;
287
+ if (destinationTexture instanceof WEBGLTexture) {
288
+ texture = destinationTexture;
289
+ width = Number.isFinite(width) ? width : texture.width;
290
+ height = Number.isFinite(height) ? height : texture.height;
291
+ texture?.bind(0);
292
+ // @ts-ignore
293
+ textureTarget = texture.target;
294
+ }
295
+ else {
296
+ // @ts-ignore
297
+ textureTarget = target;
298
+ }
299
+ if (!isSubCopy) {
300
+ device.gl.copyTexImage2D(textureTarget, targetMipmaplevel, targetInternalFormat, sourceX, sourceY, width, height, 0 /* border must be 0 */);
301
+ }
302
+ else {
303
+ switch (textureTarget) {
304
+ case 3553:
305
+ case 34067:
306
+ device.gl.copyTexSubImage2D(textureTarget, targetMipmaplevel, targetX, targetY, sourceX, sourceY, width, height);
307
+ break;
308
+ case 35866:
309
+ case 32879:
310
+ device.gl.copyTexSubImage3D(textureTarget, targetMipmaplevel, targetX, targetY, targetZ, sourceX, sourceY, width, height);
311
+ break;
312
+ default:
277
313
  }
278
- break;
279
-
280
- default:
281
- throw new Error(dimension);
282
314
  }
283
- });
315
+ if (texture) {
316
+ texture.unbind();
317
+ }
318
+ // @ts-expect-error
319
+ device.gl.bindFramebuffer(36160, prevHandle || null);
320
+ if (deleteFramebuffer) {
321
+ framebuffer.destroy();
322
+ }
323
+ return texture;
324
+ }
325
+ function getFramebuffer(source) {
326
+ if (!(source instanceof Framebuffer)) {
327
+ return { framebuffer: toFramebuffer(source), deleteFramebuffer: true };
328
+ }
329
+ return { framebuffer: source, deleteFramebuffer: false };
284
330
  }
285
-
286
331
  /**
287
- * Set a texture level from CPU memory
288
- * @note Not available (directly) in WebGPU
289
- _setMipLevelFromTypedArray(
290
- depth: number,
291
- level: number,
292
- data: TextureLevelData,
293
- offset = 0,
294
- parameters
295
- ): void {
296
- withGLParameters(this.gl, parameters, () => {
297
- switch (this.props.dimension) {
298
- case '2d-array':
299
- case '3d':
300
- if (this.compressed) {
301
- // prettier-ignore
302
- this.device.gl.compressedTexImage3D(this.glTarget, level, this.glInternalFormat, data.width, data.height, depth, BORDER, data.data);
303
- } else {
304
- // prettier-ignore
305
- this.gl.texImage3D( this.glTarget, level, this.glInternalFormat, this.width, this.height, depth, BORDER, this.glFormat, this.glType, data.data);
306
- }
307
- break;
308
-
309
- case '2d':
310
- if (this.compressed) {
311
- // prettier-ignore
312
- this.device.gl.compressedTexImage2D(this.glTarget, level, this.glInternalFormat, data.width, data.height, BORDER, data.data);
313
- } else {
314
- // prettier-ignore
315
- this.device.gl.texImage2D( this.glTarget, level, this.glInternalFormat, this.width, this.height, BORDER, this.glFormat, this.glType, data.data, offset);
316
- }
317
- break;
318
-
319
- default:
320
- throw new Error(this.props.dimension);
321
- }
332
+ * Wraps a given texture into a framebuffer object, that can be further used
333
+ * to read data from the texture object.
334
+ */
335
+ export function toFramebuffer(texture, props) {
336
+ const { device, width, height, id } = texture;
337
+ const framebuffer = device.createFramebuffer({
338
+ ...props,
339
+ id: `framebuffer-for-${id}`,
340
+ width,
341
+ height,
342
+ colorAttachments: [texture]
322
343
  });
323
- }
324
-
325
- * Set a texture level from a GPU buffer
326
- *
327
- export function setMipLevelFromGPUBuffer(
328
- gl: WebGL2RenderingContext,
329
- buffer: Buffer,
330
- options: WebGLSetTextureOptions
331
- ): void {
332
- const {dimension, width, height, depth = 0, level = 0, byteOffset = 0} = options;
333
- const {glInternalFormat, glFormat, glType, compressed} = options;
334
- const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
335
-
336
- const webglBuffer = buffer as WEBGLBuffer;
337
- const imageSize = buffer.byteLength;
338
-
339
- // In WebGL the source buffer is not a parameter. Instead it needs to be bound to a special bind point
340
- gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, webglBuffer.handle);
341
-
342
- switch (dimension) {
343
- case '2d-array':
344
- case '3d':
345
- if (compressed) {
346
- // prettier-ignore
347
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, imageSize, byteOffset);
348
- } else {
349
- // prettier-ignore
350
- gl.texImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, byteOffset);
351
- }
352
- break;
353
-
354
- case '2d':
355
- if (compressed) {
356
- // prettier-ignore
357
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, imageSize, byteOffset);
358
- } else {
359
- // prettier-ignore
360
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glFormat, glType, byteOffset);
361
- }
362
- break;
363
-
364
- default:
365
- throw new Error(dimension);
366
- }
367
-
368
- gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, null);
344
+ return framebuffer;
345
+ }
346
+ // eslint-disable-next-line max-params
347
+ function getPixelArray(pixelArray, glType, glFormat, width, height, depth) {
348
+ if (pixelArray) {
349
+ return pixelArray;
350
+ }
351
+ // const formatInfo = decodeTextureFormat(format);
352
+ // Allocate pixel array if not already available, using supplied type
353
+ glType ||= 5121;
354
+ const ArrayType = getTypedArrayFromGLType(glType, { clamped: false });
355
+ const components = glFormatToComponents(glFormat);
356
+ // TODO - check for composite type (components = 1).
357
+ return new ArrayType(width * height * components);
369
358
  }
370
- */
359
+ //# sourceMappingURL=webgl-texture-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-texture-utils.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-texture-utils.ts"],"names":[],"mappings":"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"}
@@ -82,3 +82,4 @@ export function getGLPrimitive(topology) {
82
82
  default: throw new Error(topology);
83
83
  }
84
84
  }
85
+ //# sourceMappingURL=webgl-topology-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-topology-utils.js","sourceRoot":"","sources":["../../../src/adapter/helpers/webgl-topology-utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,EAAE,EAAmC,MAAM,oBAAoB,CAAC;AAGxE,qFAAqF;AACrF,MAAM,UAAU,oBAAoB,CAAC,QAA6B;IAChE,QAAQ,QAAQ,EAAE,CAAC;QACjB;YACE,SAAiB;QACnB;YACE,SAAgB;QAClB;YACE,SAAgB;QAClB;YACE,SAAgB;QAClB;YACE,SAAoB;QACtB;YACE,SAAoB;QACtB;YACE,SAAoB;QACtB;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,OAGjC;IACC,MAAM,EAAC,QAAQ,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IACxC,QAAQ,QAAQ,EAAE,CAAC;QACjB,OAAe;QACf;YACE,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,WAAW,GAAG,CAAC,CAAC;QACzB;YACE,OAAO,WAAW,GAAG,CAAC,CAAC;QACzB;YACE,OAAO,WAAW,GAAG,CAAC,CAAC;QACzB,OAAuB;QACvB;YACE,OAAO,WAAW,GAAG,CAAC,CAAC;QACzB;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,cAAc,CAAC,OAG9B;IACC,MAAM,EAAC,QAAQ,EAAE,WAAW,EAAC,GAAG,OAAO,CAAC;IACxC,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC,CAAC;IAClE,QAAQ,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC;YACE,OAAO,cAAc,CAAC;QACxB;YACE,OAAO,cAAc,GAAG,CAAC,CAAC;QAC5B;YACE,OAAO,cAAc,GAAG,CAAC,CAAC;QAC5B;YACE,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,aAAa,CAC3B,QAA2B;IAS3B,kBAAkB;IAClB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,SAAiB;QACpC,KAAK,WAAW,CAAC,CAAC,SAAgB;QAClC,KAAK,YAAY,CAAC,CAAC,SAAqB;QACxC,KAAK,eAAe,CAAC,CAAC,SAAoB;QAC1C,KAAK,gBAAgB,CAAC,CAAC,SAAyB;QAChD,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,cAAc,CAAC,QAA2B;IACxD,kBAAkB;IAClB,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,SAAiB;QACpC,KAAK,WAAW,CAAC,CAAC,SAAgB;QAClC,KAAK,YAAY,CAAC,CAAC,SAAgB;QACnC,KAAK,eAAe,CAAC,CAAC,SAAoB;QAC1C,KAAK,gBAAgB,CAAC,CAAC,SAAoB;QAC3C,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,cAAc,CAAC;IACjF,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;IACnD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,CAAqB;IAE9E,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;gBAEN,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,WAAgB;IA2BxD,sEAAsE;IACtE,aAAa,CACX,IAAI,EAAE,WAAW,GAAG,eAAe,EACnC,UAAU,GAAE,MAAU,EACtB,UAAU,GAAE,MAAqC,GAChD,IAAI;IAgBP,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA2BpC,OAAO,IAAI,IAAI;IAWf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAmBnE,+CAA+C;IAChC,SAAS,CAAC,UAAU,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlF,2DAA2D;IAClD,aAAa,CAAC,UAAU,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU;CAexE"}
1
+ {"version":3,"file":"webgl-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-buffer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AACtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAE5C,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,MAAM;IACrC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,sBAAsB,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,GAAG,EAAE,CAAC,oBAAoB,GAAG,EAAE,CAAC,cAAc,CAAC;IACjF,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC,YAAY,CAAC;IACnD,yEAAyE;IACzE,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,CAAqB;IAE9E,2DAA2D;IAC3D,UAAU,EAAE,MAAM,CAAC;IACnB,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;gBAEN,MAAM,EAAE,WAAW,EAAE,KAAK,GAAE,WAAgB;IA6BxD,sEAAsE;IACtE,aAAa,CACX,IAAI,EAAE,WAAW,GAAG,eAAe,EACnC,UAAU,GAAE,MAAU,EACtB,UAAU,GAAE,MAAqC,GAChD,IAAI;IAgBP,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA2BpC,OAAO,IAAI,IAAI;IAWf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAmBnE,+CAA+C;IAChC,SAAS,CAAC,UAAU,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIlF,2DAA2D;IAClD,aAAa,CAAC,UAAU,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU;CAexE"}
@@ -24,7 +24,9 @@ export class WEBGLBuffer extends Buffer {
24
24
  this.gl = this.device.gl;
25
25
  const handle = typeof props === 'object' ? props.handle : undefined;
26
26
  this.handle = handle || this.gl.createBuffer();
27
- device.setSpectorMetadata(this.handle, { ...this.props, data: typeof this.props.data });
27
+ device._setWebGLDebugMetadata(this.handle, this, {
28
+ spector: { ...this.props, data: typeof this.props.data }
29
+ });
28
30
  // - In WebGL1, need to make sure we use GL.ELEMENT_ARRAY_BUFFER when initializing element buffers
29
31
  // otherwise buffer type will lock to generic (non-element) buffer
30
32
  // - In WebGL2, we can use GL.COPY_READ_BUFFER which avoids locking the type here
@@ -170,3 +172,4 @@ function getWebGLUsage(usage) {
170
172
  }
171
173
  return 35044;
172
174
  }
175
+ //# sourceMappingURL=webgl-buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webgl-buffer.js","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-buffer.ts"],"names":[],"mappings":"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"}