@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
@@ -1,42 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {TextureFormat} from './texture-formats';
6
- import {VertexType} from './vertex-formats';
7
-
8
- /** Information about the structure of a texture format */
9
- export type TextureFormatInfo = {
10
- /** The format that is described */
11
- format: TextureFormat;
12
- /** Color or depth stencil attachment formats */
13
- attachment?: 'color' | 'depth' | 'stencil' | 'depth-stencil';
14
- /** String describing which channels this texture has */
15
- channels: 'r' | 'rg' | 'rgb' | 'rgba' | 'bgra';
16
- /** Number of components (corresponds to channels string) */
17
- components: 1 | 2 | 3 | 4;
18
- /** What is the data type of each component */
19
- dataType?: VertexType;
20
- /** If this is a packed data type */
21
- packed?: boolean;
22
- /** Number of bytes per pixel */
23
- bytesPerPixel?: number;
24
- /** Number of bits per channel (may be unreliable for packed formats) */
25
- bitsPerChannel: [number, number, number, number];
26
- /** SRGB texture format? */
27
- srgb?: boolean;
28
- /** WebGL specific texture format? */
29
- webgl?: boolean;
30
- /** Is this an integer or floating point format? */
31
- integer: boolean;
32
- /** Is this a signed or unsigned format? */
33
- signed: boolean;
34
- /** Is this a normalized integer format? */
35
- normalized: boolean;
36
- /** Is this a compressed texture format */
37
- compressed?: boolean;
38
- /** Compressed formats only: Block size for ASTC formats (texture width must be a multiple of this value) */
39
- blockWidth?: number;
40
- /** Compressed formats only: Block size for ASTC formats (texture height must be a multiple of this value) */
41
- blockHeight?: number;
42
- };
@@ -1,161 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /** Texture formats */
6
- export type TextureFormat = ColorTextureFormat | DepthStencilTextureFormat;
7
-
8
- /** Depth and stencil texture formats */
9
- export type DepthStencilTextureFormat =
10
- | 'stencil8'
11
- | 'depth16unorm'
12
- | 'depth24plus'
13
- | 'depth24plus-stencil8'
14
- | 'depth32float'
15
- // device.features.has('depth32float-stencil8')
16
- | 'depth32float-stencil8';
17
-
18
- /** Texture formats for color attachments */
19
- export type ColorTextureFormat =
20
- | WebGPUColorTextureFormat
21
- | WebGL2ColorTextureFormat
22
- | CompressedTextureFormat;
23
-
24
- export type WebGPUColorTextureFormat =
25
- // 8-bit formats
26
- | 'r8unorm'
27
- | 'r8snorm'
28
- | 'r8uint'
29
- | 'r8sint'
30
-
31
- // 16-bit formats
32
- | 'r16uint'
33
- | 'r16sint'
34
- | 'r16float'
35
- | 'rg8unorm'
36
- | 'rg8snorm'
37
- | 'rg8uint'
38
- | 'rg8sint'
39
-
40
- // 32-bit formats
41
- | 'r32uint'
42
- | 'r32sint'
43
- | 'r32float'
44
- | 'rg16uint'
45
- | 'rg16sint'
46
- | 'rg16float'
47
- | 'rgba8unorm'
48
- | 'rgba8unorm-srgb'
49
- | 'rgba8snorm'
50
- | 'rgba8uint'
51
- | 'rgba8sint'
52
- | 'bgra8unorm'
53
- | 'bgra8unorm-srgb'
54
- // Packed 32-bit formats
55
- | 'rgb9e5ufloat'
56
- | 'rgb10a2unorm'
57
- | 'rg11b10ufloat'
58
-
59
- // 64-bit formats
60
- | 'rg32uint'
61
- | 'rg32sint'
62
- | 'rg32float'
63
- | 'rgba16uint'
64
- | 'rgba16sint'
65
- | 'rgba16float'
66
-
67
- // 128-bit formats
68
- | 'rgba32uint'
69
- | 'rgba32sint'
70
- | 'rgba32float';
71
-
72
- export type CompressedTextureFormat =
73
- // BC compressed formats usable if 'texture-compression-bc' is both
74
- // supported by the device/user agent and enabled in requestDevice.
75
- | 'bc1-rgba-unorm'
76
- | 'bc1-rgba-unorm-srgb'
77
- | 'bc2-rgba-unorm'
78
- | 'bc2-rgba-unorm-srgb'
79
- | 'bc3-rgba-unorm'
80
- | 'bc3-rgba-unorm-srgb'
81
- | 'bc4-r-unorm'
82
- | 'bc4-r-snorm'
83
- | 'bc5-rg-unorm'
84
- | 'bc5-rg-snorm'
85
- | 'bc6h-rgb-ufloat'
86
- | 'bc6h-rgb-float'
87
- | 'bc7-rgba-unorm'
88
- | 'bc7-rgba-unorm-srgb'
89
-
90
- // ETC2 compressed formats usable if "texture-compression-etc2" is both
91
- // supported by the device/user agent and enabled in requestDevice.
92
- | 'etc2-rgb8unorm'
93
- | 'etc2-rgb8unorm-srgb'
94
- | 'etc2-rgb8a1unorm'
95
- | 'etc2-rgb8a1unorm-srgb'
96
- | 'etc2-rgba8unorm'
97
- | 'etc2-rgba8unorm-srgb'
98
- | 'eac-r11unorm'
99
- | 'eac-r11snorm'
100
- | 'eac-rg11unorm'
101
- | 'eac-rg11snorm'
102
-
103
- // ASTC compressed formats usable if "texture-compression-astc" is both
104
- // supported by the device/user agent and enabled in requestDevice.
105
- // Textures must be multiple of block size (encoded in format string).
106
- | 'astc-4x4-unorm'
107
- | 'astc-4x4-unorm-srgb'
108
- | 'astc-5x4-unorm'
109
- | 'astc-5x4-unorm-srgb'
110
- | 'astc-5x5-unorm'
111
- | 'astc-5x5-unorm-srgb'
112
- | 'astc-6x5-unorm'
113
- | 'astc-6x5-unorm-srgb'
114
- | 'astc-6x6-unorm'
115
- | 'astc-6x6-unorm-srgb'
116
- | 'astc-8x5-unorm'
117
- | 'astc-8x5-unorm-srgb'
118
- | 'astc-8x6-unorm'
119
- | 'astc-8x6-unorm-srgb'
120
- | 'astc-8x8-unorm'
121
- | 'astc-8x8-unorm-srgb'
122
- | 'astc-10x5-unorm'
123
- | 'astc-10x5-unorm-srgb'
124
- | 'astc-10x6-unorm'
125
- | 'astc-10x6-unorm-srgb'
126
- | 'astc-10x8-unorm'
127
- | 'astc-10x8-unorm-srgb'
128
- | 'astc-10x10-unorm'
129
- | 'astc-10x10-unorm-srgb'
130
- | 'astc-12x10-unorm'
131
- | 'astc-12x10-unorm-srgb'
132
- | 'astc-12x12-unorm'
133
- | 'astc-12x12-unorm-srgb';
134
-
135
- /** Sized formats in WebGL 2 that are not (yet?) supported by WebGPU */
136
- export type WebGL2ColorTextureFormat =
137
- | 'r16unorm-webgl'
138
- | 'r16snorm-webgl'
139
- | 'rgba4unorm-webgl'
140
- | 'rgb565unorm-webgl'
141
- | 'rgb5a1unorm-webgl'
142
- | 'rgb8unorm-webgl'
143
- | 'rgb8snorm-webgl'
144
- | 'rg16unorm-webgl'
145
- | 'rg16snorm-webgl'
146
- | 'rgb10a2uint-webgl'
147
- | 'rgb16unorm-webgl'
148
- | 'rgb16snorm-webgl'
149
- | 'rgba16unorm-webgl'
150
- | 'rgba16snorm-webgl'
151
- | 'rgb32float-webgl'
152
- | 'bc1-rgb-unorm-webgl'
153
- | 'bc1-rgb-unorm-srgb-webgl'
154
- | 'pvrtc-rgb4unorm-webgl'
155
- | 'pvrtc-rgba4unorm-webgl'
156
- | 'pvrtc-rbg2unorm-webgl'
157
- | 'pvrtc-rgba2unorm-webgl'
158
- | 'etc1-rbg-unorm-webgl'
159
- | 'atc-rgb-unorm-webgl'
160
- | 'atc-rgba-unorm-webgl'
161
- | 'atc-rgbai-unorm-webgl';
@@ -1,114 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {TypedArray, TypedArrayConstructor} from '../types';
6
- import {VertexFormat} from './vertex-formats';
7
-
8
- // import {DataType} from '../types/vertex-formats';
9
- // type Omit<DataType, 'float16'> unfortunately breaks Typescript inferance
10
- type DataType = 'uint8' | 'sint8' | 'uint16' | 'sint16' | 'uint32' | 'sint32' | 'float32';
11
- type DataTypeNorm = 'unorm8' | 'snorm8' | 'unorm16' | 'snorm16';
12
-
13
- export function getDataTypeFromTypedArray(
14
- arrayOrType: TypedArray | TypedArrayConstructor
15
- ): DataType {
16
- const type = ArrayBuffer.isView(arrayOrType) ? arrayOrType.constructor : arrayOrType;
17
- switch (type) {
18
- case Float32Array:
19
- return 'float32';
20
- case Uint16Array:
21
- return 'uint16';
22
- case Uint32Array:
23
- return 'uint32';
24
- case Uint8Array:
25
- case Uint8ClampedArray:
26
- return 'uint8';
27
- case Int8Array:
28
- return 'sint8';
29
- case Int16Array:
30
- return 'sint16';
31
- case Int32Array:
32
- return 'sint32';
33
- default:
34
- // Failed to deduce data type from typed array
35
- throw new Error(type.constructor.name);
36
- }
37
- }
38
-
39
- export function getTypedArrayFromDataType(
40
- dataType: DataType | DataTypeNorm
41
- ): TypedArrayConstructor {
42
- switch (dataType) {
43
- case 'float32':
44
- return Float32Array;
45
- case 'uint32':
46
- return Uint32Array;
47
- case 'sint32':
48
- return Int32Array;
49
- case 'uint16':
50
- case 'unorm16':
51
- return Uint16Array;
52
- case 'sint16':
53
- case 'snorm16':
54
- return Int16Array;
55
- case 'uint8':
56
- case 'unorm8':
57
- return Uint8Array;
58
- case 'sint8':
59
- case 'snorm8':
60
- return Int8Array;
61
- default:
62
- // Failed to deduce typed array from data type
63
- throw new Error(dataType);
64
- }
65
- }
66
-
67
- /** Get the vertex format for an attribute with TypedArray and size */
68
- export function getVertexFormatFromAttribute(
69
- typedArray: TypedArray,
70
- size: number,
71
- normalized?: boolean
72
- ): VertexFormat {
73
- if (!size || size > 4) {
74
- throw new Error(`size ${size}`);
75
- }
76
-
77
- const components = size as 1 | 2 | 3 | 4;
78
- let dataType: DataType | DataTypeNorm = getDataTypeFromTypedArray(typedArray);
79
-
80
- // TODO - Special cases for WebGL (not supported on WebGPU), overrides the check below
81
- if (dataType === 'uint8' && normalized && components === 1) {
82
- return 'unorm8-webgl';
83
- }
84
- if (dataType === 'uint8' && normalized && components === 3) {
85
- return 'unorm8x3-webgl';
86
- }
87
-
88
- if (dataType === 'uint8' || dataType === 'sint8') {
89
- if (components === 1 || components === 3) {
90
- // WebGPU 8 bit formats must be aligned to 16 bit boundaries');
91
- throw new Error(`size: ${size}`);
92
- }
93
- if (normalized) {
94
- dataType = dataType.replace('int', 'norm') as 'unorm8' | 'snorm8';
95
- }
96
- return `${dataType}x${components}`;
97
- }
98
- if (dataType === 'uint16' || dataType === 'sint16') {
99
- if (components === 1 || components === 3) {
100
- // WebGPU 16 bit formats must be aligned to 32 bit boundaries
101
- throw new Error(`size: ${size}`);
102
- }
103
- if (normalized) {
104
- dataType = dataType.replace('int', 'norm') as 'unorm16' | 'snorm16';
105
- }
106
- return `${dataType}x${components}`;
107
- }
108
-
109
- if (components === 1) {
110
- return dataType;
111
- }
112
-
113
- return `${dataType}x${components}`;
114
- }
@@ -1,90 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- /** Basic data types signed and unsigned integers, and floats, of varying sizes */
6
- export type DataType =
7
- | 'uint8'
8
- | 'sint8'
9
- | 'uint16'
10
- | 'sint16'
11
- | 'uint32'
12
- | 'sint32'
13
- | 'float16'
14
- | 'float32';
15
-
16
- /** Vertex and Pixel data types. Include normalized integers */
17
- export type NormalizedDataType =
18
- | 'uint8'
19
- | 'sint8'
20
- | 'unorm8'
21
- | 'snorm8'
22
- | 'uint16'
23
- | 'sint16'
24
- | 'unorm16'
25
- | 'snorm16'
26
- | 'uint32'
27
- | 'sint32'
28
- // WebGPU does not support normalized 32 bit integer attributes...
29
- // | 'unorm32'
30
- // | 'snorm32'
31
- | 'float32'
32
- | 'float16';
33
-
34
- /** Describes the type (without number of components) of a vertex format */
35
- export type VertexType = NormalizedDataType;
36
-
37
- /**
38
- * Describes the memory format of a buffer that will be supplied to vertex attributes
39
- * @note Must be compatible with the ShaderAttributeType of the shaders, see documentation.
40
- * @note This is a superset of WebGPU vertex formats to allow foe some flexibility for WebGL only applications
41
- * @todo Add device.isTextureFormatSupported() method?
42
- */
43
- export type VertexFormat =
44
- // 8 bit integers, note that only 16 bit aligned formats are supported in WebGPU (x2 and x4)
45
- | 'uint8x2'
46
- | 'uint8x4'
47
- | 'sint8x2'
48
- | 'sint8x4'
49
- | 'unorm8-webgl'
50
- | 'unorm8x2'
51
- | 'unorm8x3-webgl'
52
- | 'unorm8x4'
53
- | 'snorm8-webgl'
54
- | 'snorm8x2'
55
- | 'snorm8x3-webgl'
56
- | 'snorm8x4'
57
- // 16 bit integers, note that only 32 bit aligned formats are supported in WebGPU (x2 and x4)
58
- | 'uint16x2'
59
- | 'uint16x4'
60
- | 'sint16x2'
61
- | 'sint16x4'
62
- | 'unorm16x2'
63
- | 'unorm16x4'
64
- | 'snorm16x2'
65
- | 'snorm16x4'
66
- // 32 bit integers
67
- | 'uint32'
68
- | 'uint32x2'
69
- | 'uint32x3'
70
- | 'uint32x4'
71
- | 'sint32'
72
- | 'sint32x2'
73
- | 'sint32x3'
74
- | 'sint32x4'
75
- // No normalized 32 bit integers in WebGPU...
76
- // | 'unorm32'
77
- // | 'unorm32x2'
78
- // | 'unorm32x3'
79
- // | 'unorm32x4'
80
- // | 'snorm32'
81
- // | 'snorm32x2'
82
- // | 'snorm32x3'
83
- // | 'snorm32x4'
84
- // floats
85
- | 'float16x2'
86
- | 'float16x4'
87
- | 'float32'
88
- | 'float32x2'
89
- | 'float32x3'
90
- | 'float32x4';
@@ -1,22 +0,0 @@
1
- // luma.gl
2
- // SPDX-License-Identifier: MIT
3
- // Copyright (c) vis.gl contributors
4
-
5
- import {ShaderAttributeType} from './shader-types';
6
-
7
- /** Predeclared aliases @see https://www.w3.org/TR/WGSL/#vector-types */
8
- export const WGSL_TYPE_ALIAS_MAP: Record<string, ShaderAttributeType> = {
9
- vec2i: 'vec2<i32>',
10
- vec3i: 'vec3<i32>',
11
- vec4i: 'vec4<i32>',
12
- vec2u: 'vec2<u32>',
13
- vec3u: 'vec3<u32>',
14
- vec4u: 'vec4<u32>',
15
- vec2f: 'vec2<f32>',
16
- vec3f: 'vec3<f32>',
17
- vec4f: 'vec4<f32>',
18
- // Requires the f16 extension.
19
- vec2h: 'vec2<f16>',
20
- vec3h: 'vec3<f16>',
21
- vec4h: 'vec4<f16>'
22
- };