@luma.gl/core 9.0.0-beta.4 → 9.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts +4 -4
  2. package/dist/adapter/attribute-utils/get-attribute-from-layouts.d.ts.map +1 -1
  3. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js +138 -106
  4. package/dist/adapter/canvas-context.d.ts +2 -2
  5. package/dist/adapter/canvas-context.d.ts.map +1 -1
  6. package/dist/adapter/canvas-context.js +306 -232
  7. package/dist/adapter/device.d.ts +112 -69
  8. package/dist/adapter/device.d.ts.map +1 -1
  9. package/dist/adapter/device.js +145 -94
  10. package/dist/adapter/resources/buffer.d.ts +3 -3
  11. package/dist/adapter/resources/buffer.d.ts.map +1 -1
  12. package/dist/adapter/resources/buffer.js +70 -56
  13. package/dist/adapter/resources/command-buffer.d.ts +2 -2
  14. package/dist/adapter/resources/command-buffer.d.ts.map +1 -1
  15. package/dist/adapter/resources/command-buffer.js +15 -12
  16. package/dist/adapter/resources/command-encoder.d.ts +22 -7
  17. package/dist/adapter/resources/command-encoder.d.ts.map +1 -1
  18. package/dist/adapter/resources/command-encoder.js +16 -16
  19. package/dist/adapter/resources/compute-pass.d.ts +16 -5
  20. package/dist/adapter/resources/compute-pass.d.ts.map +1 -1
  21. package/dist/adapter/resources/compute-pass.js +15 -12
  22. package/dist/adapter/resources/compute-pipeline.d.ts +4 -4
  23. package/dist/adapter/resources/compute-pipeline.d.ts.map +1 -1
  24. package/dist/adapter/resources/compute-pipeline.js +20 -17
  25. package/dist/adapter/resources/external-texture.d.ts +2 -2
  26. package/dist/adapter/resources/external-texture.d.ts.map +1 -1
  27. package/dist/adapter/resources/external-texture.js +14 -14
  28. package/dist/adapter/resources/framebuffer.d.ts +9 -8
  29. package/dist/adapter/resources/framebuffer.d.ts.map +1 -1
  30. package/dist/adapter/resources/framebuffer.js +191 -91
  31. package/dist/adapter/resources/query-set.d.ts +26 -0
  32. package/dist/adapter/resources/query-set.d.ts.map +1 -0
  33. package/dist/adapter/resources/query-set.js +18 -0
  34. package/dist/adapter/resources/render-pass.d.ts +22 -9
  35. package/dist/adapter/resources/render-pass.d.ts.map +1 -1
  36. package/dist/adapter/resources/render-pass.js +34 -20
  37. package/dist/adapter/resources/render-pipeline.d.ts +22 -18
  38. package/dist/adapter/resources/render-pipeline.d.ts.map +1 -1
  39. package/dist/adapter/resources/render-pipeline.js +50 -33
  40. package/dist/adapter/resources/resource.d.ts +1 -1
  41. package/dist/adapter/resources/resource.d.ts.map +1 -1
  42. package/dist/adapter/resources/resource.js +133 -92
  43. package/dist/adapter/resources/sampler.d.ts +3 -3
  44. package/dist/adapter/resources/sampler.d.ts.map +1 -1
  45. package/dist/adapter/resources/sampler.js +24 -23
  46. package/dist/adapter/resources/shader.d.ts +8 -6
  47. package/dist/adapter/resources/shader.d.ts.map +1 -1
  48. package/dist/adapter/resources/shader.js +98 -74
  49. package/dist/adapter/resources/texture-view.d.ts +32 -0
  50. package/dist/adapter/resources/texture-view.d.ts.map +1 -0
  51. package/dist/adapter/resources/texture-view.js +24 -0
  52. package/dist/adapter/resources/texture.d.ts +10 -15
  53. package/dist/adapter/resources/texture.d.ts.map +1 -1
  54. package/dist/adapter/resources/texture.js +54 -42
  55. package/dist/adapter/resources/transform-feedback.d.ts +7 -7
  56. package/dist/adapter/resources/transform-feedback.d.ts.map +1 -1
  57. package/dist/adapter/resources/transform-feedback.js +15 -14
  58. package/dist/adapter/resources/vertex-array.d.ts +9 -9
  59. package/dist/adapter/resources/vertex-array.d.ts.map +1 -1
  60. package/dist/adapter/resources/vertex-array.js +36 -20
  61. package/dist/adapter/type-utils/decode-attribute-type.d.ts +2 -2
  62. package/dist/adapter/type-utils/decode-attribute-type.d.ts.map +1 -1
  63. package/dist/adapter/type-utils/decode-attribute-type.js +59 -52
  64. package/dist/adapter/type-utils/decode-data-type.d.ts +1 -1
  65. package/dist/adapter/type-utils/decode-data-type.d.ts.map +1 -1
  66. package/dist/adapter/type-utils/decode-data-type.js +39 -35
  67. package/dist/adapter/type-utils/decode-shader-types.d.ts +1 -1
  68. package/dist/adapter/type-utils/decode-shader-types.d.ts.map +1 -1
  69. package/dist/adapter/type-utils/decode-shader-types.js +36 -96
  70. package/dist/adapter/type-utils/decode-texture-format.d.ts +6 -2
  71. package/dist/adapter/type-utils/decode-texture-format.d.ts.map +1 -1
  72. package/dist/adapter/type-utils/decode-texture-format.js +172 -92
  73. package/dist/adapter/type-utils/decode-vertex-format.d.ts +1 -1
  74. package/dist/adapter/type-utils/decode-vertex-format.d.ts.map +1 -1
  75. package/dist/adapter/type-utils/decode-vertex-format.js +30 -22
  76. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts +2 -2
  77. package/dist/adapter/type-utils/vertex-format-from-attribute.d.ts.map +1 -1
  78. package/dist/adapter/type-utils/vertex-format-from-attribute.js +72 -65
  79. package/dist/adapter/type-utils/wgsl-utils.d.ts +1 -1
  80. package/dist/adapter/type-utils/wgsl-utils.d.ts.map +1 -1
  81. package/dist/adapter/type-utils/wgsl-utils.js +17 -13
  82. package/dist/adapter/types/accessor.d.ts +1 -1
  83. package/dist/adapter/types/accessor.d.ts.map +1 -1
  84. package/dist/adapter/types/accessor.js +3 -1
  85. package/dist/adapter/types/buffer-layout.d.ts +1 -1
  86. package/dist/adapter/types/buffer-layout.d.ts.map +1 -1
  87. package/dist/adapter/types/buffer-layout.js +3 -1
  88. package/dist/adapter/types/parameters.d.ts +28 -6
  89. package/dist/adapter/types/parameters.d.ts.map +1 -1
  90. package/dist/adapter/types/parameters.js +46 -26
  91. package/dist/adapter/types/shader-layout.d.ts +8 -7
  92. package/dist/adapter/types/shader-layout.d.ts.map +1 -1
  93. package/dist/adapter/types/shader-layout.js +3 -1
  94. package/dist/adapter/types/shader-types.d.ts.map +1 -1
  95. package/dist/adapter/types/shader-types.js +3 -1
  96. package/dist/adapter/types/texture-formats.d.ts +2 -2
  97. package/dist/adapter/types/texture-formats.d.ts.map +1 -1
  98. package/dist/adapter/types/texture-formats.js +3 -1
  99. package/dist/adapter/types/types.d.ts +4 -4
  100. package/dist/adapter/types/types.d.ts.map +1 -1
  101. package/dist/adapter/types/types.js +3 -1
  102. package/dist/adapter/types/vertex-formats.d.ts.map +1 -1
  103. package/dist/adapter/types/vertex-formats.js +3 -1
  104. package/dist/dist.dev.js +614 -406
  105. package/dist/index.cjs +344 -369
  106. package/dist/index.cjs.map +7 -0
  107. package/dist/index.d.ts +80 -76
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +19 -5
  110. package/dist/init.d.ts.map +1 -1
  111. package/dist/init.js +30 -17
  112. package/dist/lib/compiler-log/compiler-message.d.ts.map +1 -1
  113. package/dist/lib/compiler-log/compiler-message.js +3 -1
  114. package/dist/lib/compiler-log/format-compiler-log.d.ts +1 -1
  115. package/dist/lib/compiler-log/format-compiler-log.d.ts.map +1 -1
  116. package/dist/lib/compiler-log/format-compiler-log.js +69 -48
  117. package/dist/lib/compiler-log/get-shader-info.d.ts.map +1 -1
  118. package/dist/lib/compiler-log/get-shader-info.js +23 -19
  119. package/dist/lib/luma.d.ts +3 -3
  120. package/dist/lib/luma.d.ts.map +1 -1
  121. package/dist/lib/luma.js +60 -51
  122. package/dist/lib/uniforms/uniform-block.d.ts +3 -4
  123. package/dist/lib/uniforms/uniform-block.d.ts.map +1 -1
  124. package/dist/lib/uniforms/uniform-block.js +52 -42
  125. package/dist/lib/uniforms/uniform-buffer-layout.d.ts +2 -2
  126. package/dist/lib/uniforms/uniform-buffer-layout.d.ts.map +1 -1
  127. package/dist/lib/uniforms/uniform-buffer-layout.js +86 -66
  128. package/dist/lib/uniforms/uniform-store.d.ts +6 -6
  129. package/dist/lib/uniforms/uniform-store.d.ts.map +1 -1
  130. package/dist/lib/uniforms/uniform-store.js +111 -75
  131. package/dist/lib/uniforms/uniform.d.ts +2 -2
  132. package/dist/lib/uniforms/uniform.d.ts.map +1 -1
  133. package/dist/lib/uniforms/uniform.js +15 -15
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/types.js +4 -3
  136. package/dist/utils/array-equal.d.ts.map +1 -1
  137. package/dist/utils/array-equal.js +25 -22
  138. package/dist/utils/array-utils-flat.d.ts +1 -1
  139. package/dist/utils/array-utils-flat.d.ts.map +1 -1
  140. package/dist/utils/array-utils-flat.js +29 -28
  141. package/dist/utils/assert.d.ts.map +1 -1
  142. package/dist/utils/assert.js +8 -4
  143. package/dist/utils/cast.d.ts.map +1 -1
  144. package/dist/utils/cast.js +5 -2
  145. package/dist/utils/check-props.d.ts.map +1 -1
  146. package/dist/utils/check-props.js +30 -26
  147. package/dist/utils/deep-equal.d.ts.map +1 -1
  148. package/dist/utils/deep-equal.js +42 -32
  149. package/dist/utils/format-value.d.ts +1 -1
  150. package/dist/utils/format-value.d.ts.map +1 -1
  151. package/dist/utils/format-value.js +36 -39
  152. package/dist/utils/is-array.d.ts +1 -1
  153. package/dist/utils/is-array.d.ts.map +1 -1
  154. package/dist/utils/is-array.js +20 -6
  155. package/dist/utils/load-file.d.ts.map +1 -1
  156. package/dist/utils/load-file.js +63 -37
  157. package/dist/utils/log.d.ts.map +1 -1
  158. package/dist/utils/log.js +5 -4
  159. package/dist/utils/random.d.ts.map +1 -1
  160. package/dist/utils/random.js +13 -9
  161. package/dist/utils/request-animation-frame.d.ts.map +1 -1
  162. package/dist/utils/request-animation-frame.js +12 -3
  163. package/dist/utils/stats-manager.d.ts.map +1 -1
  164. package/dist/utils/stats-manager.js +16 -14
  165. package/dist/utils/stub-methods.d.ts.map +1 -1
  166. package/dist/utils/stub-methods.js +15 -12
  167. package/dist/utils/utils.d.ts +0 -6
  168. package/dist/utils/utils.d.ts.map +1 -1
  169. package/dist/utils/utils.js +21 -15
  170. package/dist.min.js +8 -23
  171. package/package.json +6 -6
  172. package/src/adapter/attribute-utils/get-attribute-from-layouts.ts +6 -5
  173. package/src/adapter/canvas-context.ts +8 -5
  174. package/src/adapter/device.ts +181 -127
  175. package/src/adapter/resources/buffer.ts +19 -6
  176. package/src/adapter/resources/command-buffer.ts +7 -5
  177. package/src/adapter/resources/command-encoder.ts +40 -29
  178. package/src/adapter/resources/compute-pass.ts +23 -9
  179. package/src/adapter/resources/compute-pipeline.ts +5 -2
  180. package/src/adapter/resources/external-texture.ts +8 -2
  181. package/src/adapter/resources/framebuffer.ts +115 -102
  182. package/src/adapter/resources/query-set.ts +41 -0
  183. package/src/adapter/resources/render-pass.ts +48 -54
  184. package/src/adapter/resources/render-pipeline.ts +22 -9
  185. package/src/adapter/resources/resource.ts +13 -10
  186. package/src/adapter/resources/sampler.ts +4 -3
  187. package/src/adapter/resources/shader.ts +19 -7
  188. package/src/adapter/resources/texture-view.ts +51 -0
  189. package/src/adapter/resources/texture.ts +28 -26
  190. package/src/adapter/resources/transform-feedback.ts +6 -3
  191. package/src/adapter/resources/vertex-array.ts +11 -3
  192. package/src/adapter/type-utils/decode-attribute-type.ts +24 -10
  193. package/src/adapter/type-utils/decode-data-type.ts +5 -1
  194. package/src/adapter/type-utils/decode-shader-types.ts +12 -9
  195. package/src/adapter/type-utils/decode-texture-format.ts +28 -12
  196. package/src/adapter/type-utils/decode-vertex-format.ts +4 -0
  197. package/src/adapter/type-utils/vertex-format-from-attribute.ts +4 -1
  198. package/src/adapter/type-utils/wgsl-utils.ts +6 -2
  199. package/src/adapter/types/accessor.ts +5 -2
  200. package/src/adapter/types/buffer-layout.ts +11 -8
  201. package/src/adapter/types/parameters.ts +98 -93
  202. package/src/adapter/types/shader-layout.ts +11 -2
  203. package/src/adapter/types/shader-types.ts +2 -1
  204. package/src/adapter/types/texture-formats.ts +130 -129
  205. package/src/adapter/types/types.ts +12 -6
  206. package/src/adapter/types/vertex-formats.ts +4 -5
  207. package/src/index.ts +30 -15
  208. package/src/init.ts +10 -4
  209. package/src/lib/compiler-log/compiler-message.ts +3 -2
  210. package/src/lib/compiler-log/format-compiler-log.ts +8 -3
  211. package/src/lib/compiler-log/get-shader-info.ts +2 -1
  212. package/src/lib/luma.ts +13 -8
  213. package/src/lib/uniforms/uniform-block.ts +7 -3
  214. package/src/lib/uniforms/uniform-buffer-layout.ts +16 -10
  215. package/src/lib/uniforms/uniform-store.ts +4 -1
  216. package/src/lib/uniforms/uniform.ts +12 -6
  217. package/src/types.ts +7 -3
  218. package/src/utils/array-equal.ts +2 -1
  219. package/src/utils/array-utils-flat.ts +9 -3
  220. package/src/utils/assert.ts +4 -0
  221. package/src/utils/cast.ts +4 -0
  222. package/src/utils/check-props.ts +9 -1
  223. package/src/utils/deep-equal.ts +4 -0
  224. package/src/utils/format-value.ts +9 -2
  225. package/src/utils/is-array.ts +4 -0
  226. package/src/utils/load-file.ts +5 -3
  227. package/src/utils/log.ts +4 -0
  228. package/src/utils/random.ts +4 -0
  229. package/src/utils/request-animation-frame.ts +4 -0
  230. package/src/utils/stats-manager.ts +6 -2
  231. package/src/utils/stub-methods.ts +10 -1
  232. package/src/utils/utils.ts +2 -10
  233. package/dist/adapter/attribute-utils/get-attribute-from-layouts.js.map +0 -1
  234. package/dist/adapter/canvas-context.js.map +0 -1
  235. package/dist/adapter/device.js.map +0 -1
  236. package/dist/adapter/resources/buffer.js.map +0 -1
  237. package/dist/adapter/resources/command-buffer.js.map +0 -1
  238. package/dist/adapter/resources/command-encoder.js.map +0 -1
  239. package/dist/adapter/resources/compute-pass.js.map +0 -1
  240. package/dist/adapter/resources/compute-pipeline.js.map +0 -1
  241. package/dist/adapter/resources/external-texture.js.map +0 -1
  242. package/dist/adapter/resources/framebuffer.js.map +0 -1
  243. package/dist/adapter/resources/render-pass.js.map +0 -1
  244. package/dist/adapter/resources/render-pipeline.js.map +0 -1
  245. package/dist/adapter/resources/resource.js.map +0 -1
  246. package/dist/adapter/resources/sampler.js.map +0 -1
  247. package/dist/adapter/resources/shader.js.map +0 -1
  248. package/dist/adapter/resources/texture.js.map +0 -1
  249. package/dist/adapter/resources/transform-feedback.js.map +0 -1
  250. package/dist/adapter/resources/vertex-array.js.map +0 -1
  251. package/dist/adapter/type-utils/decode-attribute-type.js.map +0 -1
  252. package/dist/adapter/type-utils/decode-data-type.js.map +0 -1
  253. package/dist/adapter/type-utils/decode-shader-types.js.map +0 -1
  254. package/dist/adapter/type-utils/decode-texture-format.js.map +0 -1
  255. package/dist/adapter/type-utils/decode-vertex-format.js.map +0 -1
  256. package/dist/adapter/type-utils/vertex-format-from-attribute.js.map +0 -1
  257. package/dist/adapter/type-utils/wgsl-utils.js.map +0 -1
  258. package/dist/adapter/types/accessor.js.map +0 -1
  259. package/dist/adapter/types/buffer-layout.js.map +0 -1
  260. package/dist/adapter/types/parameters.js.map +0 -1
  261. package/dist/adapter/types/shader-layout.js.map +0 -1
  262. package/dist/adapter/types/shader-types.js.map +0 -1
  263. package/dist/adapter/types/texture-formats.js.map +0 -1
  264. package/dist/adapter/types/types.js.map +0 -1
  265. package/dist/adapter/types/vertex-formats.js.map +0 -1
  266. package/dist/index.js.map +0 -1
  267. package/dist/init.js.map +0 -1
  268. package/dist/lib/compiler-log/compiler-message.js.map +0 -1
  269. package/dist/lib/compiler-log/format-compiler-log.js.map +0 -1
  270. package/dist/lib/compiler-log/get-shader-info.js.map +0 -1
  271. package/dist/lib/luma.js.map +0 -1
  272. package/dist/lib/uniforms/uniform-block.js.map +0 -1
  273. package/dist/lib/uniforms/uniform-buffer-layout.js.map +0 -1
  274. package/dist/lib/uniforms/uniform-store.js.map +0 -1
  275. package/dist/lib/uniforms/uniform.js.map +0 -1
  276. package/dist/types.js.map +0 -1
  277. package/dist/utils/array-equal.js.map +0 -1
  278. package/dist/utils/array-utils-flat.js.map +0 -1
  279. package/dist/utils/assert.js.map +0 -1
  280. package/dist/utils/cast.js.map +0 -1
  281. package/dist/utils/check-props.js.map +0 -1
  282. package/dist/utils/deep-equal.js.map +0 -1
  283. package/dist/utils/format-value.js.map +0 -1
  284. package/dist/utils/is-array.js.map +0 -1
  285. package/dist/utils/load-file.js.map +0 -1
  286. package/dist/utils/log.js.map +0 -1
  287. package/dist/utils/random.js.map +0 -1
  288. package/dist/utils/request-animation-frame.js.map +0 -1
  289. package/dist/utils/stats-manager.js.map +0 -1
  290. package/dist/utils/stub-methods.js.map +0 -1
  291. package/dist/utils/utils.js.map +0 -1
@@ -1,7 +1,7 @@
1
- import type { ShaderLayout } from '../types/shader-layout';
2
- import type { BufferLayout } from '../types/buffer-layout';
3
- import type { ShaderDataType, ShaderAttributeType } from '../types/shader-types';
4
- import type { VertexFormat, VertexType } from '../types/vertex-formats';
1
+ import type { ShaderLayout } from "../types/shader-layout.js";
2
+ import type { BufferLayout } from "../types/buffer-layout.js";
3
+ import type { ShaderDataType, ShaderAttributeType } from "../types/shader-types.js";
4
+ import type { VertexFormat, VertexType } from "../types/vertex-formats.js";
5
5
  /** Resolved info for a buffer / attribute combination to help backend configure it correctly */
6
6
  export type AttributeInfo = {
7
7
  /** Attribute name */
@@ -1 +1 @@
1
- {"version":3,"file":"get-attribute-from-layouts.d.ts","sourceRoot":"","sources":["../../../src/adapter/attribute-utils/get-attribute-from-layouts.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAuB,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAE/E,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAGtE,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,UAAU,EAAE,mBAAmB,CAAC;IAChC,+EAA+E;IAC/E,cAAc,EAAE,cAAc,CAAC;IAC/B,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,0GAA0G;IAC1G,OAAO,EAAE,OAAO,CAAC;IAEjB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,6DAA6D;IAC7D,cAAc,EAAE,UAAU,CAAC;IAC3B,iFAAiF;IACjF,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IAEpB,mHAAmH;IACnH,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEhC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAU/B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,EAC5B,mBAAmB,GAAE,MAAW,GAC/B,aAAa,EAAE,CAOjB;AAgJD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,YAAY,EACxB,cAAc,EAAE,YAAY,GAC3B,YAAY,CAiBd"}
1
+ {"version":3,"file":"get-attribute-from-layouts.d.ts","sourceRoot":"","sources":["../../../src/adapter/attribute-utils/get-attribute-from-layouts.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,YAAY,EAAuB,kCAA+B;AAC/E,OAAO,KAAK,EAAC,YAAY,EAAC,kCAA+B;AACzD,OAAO,KAAK,EAAC,cAAc,EAAE,mBAAmB,EAAC,iCAA8B;AAE/E,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAC,mCAAgC;AAGtE,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG;IAC1B,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,UAAU,EAAE,mBAAmB,CAAC;IAChC,+EAA+E;IAC/E,cAAc,EAAE,cAAc,CAAC;IAC/B,yFAAyF;IACzF,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,0GAA0G;IAC1G,OAAO,EAAE,OAAO,CAAC;IAEjB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,YAAY,EAAE,YAAY,CAAC;IAC3B,6DAA6D;IAC7D,cAAc,EAAE,UAAU,CAAC;IAC3B,iFAAiF;IACjF,gBAAgB,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,uEAAuE;IACvE,UAAU,EAAE,OAAO,CAAC;IAEpB,mHAAmH;IACnH,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAEhC,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,GAC3B,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAU/B;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAAE,EAC5B,mBAAmB,GAAE,MAAW,GAC/B,aAAa,EAAE,CAOjB;AAgJD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,YAAY,EACxB,cAAc,EAAE,YAAY,GAC3B,YAAY,CAiBd"}
@@ -1,130 +1,162 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { log } from "../../utils/log.js";
2
5
  import { decodeShaderAttributeType } from "../type-utils/decode-attribute-type.js";
3
6
  import { decodeVertexFormat } from "../type-utils/decode-vertex-format.js";
7
+ /**
8
+ * Map from "attribute names" to "resolved attribute infos"
9
+ * containing information about both buffer layouts and shader attribute declarations
10
+ */
4
11
  export function getAttributeInfosFromLayouts(shaderLayout, bufferLayout) {
5
- const attributeInfos = {};
6
- for (const attribute of shaderLayout.attributes) {
7
- attributeInfos[attribute.name] = getAttributeInfoFromLayouts(shaderLayout, bufferLayout, attribute.name);
8
- }
9
- return attributeInfos;
12
+ const attributeInfos = {};
13
+ for (const attribute of shaderLayout.attributes) {
14
+ attributeInfos[attribute.name] = getAttributeInfoFromLayouts(shaderLayout, bufferLayout, attribute.name);
15
+ }
16
+ return attributeInfos;
10
17
  }
11
- export function getAttributeInfosByLocation(shaderLayout, bufferLayout) {
12
- let maxVertexAttributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 16;
13
- const attributeInfos = getAttributeInfosFromLayouts(shaderLayout, bufferLayout);
14
- const locationInfos = new Array(maxVertexAttributes).fill(null);
15
- for (const attributeInfo of Object.values(attributeInfos)) {
16
- locationInfos[attributeInfo.location] = attributeInfo;
17
- }
18
- return locationInfos;
18
+ /**
19
+ * Array indexed by "location" holding "resolved attribute infos"
20
+ */
21
+ export function getAttributeInfosByLocation(shaderLayout, bufferLayout, maxVertexAttributes = 16) {
22
+ const attributeInfos = getAttributeInfosFromLayouts(shaderLayout, bufferLayout);
23
+ const locationInfos = new Array(maxVertexAttributes).fill(null);
24
+ for (const attributeInfo of Object.values(attributeInfos)) {
25
+ locationInfos[attributeInfo.location] = attributeInfo;
26
+ }
27
+ return locationInfos;
19
28
  }
29
+ /**
30
+ * Get the combined information from a shader layout and a buffer layout for a specific attribute
31
+ */
20
32
  function getAttributeInfoFromLayouts(shaderLayout, bufferLayout, name) {
21
- const shaderDeclaration = getAttributeFromShaderLayout(shaderLayout, name);
22
- const bufferMapping = getAttributeFromBufferLayout(bufferLayout, name);
23
- if (!shaderDeclaration) {
24
- return null;
25
- }
26
- const attributeTypeInfo = decodeShaderAttributeType(shaderDeclaration.type);
27
- const vertexFormat = (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.vertexFormat) || attributeTypeInfo.defaultVertexFormat;
28
- const vertexFormatInfo = decodeVertexFormat(vertexFormat);
29
- return {
30
- attributeName: (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.attributeName) || shaderDeclaration.name,
31
- bufferName: (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.bufferName) || shaderDeclaration.name,
32
- location: shaderDeclaration.location,
33
- shaderType: shaderDeclaration.type,
34
- shaderDataType: attributeTypeInfo.dataType,
35
- shaderComponents: attributeTypeInfo.components,
36
- vertexFormat,
37
- bufferDataType: vertexFormatInfo.type,
38
- bufferComponents: vertexFormatInfo.components,
39
- normalized: vertexFormatInfo.normalized,
40
- integer: attributeTypeInfo.integer,
41
- stepMode: (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.stepMode) || shaderDeclaration.stepMode,
42
- byteOffset: (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.byteOffset) || 0,
43
- byteStride: (bufferMapping === null || bufferMapping === void 0 ? void 0 : bufferMapping.byteStride) || 0
44
- };
33
+ const shaderDeclaration = getAttributeFromShaderLayout(shaderLayout, name);
34
+ const bufferMapping = getAttributeFromBufferLayout(bufferLayout, name);
35
+ // TODO should no longer happen
36
+ if (!shaderDeclaration) {
37
+ // || !bufferMapping
38
+ return null;
39
+ }
40
+ const attributeTypeInfo = decodeShaderAttributeType(shaderDeclaration.type);
41
+ const vertexFormat = bufferMapping?.vertexFormat || attributeTypeInfo.defaultVertexFormat;
42
+ const vertexFormatInfo = decodeVertexFormat(vertexFormat);
43
+ return {
44
+ attributeName: bufferMapping?.attributeName || shaderDeclaration.name,
45
+ bufferName: bufferMapping?.bufferName || shaderDeclaration.name,
46
+ location: shaderDeclaration.location,
47
+ shaderType: shaderDeclaration.type,
48
+ shaderDataType: attributeTypeInfo.dataType,
49
+ shaderComponents: attributeTypeInfo.components,
50
+ vertexFormat,
51
+ bufferDataType: vertexFormatInfo.type,
52
+ bufferComponents: vertexFormatInfo.components,
53
+ // normalized is a property of the buffer's vertex format
54
+ normalized: vertexFormatInfo.normalized,
55
+ // integer is a property of the shader declaration
56
+ integer: attributeTypeInfo.integer,
57
+ stepMode: bufferMapping?.stepMode || shaderDeclaration.stepMode,
58
+ byteOffset: bufferMapping?.byteOffset || 0,
59
+ byteStride: bufferMapping?.byteStride || 0
60
+ };
45
61
  }
46
62
  function getAttributeFromShaderLayout(shaderLayout, name) {
47
- const attribute = shaderLayout.attributes.find(attr => attr.name === name);
48
- if (!attribute) {
49
- log.warn(`shader layout attribute "${name}" not present in shader`);
50
- }
51
- return attribute || null;
63
+ const attribute = shaderLayout.attributes.find(attr => attr.name === name);
64
+ if (!attribute) {
65
+ log.warn(`shader layout attribute "${name}" not present in shader`);
66
+ }
67
+ return attribute || null;
52
68
  }
53
69
  function getAttributeFromBufferLayout(bufferLayouts, name) {
54
- checkBufferLayouts(bufferLayouts);
55
- let bufferLayoutInfo = getAttributeFromShortHand(bufferLayouts, name);
56
- if (bufferLayoutInfo) {
57
- return bufferLayoutInfo;
58
- }
59
- bufferLayoutInfo = getAttributeFromAttributesList(bufferLayouts, name);
60
- if (bufferLayoutInfo) {
61
- return bufferLayoutInfo;
62
- }
63
- log.warn(`layout for attribute "${name}" not present in buffer layout`);
64
- return null;
70
+ // Check that bufferLayouts are valid (each either has format or attribute)
71
+ checkBufferLayouts(bufferLayouts);
72
+ let bufferLayoutInfo = getAttributeFromShortHand(bufferLayouts, name);
73
+ if (bufferLayoutInfo) {
74
+ return bufferLayoutInfo;
75
+ }
76
+ bufferLayoutInfo = getAttributeFromAttributesList(bufferLayouts, name);
77
+ if (bufferLayoutInfo) {
78
+ return bufferLayoutInfo;
79
+ }
80
+ // Didn't find...
81
+ log.warn(`layout for attribute "${name}" not present in buffer layout`);
82
+ return null;
65
83
  }
84
+ /** Check that bufferLayouts are valid (each either has format or attribute) */
66
85
  function checkBufferLayouts(bufferLayouts) {
67
- for (const bufferLayout of bufferLayouts) {
68
- if (bufferLayout.attributes && bufferLayout.format || !bufferLayout.attributes && !bufferLayout.format) {
69
- log.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`);
86
+ for (const bufferLayout of bufferLayouts) {
87
+ if ((bufferLayout.attributes && bufferLayout.format) ||
88
+ (!bufferLayout.attributes && !bufferLayout.format)) {
89
+ log.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`);
90
+ }
70
91
  }
71
- }
72
92
  }
93
+ /** Get attribute from format shorthand if specified */
73
94
  function getAttributeFromShortHand(bufferLayouts, name) {
74
- for (const bufferLayout of bufferLayouts) {
75
- if (bufferLayout.format && bufferLayout.name === name) {
76
- return {
77
- attributeName: bufferLayout.name,
78
- bufferName: name,
79
- stepMode: bufferLayout.stepMode,
80
- vertexFormat: bufferLayout.format,
81
- byteOffset: 0,
82
- byteStride: bufferLayout.byteStride || 0
83
- };
95
+ for (const bufferLayout of bufferLayouts) {
96
+ if (bufferLayout.format && bufferLayout.name === name) {
97
+ return {
98
+ attributeName: bufferLayout.name,
99
+ bufferName: name,
100
+ stepMode: bufferLayout.stepMode,
101
+ vertexFormat: bufferLayout.format,
102
+ // If offset is needed, use `attributes` field.
103
+ byteOffset: 0,
104
+ byteStride: bufferLayout.byteStride || 0
105
+ };
106
+ }
84
107
  }
85
- }
86
- return null;
108
+ return null;
87
109
  }
110
+ /**
111
+ * Search attribute mappings (e.g. interleaved attributes) for buffer mapping.
112
+ * Not the name of the buffer might be the same as one of the interleaved attributes.
113
+ */
88
114
  function getAttributeFromAttributesList(bufferLayouts, name) {
89
- for (const bufferLayout of bufferLayouts) {
90
- var _bufferLayout$attribu;
91
- let byteStride = bufferLayout.byteStride;
92
- if (typeof bufferLayout.byteStride !== 'number') {
93
- for (const attributeMapping of bufferLayout.attributes || []) {
94
- const info = decodeVertexFormat(attributeMapping.format);
95
- byteStride += info.byteLength;
96
- }
115
+ for (const bufferLayout of bufferLayouts) {
116
+ let byteStride = bufferLayout.byteStride;
117
+ // Calculate a default byte stride if not provided
118
+ if (typeof bufferLayout.byteStride !== 'number') {
119
+ for (const attributeMapping of bufferLayout.attributes || []) {
120
+ const info = decodeVertexFormat(attributeMapping.format);
121
+ byteStride += info.byteLength;
122
+ }
123
+ }
124
+ const attributeMapping = bufferLayout.attributes?.find(mapping => mapping.attribute === name);
125
+ if (attributeMapping) {
126
+ return {
127
+ attributeName: attributeMapping.attribute,
128
+ bufferName: bufferLayout.name,
129
+ stepMode: bufferLayout.stepMode,
130
+ vertexFormat: attributeMapping.format,
131
+ byteOffset: attributeMapping.byteOffset,
132
+ byteStride
133
+ };
134
+ }
97
135
  }
98
- const attributeMapping = (_bufferLayout$attribu = bufferLayout.attributes) === null || _bufferLayout$attribu === void 0 ? void 0 : _bufferLayout$attribu.find(mapping => mapping.attribute === name);
99
- if (attributeMapping) {
100
- return {
101
- attributeName: attributeMapping.attribute,
102
- bufferName: bufferLayout.name,
103
- stepMode: bufferLayout.stepMode,
104
- vertexFormat: attributeMapping.format,
105
- byteOffset: attributeMapping.byteOffset,
106
- byteStride
107
- };
108
- }
109
- }
110
- return null;
136
+ return null;
111
137
  }
138
+ /**
139
+ * Merges an provided shader layout into a base shader layout
140
+ * In WebGL, this allows the auto generated shader layout to be overridden by the application
141
+ * Typically to change the format of the vertex attributes (from float32x4 to uint8x4 etc).
142
+ * @todo Drop this? Aren't all use cases covered by mergeBufferLayout()?
143
+ */
112
144
  export function mergeShaderLayout(baseLayout, overrideLayout) {
113
- const mergedLayout = {
114
- ...baseLayout,
115
- attributes: baseLayout.attributes.map(attribute => ({
116
- ...attribute
117
- }))
118
- };
119
- for (const attribute of (overrideLayout === null || overrideLayout === void 0 ? void 0 : overrideLayout.attributes) || []) {
120
- const baseAttribute = mergedLayout.attributes.find(attr => attr.name === attribute.name);
121
- if (!baseAttribute) {
122
- log.warn(`shader layout attribute ${attribute.name} not present in shader`);
123
- } else {
124
- baseAttribute.type = attribute.type || baseAttribute.type;
125
- baseAttribute.stepMode = attribute.stepMode || baseAttribute.stepMode;
145
+ // Deep clone the base layout
146
+ const mergedLayout = {
147
+ ...baseLayout,
148
+ attributes: baseLayout.attributes.map(attribute => ({ ...attribute }))
149
+ };
150
+ // Merge the attributes
151
+ for (const attribute of overrideLayout?.attributes || []) {
152
+ const baseAttribute = mergedLayout.attributes.find(attr => attr.name === attribute.name);
153
+ if (!baseAttribute) {
154
+ log.warn(`shader layout attribute ${attribute.name} not present in shader`);
155
+ }
156
+ else {
157
+ baseAttribute.type = attribute.type || baseAttribute.type;
158
+ baseAttribute.stepMode = attribute.stepMode || baseAttribute.stepMode;
159
+ }
126
160
  }
127
- }
128
- return mergedLayout;
161
+ return mergedLayout;
129
162
  }
130
- //# sourceMappingURL=get-attribute-from-layouts.js.map
@@ -1,5 +1,5 @@
1
- import type { Device } from './device';
2
- import type { Framebuffer } from './resources/framebuffer';
1
+ import type { Device } from "./device.js";
2
+ import type { Framebuffer } from "./resources/framebuffer.js";
3
3
  /** Properties for a CanvasContext */
4
4
  export type CanvasContextProps = {
5
5
  /** If canvas not supplied, will be created and added to the DOM. If string, will be looked up in the DOM */
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"canvas-context.d.ts","sourceRoot":"","sources":["../../src/adapter/canvas-context.ts"],"names":[],"mappings":"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"}