@luma.gl/webgl 9.2.6 → 9.3.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/dist/adapter/converters/device-parameters.d.ts +1 -1
  2. package/dist/adapter/converters/device-parameters.d.ts.map +1 -1
  3. package/dist/adapter/converters/device-parameters.js +4 -1
  4. package/dist/adapter/converters/device-parameters.js.map +1 -1
  5. package/dist/adapter/converters/sampler-parameters.d.ts +1 -1
  6. package/dist/adapter/converters/sampler-parameters.d.ts.map +1 -1
  7. package/dist/adapter/converters/sampler-parameters.js +1 -1
  8. package/dist/adapter/converters/sampler-parameters.js.map +1 -1
  9. package/dist/adapter/converters/shader-formats.d.ts +1 -64
  10. package/dist/adapter/converters/shader-formats.d.ts.map +1 -1
  11. package/dist/adapter/converters/shader-formats.js +1 -64
  12. package/dist/adapter/converters/shader-formats.js.map +1 -1
  13. package/dist/adapter/converters/webgl-shadertypes.d.ts +1 -3
  14. package/dist/adapter/converters/webgl-shadertypes.d.ts.map +1 -1
  15. package/dist/adapter/converters/webgl-shadertypes.js +1 -6
  16. package/dist/adapter/converters/webgl-shadertypes.js.map +1 -1
  17. package/dist/adapter/converters/webgl-texture-table.d.ts +8 -4
  18. package/dist/adapter/converters/webgl-texture-table.d.ts.map +1 -1
  19. package/dist/adapter/converters/webgl-texture-table.js +122 -58
  20. package/dist/adapter/converters/webgl-texture-table.js.map +1 -1
  21. package/dist/adapter/converters/webgl-vertex-formats.d.ts +1 -1
  22. package/dist/adapter/converters/webgl-vertex-formats.d.ts.map +1 -1
  23. package/dist/adapter/converters/webgl-vertex-formats.js +1 -1
  24. package/dist/adapter/converters/webgl-vertex-formats.js.map +1 -1
  25. package/dist/adapter/device-helpers/webgl-device-features.d.ts +1 -1
  26. package/dist/adapter/device-helpers/webgl-device-features.d.ts.map +1 -1
  27. package/dist/adapter/device-helpers/webgl-device-features.js +1 -2
  28. package/dist/adapter/device-helpers/webgl-device-features.js.map +1 -1
  29. package/dist/adapter/device-helpers/webgl-device-info.d.ts +1 -1
  30. package/dist/adapter/device-helpers/webgl-device-info.d.ts.map +1 -1
  31. package/dist/adapter/device-helpers/webgl-device-info.js +6 -1
  32. package/dist/adapter/device-helpers/webgl-device-info.js.map +1 -1
  33. package/dist/adapter/device-helpers/webgl-device-limits.d.ts +1 -1
  34. package/dist/adapter/device-helpers/webgl-device-limits.d.ts.map +1 -1
  35. package/dist/adapter/device-helpers/webgl-device-limits.js +1 -1
  36. package/dist/adapter/device-helpers/webgl-device-limits.js.map +1 -1
  37. package/dist/adapter/helpers/format-utils.d.ts +1 -1
  38. package/dist/adapter/helpers/format-utils.d.ts.map +1 -1
  39. package/dist/adapter/helpers/format-utils.js +1 -1
  40. package/dist/adapter/helpers/format-utils.js.map +1 -1
  41. package/dist/adapter/helpers/get-shader-layout-from-glsl.js +36 -22
  42. package/dist/adapter/helpers/get-shader-layout-from-glsl.js.map +1 -1
  43. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts +1 -1
  44. package/dist/adapter/helpers/parse-shader-compiler-log.d.ts.map +1 -1
  45. package/dist/adapter/helpers/parse-shader-compiler-log.js +20 -0
  46. package/dist/adapter/helpers/parse-shader-compiler-log.js.map +1 -1
  47. package/dist/adapter/helpers/set-uniform.d.ts +1 -1
  48. package/dist/adapter/helpers/set-uniform.d.ts.map +1 -1
  49. package/dist/adapter/helpers/set-uniform.js +1 -1
  50. package/dist/adapter/helpers/set-uniform.js.map +1 -1
  51. package/dist/adapter/helpers/webgl-texture-utils.d.ts +1 -1
  52. package/dist/adapter/helpers/webgl-texture-utils.d.ts.map +1 -1
  53. package/dist/adapter/helpers/webgl-texture-utils.js +4 -4
  54. package/dist/adapter/helpers/webgl-texture-utils.js.map +1 -1
  55. package/dist/adapter/helpers/webgl-topology-utils.d.ts +1 -1
  56. package/dist/adapter/helpers/webgl-topology-utils.d.ts.map +1 -1
  57. package/dist/adapter/helpers/webgl-topology-utils.js +1 -1
  58. package/dist/adapter/helpers/webgl-topology-utils.js.map +1 -1
  59. package/dist/adapter/resources/webgl-buffer.d.ts +1 -1
  60. package/dist/adapter/resources/webgl-buffer.d.ts.map +1 -1
  61. package/dist/adapter/resources/webgl-buffer.js +20 -5
  62. package/dist/adapter/resources/webgl-buffer.js.map +1 -1
  63. package/dist/adapter/resources/webgl-command-buffer.d.ts +3 -4
  64. package/dist/adapter/resources/webgl-command-buffer.d.ts.map +1 -1
  65. package/dist/adapter/resources/webgl-command-buffer.js +29 -39
  66. package/dist/adapter/resources/webgl-command-buffer.js.map +1 -1
  67. package/dist/adapter/resources/webgl-command-encoder.d.ts +6 -5
  68. package/dist/adapter/resources/webgl-command-encoder.d.ts.map +1 -1
  69. package/dist/adapter/resources/webgl-command-encoder.js +23 -8
  70. package/dist/adapter/resources/webgl-command-encoder.js.map +1 -1
  71. package/dist/adapter/resources/webgl-fence.d.ts +14 -0
  72. package/dist/adapter/resources/webgl-fence.d.ts.map +1 -0
  73. package/dist/adapter/resources/webgl-fence.js +49 -0
  74. package/dist/adapter/resources/webgl-fence.js.map +1 -0
  75. package/dist/adapter/resources/webgl-framebuffer.d.ts +3 -1
  76. package/dist/adapter/resources/webgl-framebuffer.d.ts.map +1 -1
  77. package/dist/adapter/resources/webgl-framebuffer.js +10 -1
  78. package/dist/adapter/resources/webgl-framebuffer.js.map +1 -1
  79. package/dist/adapter/resources/webgl-query-set.d.ts +37 -31
  80. package/dist/adapter/resources/webgl-query-set.d.ts.map +1 -1
  81. package/dist/adapter/resources/webgl-query-set.js +247 -96
  82. package/dist/adapter/resources/webgl-query-set.js.map +1 -1
  83. package/dist/adapter/resources/webgl-render-pass.d.ts +1 -1
  84. package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
  85. package/dist/adapter/resources/webgl-render-pass.js +28 -11
  86. package/dist/adapter/resources/webgl-render-pass.js.map +1 -1
  87. package/dist/adapter/resources/webgl-render-pipeline.d.ts +17 -21
  88. package/dist/adapter/resources/webgl-render-pipeline.d.ts.map +1 -1
  89. package/dist/adapter/resources/webgl-render-pipeline.js +70 -169
  90. package/dist/adapter/resources/webgl-render-pipeline.js.map +1 -1
  91. package/dist/adapter/resources/webgl-sampler.d.ts +1 -1
  92. package/dist/adapter/resources/webgl-sampler.d.ts.map +1 -1
  93. package/dist/adapter/resources/webgl-sampler.js +1 -1
  94. package/dist/adapter/resources/webgl-sampler.js.map +1 -1
  95. package/dist/adapter/resources/webgl-shader.d.ts +1 -1
  96. package/dist/adapter/resources/webgl-shader.d.ts.map +1 -1
  97. package/dist/adapter/resources/webgl-shader.js +15 -8
  98. package/dist/adapter/resources/webgl-shader.js.map +1 -1
  99. package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts +24 -0
  100. package/dist/adapter/resources/webgl-shared-render-pipeline.d.ts.map +1 -0
  101. package/dist/adapter/resources/webgl-shared-render-pipeline.js +155 -0
  102. package/dist/adapter/resources/webgl-shared-render-pipeline.js.map +1 -0
  103. package/dist/adapter/resources/webgl-texture.d.ts +42 -4
  104. package/dist/adapter/resources/webgl-texture.d.ts.map +1 -1
  105. package/dist/adapter/resources/webgl-texture.js +286 -62
  106. package/dist/adapter/resources/webgl-texture.js.map +1 -1
  107. package/dist/adapter/resources/webgl-transform-feedback.js +6 -6
  108. package/dist/adapter/resources/webgl-transform-feedback.js.map +1 -1
  109. package/dist/adapter/resources/webgl-vertex-array.d.ts +2 -2
  110. package/dist/adapter/resources/webgl-vertex-array.d.ts.map +1 -1
  111. package/dist/adapter/resources/webgl-vertex-array.js +1 -1
  112. package/dist/adapter/resources/webgl-vertex-array.js.map +1 -1
  113. package/dist/adapter/webgl-adapter.d.ts.map +1 -1
  114. package/dist/adapter/webgl-adapter.js +22 -23
  115. package/dist/adapter/webgl-adapter.js.map +1 -1
  116. package/dist/adapter/webgl-canvas-context.d.ts +2 -2
  117. package/dist/adapter/webgl-canvas-context.d.ts.map +1 -1
  118. package/dist/adapter/webgl-canvas-context.js +16 -6
  119. package/dist/adapter/webgl-canvas-context.js.map +1 -1
  120. package/dist/adapter/webgl-device.d.ts +10 -5
  121. package/dist/adapter/webgl-device.d.ts.map +1 -1
  122. package/dist/adapter/webgl-device.js +75 -28
  123. package/dist/adapter/webgl-device.js.map +1 -1
  124. package/dist/adapter/webgl-presentation-context.d.ts +21 -0
  125. package/dist/adapter/webgl-presentation-context.d.ts.map +1 -0
  126. package/dist/adapter/webgl-presentation-context.js +64 -0
  127. package/dist/adapter/webgl-presentation-context.js.map +1 -0
  128. package/dist/constants/index.d.ts +3 -0
  129. package/dist/constants/index.d.ts.map +1 -0
  130. package/dist/constants/index.js +5 -0
  131. package/dist/constants/index.js.map +1 -0
  132. package/dist/constants/webgl-constants.d.ts +822 -0
  133. package/dist/constants/webgl-constants.d.ts.map +1 -0
  134. package/dist/constants/webgl-constants.js +928 -0
  135. package/dist/constants/webgl-constants.js.map +1 -0
  136. package/dist/constants/webgl-types.d.ts +480 -0
  137. package/dist/constants/webgl-types.d.ts.map +1 -0
  138. package/dist/constants/webgl-types.js +6 -0
  139. package/dist/constants/webgl-types.js.map +1 -0
  140. package/dist/context/debug/spector.d.ts.map +1 -1
  141. package/dist/context/debug/spector.js +4 -4
  142. package/dist/context/debug/spector.js.map +1 -1
  143. package/dist/context/debug/webgl-developer-tools.js +7 -7
  144. package/dist/context/debug/webgl-developer-tools.js.map +1 -1
  145. package/dist/context/helpers/create-browser-context.d.ts.map +1 -1
  146. package/dist/context/helpers/create-browser-context.js +46 -36
  147. package/dist/context/helpers/create-browser-context.js.map +1 -1
  148. package/dist/context/helpers/webgl-context-data.d.ts +5 -1
  149. package/dist/context/helpers/webgl-context-data.d.ts.map +1 -1
  150. package/dist/context/helpers/webgl-context-data.js +9 -10
  151. package/dist/context/helpers/webgl-context-data.js.map +1 -1
  152. package/dist/context/helpers/webgl-extensions.d.ts +1 -1
  153. package/dist/context/helpers/webgl-extensions.d.ts.map +1 -1
  154. package/dist/context/parameters/unified-parameter-api.d.ts +2 -2
  155. package/dist/context/parameters/unified-parameter-api.d.ts.map +1 -1
  156. package/dist/context/parameters/unified-parameter-api.js +2 -2
  157. package/dist/context/parameters/unified-parameter-api.js.map +1 -1
  158. package/dist/context/parameters/webgl-parameter-tables.d.ts +1 -1
  159. package/dist/context/parameters/webgl-parameter-tables.d.ts.map +1 -1
  160. package/dist/context/parameters/webgl-parameter-tables.js +1 -1
  161. package/dist/context/parameters/webgl-parameter-tables.js.map +1 -1
  162. package/dist/context/polyfills/polyfill-webgl1-extensions.js +1 -1
  163. package/dist/context/polyfills/polyfill-webgl1-extensions.js.map +1 -1
  164. package/dist/context/state-tracker/webgl-state-tracker.js +2 -2
  165. package/dist/context/state-tracker/webgl-state-tracker.js.map +1 -1
  166. package/dist/dist.dev.js +1897 -999
  167. package/dist/dist.min.js +2 -2
  168. package/dist/index.cjs +3 -5255
  169. package/dist/index.cjs.map +4 -4
  170. package/dist/index.d.ts +3 -0
  171. package/dist/index.d.ts.map +1 -1
  172. package/dist/index.js +2 -0
  173. package/dist/index.js.map +1 -1
  174. package/dist/utils/fill-array.js +1 -1
  175. package/dist/utils/fill-array.js.map +1 -1
  176. package/dist/webgl-constants.d.ts +2 -0
  177. package/dist/webgl-constants.d.ts.map +1 -0
  178. package/dist/webgl-constants.js +5 -0
  179. package/dist/webgl-constants.js.map +1 -0
  180. package/dist/webgl-types.d.ts +2 -0
  181. package/dist/webgl-types.d.ts.map +1 -0
  182. package/dist/{types.js → webgl-types.js} +1 -1
  183. package/dist/webgl-types.js.map +1 -0
  184. package/package.json +19 -5
  185. package/src/adapter/converters/device-parameters.ts +6 -2
  186. package/src/adapter/converters/sampler-parameters.ts +1 -1
  187. package/src/adapter/converters/shader-formats.ts +1 -66
  188. package/src/adapter/converters/webgl-shadertypes.ts +1 -9
  189. package/src/adapter/converters/webgl-texture-table.ts +160 -68
  190. package/src/adapter/converters/webgl-vertex-formats.ts +1 -1
  191. package/src/adapter/device-helpers/webgl-device-features.ts +2 -3
  192. package/src/adapter/device-helpers/webgl-device-info.ts +7 -1
  193. package/src/adapter/device-helpers/webgl-device-limits.ts +1 -1
  194. package/src/adapter/helpers/format-utils.ts +1 -1
  195. package/src/adapter/helpers/get-shader-layout-from-glsl.ts +44 -24
  196. package/src/adapter/helpers/parse-shader-compiler-log.ts +23 -1
  197. package/src/adapter/helpers/set-uniform.ts +1 -1
  198. package/src/adapter/helpers/webgl-texture-utils.ts +4 -4
  199. package/src/adapter/helpers/webgl-topology-utils.ts +1 -1
  200. package/src/adapter/resources/webgl-buffer.ts +17 -5
  201. package/src/adapter/resources/webgl-command-buffer.ts +44 -48
  202. package/src/adapter/resources/webgl-command-encoder.ts +28 -11
  203. package/src/adapter/resources/webgl-fence.ts +55 -0
  204. package/src/adapter/resources/webgl-framebuffer.ts +12 -1
  205. package/src/adapter/resources/webgl-query-set.ts +295 -101
  206. package/src/adapter/resources/webgl-render-pass.ts +30 -13
  207. package/src/adapter/resources/webgl-render-pipeline.ts +102 -198
  208. package/src/adapter/resources/webgl-sampler.ts +1 -1
  209. package/src/adapter/resources/webgl-shader.ts +15 -8
  210. package/src/adapter/resources/webgl-shared-render-pipeline.ts +211 -0
  211. package/src/adapter/resources/webgl-texture.ts +455 -81
  212. package/src/adapter/resources/webgl-transform-feedback.ts +6 -6
  213. package/src/adapter/resources/webgl-vertex-array.ts +1 -1
  214. package/src/adapter/webgl-adapter.ts +26 -24
  215. package/src/adapter/webgl-canvas-context.ts +19 -8
  216. package/src/adapter/webgl-device.ts +91 -35
  217. package/src/adapter/webgl-presentation-context.ts +93 -0
  218. package/src/constants/index.d.ts.map +1 -0
  219. package/src/constants/index.js.map +1 -0
  220. package/src/constants/index.ts +31 -0
  221. package/src/constants/webgl-constants.d.ts.map +1 -0
  222. package/src/constants/webgl-constants.js.map +1 -0
  223. package/src/constants/webgl-constants.ts +1051 -0
  224. package/src/constants/webgl-types.d.ts.map +1 -0
  225. package/src/constants/webgl-types.js.map +1 -0
  226. package/src/constants/webgl-types.ts +813 -0
  227. package/src/context/debug/spector.ts +4 -4
  228. package/src/context/debug/webgl-developer-tools.ts +16 -7
  229. package/src/context/helpers/create-browser-context.ts +54 -43
  230. package/src/context/helpers/webgl-context-data.ts +17 -11
  231. package/src/context/helpers/webgl-extensions.ts +1 -1
  232. package/src/context/parameters/unified-parameter-api.ts +3 -3
  233. package/src/context/parameters/webgl-parameter-tables.ts +1 -1
  234. package/src/context/polyfills/polyfill-webgl1-extensions.ts +1 -1
  235. package/src/context/state-tracker/webgl-state-tracker.ts +2 -2
  236. package/src/index.ts +27 -0
  237. package/src/utils/fill-array.ts +1 -1
  238. package/src/webgl-constants.d.ts.map +1 -0
  239. package/src/webgl-constants.js.map +1 -0
  240. package/src/webgl-constants.ts +5 -0
  241. package/src/webgl-types.d.ts.map +1 -0
  242. package/src/webgl-types.js.map +1 -0
  243. package/src/webgl-types.ts +29 -0
  244. package/dist/types.d.ts +0 -11
  245. package/dist/types.d.ts.map +0 -1
  246. package/dist/types.js.map +0 -1
  247. package/src/types.ts +0 -14
@@ -1,12 +1,14 @@
1
1
  // luma.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { Texture, log } from '@luma.gl/core';
5
- import { GL } from '@luma.gl/constants';
4
+ // @ts-nocheck
5
+ import { getTypedArrayConstructor, Texture, log } from '@luma.gl/core';
6
+ import { GL } from '@luma.gl/webgl/constants';
6
7
  import { getTextureFormatWebGL } from "../converters/webgl-texture-table.js";
7
8
  import { convertSamplerParametersToWebGL } from "../converters/sampler-parameters.js";
8
9
  import { withGLParameters } from "../../context/state-tracker/with-parameters.js";
9
10
  import { WEBGLTextureView } from "./webgl-texture-view.js";
11
+ import { convertGLDataTypeToDataType } from "../converters/shader-formats.js";
10
12
  /**
11
13
  * WebGL... the texture API from hell... hopefully made simpler
12
14
  */
@@ -39,8 +41,13 @@ export class WEBGLTexture extends Texture {
39
41
  // state
40
42
  /** Texture binding slot - TODO - move to texture view? */
41
43
  _textureUnit = 0;
44
+ /** Cached framebuffer reused for color texture readback. */
45
+ _framebuffer = null;
46
+ /** Cache key for the currently attached readback subresource `${mipLevel}:${layer}`. */
47
+ _framebufferAttachmentKey = null;
42
48
  constructor(device, props) {
43
- super(device, props);
49
+ // const byteAlignment = this._getRowByteAlignment(props.format, props.width);
50
+ super(device, props, { byteAlignment: 1 });
44
51
  this.device = device;
45
52
  this.gl = this.device.gl;
46
53
  const formatInfo = getTextureFormatWebGL(this.props.format);
@@ -60,21 +67,29 @@ export class WEBGLTexture extends Texture {
60
67
  */
61
68
  this.gl.bindTexture(this.glTarget, this.handle);
62
69
  const { dimension, width, height, depth, mipLevels, glTarget, glInternalFormat } = this;
63
- switch (dimension) {
64
- case '2d':
65
- case 'cube':
66
- this.gl.texStorage2D(glTarget, mipLevels, glInternalFormat, width, height);
67
- break;
68
- case '2d-array':
69
- case '3d':
70
- this.gl.texStorage3D(glTarget, mipLevels, glInternalFormat, width, height, depth);
71
- break;
72
- default:
73
- throw new Error(dimension);
70
+ if (!this.compressed) {
71
+ switch (dimension) {
72
+ case '2d':
73
+ case 'cube':
74
+ this.gl.texStorage2D(glTarget, mipLevels, glInternalFormat, width, height);
75
+ break;
76
+ case '2d-array':
77
+ case '3d':
78
+ this.gl.texStorage3D(glTarget, mipLevels, glInternalFormat, width, height, depth);
79
+ break;
80
+ default:
81
+ throw new Error(dimension);
82
+ }
74
83
  }
75
84
  this.gl.bindTexture(this.glTarget, null);
76
85
  // Set data
77
86
  this._initializeData(props.data);
87
+ if (!this.props.handle) {
88
+ this.trackAllocatedMemory(this.getAllocatedByteLength(), 'Texture');
89
+ }
90
+ else {
91
+ this.trackReferencedMemory(this.getAllocatedByteLength(), 'Texture');
92
+ }
78
93
  // Set texture sampler parameters
79
94
  this.setSampler(this.props.sampler);
80
95
  // @ts-ignore TODO - fix types
@@ -83,9 +98,18 @@ export class WEBGLTexture extends Texture {
83
98
  }
84
99
  destroy() {
85
100
  if (this.handle) {
86
- this.gl.deleteTexture(this.handle);
101
+ // Destroy any cached framebuffer
102
+ this._framebuffer?.destroy();
103
+ this._framebuffer = null;
104
+ this._framebufferAttachmentKey = null;
87
105
  this.removeStats();
88
- this.trackDeallocatedMemory('Texture');
106
+ if (!this.props.handle) {
107
+ this.gl.deleteTexture(this.handle);
108
+ this.trackDeallocatedMemory('Texture');
109
+ }
110
+ else {
111
+ this.trackDeallocatedReferencedMemory('Texture');
112
+ }
89
113
  // this.handle = null;
90
114
  this.destroyed = true;
91
115
  }
@@ -99,93 +123,281 @@ export class WEBGLTexture extends Texture {
99
123
  const parameters = convertSamplerParametersToWebGL(this.sampler.props);
100
124
  this._setSamplerParameters(parameters);
101
125
  }
126
+ copyExternalImage(options_) {
127
+ const options = this._normalizeCopyExternalImageOptions(options_);
128
+ if (options.sourceX || options.sourceY) {
129
+ // requires copyTexSubImage2D from a framebuffer'
130
+ throw new Error('WebGL does not support sourceX/sourceY)');
131
+ }
132
+ const { glFormat, glType } = this;
133
+ const { image, depth, mipLevel, x, y, z, width, height } = options;
134
+ // WebGL cube maps specify faces by overriding target instead of using the z parameter
135
+ const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, z);
136
+ const glParameters = options.flipY ? { [37440]: true } : {};
137
+ this.gl.bindTexture(this.glTarget, this.handle);
138
+ withGLParameters(this.gl, glParameters, () => {
139
+ switch (this.dimension) {
140
+ case '2d':
141
+ case 'cube':
142
+ // prettier-ignore
143
+ this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, image);
144
+ break;
145
+ case '2d-array':
146
+ case '3d':
147
+ // prettier-ignore
148
+ this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, image);
149
+ break;
150
+ default:
151
+ // Can never happen in WebGL
152
+ }
153
+ });
154
+ this.gl.bindTexture(this.glTarget, null);
155
+ return { width: options.width, height: options.height };
156
+ }
102
157
  copyImageData(options_) {
103
- const options = this._normalizeCopyImageDataOptions(options_);
104
- const typedArray = options.data;
105
- const { width, height, depth } = this;
106
- const { mipLevel = 0, byteOffset = 0, x = 0, y = 0, z = 0 } = options;
158
+ super.copyImageData(options_);
159
+ }
160
+ /**
161
+ * Reads a color texture subresource into a GPU buffer using `PIXEL_PACK_BUFFER`.
162
+ *
163
+ * @note Only first-pass color readback is supported. Unsupported formats and aspects throw
164
+ * before any WebGL calls are issued.
165
+ */
166
+ readBuffer(options = {}, buffer) {
167
+ if (!buffer) {
168
+ throw new Error(`${this} readBuffer requires a destination buffer`);
169
+ }
170
+ const normalizedOptions = this._getSupportedColorReadOptions(options);
171
+ const byteOffset = options.byteOffset ?? 0;
172
+ const memoryLayout = this.computeMemoryLayout(normalizedOptions);
173
+ if (buffer.byteLength < byteOffset + memoryLayout.byteLength) {
174
+ throw new Error(`${this} readBuffer target is too small (${buffer.byteLength} < ${byteOffset + memoryLayout.byteLength})`);
175
+ }
176
+ const webglBuffer = buffer;
177
+ this.gl.bindBuffer(35051, webglBuffer.handle);
178
+ try {
179
+ this._readColorTextureLayers(normalizedOptions, memoryLayout, destinationByteOffset => {
180
+ this.gl.readPixels(normalizedOptions.x, normalizedOptions.y, normalizedOptions.width, normalizedOptions.height, this.glFormat, this.glType, byteOffset + destinationByteOffset);
181
+ });
182
+ }
183
+ finally {
184
+ this.gl.bindBuffer(35051, null);
185
+ }
186
+ return buffer;
187
+ }
188
+ async readDataAsync(options = {}) {
189
+ throw new Error(`${this} readDataAsync is deprecated; use readBuffer() with an explicit destination buffer or DynamicTexture.readAsync()`);
190
+ }
191
+ writeBuffer(buffer, options_ = {}) {
192
+ const options = this._normalizeTextureWriteOptions(options_);
193
+ const { width, height, depthOrArrayLayers, mipLevel, byteOffset, x, y, z } = options;
194
+ const { glFormat, glType, compressed } = this;
195
+ const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, z);
196
+ if (compressed) {
197
+ throw new Error('writeBuffer for compressed textures is not implemented in WebGL');
198
+ }
199
+ const { bytesPerPixel } = this.device.getTextureFormatInfo(this.format);
200
+ const unpackRowLength = bytesPerPixel ? options.bytesPerRow / bytesPerPixel : undefined;
201
+ const glParameters = {
202
+ [3317]: this.byteAlignment,
203
+ ...(unpackRowLength !== undefined ? { [3314]: unpackRowLength } : {}),
204
+ [32878]: options.rowsPerImage
205
+ };
206
+ this.gl.bindTexture(this.glTarget, this.handle);
207
+ this.gl.bindBuffer(35052, buffer.handle);
208
+ withGLParameters(this.gl, glParameters, () => {
209
+ switch (this.dimension) {
210
+ case '2d':
211
+ case 'cube':
212
+ this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, byteOffset);
213
+ break;
214
+ case '2d-array':
215
+ case '3d':
216
+ this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, glType, byteOffset);
217
+ break;
218
+ default:
219
+ }
220
+ });
221
+ this.gl.bindBuffer(35052, null);
222
+ this.gl.bindTexture(this.glTarget, null);
223
+ }
224
+ writeData(data, options_ = {}) {
225
+ const options = this._normalizeTextureWriteOptions(options_);
226
+ const typedArray = ArrayBuffer.isView(data) ? data : new Uint8Array(data);
227
+ const { width, height, depthOrArrayLayers, mipLevel, x, y, z, byteOffset } = options;
107
228
  const { glFormat, glType, compressed } = this;
108
- // Target used for face updates, but not for binding
109
229
  const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, z);
110
230
  let unpackRowLength;
111
- if (!this.compressed) {
231
+ if (!compressed) {
112
232
  const { bytesPerPixel } = this.device.getTextureFormatInfo(this.format);
113
233
  if (bytesPerPixel) {
114
- if (options.bytesPerRow % bytesPerPixel !== 0) {
115
- throw new Error(`bytesPerRow (${options.bytesPerRow}) must be a multiple of bytesPerPixel (${bytesPerPixel}) for ${this.format}`);
116
- }
117
234
  unpackRowLength = options.bytesPerRow / bytesPerPixel;
118
235
  }
119
236
  }
120
237
  const glParameters = !this.compressed
121
238
  ? {
239
+ [3317]: this.byteAlignment,
122
240
  ...(unpackRowLength !== undefined ? { [3314]: unpackRowLength } : {}),
123
241
  [32878]: options.rowsPerImage
124
242
  }
125
243
  : {};
126
- this.gl.bindTexture(glTarget, this.handle);
244
+ const sourceElementOffset = getWebGLTextureSourceElementOffset(typedArray, byteOffset);
245
+ const compressedData = compressed ? getArrayBufferView(typedArray, byteOffset) : typedArray;
246
+ const mipLevelSize = this._getMipLevelSize(mipLevel);
247
+ const isFullMipUpload = x === 0 &&
248
+ y === 0 &&
249
+ z === 0 &&
250
+ width === mipLevelSize.width &&
251
+ height === mipLevelSize.height &&
252
+ depthOrArrayLayers === mipLevelSize.depthOrArrayLayers;
253
+ this.gl.bindTexture(this.glTarget, this.handle);
254
+ this.gl.bindBuffer(35052, null);
127
255
  withGLParameters(this.gl, glParameters, () => {
128
256
  switch (this.dimension) {
129
257
  case '2d':
130
258
  case 'cube':
131
259
  if (compressed) {
132
- // prettier-ignore
133
- this.gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, typedArray, byteOffset); // , byteLength
260
+ if (isFullMipUpload) {
261
+ // prettier-ignore
262
+ this.gl.compressedTexImage2D(glTarget, mipLevel, glFormat, width, height, 0, compressedData);
263
+ }
264
+ else {
265
+ // prettier-ignore
266
+ this.gl.compressedTexSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, compressedData);
267
+ }
134
268
  }
135
269
  else {
136
270
  // prettier-ignore
137
- this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray, byteOffset); // , byteLength
271
+ this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, typedArray, sourceElementOffset);
138
272
  }
139
273
  break;
140
274
  case '2d-array':
141
275
  case '3d':
142
276
  if (compressed) {
143
- // prettier-ignore
144
- this.gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, typedArray, byteOffset); // , byteLength
277
+ if (isFullMipUpload) {
278
+ // prettier-ignore
279
+ this.gl.compressedTexImage3D(glTarget, mipLevel, glFormat, width, height, depthOrArrayLayers, 0, compressedData);
280
+ }
281
+ else {
282
+ // prettier-ignore
283
+ this.gl.compressedTexSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, compressedData);
284
+ }
145
285
  }
146
286
  else {
147
287
  // prettier-ignore
148
- this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, typedArray, byteOffset); // , byteLength
288
+ this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depthOrArrayLayers, glFormat, glType, typedArray, sourceElementOffset);
149
289
  }
150
290
  break;
151
291
  default:
152
292
  // Can never happen in WebGL
153
293
  }
154
294
  });
155
- this.gl.bindTexture(glTarget, null);
295
+ this.gl.bindTexture(this.glTarget, null);
156
296
  }
157
- copyExternalImage(options_) {
158
- const options = this._normalizeCopyExternalImageOptions(options_);
159
- if (options.sourceX || options.sourceY) {
160
- // requires copyTexSubImage2D from a framebuffer'
161
- throw new Error('WebGL does not support sourceX/sourceY)');
162
- }
163
- const { glFormat, glType } = this;
164
- const { image, depth, mipLevel, x, y, z, width, height } = options;
165
- // WebGL cube maps specify faces by overriding target instead of using the depth parameter
166
- const glTarget = getWebGLCubeFaceTarget(this.glTarget, this.dimension, depth);
167
- const glParameters = options.flipY ? { [37440]: true } : {};
168
- this.gl.bindTexture(this.glTarget, this.handle);
169
- withGLParameters(this.gl, glParameters, () => {
170
- switch (this.dimension) {
171
- case '2d':
172
- case 'cube':
173
- // prettier-ignore
174
- this.gl.texSubImage2D(glTarget, mipLevel, x, y, width, height, glFormat, glType, image);
175
- break;
176
- case '2d-array':
177
- case '3d':
178
- // prettier-ignore
179
- this.gl.texSubImage3D(glTarget, mipLevel, x, y, z, width, height, depth, glFormat, glType, image);
180
- break;
181
- default:
182
- // Can never happen in WebGL
183
- }
297
+ // IMPLEMENTATION SPECIFIC
298
+ /** @todo - for now we always use 1 for maximum compatibility, we can fine tune later */
299
+ _getRowByteAlignment(format, width) {
300
+ // For best texture data read/write performance, calculate the biggest pack/unpack alignment
301
+ // that fits with the provided texture row byte length
302
+ // Note: Any RGBA or 32 bit type will be at least 4 bytes, which should result in good performance.
303
+ // const info = this.device.getTextureFormatInfo(format);
304
+ // const rowByteLength = width * info.bytesPerPixel;
305
+ // if (rowByteLength % 8 === 0) return 8;
306
+ // if (rowByteLength % 4 === 0) return 4;
307
+ // if (rowByteLength % 2 === 0) return 2;
308
+ return 1;
309
+ }
310
+ /**
311
+ * Wraps a given texture into a framebuffer object, that can be further used
312
+ * to read data from the texture object.
313
+ */
314
+ _getFramebuffer() {
315
+ this._framebuffer ||= this.device.createFramebuffer({
316
+ id: `framebuffer-for-${this.id}`,
317
+ width: this.width,
318
+ height: this.height,
319
+ colorAttachments: [this]
184
320
  });
185
- this.gl.bindTexture(this.glTarget, null);
186
- return { width: options.width, height: options.height };
321
+ return this._framebuffer;
187
322
  }
188
323
  // WEBGL SPECIFIC
324
+ readDataSyncWebGL(options_ = {}) {
325
+ const options = this._getSupportedColorReadOptions(options_);
326
+ const memoryLayout = this.computeMemoryLayout(options);
327
+ // const formatInfo = getTextureFormatInfo(format);
328
+ // Allocate pixel array if not already available, using supplied type
329
+ const shaderType = convertGLDataTypeToDataType(this.glType);
330
+ const ArrayType = getTypedArrayConstructor(shaderType);
331
+ const targetArray = new ArrayType(memoryLayout.byteLength / ArrayType.BYTES_PER_ELEMENT);
332
+ this._readColorTextureLayers(options, memoryLayout, destinationByteOffset => {
333
+ const layerView = new ArrayType(targetArray.buffer, targetArray.byteOffset + destinationByteOffset, memoryLayout.bytesPerImage / ArrayType.BYTES_PER_ELEMENT);
334
+ this.gl.readPixels(options.x, options.y, options.width, options.height, this.glFormat, this.glType, layerView);
335
+ });
336
+ return targetArray.buffer;
337
+ }
338
+ /**
339
+ * Iterates the requested mip/layer/slice range, reattaching the cached read framebuffer as
340
+ * needed before delegating the actual `readPixels()` call to the supplied callback.
341
+ */
342
+ _readColorTextureLayers(options, memoryLayout, readLayer) {
343
+ const framebuffer = this._getFramebuffer();
344
+ const packRowLength = memoryLayout.bytesPerRow / memoryLayout.bytesPerPixel;
345
+ const glParameters = {
346
+ [3333]: this.byteAlignment,
347
+ ...(packRowLength !== options.width ? { [3330]: packRowLength } : {})
348
+ };
349
+ // Note: luma.gl overrides bindFramebuffer so that we can reliably restore the previous framebuffer.
350
+ const prevReadBuffer = this.gl.getParameter(3074);
351
+ const prevHandle = this.gl.bindFramebuffer(36160, framebuffer.handle);
352
+ try {
353
+ this.gl.readBuffer(36064);
354
+ withGLParameters(this.gl, glParameters, () => {
355
+ for (let layerIndex = 0; layerIndex < options.depthOrArrayLayers; layerIndex++) {
356
+ this._attachReadSubresource(framebuffer, options.mipLevel, options.z + layerIndex);
357
+ readLayer(layerIndex * memoryLayout.bytesPerImage);
358
+ }
359
+ });
360
+ }
361
+ finally {
362
+ this.gl.bindFramebuffer(36160, prevHandle || null);
363
+ this.gl.readBuffer(prevReadBuffer);
364
+ }
365
+ }
366
+ /**
367
+ * Attaches a single color subresource to the cached read framebuffer.
368
+ *
369
+ * @note Repeated attachments of the same `(mipLevel, layer)` tuple are skipped.
370
+ */
371
+ _attachReadSubresource(framebuffer, mipLevel, layer) {
372
+ const attachmentKey = `${mipLevel}:${layer}`;
373
+ if (this._framebufferAttachmentKey === attachmentKey) {
374
+ return;
375
+ }
376
+ switch (this.dimension) {
377
+ case '2d':
378
+ this.gl.framebufferTexture2D(36160, 36064, 3553, this.handle, mipLevel);
379
+ break;
380
+ case 'cube':
381
+ this.gl.framebufferTexture2D(36160, 36064, getWebGLCubeFaceTarget(this.glTarget, this.dimension, layer), this.handle, mipLevel);
382
+ break;
383
+ case '2d-array':
384
+ case '3d':
385
+ this.gl.framebufferTextureLayer(36160, 36064, this.handle, mipLevel, layer);
386
+ break;
387
+ default:
388
+ throw new Error(`${this} color readback does not support ${this.dimension} textures`);
389
+ }
390
+ if (this.device.props.debug) {
391
+ const status = Number(this.gl.checkFramebufferStatus(36160));
392
+ if (status !== Number(36053)) {
393
+ throw new Error(`${framebuffer} incomplete for ${this} readback (${status})`);
394
+ }
395
+ }
396
+ this._framebufferAttachmentKey = attachmentKey;
397
+ }
398
+ /**
399
+ * @note - this is used by the DynamicTexture class to generate mipmaps on WebGL
400
+ */
189
401
  generateMipmapsWebGL(options) {
190
402
  const isFilterableAndRenderable = this.device.isTextureFormatRenderable(this.props.format) &&
191
403
  this.device.isTextureFormatFilterable(this.props.format);
@@ -269,6 +481,18 @@ export class WEBGLTexture extends Texture {
269
481
  return _textureUnit;
270
482
  }
271
483
  }
484
+ function getArrayBufferView(typedArray, byteOffset = 0) {
485
+ if (!byteOffset) {
486
+ return typedArray;
487
+ }
488
+ return new typedArray.constructor(typedArray.buffer, typedArray.byteOffset + byteOffset, (typedArray.byteLength - byteOffset) / typedArray.BYTES_PER_ELEMENT);
489
+ }
490
+ function getWebGLTextureSourceElementOffset(typedArray, byteOffset) {
491
+ if (byteOffset % typedArray.BYTES_PER_ELEMENT !== 0) {
492
+ throw new Error(`Texture byteOffset ${byteOffset} must align to typed array element size ${typedArray.BYTES_PER_ELEMENT}`);
493
+ }
494
+ return byteOffset / typedArray.BYTES_PER_ELEMENT;
495
+ }
272
496
  // INTERNAL HELPERS
273
497
  /** Convert a WebGPU style texture constant to a WebGL style texture constant */
274
498
  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":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,cAAc;AAEd,OAAO,EAWL,wBAAwB,EACxB,OAAO,EACP,GAAG,EACJ,MAAM,eAAe,CAAC;AAEvB,OAAO,EAGL,EAAE,EAKH,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAC,qBAAqB,EAAC,6CAA0C;AACxE,OAAO,EAAC,+BAA+B,EAAC,4CAAyC;AACjF,OAAO,EAAC,gBAAgB,EAAC,uDAAoD;AAK7E,OAAO,EAAC,gBAAgB,EAAC,gCAA6B;AACtD,OAAO,EAAC,2BAA2B,EAAC,wCAAqC;AAEzE;;GAEG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,mCAAmC;IAC1B,MAAM,CAAc;IACpB,EAAE,CAAyB;IACpC,MAAM,CAAe;IAErB,qEAAqE;IACrE,OAAO,GAAiB,SAAS,CAAC;IAClC,IAAI,CAAmB;IAEvB;;;;;;;;OAQG;IACH,QAAQ,CAAkB;IAC1B,uDAAuD;IACvD,QAAQ,CAAoB;IAC5B,uDAAuD;IACvD,MAAM,CAAc;IACpB,8EAA8E;IAC9E,gBAAgB,CAAK;IACrB,gDAAgD;IAChD,UAAU,CAAU;IAEpB,QAAQ;IACR,0DAA0D;IAC1D,YAAY,GAAW,CAAC,CAAC;IACzB,4DAA4D;IAC5D,YAAY,GAA4B,IAAI,CAAC;IAC7C,wFAAwF;IACxF,yBAAyB,GAAkB,IAAI,CAAC;IAEhD,YAAY,MAAc,EAAE,KAAmB;QAC7C,8EAA8E;QAC9E,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAC,aAAa,EAAE,CAAC,EAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,MAAM,GAAG,MAAqB,CAAC;QACpC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAEzB,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE5D,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,cAAc,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QAExC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAC3D,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC;QAE7E;;;;;WAKG;QACH,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAC,GAAG,IAAI,CAAC;QACtF,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,QAAQ,SAAS,EAAE,CAAC;gBAClB,KAAK,IAAI,CAAC;gBACV,KAAK,MAAM;oBACT,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC3E,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,IAAI;oBACP,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAClF,MAAM;gBACR;oBACE,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzC,WAAW;QACX,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,SAAS,CAAC,CAAC;QACvE,CAAC;QAED,iCAAiC;QACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,8BAA8B;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAE9E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAEQ,OAAO;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,iCAAiC;YACjC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YAEtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnC,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;YACD,sBAAsB;YACtB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,KAAuB;QAChC,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAC,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IACtE,CAAC;IAEQ,UAAU,CAAC,UAAkC,EAAE;QACtD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1B,sCAAsC;QACtC,MAAM,UAAU,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,iBAAiB,CAAC,QAAkC;QAClD,MAAM,OAAO,GAAG,IAAI,CAAC,kCAAkC,CAAC,QAAQ,CAAC,CAAC;QAElE,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,iDAAiD;YACjD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAC,GAAG,IAAI,CAAC;QAChC,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC;QAEjE,sFAAsF;QACtF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,YAAY,GAAsB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,OAAwB,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9F,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhD,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YAC3C,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC;gBACV,KAAK,MAAM;oBACT,kBAAkB;oBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBACxF,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,IAAI;oBACP,kBAAkB;oBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;oBAClG,MAAM;gBACR,QAAQ;gBACR,4BAA4B;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAC,CAAC;IACxD,CAAC;IAEQ,aAAa,CAAC,QAAQ;QAC7B,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,UAAsD,EAAE,EAAE,MAAe;QAClF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,2CAA2C,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAEjE,IAAI,MAAM,CAAC,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC,UAAU,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,oCAAoC,MAAM,CAAC,UAAU,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,GAAG,CAC1G,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAqB,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,QAAuB,WAAW,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE;gBACpF,IAAI,CAAC,EAAE,CAAC,UAAU,CAChB,iBAAiB,CAAC,CAAC,EACnB,iBAAiB,CAAC,CAAC,EACnB,iBAAiB,CAAC,KAAK,EACvB,iBAAiB,CAAC,MAAM,EACxB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,UAAU,GAAG,qBAAqB,CACnC,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,EAAE,CAAC,UAAU,QAAuB,IAAI,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAA8B,EAAE;QAClD,MAAM,IAAI,KAAK,CACb,GAAG,IAAI,kHAAkH,CAC1H,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,MAAc,EAAE,WAAgC,EAAE;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,GAAG,OAAO,CAAC;QACnF,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE1E,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,MAAM,YAAY,GAAsB;YACtC,MAAqB,EAAE,IAAI,CAAC,aAAa;YACzC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,MAAsB,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,OAAwB,EAAE,OAAO,CAAC,YAAY;SAC/C,CAAC;QAEF,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,QAAyB,MAAM,CAAC,MAAM,CAAC,CAAC;QAE1D,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YAC3C,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC;gBACV,KAAK,MAAM;oBACT,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,QAAQ,EACR,QAAQ,EACR,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,CACX,CAAC;oBACF,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,IAAI;oBACP,IAAI,CAAC,EAAE,CAAC,aAAa,CACnB,QAAQ,EACR,QAAQ,EACR,CAAC,EACD,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,MAAM,EACN,UAAU,CACX,CAAC;oBACF,MAAM;gBACR,QAAQ;YACV,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,UAAU,QAAyB,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CACP,IAAuD,EACvD,WAAgC,EAAE;QAElC,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAE7D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1E,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAC,GAAG,OAAO,CAAC;QACnF,MAAM,EAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAC,GAAG,IAAI,CAAC;QAC5C,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAE1E,IAAI,eAAmC,CAAC;QACxC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,EAAC,aAAa,EAAC,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,IAAI,aAAa,EAAE,CAAC;gBAClB,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC;YACxD,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAsB,CAAC,IAAI,CAAC,UAAU;YACtD,CAAC,CAAC;gBACE,MAAqB,EAAE,IAAI,CAAC,aAAa;gBACzC,GAAG,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,MAAsB,EAAE,eAAe,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,OAAwB,EAAE,OAAO,CAAC,YAAY;aAC/C;YACH,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,mBAAmB,GAAG,kCAAkC,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACvF,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,eAAe,GACnB,CAAC,KAAK,CAAC;YACP,CAAC,KAAK,CAAC;YACP,CAAC,KAAK,CAAC;YACP,KAAK,KAAK,YAAY,CAAC,KAAK;YAC5B,MAAM,KAAK,YAAY,CAAC,MAAM;YAC9B,kBAAkB,KAAK,YAAY,CAAC,kBAAkB,CAAC;QAEzD,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,QAAyB,IAAI,CAAC,CAAC;QAEjD,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;YAC3C,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC;gBACV,KAAK,MAAM;oBACT,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,eAAe,EAAE,CAAC;4BACpB,kBAAkB;4BAClB,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;wBAC/F,CAAC;6BAAM,CAAC;4BACN,kBAAkB;4BAClB,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;wBACrG,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,kBAAkB;wBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;oBACpH,CAAC;oBACD,MAAM;gBACR,KAAK,UAAU,CAAC;gBAChB,KAAK,IAAI;oBACP,IAAI,UAAU,EAAE,CAAC;wBACf,IAAI,eAAe,EAAE,CAAC;4BACpB,kBAAkB;4BAClB,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAC1B,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,CAAC,EACD,cAAc,CACf,CAAC;wBACJ,CAAC;6BAAM,CAAC;4BACN,kBAAkB;4BAClB,IAAI,CAAC,EAAE,CAAC,uBAAuB,CAC7B,QAAQ,EACR,QAAQ,EACR,CAAC,EACD,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,kBAAkB,EAClB,QAAQ,EACR,cAAc,CACf,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,kBAAkB;wBAClB,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,mBAAmB,CAAC,CAAC;oBAC3I,CAAC;oBACD,MAAM;gBACR,QAAQ;gBACR,4BAA4B;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,0BAA0B;IAE1B,wFAAwF;IAChF,oBAAoB,CAAC,MAAqB,EAAE,KAAa;QAC/D,4FAA4F;QAC5F,sDAAsD;QACtD,mGAAmG;QACnG,yDAAyD;QACzD,oDAAoD;QACpD,yCAAyC;QACzC,yCAAyC;QACzC,yCAAyC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAClD,EAAE,EAAE,mBAAmB,IAAI,CAAC,EAAE,EAAE;YAChC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,gBAAgB,EAAE,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,iBAAiB;IAER,iBAAiB,CAAC,WAA+B,EAAE;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAEvD,mDAAmD;QACnD,qEAAqE;QACrE,MAAM,UAAU,GAAG,2BAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,MAAM,SAAS,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,UAAU,GAAG,SAAS,CAAC,iBAAiB,CAOxE,CAAC;QAEhB,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,qBAAqB,CAAC,EAAE;YAC1E,MAAM,SAAS,GAAG,IAAI,SAAS,CAC7B,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,UAAU,GAAG,qBAAqB,EAC9C,YAAY,CAAC,aAAa,GAAG,SAAS,CAAC,iBAAiB,CACzD,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,UAAU,CAChB,OAAO,CAAC,CAAC,EACT,OAAO,CAAC,CAAC,EACT,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,MAAM,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,EACX,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,WAAW,CAAC,MAAqB,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACK,uBAAuB,CAC7B,OAAqC,EACrC,YAAwD,EACxD,SAAkD;QAElD,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,GAAG,YAAY,CAAC,aAAa,CAAC;QAC5E,MAAM,YAAY,GAAsB;YACtC,MAAmB,EAAE,IAAI,CAAC,aAAa;YACvC,GAAG,CAAC,aAAa,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,MAAoB,EAAE,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;QAEF,oGAAoG;QACpG,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,MAAsB,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,QAExC,WAAW,CAAC,MAAM,CACmB,CAAC;QAExC,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,OAAsB,CAAC;YACzC,gBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE;gBAC3C,KAAK,IAAI,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,kBAAkB,EAAE,UAAU,EAAE,EAAE,CAAC;oBAC/E,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;oBACnF,SAAS,CAAC,UAAU,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,EAAE,CAAC,eAAe,QAAiB,UAAU,IAAI,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAC5B,WAA6B,EAC7B,QAAgB,EAChB,KAAa;QAEb,MAAM,aAAa,GAAG,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7C,IAAI,IAAI,CAAC,yBAAyB,KAAK,aAAa,EAAE,CAAC;YACrD,OAAO;QACT,CAAC;QAED,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YACvB,KAAK,IAAI;gBACP,IAAI,CAAC,EAAE,CAAC,oBAAoB,qBAI1B,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC;gBACF,MAAM;YAER,KAAK,MAAM;gBACT,IAAI,CAAC,EAAE,CAAC,oBAAoB,eAG1B,sBAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAC5D,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC;gBACF,MAAM;YAER,KAAK,UAAU,CAAC;YAChB,KAAK,IAAI;gBACP,IAAI,CAAC,EAAE,CAAC,uBAAuB,eAG7B,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,KAAK,CACN,CAAC;gBACF,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,oCAAoC,IAAI,CAAC,SAAS,WAAW,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,sBAAsB,OAAgB,CAAC,CAAC;YACtE,IAAI,MAAM,KAAK,MAAM,OAAyB,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,mBAAmB,IAAI,cAAc,MAAM,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QAED,IAAI,CAAC,yBAAyB,GAAG,aAAa,CAAC;IACjD,CAAC;IAED;;OAEG;IACM,oBAAoB,CAAC,OAA2B;QACvD,MAAM,yBAAyB,GAC7B,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,uEAAuE,CAAC,EAAE,CAAC;YAC3F,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,+BAA+B,IAAI,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACjF,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,WAAW;IAEX;;OAEG;IACH,qBAAqB,CAAC,UAA+B;QACnD,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAEjF,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEhD,KAAK,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAA8B,CAAC;YACzD,MAAM,KAAK,GAAG,MAAM,CAAC;YAErB,2GAA2G;YAC3G,uEAAuE;YACvE,QAAQ,KAAK,EAAE,CAAC;gBACd,WAAwB;gBACxB;oBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAM;gBAER,WAA2B;gBAC3B;oBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAM;gBAER,WAAuB;gBACvB,WAAuB;gBACvB;oBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAM;gBAER;oBACE,2CAA2C;oBAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,sCAAsC,CAAC,EAAE,CAAC;wBACrE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACrD,CAAC;oBACD,MAAM;gBAER,WAA6B;gBAC7B;oBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACnD,MAAM;YACV,CAAC;QACH,CAAC;QAED,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,OAAmB,QAAc,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,YAAqB;QACzB,MAAM,EAAC,EAAE,EAAC,GAAG,IAAI,CAAC;QAElB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,EAAE,CAAC,aAAa,CAAC,QAAc,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,4BAA4B;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,OAAO,CAAC,YAAqB;QAC3B,MAAM,EAAC,EAAE,EAAC,GAAG,IAAI,CAAC;QAElB,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;YACjC,EAAE,CAAC,aAAa,CAAC,QAAc,YAAY,CAAC,CAAC;QAC/C,CAAC;QAED,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,OAAO,YAAY,CAAC;IACtB,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,UAA2B,EAAE,UAAU,GAAG,CAAC;IACrE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,UAAU,CAAC,WAAW,CAC/B,UAAU,CAAC,MAAM,EACjB,UAAU,CAAC,UAAU,GAAG,UAAU,EAClC,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,UAAU,CAAC,iBAAiB,CACjD,CAAC;AACvB,CAAC;AAED,SAAS,kCAAkC,CACzC,UAA2B,EAC3B,UAAkB;IAElB,IAAI,UAAU,GAAG,UAAU,CAAC,iBAAiB,KAAK,CAAC,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,sBAAsB,UAAU,2CAA2C,UAAU,CAAC,iBAAiB,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC;AACnD,CAAC;AAED,mBAAmB;AAEnB,gFAAgF;AAChF,MAAM,UAAU,qBAAqB,CACnC,SAAkE;IAElE,kBAAkB;IAClB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,qCAAqC;QACvD,KAAK,IAAI,CAAC,CAAC,YAAqB,CAAC,sBAAsB;QACvD,KAAK,IAAI,CAAC,CAAC,aAAqB,CAAC,sBAAsB;QACvD,KAAK,MAAM,CAAC,CAAC,aAA2B,CAAC,sBAAsB;QAC/D,KAAK,UAAU,CAAC,CAAC,aAA2B,CAAC,sBAAsB;QACnE,KAAK,YAAY,CAAC,CAAC,MAAM,CAAC,qCAAqC;IACjE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,SAAkE,EAClE,KAAa;IAEb,OAAO,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,QAAiC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { log, TransformFeedback } from '@luma.gl/core';
2
- import { GL } from '@luma.gl/constants';
2
+ import { GL } from '@luma.gl/webgl/constants';
3
3
  import { WEBGLBuffer } from "../../index.js";
4
4
  import { getGLPrimitive } from "../helpers/webgl-topology-utils.js";
5
5
  export class WEBGLTransformFeedback extends TransformFeedback {
@@ -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,7 +1,7 @@
1
1
  import type { TypedArray } from '@math.gl/types';
2
2
  import type { Device, Buffer, VertexArrayProps } from '@luma.gl/core';
3
3
  import { VertexArray } from '@luma.gl/core';
4
- import { GL } from '@luma.gl/constants';
4
+ import { GL } from '@luma.gl/webgl/constants';
5
5
  import { WebGLDevice } from "../webgl-device.js";
6
6
  /** VertexArrayObject wrapper */
7
7
  export declare class WEBGLVertexArray extends VertexArray {
@@ -41,7 +41,7 @@ export declare class WEBGLVertexArray extends VertexArray {
41
41
  */
42
42
  /** Get an accessor from the */
43
43
  protected _getAccessor(location: number): {
44
- size: 4 | 2 | 1 | 3;
44
+ size: 1 | 2 | 3 | 4;
45
45
  type: GL.BYTE | GL.UNSIGNED_BYTE | GL.SHORT | GL.UNSIGNED_SHORT | GL.INT | GL.UNSIGNED_INT | GL.FLOAT | GL.HALF_FLOAT;
46
46
  stride: number;
47
47
  offset: number;
@@ -1 +1 @@
1
- {"version":3,"file":"webgl-vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,WAAW,EAAkB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAC,MAAM,oBAAoB,CAAC;AAGtC,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAM5C,gCAAgC;AAChC,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA2B;IAE9C,6EAA6E;IAC7E,MAAM,CAAC,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;gBAKpD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB;IAM/C,OAAO,IAAI,IAAI;IAexB;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBhD,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAmC1D,2FAA2F;IAClF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK3D,gBAAgB,IAAI,IAAI;IAKxB,iBAAiB,IAAI,IAAI;IAOlC;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAU1C;;;OAGG;IAcH,gCAAgC;IAChC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;IAsBvC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;IAiBxD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;CA+BnE"}
1
+ {"version":3,"file":"webgl-vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACpE,OAAO,EAAC,WAAW,EAAkB,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAC,EAAE,EAAC,MAAM,0BAA0B,CAAC;AAG5C,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAM5C,gCAAgC;AAChC,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,WAAW,CAA2B;IAE9C,6EAA6E;IAC7E,MAAM,CAAC,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;gBAKpD,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB;IAM/C,OAAO,IAAI,IAAI;IAexB;;;;;OAKG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAgBhD,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAmC1D,2FAA2F;IAClF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAK3D,gBAAgB,IAAI,IAAI;IAKxB,iBAAiB,IAAI,IAAI;IAOlC;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,IAAI;IAU1C;;;OAGG;IAcH,gCAAgC;IAChC,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;IAsBvC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,UAAO,GAAG,IAAI;IAiBxD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;CA+BnE"}
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { VertexArray, getScratchArray } from '@luma.gl/core';
5
- import { GL } from '@luma.gl/constants';
5
+ import { GL } from '@luma.gl/webgl/constants';
6
6
  import { getBrowser } from '@probe.gl/env';
7
7
  import { getGLFromVertexType } from "../converters/webgl-vertex-formats.js";
8
8
  import { fillArray } from "../../utils/fill-array.js";