@luma.gl/core 9.1.9 → 9.2.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/dist/adapter/adapter.d.ts +14 -1
  2. package/dist/adapter/adapter.d.ts.map +1 -1
  3. package/dist/adapter/adapter.js +27 -0
  4. package/dist/adapter/adapter.js.map +1 -1
  5. package/dist/adapter/canvas-context.d.ts +101 -48
  6. package/dist/adapter/canvas-context.d.ts.map +1 -1
  7. package/dist/adapter/canvas-context.js +255 -153
  8. package/dist/adapter/canvas-context.js.map +1 -1
  9. package/dist/adapter/device.d.ts +112 -42
  10. package/dist/adapter/device.d.ts.map +1 -1
  11. package/dist/adapter/device.js +153 -56
  12. package/dist/adapter/device.js.map +1 -1
  13. package/dist/adapter/luma.d.ts +24 -22
  14. package/dist/adapter/luma.d.ts.map +1 -1
  15. package/dist/adapter/luma.js +76 -92
  16. package/dist/adapter/luma.js.map +1 -1
  17. package/dist/adapter/resources/buffer.d.ts +18 -12
  18. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  19. package/dist/adapter/resources/buffer.js +14 -18
  20. package/dist/adapter/resources/buffer.js.map +1 -1
  21. package/dist/adapter/resources/command-buffer.d.ts +1 -1
  22. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  23. package/dist/adapter/resources/command-buffer.js +3 -3
  24. package/dist/adapter/resources/command-buffer.js.map +1 -1
  25. package/dist/adapter/resources/command-encoder.d.ts +9 -2
  26. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  27. package/dist/adapter/resources/command-encoder.js +7 -4
  28. package/dist/adapter/resources/command-encoder.js.map +1 -1
  29. package/dist/adapter/resources/compute-pass.d.ts +2 -2
  30. package/dist/adapter/resources/compute-pass.d.ts.map +1 -1
  31. package/dist/adapter/resources/compute-pass.js +3 -3
  32. package/dist/adapter/resources/compute-pass.js.map +1 -1
  33. package/dist/adapter/resources/compute-pipeline.d.ts +1 -1
  34. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  35. package/dist/adapter/resources/compute-pipeline.js +7 -7
  36. package/dist/adapter/resources/compute-pipeline.js.map +1 -1
  37. package/dist/adapter/resources/external-texture.d.ts +1 -1
  38. package/dist/adapter/resources/external-texture.d.ts.map +1 -1
  39. package/dist/adapter/resources/external-texture.js +5 -5
  40. package/dist/adapter/resources/external-texture.js.map +1 -1
  41. package/dist/adapter/resources/framebuffer.d.ts +4 -4
  42. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  43. package/dist/adapter/resources/framebuffer.js +8 -9
  44. package/dist/adapter/resources/framebuffer.js.map +1 -1
  45. package/dist/adapter/resources/pipeline-layout.d.ts.map +1 -1
  46. package/dist/adapter/resources/pipeline-layout.js +3 -0
  47. package/dist/adapter/resources/pipeline-layout.js.map +1 -1
  48. package/dist/adapter/resources/query-set.d.ts +1 -1
  49. package/dist/adapter/resources/query-set.d.ts.map +1 -1
  50. package/dist/adapter/resources/query-set.js +5 -5
  51. package/dist/adapter/resources/query-set.js.map +1 -1
  52. package/dist/adapter/resources/render-pass.d.ts +2 -2
  53. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  54. package/dist/adapter/resources/render-pass.js +10 -13
  55. package/dist/adapter/resources/render-pass.js.map +1 -1
  56. package/dist/adapter/resources/render-pipeline.d.ts +7 -9
  57. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  58. package/dist/adapter/resources/render-pipeline.js +17 -29
  59. package/dist/adapter/resources/render-pipeline.js.map +1 -1
  60. package/dist/adapter/resources/resource.d.ts +1 -0
  61. package/dist/adapter/resources/resource.d.ts.map +1 -1
  62. package/dist/adapter/resources/resource.js.map +1 -1
  63. package/dist/adapter/resources/sampler.d.ts.map +1 -1
  64. package/dist/adapter/resources/sampler.js +1 -3
  65. package/dist/adapter/resources/sampler.js.map +1 -1
  66. package/dist/adapter/resources/shader.d.ts +2 -2
  67. package/dist/adapter/resources/shader.d.ts.map +1 -1
  68. package/dist/adapter/resources/shader.js +14 -14
  69. package/dist/adapter/resources/shader.js.map +1 -1
  70. package/dist/adapter/resources/texture-view.d.ts +2 -2
  71. package/dist/adapter/resources/texture-view.d.ts.map +1 -1
  72. package/dist/adapter/resources/texture-view.js +7 -7
  73. package/dist/adapter/resources/texture-view.js.map +1 -1
  74. package/dist/adapter/resources/texture.d.ts +84 -135
  75. package/dist/adapter/resources/texture.d.ts.map +1 -1
  76. package/dist/adapter/resources/texture.js +136 -152
  77. package/dist/adapter/resources/texture.js.map +1 -1
  78. package/dist/adapter/resources/vertex-array.d.ts +4 -2
  79. package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
  80. package/dist/adapter/resources/vertex-array.js +4 -7
  81. package/dist/adapter/resources/vertex-array.js.map +1 -1
  82. package/dist/adapter/types/attachments.d.ts +3 -3
  83. package/dist/adapter/types/attachments.d.ts.map +1 -1
  84. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  85. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  86. package/dist/adapter/types/parameters.d.ts +7 -3
  87. package/dist/adapter/types/parameters.d.ts.map +1 -1
  88. package/dist/adapter/types/parameters.js.map +1 -1
  89. package/dist/adapter/types/shader-layout.d.ts +5 -5
  90. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  91. package/dist/adapter-utils/format-compiler-log.d.ts.map +1 -1
  92. package/dist/adapter-utils/format-compiler-log.js +8 -0
  93. package/dist/adapter-utils/format-compiler-log.js.map +1 -1
  94. package/dist/adapter-utils/get-attribute-from-layouts.d.ts +6 -5
  95. package/dist/adapter-utils/get-attribute-from-layouts.d.ts.map +1 -1
  96. package/dist/adapter-utils/get-attribute-from-layouts.js +8 -7
  97. package/dist/adapter-utils/get-attribute-from-layouts.js.map +1 -1
  98. package/dist/dist.dev.js +1162 -851
  99. package/dist/dist.min.js +7 -6
  100. package/dist/image-utils/image-types.d.ts +19 -0
  101. package/dist/image-utils/image-types.d.ts.map +1 -0
  102. package/dist/image-utils/image-types.js +34 -0
  103. package/dist/image-utils/image-types.js.map +1 -0
  104. package/dist/index.cjs +1129 -819
  105. package/dist/index.cjs.map +4 -4
  106. package/dist/index.d.ts +17 -26
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +7 -12
  109. package/dist/index.js.map +1 -1
  110. package/dist/portable/uniform-block.d.ts +2 -2
  111. package/dist/portable/uniform-block.d.ts.map +1 -1
  112. package/dist/portable/uniform-buffer-layout.d.ts +4 -3
  113. package/dist/portable/uniform-buffer-layout.d.ts.map +1 -1
  114. package/dist/portable/uniform-buffer-layout.js +3 -2
  115. package/dist/portable/uniform-buffer-layout.js.map +1 -1
  116. package/dist/portable/uniform-store.d.ts +2 -2
  117. package/dist/portable/uniform-store.d.ts.map +1 -1
  118. package/dist/shadertypes/data-types/data-types.d.ts +32 -0
  119. package/dist/shadertypes/data-types/data-types.d.ts.map +1 -0
  120. package/dist/{gpu-type-utils/texture-formats.js → shadertypes/data-types/data-types.js} +1 -1
  121. package/dist/shadertypes/data-types/data-types.js.map +1 -0
  122. package/dist/shadertypes/data-types/decode-data-types.d.ts +16 -0
  123. package/dist/shadertypes/data-types/decode-data-types.d.ts.map +1 -0
  124. package/dist/shadertypes/data-types/decode-data-types.js +74 -0
  125. package/dist/shadertypes/data-types/decode-data-types.js.map +1 -0
  126. package/dist/shadertypes/data-types/decode-shader-types.d.ts +17 -0
  127. package/dist/shadertypes/data-types/decode-shader-types.d.ts.map +1 -0
  128. package/dist/shadertypes/data-types/decode-shader-types.js +171 -0
  129. package/dist/shadertypes/data-types/decode-shader-types.js.map +1 -0
  130. package/dist/shadertypes/data-types/shader-types.d.ts +45 -0
  131. package/dist/shadertypes/data-types/shader-types.d.ts.map +1 -0
  132. package/dist/shadertypes/data-types/shader-types.js.map +1 -0
  133. package/dist/shadertypes/textures/pixel-utils.d.ts +112 -0
  134. package/dist/shadertypes/textures/pixel-utils.d.ts.map +1 -0
  135. package/dist/shadertypes/textures/pixel-utils.js +193 -0
  136. package/dist/shadertypes/textures/pixel-utils.js.map +1 -0
  137. package/dist/shadertypes/textures/texture-format-decoder.d.ts +18 -0
  138. package/dist/shadertypes/textures/texture-format-decoder.d.ts.map +1 -0
  139. package/dist/{gpu-type-utils/decode-texture-format.js → shadertypes/textures/texture-format-decoder.js} +52 -13
  140. package/dist/shadertypes/textures/texture-format-decoder.js.map +1 -0
  141. package/dist/shadertypes/textures/texture-format-generics.d.ts +33 -0
  142. package/dist/shadertypes/textures/texture-format-generics.d.ts.map +1 -0
  143. package/dist/{gpu-type-utils/texture-features.js → shadertypes/textures/texture-format-generics.js} +1 -1
  144. package/dist/shadertypes/textures/texture-format-generics.js.map +1 -0
  145. package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.d.ts +2 -3
  146. package/dist/shadertypes/textures/texture-format-table.d.ts.map +1 -0
  147. package/dist/{gpu-type-utils → shadertypes/textures}/texture-format-table.js +42 -43
  148. package/dist/shadertypes/textures/texture-format-table.js.map +1 -0
  149. package/dist/shadertypes/textures/texture-formats.d.ts +90 -0
  150. package/dist/shadertypes/textures/texture-formats.d.ts.map +1 -0
  151. package/dist/shadertypes/textures/texture-formats.js +58 -0
  152. package/dist/shadertypes/textures/texture-formats.js.map +1 -0
  153. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts +18 -0
  154. package/dist/shadertypes/vertex-arrays/decode-vertex-format.d.ts.map +1 -0
  155. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js +100 -0
  156. package/dist/shadertypes/vertex-arrays/decode-vertex-format.js.map +1 -0
  157. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts +27 -0
  158. package/dist/shadertypes/vertex-arrays/vertex-formats.d.ts.map +1 -0
  159. package/dist/shadertypes/vertex-arrays/vertex-formats.js.map +1 -0
  160. package/dist/types.d.ts +4 -2
  161. package/dist/types.d.ts.map +1 -1
  162. package/dist/utils/promise-utils.d.ts +6 -0
  163. package/dist/utils/promise-utils.d.ts.map +1 -0
  164. package/dist/utils/promise-utils.js +15 -0
  165. package/dist/utils/promise-utils.js.map +1 -0
  166. package/package.json +2 -2
  167. package/src/adapter/adapter.ts +36 -1
  168. package/src/adapter/canvas-context.ts +321 -198
  169. package/src/adapter/device.ts +261 -110
  170. package/src/adapter/luma.ts +97 -113
  171. package/src/adapter/resources/buffer.ts +45 -28
  172. package/src/adapter/resources/command-buffer.ts +4 -4
  173. package/src/adapter/resources/command-encoder.ts +15 -6
  174. package/src/adapter/resources/compute-pass.ts +11 -11
  175. package/src/adapter/resources/compute-pipeline.ts +8 -8
  176. package/src/adapter/resources/external-texture.ts +6 -6
  177. package/src/adapter/resources/framebuffer.ts +14 -15
  178. package/src/adapter/resources/pipeline-layout.ts +4 -0
  179. package/src/adapter/resources/query-set.ts +6 -6
  180. package/src/adapter/resources/render-pass.ts +20 -23
  181. package/src/adapter/resources/render-pipeline.ts +36 -42
  182. package/src/adapter/resources/resource.ts +1 -0
  183. package/src/adapter/resources/sampler.ts +1 -4
  184. package/src/adapter/resources/shader.ts +15 -15
  185. package/src/adapter/resources/texture-view.ts +12 -12
  186. package/src/adapter/resources/texture.ts +206 -300
  187. package/src/adapter/resources/vertex-array.ts +9 -10
  188. package/src/adapter/types/attachments.ts +5 -5
  189. package/src/adapter/types/buffer-layout.ts +1 -1
  190. package/src/adapter/types/parameters.ts +16 -11
  191. package/src/adapter/types/shader-layout.ts +8 -5
  192. package/src/adapter-utils/format-compiler-log.ts +8 -0
  193. package/src/adapter-utils/get-attribute-from-layouts.ts +17 -12
  194. package/src/image-utils/image-types.ts +59 -0
  195. package/src/index.ts +67 -47
  196. package/src/portable/uniform-block.ts +2 -2
  197. package/src/portable/uniform-buffer-layout.ts +7 -5
  198. package/src/portable/uniform-store.ts +2 -2
  199. package/src/shadertypes/data-types/data-types.ts +96 -0
  200. package/src/shadertypes/data-types/decode-data-types.ts +91 -0
  201. package/src/shadertypes/data-types/decode-shader-types.ts +211 -0
  202. package/src/shadertypes/data-types/shader-types.ts +87 -0
  203. package/src/shadertypes/textures/pixel-utils.ts +239 -0
  204. package/src/{gpu-type-utils/decode-texture-format.ts → shadertypes/textures/texture-format-decoder.ts} +71 -20
  205. package/src/shadertypes/textures/texture-format-generics.ts +190 -0
  206. package/src/{gpu-type-utils → shadertypes/textures}/texture-format-table.ts +63 -56
  207. package/src/shadertypes/textures/texture-formats.ts +334 -0
  208. package/src/shadertypes/vertex-arrays/decode-vertex-format.ts +124 -0
  209. package/src/shadertypes/vertex-arrays/vertex-formats.ts +91 -0
  210. package/src/types.ts +12 -5
  211. package/src/utils/promise-utils.ts +19 -0
  212. package/dist/adapter-utils/buffer-layout-helper.d.ts +0 -12
  213. package/dist/adapter-utils/buffer-layout-helper.d.ts.map +0 -1
  214. package/dist/adapter-utils/buffer-layout-helper.js +0 -41
  215. package/dist/adapter-utils/buffer-layout-helper.js.map +0 -1
  216. package/dist/adapter-utils/buffer-layout-order.d.ts +0 -4
  217. package/dist/adapter-utils/buffer-layout-order.d.ts.map +0 -1
  218. package/dist/adapter-utils/buffer-layout-order.js +0 -16
  219. package/dist/adapter-utils/buffer-layout-order.js.map +0 -1
  220. package/dist/gpu-type-utils/decode-attribute-type.d.ts +0 -20
  221. package/dist/gpu-type-utils/decode-attribute-type.d.ts.map +0 -1
  222. package/dist/gpu-type-utils/decode-attribute-type.js +0 -68
  223. package/dist/gpu-type-utils/decode-attribute-type.js.map +0 -1
  224. package/dist/gpu-type-utils/decode-data-type.d.ts +0 -16
  225. package/dist/gpu-type-utils/decode-data-type.d.ts.map +0 -1
  226. package/dist/gpu-type-utils/decode-data-type.js +0 -48
  227. package/dist/gpu-type-utils/decode-data-type.js.map +0 -1
  228. package/dist/gpu-type-utils/decode-shader-types.d.ts +0 -9
  229. package/dist/gpu-type-utils/decode-shader-types.d.ts.map +0 -1
  230. package/dist/gpu-type-utils/decode-shader-types.js +0 -42
  231. package/dist/gpu-type-utils/decode-shader-types.js.map +0 -1
  232. package/dist/gpu-type-utils/decode-texture-format.d.ts +0 -11
  233. package/dist/gpu-type-utils/decode-texture-format.d.ts.map +0 -1
  234. package/dist/gpu-type-utils/decode-texture-format.js.map +0 -1
  235. package/dist/gpu-type-utils/decode-vertex-format.d.ts +0 -22
  236. package/dist/gpu-type-utils/decode-vertex-format.d.ts.map +0 -1
  237. package/dist/gpu-type-utils/decode-vertex-format.js +0 -34
  238. package/dist/gpu-type-utils/decode-vertex-format.js.map +0 -1
  239. package/dist/gpu-type-utils/shader-types.d.ts +0 -21
  240. package/dist/gpu-type-utils/shader-types.d.ts.map +0 -1
  241. package/dist/gpu-type-utils/shader-types.js.map +0 -1
  242. package/dist/gpu-type-utils/texture-features.d.ts +0 -6
  243. package/dist/gpu-type-utils/texture-features.d.ts.map +0 -1
  244. package/dist/gpu-type-utils/texture-features.js.map +0 -1
  245. package/dist/gpu-type-utils/texture-format-capabilities.d.ts +0 -21
  246. package/dist/gpu-type-utils/texture-format-capabilities.d.ts.map +0 -1
  247. package/dist/gpu-type-utils/texture-format-capabilities.js +0 -27
  248. package/dist/gpu-type-utils/texture-format-capabilities.js.map +0 -1
  249. package/dist/gpu-type-utils/texture-format-info.d.ts +0 -38
  250. package/dist/gpu-type-utils/texture-format-info.d.ts.map +0 -1
  251. package/dist/gpu-type-utils/texture-format-info.js +0 -5
  252. package/dist/gpu-type-utils/texture-format-info.js.map +0 -1
  253. package/dist/gpu-type-utils/texture-format-table.d.ts.map +0 -1
  254. package/dist/gpu-type-utils/texture-format-table.js.map +0 -1
  255. package/dist/gpu-type-utils/texture-formats.d.ts +0 -11
  256. package/dist/gpu-type-utils/texture-formats.d.ts.map +0 -1
  257. package/dist/gpu-type-utils/texture-formats.js.map +0 -1
  258. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts +0 -10
  259. package/dist/gpu-type-utils/vertex-format-from-attribute.d.ts.map +0 -1
  260. package/dist/gpu-type-utils/vertex-format-from-attribute.js +0 -91
  261. package/dist/gpu-type-utils/vertex-format-from-attribute.js.map +0 -1
  262. package/dist/gpu-type-utils/vertex-formats.d.ts +0 -14
  263. package/dist/gpu-type-utils/vertex-formats.d.ts.map +0 -1
  264. package/dist/gpu-type-utils/vertex-formats.js.map +0 -1
  265. package/dist/gpu-type-utils/wgsl-utils.d.ts +0 -4
  266. package/dist/gpu-type-utils/wgsl-utils.d.ts.map +0 -1
  267. package/dist/gpu-type-utils/wgsl-utils.js +0 -20
  268. package/dist/gpu-type-utils/wgsl-utils.js.map +0 -1
  269. package/src/adapter-utils/buffer-layout-helper.ts +0 -52
  270. package/src/adapter-utils/buffer-layout-order.ts +0 -27
  271. package/src/gpu-type-utils/decode-attribute-type.ts +0 -96
  272. package/src/gpu-type-utils/decode-data-type.ts +0 -66
  273. package/src/gpu-type-utils/decode-shader-types.ts +0 -49
  274. package/src/gpu-type-utils/decode-vertex-format.ts +0 -53
  275. package/src/gpu-type-utils/shader-types.ts +0 -78
  276. package/src/gpu-type-utils/texture-features.ts +0 -23
  277. package/src/gpu-type-utils/texture-format-capabilities.ts +0 -53
  278. package/src/gpu-type-utils/texture-format-info.ts +0 -42
  279. package/src/gpu-type-utils/texture-formats.ts +0 -161
  280. package/src/gpu-type-utils/vertex-format-from-attribute.ts +0 -114
  281. package/src/gpu-type-utils/vertex-formats.ts +0 -90
  282. package/src/gpu-type-utils/wgsl-utils.ts +0 -22
  283. /package/dist/{gpu-type-utils → shadertypes/data-types}/shader-types.js +0 -0
  284. /package/dist/{gpu-type-utils → shadertypes/vertex-arrays}/vertex-formats.js +0 -0
@@ -2,43 +2,40 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
  import { Resource } from "./resource.js";
5
+ import { Sampler } from "./sampler.js";
6
+ import { log } from "../../utils/log.js";
7
+ const BASE_DIMENSIONS = {
8
+ '1d': '1d',
9
+ '2d': '2d',
10
+ '2d-array': '2d',
11
+ cube: '2d',
12
+ 'cube-array': '2d',
13
+ '3d': '3d'
14
+ };
5
15
  /**
6
16
  * Abstract Texture interface
7
17
  * Texture Object
8
18
  * https://gpuweb.github.io/gpuweb/#gputexture
9
19
  */
10
20
  export class Texture extends Resource {
21
+ /** The texture can be bound for use as a sampled texture in a shader */
22
+ static SAMPLE = 0x04;
23
+ /** The texture can be bound for use as a storage texture in a shader */
24
+ static STORAGE = 0x08;
25
+ /** The texture can be used as a color or depth/stencil attachment in a render pass */
26
+ static RENDER = 0x10;
27
+ /** The texture can be used as the source of a copy operation */
11
28
  static COPY_SRC = 0x01;
29
+ /** he texture can be used as the destination of a copy or write operation */
12
30
  static COPY_DST = 0x02;
31
+ /** @deprecated Use Texture.SAMPLE */
13
32
  static TEXTURE = 0x04;
14
- static STORAGE = 0x08;
33
+ /** @deprecated Use Texture.RENDER */
15
34
  static RENDER_ATTACHMENT = 0x10;
16
- static CubeFaces = ['+X', '-X', '+Y', '-Y', '+Z', '-Z'];
17
- static defaultProps = {
18
- ...Resource.defaultProps,
19
- data: null,
20
- dimension: '2d',
21
- format: 'rgba8unorm',
22
- width: undefined,
23
- height: undefined,
24
- depth: 1,
25
- mipmaps: false,
26
- compressed: false,
27
- usage: 0,
28
- mipLevels: undefined,
29
- samples: undefined,
30
- sampler: {},
31
- view: undefined,
32
- flipY: undefined
33
- };
34
- get [Symbol.toStringTag]() {
35
- return 'Texture';
36
- }
37
- toString() {
38
- return `Texture(${this.id},${this.format},${this.width}x${this.height})`;
39
- }
40
35
  /** dimension of this texture */
41
36
  dimension;
37
+ /** base dimension of this texture */
38
+ baseDimension;
42
39
  /** format of this texture */
43
40
  format;
44
41
  /** width in pixels of this texture */
@@ -51,147 +48,151 @@ export class Texture extends Resource {
51
48
  mipLevels;
52
49
  /** "Time" of last update. Monotonically increasing timestamp. TODO move to AsyncTexture? */
53
50
  updateTimestamp;
51
+ get [Symbol.toStringTag]() {
52
+ return 'Texture';
53
+ }
54
+ toString() {
55
+ return `Texture(${this.id},${this.format},${this.width}x${this.height})`;
56
+ }
54
57
  /** Do not use directly. Create with device.createTexture() */
55
58
  constructor(device, props) {
56
59
  props = Texture.normalizeProps(device, props);
57
60
  super(device, props, Texture.defaultProps);
58
61
  this.dimension = this.props.dimension;
62
+ this.baseDimension = BASE_DIMENSIONS[this.dimension];
59
63
  this.format = this.props.format;
60
64
  // Size
61
65
  this.width = this.props.width;
62
66
  this.height = this.props.height;
63
67
  this.depth = this.props.depth;
68
+ this.mipLevels = this.props.mipLevels;
64
69
  // Calculate size, if not provided
65
70
  if (this.props.width === undefined || this.props.height === undefined) {
66
- // @ts-ignore
67
- const size = Texture.getTextureDataSize(this.props.data);
68
- this.width = size?.width || 1;
69
- this.height = size?.height || 1;
70
- }
71
- // mipLevels
72
- // If mipmap generation is requested and mipLevels is not provided, initialize a full pyramid
73
- if (this.props.mipmaps && this.props.mipLevels === undefined) {
74
- this.props.mipLevels = 'pyramid';
71
+ if (device.isExternalImage(props.data)) {
72
+ const size = device.getExternalImageSize(props.data);
73
+ this.width = size?.width || 1;
74
+ this.height = size?.height || 1;
75
+ }
76
+ else {
77
+ this.width = 1;
78
+ this.height = 1;
79
+ if (this.props.width === undefined || this.props.height === undefined) {
80
+ log.warn(`${this} created with undefined width or height. This is deprecated. Use AsyncTexture instead.`)();
81
+ }
82
+ }
75
83
  }
76
- // Auto-calculate the number of mip levels as a convenience
77
- // TODO - Should we clamp to 1-getMipLevelCount?
78
- this.mipLevels =
79
- this.props.mipLevels === 'pyramid'
80
- ? Texture.getMipLevelCount(this.width, this.height)
81
- : this.props.mipLevels || 1;
82
84
  // TODO - perhaps this should be set on async write completion?
83
85
  this.updateTimestamp = device.incrementTimestamp();
84
86
  }
87
+ /** Set sampler props associated with this texture */
88
+ setSampler(sampler) {
89
+ this.sampler = sampler instanceof Sampler ? sampler : this.device.createSampler(sampler);
90
+ }
85
91
  /**
86
- * Create a new texture with the same parameters and optionally, a different size
92
+ * Create a new texture with the same parameters and optionally a different size
87
93
  * @note Textures are immutable and cannot be resized after creation, but we can create a similar texture with the same parameters but a new size.
88
94
  * @note Does not copy contents of the texture
89
95
  */
90
96
  clone(size) {
91
97
  return this.device.createTexture({ ...this.props, ...size });
92
98
  }
93
- /** Check if data is an external image */
94
- static isExternalImage(data) {
95
- return ((typeof ImageData !== 'undefined' && data instanceof ImageData) ||
96
- (typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) ||
97
- (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) ||
98
- (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) ||
99
- (typeof VideoFrame !== 'undefined' && data instanceof VideoFrame) ||
100
- (typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) ||
101
- (typeof OffscreenCanvas !== 'undefined' && data instanceof OffscreenCanvas));
102
- }
103
- /** Determine size (width and height) of provided image data */
104
- static getExternalImageSize(data) {
105
- if ((typeof ImageData !== 'undefined' && data instanceof ImageData) ||
106
- (typeof ImageBitmap !== 'undefined' && data instanceof ImageBitmap) ||
107
- (typeof HTMLCanvasElement !== 'undefined' && data instanceof HTMLCanvasElement) ||
108
- (typeof OffscreenCanvas !== 'undefined' && data instanceof OffscreenCanvas)) {
109
- return { width: data.width, height: data.height };
110
- }
111
- if (typeof HTMLImageElement !== 'undefined' && data instanceof HTMLImageElement) {
112
- return { width: data.naturalWidth, height: data.naturalHeight };
113
- }
114
- if (typeof HTMLVideoElement !== 'undefined' && data instanceof HTMLVideoElement) {
115
- return { width: data.videoWidth, height: data.videoHeight };
116
- }
117
- if (typeof VideoFrame !== 'undefined' && data instanceof VideoFrame) {
118
- // TODO: is this the right choice for width and height?
119
- return { width: data.displayWidth, height: data.displayHeight };
120
- }
121
- throw new Error('Unknown image type');
122
- }
123
- /** Check if texture data is a typed array */
124
- static isTextureLevelData(data) {
125
- const typedArray = data?.data;
126
- return ArrayBuffer.isView(typedArray);
127
- }
128
- /** Get the size of the texture described by the provided TextureData */
129
- static getTextureDataSize(data) {
130
- if (!data) {
131
- return null;
132
- }
133
- if (ArrayBuffer.isView(data)) {
134
- return null;
135
- }
136
- // Recurse into arrays (array of miplevels)
137
- if (Array.isArray(data)) {
138
- return Texture.getTextureDataSize(data[0]);
139
- }
140
- if (Texture.isExternalImage(data)) {
141
- return Texture.getExternalImageSize(data);
99
+ /** Ensure we have integer coordinates */
100
+ static normalizeProps(device, props) {
101
+ const newProps = { ...props };
102
+ // Ensure we have integer coordinates
103
+ const { width, height } = newProps;
104
+ if (typeof width === 'number') {
105
+ newProps.width = Math.max(1, Math.ceil(width));
142
106
  }
143
- if (data && typeof data === 'object' && data.constructor === Object) {
144
- const textureDataArray = Object.values(data);
145
- const untypedData = textureDataArray[0];
146
- return { width: untypedData.width, height: untypedData.height };
107
+ if (typeof height === 'number') {
108
+ newProps.height = Math.max(1, Math.ceil(height));
147
109
  }
148
- throw new Error('texture size deduction failed');
110
+ return newProps;
149
111
  }
150
- /**
151
- * Normalize TextureData to an array of TextureLevelData / ExternalImages
152
- * @param data
153
- * @param options
154
- * @returns array of TextureLevelData / ExternalImages
155
- */
156
- static normalizeTextureData(data, options) {
157
- let lodArray;
158
- if (ArrayBuffer.isView(data)) {
159
- lodArray = [
160
- {
161
- // ts-expect-error does data really need to be Uint8ClampedArray?
162
- data,
163
- width: options.width,
164
- height: options.height
165
- // depth: options.depth
166
- }
167
- ];
168
- }
169
- else if (!Array.isArray(data)) {
170
- lodArray = [data];
171
- }
172
- else {
173
- lodArray = data;
112
+ // HELPERS
113
+ /** Initialize texture with supplied props */
114
+ // eslint-disable-next-line max-statements
115
+ _initializeData(data) {
116
+ // Store opts for accessors
117
+ if (this.device.isExternalImage(data)) {
118
+ this.copyExternalImage({
119
+ image: data,
120
+ width: this.width,
121
+ height: this.height,
122
+ depth: this.depth,
123
+ mipLevel: 0,
124
+ x: 0,
125
+ y: 0,
126
+ z: 0,
127
+ aspect: 'all',
128
+ colorSpace: 'srgb',
129
+ premultipliedAlpha: false,
130
+ flipY: false
131
+ });
132
+ }
133
+ else if (data) {
134
+ this.copyImageData({
135
+ data,
136
+ // width: this.width,
137
+ // height: this.height,
138
+ // depth: this.depth,
139
+ mipLevel: 0,
140
+ x: 0,
141
+ y: 0,
142
+ z: 0,
143
+ aspect: 'all'
144
+ });
174
145
  }
175
- return lodArray;
176
146
  }
177
- /** Calculate the number of mip levels for a texture of width and height */
178
- static getMipLevelCount(width, height) {
179
- return Math.floor(Math.log2(Math.max(width, height))) + 1;
147
+ _normalizeCopyImageDataOptions(options_) {
148
+ const { width, height, depth } = this;
149
+ const options = { ...Texture.defaultCopyDataOptions, width, height, depth, ...options_ };
150
+ const info = this.device.getTextureFormatInfo(this.format);
151
+ if (!options_.bytesPerRow && !info.bytesPerPixel) {
152
+ throw new Error(`bytesPerRow must be provided for texture format ${this.format}`);
153
+ }
154
+ options.bytesPerRow = options_.bytesPerRow || width * (info.bytesPerPixel || 4);
155
+ options.rowsPerImage = options_.rowsPerImage || height;
156
+ // WebGL will error if we try to copy outside the bounds of the texture
157
+ // options.width = Math.min(options.width, this.width - options.x);
158
+ // options.height = Math.min(options.height, this.height - options.y);
159
+ return options;
180
160
  }
181
- /** Convert luma.gl cubemap face constants to depth index */
182
- static getCubeFaceDepth(face) {
183
- // prettier-ignore
184
- switch (face) {
185
- case '+X': return 0;
186
- case '-X': return 1;
187
- case '+Y': return 2;
188
- case '-Y': return 3;
189
- case '+Z': return 4;
190
- case '-Z': return 5;
191
- default: throw new Error(face);
192
- }
161
+ _normalizeCopyExternalImageOptions(options_) {
162
+ const size = this.device.getExternalImageSize(options_.image);
163
+ const options = { ...Texture.defaultCopyExternalImageOptions, ...size, ...options_ };
164
+ // WebGL will error if we try to copy outside the bounds of the texture
165
+ options.width = Math.min(options.width, this.width - options.x);
166
+ options.height = Math.min(options.height, this.height - options.y);
167
+ return options;
193
168
  }
194
169
  /** Default options */
170
+ static defaultProps = {
171
+ ...Resource.defaultProps,
172
+ data: null,
173
+ dimension: '2d',
174
+ format: 'rgba8unorm',
175
+ usage: Texture.TEXTURE | Texture.RENDER_ATTACHMENT | Texture.COPY_DST,
176
+ width: undefined,
177
+ height: undefined,
178
+ depth: 1,
179
+ mipLevels: 1,
180
+ samples: undefined,
181
+ sampler: {},
182
+ view: undefined
183
+ };
184
+ static defaultCopyDataOptions = {
185
+ data: undefined,
186
+ byteOffset: 0,
187
+ bytesPerRow: undefined,
188
+ rowsPerImage: undefined,
189
+ mipLevel: 0,
190
+ x: 0,
191
+ y: 0,
192
+ z: 0,
193
+ aspect: 'all'
194
+ };
195
+ /** Default options */
195
196
  static defaultCopyExternalImageOptions = {
196
197
  image: undefined,
197
198
  sourceX: 0,
@@ -208,22 +209,5 @@ export class Texture extends Resource {
208
209
  premultipliedAlpha: false,
209
210
  flipY: false
210
211
  };
211
- /** Ensure we have integer coordinates */
212
- static normalizeProps(device, props) {
213
- const newProps = { ...props };
214
- // Allow device to override props (e.g. props.mipmaps)
215
- const overriddenDefaultProps = device?.props?._resourceDefaults?.texture || {};
216
- // TODO - Type issue with props.data circumvented with Object.assign
217
- Object.assign(newProps, overriddenDefaultProps);
218
- // Ensure we have integer coordinates
219
- const { width, height } = newProps;
220
- if (typeof width === 'number') {
221
- newProps.width = Math.max(1, Math.ceil(width));
222
- }
223
- if (typeof height === 'number') {
224
- newProps.height = Math.max(1, Math.ceil(height));
225
- }
226
- return newProps;
227
- }
228
212
  }
229
213
  //# sourceMappingURL=texture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"texture.js","sourceRoot":"","sources":["../../../src/adapter/resources/texture.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAMpC,OAAO,EAAC,QAAQ,EAAgB,sBAAmB;AACnD,OAAO,EAAC,OAAO,EAAe,qBAAkB;AAEhD,OAAO,EAAC,GAAG,EAAC,2BAAwB;AAwDpC,MAAM,eAAe,GAAuC;IAC1D,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,UAAU,EAAE,IAAI;IAChB,IAAI,EAAE,IAAI;IACV,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,IAAI;CACX,CAAC;AA6BF;;;;GAIG;AACH,MAAM,OAAgB,OAAQ,SAAQ,QAAsB;IAC1D,wEAAwE;IACxE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,sFAAsF;IACtF,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;IACrB,gEAAgE;IAChE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,6EAA6E;IAC7E,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IAEvB,qCAAqC;IACrC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,qCAAqC;IACrC,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAEhC,gCAAgC;IACvB,SAAS,CAA0D;IAC5E,qCAAqC;IAC5B,aAAa,CAAqB;IAC3C,6BAA6B;IACpB,MAAM,CAAgB;IAC/B,sCAAsC;IACtC,KAAK,CAAS;IACd,uCAAuC;IACvC,MAAM,CAAS;IACf,4BAA4B;IAC5B,KAAK,CAAS;IACd,iCAAiC;IACjC,SAAS,CAAS;IAMlB,4FAA4F;IAC5F,eAAe,CAAS;IAExB,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,SAAS,CAAC;IACnB,CAAC;IAEQ,QAAQ;QACf,OAAO,WAAW,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;IAC3E,CAAC;IAED,8DAA8D;IAC9D,YAAY,MAAc,EAAE,KAAmB;QAC7C,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9C,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEhC,OAAO;QACP,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAEtC,kCAAkC;QAClC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACtE,IAAI,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtE,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,wFAAwF,CAChG,EAAE,CAAC;gBACN,CAAC;YACH,CAAC;QACH,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACrD,CAAC;IAED,qDAAqD;IACrD,UAAU,CAAC,OAA+B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC3F,CAAC;IAUD;;;;OAIG;IACH,KAAK,CAAC,IAAsC;QAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAC,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,EAAC,CAAC,CAAC;IAC7D,CAAC;IAED,yCAAyC;IAC/B,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,KAAmB;QACjE,MAAM,QAAQ,GAAG,EAAC,GAAG,KAAK,EAAC,CAAC;QAE5B,qCAAqC;QACrC,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,QAAQ,CAAC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC/B,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,UAAU;IAEV,6CAA6C;IAC7C,0CAA0C;IAC1C,eAAe,CAAC,IAA0B;QACxC,2BAA2B;QAE3B,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,IAAI,CAAC,iBAAiB,CAAC;gBACrB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,CAAC;gBACX,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,MAAM;gBAClB,kBAAkB,EAAE,KAAK;gBACzB,KAAK,EAAE,KAAK;aACb,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,aAAa,CAAC;gBACjB,IAAI;gBACJ,qBAAqB;gBACrB,uBAAuB;gBACvB,qBAAqB;gBACrB,QAAQ,EAAE,CAAC;gBACX,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,CAAC,EAAE,CAAC;gBACJ,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,8BAA8B,CAAC,QAA8B;QAC3D,MAAM,EAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,GAAG,IAAI,CAAC;QACpC,MAAM,OAAO,GAAG,EAAC,GAAG,OAAO,CAAC,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAC,CAAC;QAEvF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3D,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,mDAAmD,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,IAAI,MAAM,CAAC;QAEvD,uEAAuE;QACvE,mEAAmE;QACnE,sEAAsE;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kCAAkC,CAChC,QAAkC;QAElC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,EAAC,GAAG,OAAO,CAAC,+BAA+B,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,EAAC,CAAC;QACnF,uEAAuE;QACvE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAU,YAAY,GAA2B;QACrD,GAAG,QAAQ,CAAC,YAAY;QACxB,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,GAAG,OAAO,CAAC,QAAQ;QACrE,KAAK,EAAE,SAAU;QACjB,MAAM,EAAE,SAAU;QAClB,KAAK,EAAE,CAAC;QACR,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,SAAU;QACnB,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,SAAU;KACjB,CAAC;IAEQ,MAAM,CAAC,sBAAsB,GAAmC;QACxE,IAAI,EAAE,SAAU;QAChB,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,SAAU;QACvB,YAAY,EAAE,SAAU;QACxB,QAAQ,EAAE,CAAC;QACX,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,KAAK;KACd,CAAC;IAEF,sBAAsB;IACZ,MAAM,CAAC,+BAA+B,GAAuC;QACrF,KAAK,EAAE,SAAU;QACjB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,SAAU;QACjB,MAAM,EAAE,SAAU;QAClB,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,CAAC;QACX,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;QACJ,MAAM,EAAE,KAAK;QACb,UAAU,EAAE,MAAM;QAClB,kBAAkB,EAAE,KAAK;QACzB,KAAK,EAAE,KAAK;KACb,CAAC"}
@@ -3,11 +3,13 @@ import { AttributeInfo } from "../../adapter-utils/get-attribute-from-layouts.js
3
3
  import type { Device } from "../device.js";
4
4
  import type { Buffer } from "./buffer.js";
5
5
  import type { RenderPass } from "./render-pass.js";
6
- import type { RenderPipeline } from "./render-pipeline.js";
7
6
  import { Resource, ResourceProps } from "./resource.js";
7
+ import { ShaderLayout } from "../types/shader-layout.js";
8
+ import { BufferLayout } from "../types/buffer-layout.js";
8
9
  /** Properties for initializing a VertexArray */
9
10
  export type VertexArrayProps = ResourceProps & {
10
- renderPipeline: RenderPipeline | null;
11
+ shaderLayout: ShaderLayout;
12
+ bufferLayout: BufferLayout[];
11
13
  };
12
14
  /**
13
15
  * Stores attribute bindings.
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,uBAAoB;AAC5C,OAAO,EACL,aAAa,EAEd,0DAAuD;AACxD,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AACrC,OAAO,KAAK,EAAC,UAAU,EAAC,yBAAsB;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAC,6BAA0B;AACtD,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AAEnD,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,cAAc,EAAE,cAAc,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAClE,OAAgB,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAGtD;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,sCAAsC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,8EAA8E;IAC9E,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;IAEnD,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,wCAAwC;IACxC,UAAU,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAenD,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAEnE,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IACvD,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxD,uDAAuD;IACvD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;CAGnE"}
1
+ {"version":3,"file":"vertex-array.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAAC,uBAAoB;AAC5C,OAAO,EACL,aAAa,EAEd,0DAAuD;AACxD,OAAO,KAAK,EAAC,MAAM,EAAC,qBAAkB;AACtC,OAAO,KAAK,EAAC,MAAM,EAAC,oBAAiB;AACrC,OAAO,KAAK,EAAC,UAAU,EAAC,yBAAsB;AAC9C,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,sBAAmB;AACnD,OAAO,EAAC,YAAY,EAAC,kCAA+B;AACpD,OAAO,EAAC,YAAY,EAAC,kCAA+B;AAEpD,gDAAgD;AAChD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEF;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,QAAQ,CAAC,gBAAgB,CAAC;IAClE,OAAgB,YAAY,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAItD;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAE1C;IAED,sCAAsC;IACtC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,8EAA8E;IAC9E,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;IAEnD,mBAAmB;IACnB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,wCAAwC;IACxC,UAAU,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;gBAE/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB;IAWnD,mEAAmE;IACnE,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IACrD,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAEnE,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IACvD,QAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxD,uDAAuD;IACvD,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;CAGnE"}
@@ -13,7 +13,8 @@ import { Resource } from "./resource.js";
13
13
  export class VertexArray extends Resource {
14
14
  static defaultProps = {
15
15
  ...Resource.defaultProps,
16
- renderPipeline: null
16
+ shaderLayout: undefined,
17
+ bufferLayout: []
17
18
  };
18
19
  get [Symbol.toStringTag]() {
19
20
  return 'VertexArray';
@@ -30,16 +31,12 @@ export class VertexArray extends Resource {
30
31
  super(device, props, VertexArray.defaultProps);
31
32
  this.maxVertexAttributes = device.limits.maxVertexAttributes;
32
33
  this.attributes = new Array(this.maxVertexAttributes).fill(null);
33
- const { shaderLayout, bufferLayout } = props.renderPipeline || {};
34
- if (!shaderLayout || !bufferLayout) {
35
- throw new Error('VertexArray');
36
- }
37
- this.attributeInfos = getAttributeInfosByLocation(shaderLayout, bufferLayout, this.maxVertexAttributes);
34
+ this.attributeInfos = getAttributeInfosByLocation(props.shaderLayout, props.bufferLayout, this.maxVertexAttributes);
38
35
  }
39
36
  // DEPRECATED METHODS
40
37
  /** @deprecated Set constant attributes (WebGL only) */
41
38
  setConstantWebGL(location, value) {
42
- this.device.reportError(new Error('constant attributes not supported'));
39
+ this.device.reportError(new Error('constant attributes not supported'), this)();
43
40
  }
44
41
  }
45
42
  //# sourceMappingURL=vertex-array.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-array.js","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,2BAA2B,EAC5B,0DAAuD;AAKxD,OAAO,EAAC,QAAQ,EAAgB,sBAAmB;AAOnD;;;;;;GAMG;AACH,MAAM,OAAgB,WAAY,SAAQ,QAA0B;IAClE,MAAM,CAAU,YAAY,GAA+B;QACzD,GAAG,QAAQ,CAAC,YAAY;QACxB,cAAc,EAAE,IAAI;KACrB,CAAC;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,sCAAsC;IAC7B,mBAAmB,CAAS;IACrC,8EAA8E;IAC3D,cAAc,CAAkB;IAEnD,mBAAmB;IACnB,WAAW,GAAkB,IAAI,CAAC;IAClC,wCAAwC;IACxC,UAAU,CAAiC;IAE3C,YAAY,MAAc,EAAE,KAAuB;QACjD,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,EAAC,YAAY,EAAE,YAAY,EAAC,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,2BAA2B,CAC/C,YAAY,EACZ,YAAY,EACZ,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAUD,qBAAqB;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,QAAgB,EAAE,KAAwB;QACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAC1E,CAAC"}
1
+ {"version":3,"file":"vertex-array.js","sourceRoot":"","sources":["../../../src/adapter/resources/vertex-array.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAEL,2BAA2B,EAC5B,0DAAuD;AAIxD,OAAO,EAAC,QAAQ,EAAgB,sBAAmB;AAUnD;;;;;;GAMG;AACH,MAAM,OAAgB,WAAY,SAAQ,QAA0B;IAClE,MAAM,CAAU,YAAY,GAA+B;QACzD,GAAG,QAAQ,CAAC,YAAY;QACxB,YAAY,EAAE,SAAU;QACxB,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,sCAAsC;IAC7B,mBAAmB,CAAS;IACrC,8EAA8E;IAC3D,cAAc,CAAkB;IAEnD,mBAAmB;IACnB,WAAW,GAAkB,IAAI,CAAC;IAClC,wCAAwC;IACxC,UAAU,CAAiC;IAE3C,YAAY,MAAc,EAAE,KAAuB;QACjD,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,2BAA2B,CAC/C,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,YAAY,EAClB,IAAI,CAAC,mBAAmB,CACzB,CAAC;IACJ,CAAC;IAUD,qBAAqB;IAErB,uDAAuD;IACvD,gBAAgB,CAAC,QAAgB,EAAE,KAAwB;QACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;IAClF,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ColorTextureFormat, DepthStencilTextureFormat, TextureFormat } from "../../gpu-type-utils/texture-formats.js";
1
+ import type { TextureFormatColor, TextureFormatDepthStencil, TextureFormat } from "../../shadertypes/textures/texture-formats.js";
2
2
  import type { Texture } from "../resources/texture.js";
3
3
  import type { TextureView } from "../resources/texture-view.js";
4
4
  /** Describes a buffer binding layout */
@@ -38,7 +38,7 @@ export type ColorAttachment = {
38
38
  /** Describes the texture subresource that will be output to for this color attachment. */
39
39
  texture?: TextureView | Texture;
40
40
  /** Format of the texture resource. Used to auto create texture if not supplied */
41
- format?: ColorTextureFormat;
41
+ format?: TextureFormatColor;
42
42
  /** Value to clear to prior to executing the render pass. Default: [0, 0, 0, 0]. Ignored if loadOp is not "clear". */
43
43
  clearValue?: number[];
44
44
  /** load operation to perform on texture prior to executing the render pass. Default: 'clear'. */
@@ -54,7 +54,7 @@ export type DepthStencilAttachment = {
54
54
  /** Describes the texture subresource that will be output to and read from for this depth/stencil attachment. */
55
55
  texture?: TextureView | Texture;
56
56
  /** Format of the texture resource. Used to auto create texture if not supplied */
57
- format?: DepthStencilTextureFormat;
57
+ format?: TextureFormatDepthStencil;
58
58
  /** Value to clear depth component to prior to executing the render pass, if depthLoadOp is "clear". 0.0-1.0. */
59
59
  depthClearValue?: number;
60
60
  /** Indicates load operation to perform on depth component prior to executing the render pass. Default 'clear'. */
@@ -1 +1 @@
1
- {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/attachments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACd,gDAA6C;AAC9C,OAAO,KAAK,EAAC,OAAO,EAAC,gCAA6B;AAClD,OAAO,KAAK,EAAC,WAAW,EAAC,qCAAkC;AAM3D,wCAAwC;AACxC,KAAK,mBAAmB,GAAG;IACzB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,kCAAkC;AAClC,KAAK,oBAAoB,GAAG;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,0CAA0C;AAC1C,KAAK,2BAA2B,GAAG;IACjC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,oBAAoB,GACpB,2BAA2B,CAAC;AAIhC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAI5B,qHAAqH;IACrH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,gHAAgH;IAChH,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,gHAAgH;IAChH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kHAAkH;IAClH,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,uGAAuG;IACvG,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
1
+ {"version":3,"file":"attachments.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/attachments.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACd,sDAAmD;AACpD,OAAO,KAAK,EAAC,OAAO,EAAC,gCAA6B;AAClD,OAAO,KAAK,EAAC,WAAW,EAAC,qCAAkC;AAM3D,wCAAwC;AACxC,KAAK,mBAAmB,GAAG;IACzB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,mBAAmB,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,kCAAkC;AAClC,KAAK,oBAAoB,GAAG;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,OAAO,GAAG,oBAAoB,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,0CAA0C;AAC1C,KAAK,2BAA2B,GAAG;IACjC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;CACzE,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,oBAAoB,GACpB,2BAA2B,CAAC;AAIhC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAI5B,qHAAqH;IACrH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,iGAAiG;IACjG,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1B,mGAAmG;IACnG,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC,gHAAgH;IAChH,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAChC,kFAAkF;IAClF,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,gHAAgH;IAChH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kHAAkH;IAClH,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,uGAAuG;IACvG,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,uDAAuD;IACvD,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,qHAAqH;IACrH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qHAAqH;IACrH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,uFAAuF;IACvF,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { VertexFormat } from "../../gpu-type-utils/vertex-formats.js";
1
+ import type { VertexFormat } from "../../shadertypes/vertex-arrays/vertex-formats.js";
2
2
  /**
3
3
  * Provides specific details about the memory layout of the actual buffers
4
4
  * that will be provided to a `RenderPipeline`.
@@ -1 +1 @@
1
- {"version":3,"file":"buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,+CAA4C;AAEtE;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;IAuBI;AACJ,MAAM,MAAM,YAAY,GAAG;IACzB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,YAAY,CAAC;IACrB,+FAA+F;IAC/F,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"buffer-layout.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/buffer-layout.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,0DAAuD;AAEjF;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;;;;;;;;;;;;;;IAuBI;AACJ,MAAM,MAAM,YAAY,GAAG;IACzB,qBAAqB;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,qBAAqB,GAAG;IAClC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,EAAE,YAAY,CAAC;IACrB,+FAA+F;IAC/F,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { NumberArray4, NumberArray6 } from '@math.gl/types';
2
- import { DepthStencilTextureFormat } from "../../gpu-type-utils/texture-formats.js";
2
+ import { TextureFormatDepthStencil } from "../../shadertypes/textures/texture-formats.js";
3
3
  export type CompareFunction = 'never' | 'less' | 'equal' | 'less-equal' | 'greater' | 'not-equal' | 'greater-equal' | 'always';
4
4
  export type PrimitiveTopology = 'point-list' | 'line-list' | 'line-strip' | 'triangle-list' | 'triangle-strip';
5
5
  export type IndexFormat = 'uint16' | 'uint32';
@@ -57,7 +57,7 @@ export type DepthStencilParameters = {
57
57
  /** The comparison operation used to test fragment depths against existing depthStencilAttachment depth values. */
58
58
  depthCompare?: CompareFunction;
59
59
  /** The format of depthStencilAttachment this GPURenderPipeline will be compatible with. */
60
- depthFormat?: DepthStencilTextureFormat;
60
+ depthFormat?: TextureFormatDepthStencil;
61
61
  /** Bitmask controlling which depthStencilAttachment stencil value bits are read when performing stencil comparison tests. */
62
62
  stencilReadMask?: number;
63
63
  /** Bitmask controlling which depthStencilAttachment stencil value bits are written to when performing stencil operations. */
@@ -72,9 +72,13 @@ export type DepthStencilParameters = {
72
72
  stencilDepthFailOperation?: StencilOperation;
73
73
  };
74
74
  /** BlendFactor defines how either a source or destination blend factors is calculated */
75
- export type BlendFactor = 'zero' | 'one' | 'src-color' | 'one-minus-src-color' | 'src-alpha' | 'one-minus-src-alpha' | 'dst-color' | 'one-minus-dst-color' | 'dst-alpha' | 'one-minus-dst-alpha' | 'src-alpha-saturated' | 'constant-color' | 'one-minus-constant-color' | 'constant-alpha' | 'one-minus-constant-alpha';
75
+ export type BlendFactor = 'zero' | 'one' | 'src' | 'one-minus-src' | 'src-alpha' | 'one-minus-src-alpha' | 'dst' | 'one-minus-dst' | 'dst-alpha' | 'one-minus-dst-alpha' | 'src-alpha-saturated' | 'constant' | 'one-minus-constant' | 'src1' | 'one-minus-src1' | 'src1-alpha' | 'one-minus-src1-alpha';
76
76
  /** BlendOperation defines the algorithm used to combine source and destination blend factors: */
77
77
  export type BlendOperation = 'add' | 'subtract' | 'reverse-subtract' | 'min' | 'max';
78
+ /**
79
+ * Color parameters are set on the RenderPipeline
80
+ * @todo - this needs to be settable on a per-attachment basis, not just for first attachment
81
+ */
78
82
  export type ColorParameters = {
79
83
  /** Enable blending */
80
84
  blend?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameters.d.ts","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAuMpC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,2BAA2B;IAE3B,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,KAAK;IAEhB,mBAAmB;IAEnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,aAAa;IAE1B,SAAS,EAAE,CAAC;IACZ,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IAEjB,qBAAqB;IAErB,eAAe,EAAE,UAAU;IAC3B,gBAAgB,EAAE,UAAU;IAE5B,cAAc,EAAE,QAAQ;IACxB,oBAAoB,EAAE,MAAM;IAC5B,oBAAoB,EAAE,MAAM;IAC5B,yBAAyB,EAAE,MAAM;IAEjC,yBAAyB;IACzB,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,UAAU;IACtB,4BAA4B,EAAE,KAAK;IAEnC,6BAA6B;IAC7B,KAAK,EAAE,KAAK;IAEZ,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,SAAS,EAAE,GAAG;IAEd,aAAa;IAEb,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,iBAAiB,EAAE,KAAK;IAExB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;CAC1B,CAAC"}
1
+ {"version":3,"file":"parameters.js","sourceRoot":"","sources":["../../../src/adapter/types/parameters.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AA4MpC,+CAA+C;AAE/C,MAAM,CAAC,MAAM,kBAAkB,GAAyB;IACtD,2BAA2B;IAE3B,QAAQ,EAAE,MAAM;IAChB,SAAS,EAAE,KAAK;IAEhB,mBAAmB;IAEnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,QAAQ;IACtB,WAAW,EAAE,aAAa;IAE1B,SAAS,EAAE,CAAC;IACZ,mBAAmB,EAAE,CAAC;IACtB,cAAc,EAAE,CAAC;IAEjB,qBAAqB;IAErB,eAAe,EAAE,UAAU;IAC3B,gBAAgB,EAAE,UAAU;IAE5B,cAAc,EAAE,QAAQ;IACxB,oBAAoB,EAAE,MAAM;IAC5B,oBAAoB,EAAE,MAAM;IAC5B,yBAAyB,EAAE,MAAM;IAEjC,yBAAyB;IACzB,WAAW,EAAE,CAAC;IACd,UAAU,EAAE,UAAU;IACtB,4BAA4B,EAAE,KAAK;IAEnC,6BAA6B;IAC7B,KAAK,EAAE,KAAK;IAEZ,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,MAAM;IAE3B,SAAS,EAAE,GAAG;IAEd,aAAa;IAEb,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,MAAM;IACvB,WAAW,EAAE,MAAM;IACnB,iBAAiB,EAAE,KAAK;IAExB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;IACzB,aAAa,EAAE,SAAU;CAC1B,CAAC"}
@@ -1,5 +1,5 @@
1
- import type { TextureFormat } from "../../gpu-type-utils/texture-formats.js";
2
- import type { ShaderUniformType, ShaderAttributeType } from "../../gpu-type-utils/shader-types.js";
1
+ import type { TextureFormat } from "../../shadertypes/textures/texture-formats.js";
2
+ import type { VariableShaderType, AttributeShaderType } from "../../shadertypes/data-types/shader-types.js";
3
3
  import type { Buffer } from "../resources/buffer.js";
4
4
  import type { Sampler } from "../resources/sampler.js";
5
5
  import type { Texture } from "../resources/texture.js";
@@ -49,7 +49,7 @@ export type AttributeDeclaration = {
49
49
  /** The index into the GPU's vertex array buffer bank (usually between 0-15) */
50
50
  location: number;
51
51
  /** WebGPU-style shader type. The declared format of the attribute in the shader code. Buffer's vertex format needs to map to this. */
52
- type: ShaderAttributeType;
52
+ type: AttributeShaderType;
53
53
  /** Inferred from attribute name. @note Technically not part of static structure of shader */
54
54
  stepMode?: 'vertex' | 'instance';
55
55
  };
@@ -72,7 +72,7 @@ export type UniformBufferBindingLayout = {
72
72
  };
73
73
  export type UniformInfo = {
74
74
  name: string;
75
- format: ShaderUniformType;
75
+ format: VariableShaderType;
76
76
  type?: string;
77
77
  arrayLength: number;
78
78
  byteOffset: number;
@@ -144,7 +144,7 @@ export type Binding = TextureView | Texture | Sampler | Buffer | {
144
144
  export type VaryingBinding = {
145
145
  location: number;
146
146
  name: string;
147
- type: number;
147
+ type: AttributeShaderType;
148
148
  size: number;
149
149
  };
150
150
  /** Describes a uniform block binding for a program */