@luma.gl/webgl 9.1.0-alpha.2 → 9.1.0-beta.1

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 (216) 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 +19 -11
  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 -3
  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 +100 -29
  39. package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
  40. package/dist/adapter/helpers/webgl-texture-utils.js +231 -240
  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 +71 -76
  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 +49 -21
  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 +45 -23
  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 +33 -21
  78. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  79. package/dist/adapter/resources/webgl-texture.js +172 -242
  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 +21 -0
  86. package/dist/adapter/webgl-adapter.d.ts.map +1 -0
  87. package/dist/adapter/webgl-adapter.js +86 -0
  88. package/dist/adapter/webgl-adapter.js.map +1 -0
  89. package/dist/adapter/webgl-canvas-context.d.ts +4 -6
  90. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  91. package/dist/adapter/webgl-canvas-context.js +13 -17
  92. package/dist/adapter/webgl-canvas-context.js.map +1 -0
  93. package/dist/adapter/webgl-device.d.ts +35 -46
  94. package/dist/adapter/webgl-device.d.ts.map +1 -1
  95. package/dist/adapter/webgl-device.js +100 -156
  96. package/dist/adapter/webgl-device.js.map +1 -0
  97. package/dist/context/debug/spector-types.d.ts +1108 -0
  98. package/dist/context/debug/spector-types.d.ts.map +1 -0
  99. package/dist/context/debug/spector-types.js +698 -0
  100. package/dist/context/debug/spector-types.js.map +1 -0
  101. package/dist/context/debug/spector.d.ts +12 -8
  102. package/dist/context/debug/spector.d.ts.map +1 -1
  103. package/dist/context/debug/spector.js +24 -17
  104. package/dist/context/debug/spector.js.map +1 -0
  105. package/dist/context/debug/webgl-developer-tools.d.ts +2 -3
  106. package/dist/context/debug/webgl-developer-tools.d.ts.map +1 -1
  107. package/dist/context/debug/webgl-developer-tools.js +7 -19
  108. package/dist/context/debug/webgl-developer-tools.js.map +1 -0
  109. package/dist/context/helpers/create-browser-context.d.ts +6 -22
  110. package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
  111. package/dist/context/helpers/create-browser-context.js +41 -32
  112. package/dist/context/helpers/create-browser-context.js.map +1 -0
  113. package/dist/context/helpers/webgl-context-data.js +1 -0
  114. package/dist/context/helpers/webgl-context-data.js.map +1 -0
  115. package/dist/context/helpers/webgl-extensions.js +1 -0
  116. package/dist/context/helpers/webgl-extensions.js.map +1 -0
  117. package/dist/context/parameters/unified-parameter-api.js +1 -0
  118. package/dist/context/parameters/unified-parameter-api.js.map +1 -0
  119. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  120. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  121. package/dist/context/parameters/webgl-parameter-tables.js +3 -2
  122. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -0
  123. package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts +9 -0
  124. package/dist/context/polyfills/polyfill-webgl1-extensions.d.ts.map +1 -0
  125. package/dist/context/polyfills/polyfill-webgl1-extensions.js +182 -0
  126. package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -0
  127. package/dist/context/state-tracker/deep-array-equal.js +1 -0
  128. package/dist/context/state-tracker/deep-array-equal.js.map +1 -0
  129. package/dist/context/state-tracker/webgl-state-tracker.d.ts +43 -0
  130. package/dist/context/state-tracker/webgl-state-tracker.d.ts.map +1 -0
  131. package/dist/context/state-tracker/{track-context-state.js → webgl-state-tracker.js} +45 -74
  132. package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -0
  133. package/dist/context/state-tracker/with-parameters.d.ts.map +1 -1
  134. package/dist/context/state-tracker/with-parameters.js +6 -4
  135. package/dist/context/state-tracker/with-parameters.js.map +1 -0
  136. package/dist/deprecated/accessor.d.ts.map +1 -0
  137. package/dist/{classic → deprecated}/accessor.js +37 -1
  138. package/dist/deprecated/accessor.js.map +1 -0
  139. package/dist/dist.dev.js +2397 -2430
  140. package/dist/dist.min.js +2 -2
  141. package/dist/index.cjs +2273 -2298
  142. package/dist/index.cjs.map +4 -4
  143. package/dist/index.d.ts +5 -4
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +6 -6
  146. package/dist/index.js.map +1 -0
  147. package/dist/types.js +1 -0
  148. package/dist/types.js.map +1 -0
  149. package/dist/utils/fill-array.d.ts +4 -4
  150. package/dist/utils/fill-array.d.ts.map +1 -1
  151. package/dist/utils/fill-array.js +1 -0
  152. package/dist/utils/fill-array.js.map +1 -0
  153. package/dist/utils/load-script.js +1 -0
  154. package/dist/utils/load-script.js.map +1 -0
  155. package/dist/utils/split-uniforms-and-bindings.d.ts +1 -1
  156. package/dist/utils/split-uniforms-and-bindings.d.ts.map +1 -1
  157. package/dist/utils/split-uniforms-and-bindings.js +1 -0
  158. package/dist/utils/split-uniforms-and-bindings.js.map +1 -0
  159. package/dist/utils/uid.d.ts +7 -0
  160. package/dist/utils/uid.d.ts.map +1 -0
  161. package/dist/utils/uid.js +15 -0
  162. package/dist/utils/uid.js.map +1 -0
  163. package/package.json +5 -5
  164. package/src/adapter/converters/device-parameters.ts +21 -15
  165. package/src/adapter/converters/sampler-parameters.ts +6 -4
  166. package/src/adapter/converters/webgl-texture-table.ts +404 -0
  167. package/src/adapter/device-helpers/webgl-device-features.ts +5 -3
  168. package/src/{classic → adapter/helpers}/format-utils.ts +6 -0
  169. package/src/adapter/helpers/get-shader-layout.ts +7 -4
  170. package/src/adapter/helpers/webgl-texture-utils.ts +410 -64
  171. package/src/adapter/resources/webgl-buffer.ts +3 -1
  172. package/src/adapter/resources/webgl-command-buffer.ts +125 -41
  173. package/src/adapter/resources/webgl-command-encoder.ts +6 -0
  174. package/src/adapter/resources/webgl-external-texture.ts +14 -0
  175. package/src/adapter/resources/webgl-framebuffer.ts +80 -86
  176. package/src/adapter/resources/webgl-render-pass.ts +72 -45
  177. package/src/adapter/resources/webgl-render-pipeline.ts +58 -27
  178. package/src/adapter/resources/webgl-shader.ts +15 -7
  179. package/src/adapter/resources/webgl-texture.ts +202 -274
  180. package/src/adapter/webgl-adapter.ts +105 -0
  181. package/src/adapter/webgl-canvas-context.ts +16 -19
  182. package/src/adapter/webgl-device.ts +144 -210
  183. package/src/context/debug/spector-types.ts +1154 -0
  184. package/src/context/debug/spector.ts +38 -29
  185. package/src/context/debug/webgl-developer-tools.ts +8 -31
  186. package/src/context/helpers/create-browser-context.ts +53 -63
  187. package/src/context/parameters/webgl-parameter-tables.ts +2 -2
  188. package/src/context/polyfills/polyfill-webgl1-extensions.ts +202 -0
  189. package/src/context/state-tracker/{track-context-state.ts → webgl-state-tracker.ts} +55 -94
  190. package/src/context/state-tracker/with-parameters.ts +5 -4
  191. package/src/{classic → deprecated}/accessor.ts +44 -3
  192. package/src/index.ts +7 -12
  193. package/src/utils/fill-array.ts +4 -4
  194. package/src/utils/split-uniforms-and-bindings.ts +3 -3
  195. package/src/utils/uid.ts +16 -0
  196. package/dist/adapter/converters/texture-formats.d.ts +0 -83
  197. package/dist/adapter/converters/texture-formats.d.ts.map +0 -1
  198. package/dist/adapter/converters/texture-formats.js +0 -518
  199. package/dist/classic/accessor.d.ts.map +0 -1
  200. package/dist/classic/clear.d.ts +0 -22
  201. package/dist/classic/clear.d.ts.map +0 -1
  202. package/dist/classic/clear.js +0 -86
  203. package/dist/classic/copy-and-blit.d.ts +0 -63
  204. package/dist/classic/copy-and-blit.d.ts.map +0 -1
  205. package/dist/classic/copy-and-blit.js +0 -193
  206. package/dist/classic/format-utils.d.ts.map +0 -1
  207. package/dist/classic/typed-array-utils.d.ts.map +0 -1
  208. package/dist/context/state-tracker/track-context-state.d.ts +0 -22
  209. package/dist/context/state-tracker/track-context-state.d.ts.map +0 -1
  210. package/src/adapter/converters/texture-formats.ts +0 -665
  211. package/src/classic/clear.ts +0 -115
  212. package/src/classic/copy-and-blit.ts +0 -318
  213. /package/dist/{classic → adapter/helpers}/format-utils.d.ts +0 -0
  214. /package/dist/{classic → adapter/helpers}/typed-array-utils.d.ts +0 -0
  215. /package/dist/{classic → deprecated}/accessor.d.ts +0 -0
  216. /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
  /**
@@ -19,7 +23,7 @@ const BORDER = 0;
19
23
  export function initializeTextureStorage(gl, levels, options) {
20
24
  const { dimension, width, height, depth = 0 } = options;
21
25
  const { glInternalFormat } = options;
22
- const glTarget = options.glTarget; // getCubeTargetWebGL(options.glTarget, dimension, depth);
26
+ const glTarget = options.glTarget; // getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
23
27
  switch (dimension) {
24
28
  case '2d-array':
25
29
  case '3d':
@@ -32,57 +36,64 @@ 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
- const glTarget = getCubeTargetWebGL(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
- }
44
+ const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
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
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
74
+ const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
75
+ // gl.bindTexture(glTarget, null);
65
76
  switch (dimension) {
66
77
  case '2d-array':
67
78
  case '3d':
68
79
  if (compressed) {
69
80
  // prettier-ignore
70
- 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
71
82
  }
72
83
  else {
73
84
  // prettier-ignore
74
- 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
75
86
  }
76
87
  break;
77
88
  case '2d':
78
89
  case 'cube':
79
90
  if (compressed) {
80
91
  // prettier-ignore
81
- 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
82
93
  }
83
94
  else {
84
95
  // prettier-ignore
85
- 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
86
97
  }
87
98
  break;
88
99
  default:
@@ -93,10 +104,10 @@ export function copyCPUDataToMipLevel(gl, typedArray, options) {
93
104
  * Copy a region of compressed data from a GPU memory buffer into this texture.
94
105
  */
95
106
  export function copyGPUBufferToMipLevel(gl, webglBuffer, byteLength, options) {
96
- const { dimension, width, height, depth = 0, level = 0, byteOffset = 0 } = options;
107
+ const { dimension, width, height, depth = 0, mipLevel = 0, byteOffset = 0 } = options;
97
108
  const { x = 0, y = 0, z = 0 } = options;
98
109
  const { glFormat, glType, compressed } = options;
99
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
110
+ const glTarget = getWebGLCubeFaceTarget(options.glTarget, dimension, depth);
100
111
  gl.bindBuffer(35052, webglBuffer);
101
112
  switch (dimension) {
102
113
  case '2d-array':
@@ -105,22 +116,22 @@ export function copyGPUBufferToMipLevel(gl, webglBuffer, byteLength, options) {
105
116
  if (compressed) {
106
117
  // TODO enable extension?
107
118
  // prettier-ignore
108
- 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);
109
120
  }
110
121
  else {
111
122
  // prettier-ignore
112
- 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);
113
124
  }
114
125
  break;
115
126
  case '2d':
116
127
  case 'cube':
117
128
  if (compressed) {
118
129
  // prettier-ignore
119
- gl.compressedTexSubImage2D(glTarget, level, x, y, width, height, glFormat, byteLength, byteOffset);
130
+ gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, byteLength, byteOffset);
120
131
  }
121
132
  else {
122
133
  // prettier-ignore
123
- gl.texSubImage2D(glTarget, level, x, y, width, height, BORDER, glFormat, byteOffset);
134
+ gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, BORDER, glFormat, byteOffset);
124
135
  }
125
136
  break;
126
137
  default:
@@ -143,226 +154,206 @@ export function getWebGLTextureTarget(dimension) {
143
154
  }
144
155
  /**
145
156
  * In WebGL, cube maps specify faces by overriding target instead of using the depth parameter.
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.
146
158
  * @returns glTarget unchanged, if dimension !== 'cube'.
147
159
  */
148
- function getCubeTargetWebGL(glTarget, dimension, level) {
160
+ export function getWebGLCubeFaceTarget(glTarget, dimension, level) {
149
161
  return dimension === 'cube' ? 34069 + level : glTarget;
150
162
  }
151
- // texImage methods
152
163
  /**
153
- * Clear a texture mip level.
154
- * 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
155
169
  *
156
- export function clearMipLevel(gl: WebGL2RenderingContext, options: WebGLSetTextureOptions): void {
157
- const {dimension, width, height, depth = 0, level = 0} = options;
158
- const {glInternalFormat, glFormat, glType, compressed} = options;
159
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
160
-
161
- switch (dimension) {
162
- case '2d-array':
163
- case '3d':
164
- if (compressed) {
165
- // prettier-ignore
166
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, null);
167
- } else {
168
- // prettier-ignore
169
- gl.texImage3D( glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, null);
170
- }
171
- break;
172
-
173
- case '2d':
174
- case 'cube':
175
- if (compressed) {
176
- // prettier-ignore
177
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, null);
178
- } else {
179
- // prettier-ignore
180
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glFormat, glType, null);
181
- }
182
- break;
183
-
184
- default:
185
- throw new Error(dimension);
186
- }
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;
187
215
  }
188
-
189
216
  /**
190
- * Set a texture mip level to the contents of an external image.
191
- * Wrapper for the messy WebGL texture API
192
- * @note Corresponds to WebGPU device.queue.copyExternalImageToTexture()
193
- *
194
- export function setMipLevelFromExternalImage(
195
- gl: WebGL2RenderingContext,
196
- image: ExternalImage,
197
- options: WebGLSetTextureOptions
198
- ): void {
199
- const {dimension, width, height, depth = 0, level = 0} = options;
200
- const {glInternalFormat, glType} = options;
201
-
202
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
203
-
204
- // TODO - we can't change texture width (due to WebGPU limitations) -
205
- // and the width/heigh of an external image is implicit, so why do we need to extract it?
206
- // So what width height do we supply? The image size or the texture size?
207
- // const {width, height} = Texture.getExternalImageSize(image);
208
-
209
- switch (dimension) {
210
- case '2d-array':
211
- case '3d':
212
- // prettier-ignore
213
- gl.texImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, glInternalFormat, glType, image);
214
- break;
215
-
216
- case '2d':
217
- case 'cube':
218
- // prettier-ignore
219
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glInternalFormat, glType, image);
220
- break;
221
-
222
- default:
223
- throw new Error(dimension);
224
- }
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;
225
258
  }
226
-
227
259
  /**
228
- * Set a texture mip level from CPU memory
229
- * Wrapper for the messy WebGL texture API
230
- * @note Not available (directly) in WebGPU
231
- *
232
- export function setMipLevelFromTypedArray(
233
- gl: WebGL2RenderingContext,
234
- data: TypedArray,
235
- parameters: {},
236
- options: {
237
- dimension: '1d' | '2d' | '2d-array' | 'cube' | 'cube-array' | '3d';
238
- height: number;
239
- width: number;
240
- depth?: number;
241
- level?: number;
242
- offset?: number;
243
- glTarget: GLTextureTarget;
244
- glInternalFormat: GL;
245
- glFormat: GL;
246
- glType: GL;
247
- compressed?: boolean;
248
- }
249
- ): void {
250
- const {dimension, width, height, depth = 0, level = 0, offset = 0} = options;
251
- const {glInternalFormat, glFormat, glType, compressed} = options;
252
-
253
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
254
-
255
- withGLParameters(gl, parameters, () => {
256
- switch (dimension) {
257
- case '2d-array':
258
- case '3d':
259
- if (compressed) {
260
- // prettier-ignore
261
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, data);
262
- } else {
263
- // prettier-ignore
264
- gl.texImage3D( glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, data);
265
- }
266
- break;
267
-
268
- case '2d':
269
- if (compressed) {
270
- // prettier-ignore
271
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, data);
272
- } else {
273
- // prettier-ignore
274
- 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:
275
313
  }
276
- break;
277
-
278
- default:
279
- throw new Error(dimension);
280
314
  }
281
- });
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 };
282
330
  }
283
-
284
331
  /**
285
- * Set a texture level from CPU memory
286
- * @note Not available (directly) in WebGPU
287
- _setMipLevelFromTypedArray(
288
- depth: number,
289
- level: number,
290
- data: TextureLevelData,
291
- offset = 0,
292
- parameters
293
- ): void {
294
- withGLParameters(this.gl, parameters, () => {
295
- switch (this.props.dimension) {
296
- case '2d-array':
297
- case '3d':
298
- if (this.compressed) {
299
- // prettier-ignore
300
- this.device.gl.compressedTexImage3D(this.glTarget, level, this.glInternalFormat, data.width, data.height, depth, BORDER, data.data);
301
- } else {
302
- // prettier-ignore
303
- this.gl.texImage3D( this.glTarget, level, this.glInternalFormat, this.width, this.height, depth, BORDER, this.glFormat, this.glType, data.data);
304
- }
305
- break;
306
-
307
- case '2d':
308
- if (this.compressed) {
309
- // prettier-ignore
310
- this.device.gl.compressedTexImage2D(this.glTarget, level, this.glInternalFormat, data.width, data.height, BORDER, data.data);
311
- } else {
312
- // prettier-ignore
313
- this.device.gl.texImage2D( this.glTarget, level, this.glInternalFormat, this.width, this.height, BORDER, this.glFormat, this.glType, data.data, offset);
314
- }
315
- break;
316
-
317
- default:
318
- throw new Error(this.props.dimension);
319
- }
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]
320
343
  });
321
- }
322
-
323
- * Set a texture level from a GPU buffer
324
- *
325
- export function setMipLevelFromGPUBuffer(
326
- gl: WebGL2RenderingContext,
327
- buffer: Buffer,
328
- options: WebGLSetTextureOptions
329
- ): void {
330
- const {dimension, width, height, depth = 0, level = 0, byteOffset = 0} = options;
331
- const {glInternalFormat, glFormat, glType, compressed} = options;
332
- const glTarget = getCubeTargetWebGL(options.glTarget, dimension, depth);
333
-
334
- const webglBuffer = buffer as WEBGLBuffer;
335
- const imageSize = buffer.byteLength;
336
-
337
- // In WebGL the source buffer is not a parameter. Instead it needs to be bound to a special bind point
338
- gl.bindBuffer(GL.PIXEL_UNPACK_BUFFER, webglBuffer.handle);
339
-
340
- switch (dimension) {
341
- case '2d-array':
342
- case '3d':
343
- if (compressed) {
344
- // prettier-ignore
345
- gl.compressedTexImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, imageSize, byteOffset);
346
- } else {
347
- // prettier-ignore
348
- gl.texImage3D(glTarget, level, glInternalFormat, width, height, depth, BORDER, glFormat, glType, byteOffset);
349
- }
350
- break;
351
-
352
- case '2d':
353
- if (compressed) {
354
- // prettier-ignore
355
- gl.compressedTexImage2D(glTarget, level, glInternalFormat, width, height, BORDER, imageSize, byteOffset);
356
- } else {
357
- // prettier-ignore
358
- gl.texImage2D(glTarget, level, glInternalFormat, width, height, BORDER, glFormat, glType, byteOffset);
359
- }
360
- break;
361
-
362
- default:
363
- throw new Error(dimension);
364
- }
365
-
366
- 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);
367
358
  }
368
- */
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