typegpu 0.11.9 → 0.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/bin.mjs +28 -6
  2. package/builtin.d.ts +51 -53
  3. package/builtin.js +30 -34
  4. package/common/fullScreenTriangle.d.ts +2 -10
  5. package/common/fullScreenTriangle.js +20 -28
  6. package/common/index.d.ts +2 -9
  7. package/common/index.js +3 -12
  8. package/common/writeSoA.d.ts +11 -12
  9. package/common/writeSoA.js +88 -76
  10. package/core/buffer/buffer.d.ts +79 -62
  11. package/core/buffer/buffer.js +283 -205
  12. package/core/buffer/bufferBinding.d.ts +71 -0
  13. package/core/buffer/bufferBinding.js +154 -0
  14. package/core/buffer/bufferUsage.d.ts +14 -45
  15. package/core/buffer/bufferUsage.js +1 -171
  16. package/core/buffer/laidOutBuffer.d.ts +25 -0
  17. package/core/buffer/laidOutBuffer.js +55 -0
  18. package/core/commandEncoder/attachments.d.ts +125 -0
  19. package/core/commandEncoder/attachments.js +29 -0
  20. package/core/commandEncoder/commandEncoder.d.ts +53 -0
  21. package/core/commandEncoder/commandEncoder.js +56 -0
  22. package/core/commandEncoder/computePass.d.ts +58 -0
  23. package/core/commandEncoder/computePass.js +63 -0
  24. package/core/commandEncoder/renderPass.d.ts +121 -0
  25. package/core/commandEncoder/renderPass.js +196 -0
  26. package/core/constant/tgpuConstant.d.ts +26 -26
  27. package/core/constant/tgpuConstant.js +76 -65
  28. package/core/declare/tgpuDeclare.d.ts +3 -6
  29. package/core/declare/tgpuDeclare.js +36 -36
  30. package/core/function/autoIO.d.ts +61 -33
  31. package/core/function/autoIO.js +68 -73
  32. package/core/function/comptime.d.ts +11 -13
  33. package/core/function/comptime.js +60 -52
  34. package/core/function/createCallableSchema.d.ts +16 -0
  35. package/core/function/createCallableSchema.js +50 -40
  36. package/core/function/dualImpl.d.ts +44 -0
  37. package/core/function/dualImpl.js +71 -50
  38. package/core/function/entryInputRouter.d.ts +26 -0
  39. package/core/function/entryInputRouter.js +31 -33
  40. package/core/function/extractArgs.d.ts +38 -0
  41. package/core/function/extractArgs.js +202 -200
  42. package/core/function/fnCore.d.ts +44 -5
  43. package/core/function/fnCore.js +148 -93
  44. package/core/function/fnTypes.d.ts +31 -29
  45. package/core/function/fnTypes.js +1 -0
  46. package/core/function/ioSchema.d.ts +12 -10
  47. package/core/function/ioSchema.js +65 -47
  48. package/core/function/shelllessImpl.d.ts +9 -12
  49. package/core/function/shelllessImpl.js +17 -22
  50. package/core/function/templateUtils.d.ts +2 -0
  51. package/core/function/templateUtils.js +9 -8
  52. package/core/function/tgpuComputeFn.d.ts +26 -28
  53. package/core/function/tgpuComputeFn.js +47 -48
  54. package/core/function/tgpuFn.d.ts +34 -37
  55. package/core/function/tgpuFn.js +179 -153
  56. package/core/function/tgpuFragmentFn.d.ts +52 -53
  57. package/core/function/tgpuFragmentFn.js +63 -56
  58. package/core/function/tgpuVertexFn.d.ts +36 -39
  59. package/core/function/tgpuVertexFn.js +56 -53
  60. package/core/pipeline/computePipeline.d.ts +141 -53
  61. package/core/pipeline/computePipeline.js +291 -225
  62. package/core/pipeline/connectAttachmentToShader.d.ts +4 -0
  63. package/core/pipeline/connectAttachmentToShader.js +25 -22
  64. package/core/pipeline/connectTargetsToShader.d.ts +3 -0
  65. package/core/pipeline/connectTargetsToShader.js +29 -27
  66. package/core/pipeline/drawState.d.ts +52 -0
  67. package/core/pipeline/drawState.js +225 -0
  68. package/core/pipeline/performanceTracker.d.ts +14 -0
  69. package/core/pipeline/performanceTracker.js +34 -0
  70. package/core/pipeline/pipelineUtils.d.ts +18 -0
  71. package/core/pipeline/pipelineUtils.js +54 -25
  72. package/core/pipeline/priors.d.ts +1 -0
  73. package/core/pipeline/priors.js +12 -0
  74. package/core/pipeline/renderPipeline.d.ts +246 -261
  75. package/core/pipeline/renderPipeline.js +487 -480
  76. package/core/pipeline/timeable.d.ts +28 -18
  77. package/core/pipeline/timeable.js +90 -52
  78. package/core/pipeline/typeGuards.d.ts +17 -0
  79. package/core/pipeline/typeGuards.js +52 -22
  80. package/core/pipeline/webgpuLimitations.d.ts +10 -0
  81. package/core/pipeline/webgpuLimitations.js +81 -0
  82. package/core/querySet/querySet.d.ts +26 -21
  83. package/core/querySet/querySet.js +127 -103
  84. package/core/rawCodeSnippet/tgpuRawCodeSnippet.d.ts +13 -18
  85. package/core/rawCodeSnippet/tgpuRawCodeSnippet.js +89 -90
  86. package/core/resolve/externals.d.ts +25 -8
  87. package/core/resolve/externals.js +78 -54
  88. package/core/resolve/namespace.d.ts +22 -25
  89. package/core/resolve/namespace.js +16 -21
  90. package/core/resolve/resolvableString.d.ts +7 -0
  91. package/core/resolve/resolvableString.js +13 -0
  92. package/core/resolve/resolveData.d.ts +10 -0
  93. package/core/resolve/resolveData.js +162 -121
  94. package/core/resolve/stitch.d.ts +8 -0
  95. package/core/resolve/stitch.js +23 -21
  96. package/core/resolve/tgpuResolve.d.ts +55 -53
  97. package/core/resolve/tgpuResolve.js +106 -53
  98. package/core/root/configurableImpl.d.ts +10 -0
  99. package/core/root/configurableImpl.js +17 -19
  100. package/core/root/init.d.ts +76 -38
  101. package/core/root/init.js +346 -455
  102. package/core/root/rootTypes.d.ts +461 -636
  103. package/core/root/rootTypes.js +1 -0
  104. package/core/sampler/sampler.d.ts +50 -31
  105. package/core/sampler/sampler.js +120 -113
  106. package/core/simulate/tgpuSimulate.d.ts +9 -12
  107. package/core/simulate/tgpuSimulate.js +68 -71
  108. package/core/slot/accessor.d.ts +36 -13
  109. package/core/slot/accessor.js +138 -91
  110. package/core/slot/internalSlots.d.ts +2 -0
  111. package/core/slot/internalSlots.js +1 -6
  112. package/core/slot/lazy.d.ts +2 -6
  113. package/core/slot/lazy.js +71 -39
  114. package/core/slot/slot.d.ts +2 -6
  115. package/core/slot/slot.js +45 -38
  116. package/core/slot/slotTypes.d.ts +78 -80
  117. package/core/slot/slotTypes.js +11 -16
  118. package/core/texture/externalTexture.d.ts +20 -11
  119. package/core/texture/externalTexture.js +46 -46
  120. package/core/texture/texture.d.ts +152 -97
  121. package/core/texture/texture.js +407 -314
  122. package/core/texture/textureFormats.d.ts +42 -23
  123. package/core/texture/textureFormats.js +104 -75
  124. package/core/texture/textureProps.d.ts +7 -10
  125. package/core/texture/textureProps.js +1 -0
  126. package/core/texture/textureUtils.d.ts +8 -0
  127. package/core/texture/textureUtils.js +185 -179
  128. package/core/texture/usageExtension.d.ts +21 -18
  129. package/core/texture/usageExtension.js +13 -17
  130. package/core/unroll/tgpuUnroll.d.ts +20 -19
  131. package/core/unroll/tgpuUnroll.js +82 -91
  132. package/core/valueProxyUtils.d.ts +3 -0
  133. package/core/valueProxyUtils.js +52 -41
  134. package/core/variable/tgpuVariable.d.ts +26 -27
  135. package/core/variable/tgpuVariable.js +93 -96
  136. package/core/vertexLayout/connectAttributesToShader.d.ts +9 -0
  137. package/core/vertexLayout/connectAttributesToShader.js +61 -56
  138. package/core/vertexLayout/vertexAttribute.d.ts +21 -17
  139. package/core/vertexLayout/vertexAttribute.js +1 -0
  140. package/core/vertexLayout/vertexLayout.d.ts +24 -18
  141. package/core/vertexLayout/vertexLayout.js +130 -99
  142. package/core/whitespaces.d.ts +2 -0
  143. package/core/whitespaces.js +16 -0
  144. package/data/alignIO.d.ts +7 -0
  145. package/data/alignIO.js +13 -13
  146. package/data/alignmentOf.d.ts +5 -8
  147. package/data/alignmentOf.js +90 -75
  148. package/data/array.d.ts +17 -9
  149. package/data/array.js +57 -40
  150. package/data/atomic.d.ts +2 -7
  151. package/data/atomic.js +26 -23
  152. package/data/attributes.d.ts +19 -21
  153. package/data/attributes.js +192 -132
  154. package/data/autoStruct.d.ts +36 -3
  155. package/data/autoStruct.js +84 -81
  156. package/data/compiledIO.d.ts +5 -0
  157. package/data/compiledIO.js +231 -215
  158. package/data/dataIO.d.ts +13 -11
  159. package/data/dataIO.js +643 -589
  160. package/data/dataTypes.d.ts +83 -65
  161. package/data/dataTypes.js +66 -68
  162. package/data/deepEqual.d.ts +2 -7
  163. package/data/deepEqual.js +80 -55
  164. package/data/disarray.d.ts +6 -10
  165. package/data/disarray.js +52 -46
  166. package/data/float16Conversion.d.ts +4 -0
  167. package/data/float16Conversion.js +7 -0
  168. package/data/generalizeFn.d.ts +25 -0
  169. package/data/generalizeFn.js +89 -0
  170. package/data/getLongestContiguousPrefix.d.ts +4 -8
  171. package/data/getLongestContiguousPrefix.js +6 -11
  172. package/data/index.d.ts +30 -31
  173. package/data/index.js +39 -172
  174. package/data/instanceToSchema.d.ts +24 -27
  175. package/data/instanceToSchema.js +1 -0
  176. package/data/isContiguous.d.ts +4 -8
  177. package/data/isContiguous.js +6 -11
  178. package/data/matrix.d.ts +21 -21
  179. package/data/matrix.js +513 -505
  180. package/data/numberOps.d.ts +5 -0
  181. package/data/numberOps.js +21 -21
  182. package/data/numeric.d.ts +21 -12
  183. package/data/numeric.js +287 -197
  184. package/data/offsetUtils.d.ts +9 -13
  185. package/data/offsetUtils.js +204 -144
  186. package/data/offsets.d.ts +8 -0
  187. package/data/offsets.js +33 -33
  188. package/data/partialIO.d.ts +13 -8
  189. package/data/partialIO.js +124 -113
  190. package/data/ptr.d.ts +12 -12
  191. package/data/ptr.js +42 -44
  192. package/data/ref.d.ts +40 -27
  193. package/data/ref.js +125 -95
  194. package/data/sampler.d.ts +99 -101
  195. package/data/sampler.js +17 -21
  196. package/data/schemaCallWrapper.d.ts +19 -0
  197. package/data/schemaCallWrapper.js +31 -26
  198. package/data/schemaMemoryLayout.d.ts +8 -0
  199. package/data/schemaMemoryLayout.js +213 -185
  200. package/data/sizeOf.d.ts +4 -8
  201. package/data/sizeOf.js +6 -11
  202. package/data/snippet.d.ts +96 -20
  203. package/data/snippet.js +75 -86
  204. package/data/struct.d.ts +4 -7
  205. package/data/struct.js +51 -39
  206. package/data/texture.d.ts +253 -250
  207. package/data/texture.js +238 -200
  208. package/data/unstruct.d.ts +2 -7
  209. package/data/unstruct.js +43 -37
  210. package/data/vector.d.ts +33 -21
  211. package/data/vector.js +234 -221
  212. package/data/vectorImpl.d.ts +231 -0
  213. package/data/vectorImpl.js +563 -515
  214. package/data/vectorOps.d.ts +25 -0
  215. package/data/vectorOps.js +118 -669
  216. package/data/vertexFormatData.d.ts +181 -184
  217. package/data/vertexFormatData.js +104 -106
  218. package/data/wgslTypes.d.ts +665 -600
  219. package/data/wgslTypes.js +220 -198
  220. package/errors.d.ts +50 -24
  221. package/errors.js +146 -126
  222. package/execMode.d.ts +16 -0
  223. package/execMode.js +47 -40
  224. package/extension.d.ts +13 -8
  225. package/extension.js +10 -16
  226. package/getGPUValue.d.ts +1 -0
  227. package/getGPUValue.js +2 -7
  228. package/index.d.ts +28 -68
  229. package/index.js +8 -28
  230. package/indexNamedExports.d.ts +69 -42
  231. package/indexNamedExports.js +25 -0
  232. package/internal.d.ts +16 -0
  233. package/internal.js +12 -0
  234. package/mathUtils.d.ts +5 -0
  235. package/mathUtils.js +7 -11
  236. package/memo.d.ts +11 -0
  237. package/memo.js +20 -22
  238. package/minify.d.ts +5 -0
  239. package/minify.js +93 -0
  240. package/nameUtils.d.ts +29 -0
  241. package/nameUtils.js +427 -394
  242. package/package.json +5 -1
  243. package/resolutionCtx.d.ts +162 -22
  244. package/resolutionCtx.js +911 -629
  245. package/serial/registry.d.ts +15 -0
  246. package/serial/registry.js +106 -0
  247. package/serial/restore.d.ts +49 -0
  248. package/serial/restore.js +68 -0
  249. package/serial/schema.d.ts +58 -0
  250. package/serial/schema.js +209 -0
  251. package/serial/types.d.ts +5 -0
  252. package/serial/types.js +1 -0
  253. package/shared/env.d.ts +9 -0
  254. package/shared/env.js +9 -12
  255. package/shared/generators.d.ts +4 -0
  256. package/shared/generators.js +10 -12
  257. package/shared/meta.d.ts +29 -14
  258. package/shared/meta.js +71 -55
  259. package/shared/normalizeMetadata.d.ts +32 -27
  260. package/shared/normalizeMetadata.js +23 -36
  261. package/shared/repr.d.ts +73 -55
  262. package/shared/repr.js +1 -0
  263. package/shared/soul.d.ts +17 -0
  264. package/shared/soul.js +1 -0
  265. package/shared/stringify.d.ts +2 -0
  266. package/shared/stringify.js +29 -20
  267. package/shared/symbols.d.ts +26 -20
  268. package/shared/symbols.js +79 -79
  269. package/shared/tseynit.d.ts +2 -0
  270. package/shared/tseynit.js +160 -75
  271. package/shared/utilityTypes.d.ts +30 -14
  272. package/shared/utilityTypes.js +2 -6
  273. package/shared/vertexFormat.d.ts +41 -43
  274. package/shared/vertexFormat.js +59 -62
  275. package/std/array.d.ts +2 -7
  276. package/std/array.js +18 -23
  277. package/std/atomic.d.ts +14 -18
  278. package/std/atomic.js +96 -95
  279. package/std/bitcast.d.ts +193 -10
  280. package/std/bitcast.js +309 -39
  281. package/std/boolean.d.ts +19 -33
  282. package/std/boolean.js +296 -292
  283. package/std/copy.d.ts +2 -7
  284. package/std/copy.js +27 -24
  285. package/std/derivative.d.ts +11 -15
  286. package/std/derivative.js +56 -79
  287. package/std/discard.d.ts +1 -6
  288. package/std/discard.js +7 -14
  289. package/std/environment.d.ts +19 -14
  290. package/std/environment.js +71 -51
  291. package/std/extensions.d.ts +2 -8
  292. package/std/extensions.js +10 -11
  293. package/std/index.d.ts +20 -24
  294. package/std/index.js +32 -187
  295. package/std/matrix.d.ts +6 -12
  296. package/std/matrix.js +60 -69
  297. package/std/numeric.d.ts +150 -146
  298. package/std/numeric.js +771 -727
  299. package/std/operators.d.ts +19 -27
  300. package/std/operators.js +195 -194
  301. package/std/packing.d.ts +5 -11
  302. package/std/packing.js +67 -75
  303. package/std/range.d.ts +6 -11
  304. package/std/range.js +48 -36
  305. package/std/subgroup.d.ts +33 -37
  306. package/std/subgroup.js +180 -217
  307. package/std/texture.d.ts +70 -38
  308. package/std/texture.js +176 -172
  309. package/taskQueue.d.ts +6 -0
  310. package/taskQueue.js +30 -0
  311. package/tgpu.d.ts +16 -0
  312. package/tgpu.js +17 -44
  313. package/tgpuBindGroupLayout.d.ts +132 -152
  314. package/tgpuBindGroupLayout.js +346 -268
  315. package/tgpuLogger.d.ts +34 -0
  316. package/tgpuLogger.js +64 -0
  317. package/tgpuUnstable.d.ts +16 -22
  318. package/tgpuUnstable.js +13 -35
  319. package/tgsl/accessIndex.d.ts +2 -0
  320. package/tgsl/accessIndex.js +76 -33
  321. package/tgsl/accessProp.d.ts +2 -0
  322. package/tgsl/accessProp.js +142 -101
  323. package/tgsl/accessStructProp.d.ts +5 -0
  324. package/tgsl/accessStructProp.js +13 -15
  325. package/tgsl/consoleLog/deserializers.d.ts +13 -0
  326. package/tgsl/consoleLog/deserializers.js +119 -103
  327. package/tgsl/consoleLog/logGenerator.d.ts +21 -0
  328. package/tgsl/consoleLog/logGenerator.js +85 -80
  329. package/tgsl/consoleLog/serializers.d.ts +21 -0
  330. package/tgsl/consoleLog/serializers.js +119 -100
  331. package/tgsl/consoleLog/types.d.ts +40 -39
  332. package/tgsl/consoleLog/types.js +1 -0
  333. package/tgsl/conversion.d.ts +33 -0
  334. package/tgsl/conversion.js +271 -216
  335. package/tgsl/forOfUtils.d.ts +15 -0
  336. package/tgsl/forOfUtils.js +85 -70
  337. package/tgsl/generationHelpers.d.ts +22 -39
  338. package/tgsl/generationHelpers.js +85 -58
  339. package/tgsl/infixDispatch.d.ts +70 -0
  340. package/tgsl/infixDispatch.js +48 -46
  341. package/tgsl/jsPolyfills.d.ts +16 -19
  342. package/tgsl/jsPolyfills.js +44 -42
  343. package/tgsl/makeDereferenceable.d.ts +48 -0
  344. package/tgsl/makeDereferenceable.js +86 -0
  345. package/tgsl/makeResolvable.d.ts +22 -0
  346. package/tgsl/makeResolvable.js +33 -0
  347. package/tgsl/shaderGenerator.d.ts +77 -17
  348. package/tgsl/shaderGenerator.js +1 -0
  349. package/tgsl/shellless.d.ts +6 -9
  350. package/tgsl/shellless.js +73 -43
  351. package/tgsl/wgslGenerator.d.ts +66 -59
  352. package/tgsl/wgslGenerator.js +1345 -760
  353. package/types.d.ts +287 -222
  354. package/types.js +61 -44
  355. package/unwrapper.d.ts +31 -26
  356. package/unwrapper.js +1 -0
  357. package/wgslExtensions.d.ts +3 -5
  358. package/wgslExtensions.js +12 -16
  359. package/_virtual/rolldown_runtime.js +0 -13
  360. package/core/buffer/bufferShorthand.d.ts +0 -50
  361. package/core/buffer/bufferShorthand.js +0 -55
  362. package/core/pipeline/applyPipelineState.js +0 -37
  363. package/core/pipeline/limitsOverflow.js +0 -13
  364. package/package.js +0 -5
  365. package/tgsl/shaderGenerator_members.d.ts +0 -33
  366. package/tgsl/shaderGenerator_members.js +0 -12
package/data/texture.d.ts CHANGED
@@ -1,292 +1,295 @@
1
- import { $internal, $repr } from "../shared/symbols.js";
2
- import { WithDefaults } from "../shared/utilityTypes.js";
3
- import { BaseData, F32, TextureSampleTypes } from "./wgslTypes.js";
4
- import { StorageTextureFormats } from "../core/texture/textureFormats.js";
5
-
6
- //#region src/data/texture.d.ts
7
- type StorageTextureDimension = '1d' | '2d' | '2d-array' | '3d';
8
- type WgslTextureProps = {
9
- dimension: GPUTextureViewDimension;
10
- sampleType: TextureSampleTypes;
11
- multisampled: boolean;
1
+ import type { StorageTextureFormats } from '../core/texture/textureFormats.ts';
2
+ import { $internal, $repr } from '../shared/symbols.ts';
3
+ import type { WithDefaults } from '../shared/utilityTypes.ts';
4
+ import type { F32 } from './wgslTypes.ts';
5
+ import type { BaseData, TextureSampleTypes } from './wgslTypes.ts';
6
+ export type StorageTextureDimension = '1d' | '2d' | '2d-array' | '3d';
7
+ export type WgslTextureProps = {
8
+ dimension: GPUTextureViewDimension;
9
+ sampleType: TextureSampleTypes;
10
+ multisampled: boolean;
12
11
  };
13
- type WgslStorageTextureProps = {
14
- dimension: StorageTextureDimension;
15
- format: StorageTextureFormats;
16
- access: GPUStorageTextureAccess;
12
+ export type WgslStorageTextureProps = {
13
+ dimension: StorageTextureDimension;
14
+ format: StorageTextureFormats;
15
+ access: GPUStorageTextureAccess;
17
16
  };
18
17
  type ResolvedTextureProps<TProps extends Partial<WgslTextureProps>> = WithDefaults<TProps, WgslTextureProps>;
19
18
  type ResolvedStorageTextureProps<TProps extends Partial<WgslStorageTextureProps>> = WithDefaults<TProps, WgslStorageTextureProps>;
20
19
  type SampledTextureLiteral = `texture_${'1d' | '2d' | '2d_array' | '3d' | 'cube' | 'cube_array' | 'multisampled_2d' | 'depth_multisampled_2d' | 'depth_2d' | 'depth_2d_array' | 'depth_cube' | 'depth_cube_array'}`;
21
20
  type StorageTextureLiteral = `texture_storage_${'1d' | '2d' | '2d_array' | '3d'}`;
22
- interface WgslTexture<TProps extends Partial<WgslTextureProps> = WgslTextureProps> extends BaseData {
23
- readonly [$repr]: unknown;
24
- readonly type: SampledTextureLiteral;
25
- readonly sampleType: ResolvedTextureProps<TProps>['sampleType'];
26
- readonly dimension: ResolvedTextureProps<TProps>['dimension'];
27
- readonly multisampled: ResolvedTextureProps<TProps>['multisampled'];
28
- readonly bindingSampleType: [GPUTextureSampleType, ...GPUTextureSampleType[]];
29
- }
30
- interface WgslStorageTexture<TProps extends Partial<WgslStorageTextureProps> = WgslStorageTextureProps> extends BaseData {
31
- readonly [$repr]: unknown;
32
- readonly type: StorageTextureLiteral;
33
- readonly format: ResolvedStorageTextureProps<TProps>['format'];
34
- readonly dimension: ResolvedStorageTextureProps<TProps>['dimension'];
35
- readonly access: ResolvedStorageTextureProps<TProps>['access'];
36
- }
37
- interface WgslExternalTexture extends BaseData {
38
- readonly [$repr]: textureExternal;
39
- readonly type: 'texture_external';
40
- readonly dimension: '2d';
41
- }
42
- interface WgslTexture1d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
43
- dimension: '1d';
44
- sampleType: TSample;
45
- multisampled: false;
21
+ export interface WgslTexture<TProps extends Partial<WgslTextureProps> = WgslTextureProps> extends BaseData {
22
+ readonly [$repr]: unknown;
23
+ readonly type: SampledTextureLiteral;
24
+ readonly sampleType: ResolvedTextureProps<TProps>['sampleType'];
25
+ readonly dimension: ResolvedTextureProps<TProps>['dimension'];
26
+ readonly multisampled: ResolvedTextureProps<TProps>['multisampled'];
27
+ readonly bindingSampleType: [GPUTextureSampleType, ...GPUTextureSampleType[]];
28
+ }
29
+ export interface WgslStorageTexture<TProps extends Partial<WgslStorageTextureProps> = WgslStorageTextureProps> extends BaseData {
30
+ readonly [$repr]: unknown;
31
+ readonly type: StorageTextureLiteral;
32
+ readonly format: ResolvedStorageTextureProps<TProps>['format'];
33
+ readonly dimension: ResolvedStorageTextureProps<TProps>['dimension'];
34
+ readonly access: ResolvedStorageTextureProps<TProps>['access'];
35
+ }
36
+ export interface WgslExternalTexture extends BaseData {
37
+ readonly [$repr]: textureExternal;
38
+ readonly type: 'texture_external';
39
+ readonly dimension: '2d';
40
+ }
41
+ export interface WgslTexture1d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
42
+ dimension: '1d';
43
+ sampleType: TSample;
44
+ multisampled: false;
46
45
  }> {
47
- readonly type: 'texture_1d';
48
- readonly [$repr]: texture1d<TSample>;
46
+ readonly type: 'texture_1d';
47
+ readonly [$repr]: texture1d<TSample>;
49
48
  }
50
- interface WgslTexture2d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
51
- dimension: '2d';
52
- sampleType: TSample;
53
- multisampled: false;
49
+ export interface WgslTexture2d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
50
+ dimension: '2d';
51
+ sampleType: TSample;
52
+ multisampled: false;
54
53
  }> {
55
- readonly type: 'texture_2d';
56
- readonly [$repr]: texture2d<TSample>;
54
+ readonly type: 'texture_2d';
55
+ readonly [$repr]: texture2d<TSample>;
57
56
  }
58
- interface WgslTextureMultisampled2d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
59
- dimension: '2d';
60
- sampleType: TSample;
61
- multisampled: true;
57
+ export interface WgslTextureMultisampled2d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
58
+ dimension: '2d';
59
+ sampleType: TSample;
60
+ multisampled: true;
62
61
  }> {
63
- readonly type: 'texture_multisampled_2d';
64
- readonly [$repr]: textureMultisampled2d<TSample>;
62
+ readonly type: 'texture_multisampled_2d';
63
+ readonly [$repr]: textureMultisampled2d<TSample>;
65
64
  }
66
- interface WgslTexture2dArray<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
67
- dimension: '2d-array';
68
- sampleType: TSample;
69
- multisampled: false;
65
+ export interface WgslTexture2dArray<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
66
+ dimension: '2d-array';
67
+ sampleType: TSample;
68
+ multisampled: false;
70
69
  }> {
71
- readonly type: 'texture_2d_array';
72
- readonly [$repr]: texture2dArray<TSample>;
70
+ readonly type: 'texture_2d_array';
71
+ readonly [$repr]: texture2dArray<TSample>;
73
72
  }
74
- interface WgslTextureCube<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
75
- dimension: 'cube';
76
- sampleType: TSample;
77
- multisampled: false;
73
+ export interface WgslTextureCube<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
74
+ dimension: 'cube';
75
+ sampleType: TSample;
76
+ multisampled: false;
78
77
  }> {
79
- readonly type: 'texture_cube';
80
- readonly [$repr]: textureCube<TSample>;
78
+ readonly type: 'texture_cube';
79
+ readonly [$repr]: textureCube<TSample>;
81
80
  }
82
- interface WgslTextureCubeArray<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
83
- dimension: 'cube-array';
84
- sampleType: TSample;
85
- multisampled: false;
81
+ export interface WgslTextureCubeArray<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
82
+ dimension: 'cube-array';
83
+ sampleType: TSample;
84
+ multisampled: false;
86
85
  }> {
87
- readonly type: 'texture_cube_array';
88
- readonly [$repr]: textureCubeArray<TSample>;
86
+ readonly type: 'texture_cube_array';
87
+ readonly [$repr]: textureCubeArray<TSample>;
89
88
  }
90
- interface WgslTexture3d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
91
- dimension: '3d';
92
- sampleType: TSample;
93
- multisampled: false;
89
+ export interface WgslTexture3d<TSample extends TextureSampleTypes = TextureSampleTypes> extends WgslTexture<{
90
+ dimension: '3d';
91
+ sampleType: TSample;
92
+ multisampled: false;
94
93
  }> {
95
- readonly type: 'texture_3d';
96
- readonly [$repr]: texture3d<TSample>;
94
+ readonly type: 'texture_3d';
95
+ readonly [$repr]: texture3d<TSample>;
97
96
  }
98
- interface WgslTextureDepth2d extends WgslTexture<{
99
- dimension: '2d';
100
- sampleType: F32;
101
- multisampled: false;
97
+ export interface WgslTextureDepth2d extends WgslTexture<{
98
+ dimension: '2d';
99
+ sampleType: F32;
100
+ multisampled: false;
102
101
  }> {
103
- readonly type: 'texture_depth_2d';
104
- readonly [$repr]: textureDepth2d;
102
+ readonly type: 'texture_depth_2d';
103
+ readonly [$repr]: textureDepth2d;
105
104
  }
106
- interface WgslTextureDepthMultisampled2d extends WgslTexture<{
107
- dimension: '2d';
108
- sampleType: F32;
109
- multisampled: true;
105
+ export interface WgslTextureDepthMultisampled2d extends WgslTexture<{
106
+ dimension: '2d';
107
+ sampleType: F32;
108
+ multisampled: true;
110
109
  }> {
111
- readonly type: 'texture_depth_multisampled_2d';
112
- readonly [$repr]: textureDepthMultisampled2d;
110
+ readonly type: 'texture_depth_multisampled_2d';
111
+ readonly [$repr]: textureDepthMultisampled2d;
113
112
  }
114
- interface WgslTextureDepth2dArray extends WgslTexture<{
115
- dimension: '2d-array';
116
- sampleType: F32;
117
- multisampled: false;
113
+ export interface WgslTextureDepth2dArray extends WgslTexture<{
114
+ dimension: '2d-array';
115
+ sampleType: F32;
116
+ multisampled: false;
118
117
  }> {
119
- readonly type: 'texture_depth_2d_array';
120
- readonly [$repr]: textureDepth2dArray;
118
+ readonly type: 'texture_depth_2d_array';
119
+ readonly [$repr]: textureDepth2dArray;
121
120
  }
122
- interface WgslTextureDepthCube extends WgslTexture<{
123
- dimension: 'cube';
124
- sampleType: F32;
125
- multisampled: false;
121
+ export interface WgslTextureDepthCube extends WgslTexture<{
122
+ dimension: 'cube';
123
+ sampleType: F32;
124
+ multisampled: false;
126
125
  }> {
127
- readonly type: 'texture_depth_cube';
128
- readonly [$repr]: textureDepthCube;
126
+ readonly type: 'texture_depth_cube';
127
+ readonly [$repr]: textureDepthCube;
129
128
  }
130
- interface WgslTextureDepthCubeArray extends WgslTexture<{
131
- dimension: 'cube-array';
132
- sampleType: F32;
133
- multisampled: false;
129
+ export interface WgslTextureDepthCubeArray extends WgslTexture<{
130
+ dimension: 'cube-array';
131
+ sampleType: F32;
132
+ multisampled: false;
134
133
  }> {
135
- readonly type: 'texture_depth_cube_array';
136
- readonly [$repr]: textureDepthCubeArray;
134
+ readonly type: 'texture_depth_cube_array';
135
+ readonly [$repr]: textureDepthCubeArray;
137
136
  }
138
- interface WgslStorageTexture1d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
139
- dimension: '1d';
140
- format: TFormat;
141
- access: TAccess;
137
+ export interface WgslStorageTexture1d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
138
+ dimension: '1d';
139
+ format: TFormat;
140
+ access: TAccess;
142
141
  }> {
143
- readonly type: 'texture_storage_1d';
144
- readonly [$repr]: textureStorage1d<TFormat, TAccess>;
142
+ readonly type: 'texture_storage_1d';
143
+ readonly [$repr]: textureStorage1d<TFormat, TAccess>;
145
144
  }
146
- interface WgslStorageTexture2d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
147
- dimension: '2d';
148
- format: TFormat;
149
- access: TAccess;
145
+ export interface WgslStorageTexture2d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
146
+ dimension: '2d';
147
+ format: TFormat;
148
+ access: TAccess;
150
149
  }> {
151
- readonly type: 'texture_storage_2d';
152
- readonly [$repr]: textureStorage2d<TFormat, TAccess>;
150
+ readonly type: 'texture_storage_2d';
151
+ readonly [$repr]: textureStorage2d<TFormat, TAccess>;
153
152
  }
154
- interface WgslStorageTexture2dArray<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
155
- dimension: '2d-array';
156
- format: TFormat;
157
- access: TAccess;
153
+ export interface WgslStorageTexture2dArray<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
154
+ dimension: '2d-array';
155
+ format: TFormat;
156
+ access: TAccess;
158
157
  }> {
159
- readonly type: 'texture_storage_2d_array';
160
- readonly [$repr]: textureStorage2dArray<TFormat, TAccess>;
158
+ readonly type: 'texture_storage_2d_array';
159
+ readonly [$repr]: textureStorage2dArray<TFormat, TAccess>;
161
160
  }
162
- interface WgslStorageTexture3d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
163
- dimension: '3d';
164
- format: TFormat;
165
- access: TAccess;
161
+ export interface WgslStorageTexture3d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> extends WgslStorageTexture<{
162
+ dimension: '3d';
163
+ format: TFormat;
164
+ access: TAccess;
166
165
  }> {
167
- readonly type: 'texture_storage_3d';
168
- readonly [$repr]: textureStorage3d<TFormat, TAccess>;
166
+ readonly type: 'texture_storage_3d';
167
+ readonly [$repr]: textureStorage3d<TFormat, TAccess>;
169
168
  }
170
169
  type SampledTextureSchemaMap<T extends WgslTextureProps> = {
171
- multisampled: {
172
- '1d': never;
173
- '2d': WgslTextureMultisampled2d<T['sampleType']>;
174
- '2d-array': never;
175
- '3d': never;
176
- cube: never;
177
- 'cube-array': never;
178
- };
179
- sampled: {
180
- '1d': WgslTexture1d<T['sampleType']>;
181
- '2d': WgslTexture2d<T['sampleType']>;
182
- '2d-array': WgslTexture2dArray<T['sampleType']>;
183
- '3d': WgslTexture3d<T['sampleType']>;
184
- cube: WgslTextureCube<T['sampleType']>;
185
- 'cube-array': WgslTextureCubeArray<T['sampleType']>;
186
- };
170
+ multisampled: {
171
+ '1d': never;
172
+ '2d': WgslTextureMultisampled2d<T['sampleType']>;
173
+ '2d-array': never;
174
+ '3d': never;
175
+ cube: never;
176
+ 'cube-array': never;
177
+ };
178
+ sampled: {
179
+ '1d': WgslTexture1d<T['sampleType']>;
180
+ '2d': WgslTexture2d<T['sampleType']>;
181
+ '2d-array': WgslTexture2dArray<T['sampleType']>;
182
+ '3d': WgslTexture3d<T['sampleType']>;
183
+ cube: WgslTextureCube<T['sampleType']>;
184
+ 'cube-array': WgslTextureCubeArray<T['sampleType']>;
185
+ };
187
186
  };
188
187
  type StorageTextureSchemaMap<T extends WgslStorageTextureProps> = {
189
- '1d': WgslStorageTexture1d<T['format'], T['access']>;
190
- '2d': WgslStorageTexture2d<T['format'], T['access']>;
191
- '2d-array': WgslStorageTexture2dArray<T['format'], T['access']>;
192
- '3d': WgslStorageTexture3d<T['format'], T['access']>;
188
+ '1d': WgslStorageTexture1d<T['format'], T['access']>;
189
+ '2d': WgslStorageTexture2d<T['format'], T['access']>;
190
+ '2d-array': WgslStorageTexture2dArray<T['format'], T['access']>;
191
+ '3d': WgslStorageTexture3d<T['format'], T['access']>;
193
192
  };
194
- type TextureSchemaForDescriptor<T extends WgslTextureProps | WgslStorageTextureProps> = T extends WgslTextureProps ? T['multisampled'] extends true ? SampledTextureSchemaMap<T>['multisampled'][T['dimension']] : SampledTextureSchemaMap<T>['sampled'][T['dimension']] : T extends WgslStorageTextureProps ? StorageTextureSchemaMap<T>[T['dimension']] : never;
195
- interface texture1d<T extends TextureSampleTypes = TextureSampleTypes> {
196
- readonly kind: `texture_1d<${T['type']}>`;
197
- [$internal]: T;
198
- }
199
- declare function texture1d<T extends TextureSampleTypes>(sampleType: T): WgslTexture1d<T>;
200
- declare function texture1d(): WgslTexture1d<F32>;
201
- interface texture2d<T extends TextureSampleTypes = TextureSampleTypes> {
202
- readonly kind: `texture_2d<${T['type']}>`;
203
- [$internal]: T;
204
- }
205
- declare function texture2d<T extends TextureSampleTypes>(sampleType: T): WgslTexture2d<T>;
206
- declare function texture2d(): WgslTexture2d<F32>;
207
- interface textureMultisampled2d<T extends TextureSampleTypes = TextureSampleTypes> {
208
- readonly kind: `texture_multisampled_2d<${T['type']}>`;
209
- [$internal]: T;
210
- }
211
- declare function textureMultisampled2d<T extends TextureSampleTypes>(sampleType: T): WgslTextureMultisampled2d<T>;
212
- declare function textureMultisampled2d(): WgslTextureMultisampled2d<F32>;
213
- interface texture2dArray<T extends TextureSampleTypes = TextureSampleTypes> {
214
- readonly kind: `texture_2d_array<${T['type']}>`;
215
- [$internal]: T;
216
- }
217
- declare function texture2dArray<T extends TextureSampleTypes>(sampleType: T): WgslTexture2dArray<T>;
218
- declare function texture2dArray(): WgslTexture2dArray<F32>;
219
- interface textureCube<T extends TextureSampleTypes = TextureSampleTypes> {
220
- readonly kind: `texture_cube<${T['type']}>`;
221
- [$internal]: T;
222
- }
223
- declare function textureCube<T extends TextureSampleTypes>(sampleType: T): WgslTextureCube<T>;
224
- declare function textureCube(): WgslTextureCube<F32>;
225
- interface textureCubeArray<T extends TextureSampleTypes = TextureSampleTypes> {
226
- readonly kind: `texture_cube_array<${T['type']}>`;
227
- [$internal]: T;
228
- }
229
- declare function textureCubeArray<T extends TextureSampleTypes>(sampleType: T): WgslTextureCubeArray<T>;
230
- declare function textureCubeArray(): WgslTextureCubeArray<F32>;
231
- interface texture3d<T extends TextureSampleTypes = TextureSampleTypes> {
232
- readonly kind: `texture_3d<${T['type']}>`;
233
- [$internal]: T;
234
- }
235
- declare function texture3d<T extends TextureSampleTypes>(sampleType: T): WgslTexture3d<T>;
236
- declare function texture3d(): WgslTexture3d<F32>;
237
- interface textureStorage1d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
238
- readonly kind: `texture_storage_1d<${TFormat}, ${TAccess}>`;
239
- [$internal]: [TFormat, TAccess];
240
- }
241
- declare function textureStorage1d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture1d<TFormat, TAccess>;
242
- declare function textureStorage1d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture1d<TFormat, 'write-only'>;
243
- interface textureStorage2d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
244
- readonly kind: `texture_storage_2d<${TFormat}, ${TAccess}>`;
245
- [$internal]: [TFormat, TAccess];
246
- }
247
- declare function textureStorage2d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture2d<TFormat, TAccess>;
248
- declare function textureStorage2d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture2d<TFormat, 'write-only'>;
249
- interface textureStorage2dArray<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
250
- readonly kind: `texture_storage_2d_array<${TFormat}, ${TAccess}>`;
251
- [$internal]: [TFormat, TAccess];
252
- }
253
- declare function textureStorage2dArray<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture2dArray<TFormat, TAccess>;
254
- declare function textureStorage2dArray<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture2dArray<TFormat, 'write-only'>;
255
- interface textureStorage3d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
256
- readonly kind: `texture_storage_3d<${TFormat}, ${TAccess}>`;
257
- [$internal]: [TFormat, TAccess];
258
- }
259
- declare function textureStorage3d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture3d<TFormat, TAccess>;
260
- declare function textureStorage3d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture3d<TFormat, 'write-only'>;
261
- interface textureDepth2d {
262
- readonly kind: 'texture_depth_2d';
263
- [$internal]: F32;
264
- }
265
- declare function textureDepth2d(): WgslTextureDepth2d;
266
- interface textureDepthMultisampled2d {
267
- readonly kind: 'texture_depth_multisampled_2d';
268
- [$internal]: F32;
269
- }
270
- declare function textureDepthMultisampled2d(): WgslTextureDepthMultisampled2d;
271
- interface textureDepth2dArray {
272
- readonly kind: 'texture_depth_2d_array';
273
- [$internal]: F32;
274
- }
275
- declare function textureDepth2dArray(): WgslTextureDepth2dArray;
276
- interface textureDepthCube {
277
- readonly kind: 'texture_depth_cube';
278
- [$internal]: F32;
279
- }
280
- declare function textureDepthCube(): WgslTextureDepthCube;
281
- interface textureDepthCubeArray {
282
- readonly kind: 'texture_depth_cube_array';
283
- [$internal]: F32;
284
- }
285
- declare function textureDepthCubeArray(): WgslTextureDepthCubeArray;
286
- interface textureExternal {
287
- readonly kind: 'texture_external';
288
- [$internal]: true;
289
- }
290
- declare function textureExternal(): WgslExternalTexture;
291
- //#endregion
292
- export { StorageTextureDimension, TextureSchemaForDescriptor, WgslExternalTexture, WgslStorageTexture, WgslStorageTexture1d, WgslStorageTexture2d, WgslStorageTexture2dArray, WgslStorageTexture3d, WgslStorageTextureProps, WgslTexture, WgslTexture1d, WgslTexture2d, WgslTexture2dArray, WgslTexture3d, WgslTextureCube, WgslTextureCubeArray, WgslTextureDepth2d, WgslTextureDepth2dArray, WgslTextureDepthCube, WgslTextureDepthCubeArray, WgslTextureDepthMultisampled2d, WgslTextureMultisampled2d, texture1d, texture2d, texture2dArray, texture3d, textureCube, textureCubeArray, textureDepth2d, textureDepth2dArray, textureDepthCube, textureDepthCubeArray, textureDepthMultisampled2d, textureExternal, textureMultisampled2d, textureStorage1d, textureStorage2d, textureStorage2dArray, textureStorage3d };
193
+ export type TextureSchemaForDescriptor<T extends WgslTextureProps | WgslStorageTextureProps> = T extends WgslTextureProps ? T['multisampled'] extends true ? SampledTextureSchemaMap<T>['multisampled'][T['dimension']] : SampledTextureSchemaMap<T>['sampled'][T['dimension']] : T extends WgslStorageTextureProps ? StorageTextureSchemaMap<T>[T['dimension']] : never;
194
+ export declare function textureDescriptorToSchema<T extends WgslTextureProps | WgslStorageTextureProps>(desc: T): TextureSchemaForDescriptor<T>;
195
+ export declare const accessModeMap: Record<GPUStorageTextureAccess, string>;
196
+ export interface texture1d<T extends TextureSampleTypes = TextureSampleTypes> {
197
+ readonly kind: `texture_1d<${T['type']}>`;
198
+ [$internal]: T;
199
+ }
200
+ export declare function texture1d<T extends TextureSampleTypes>(sampleType: T): WgslTexture1d<T>;
201
+ export declare function texture1d(): WgslTexture1d<F32>;
202
+ export interface texture2d<T extends TextureSampleTypes = TextureSampleTypes> {
203
+ readonly kind: `texture_2d<${T['type']}>`;
204
+ [$internal]: T;
205
+ }
206
+ export declare function texture2d<T extends TextureSampleTypes>(sampleType: T): WgslTexture2d<T>;
207
+ export declare function texture2d(): WgslTexture2d<F32>;
208
+ export interface textureMultisampled2d<T extends TextureSampleTypes = TextureSampleTypes> {
209
+ readonly kind: `texture_multisampled_2d<${T['type']}>`;
210
+ [$internal]: T;
211
+ }
212
+ export declare function textureMultisampled2d<T extends TextureSampleTypes>(sampleType: T): WgslTextureMultisampled2d<T>;
213
+ export declare function textureMultisampled2d(): WgslTextureMultisampled2d<F32>;
214
+ export interface texture2dArray<T extends TextureSampleTypes = TextureSampleTypes> {
215
+ readonly kind: `texture_2d_array<${T['type']}>`;
216
+ [$internal]: T;
217
+ }
218
+ export declare function texture2dArray<T extends TextureSampleTypes>(sampleType: T): WgslTexture2dArray<T>;
219
+ export declare function texture2dArray(): WgslTexture2dArray<F32>;
220
+ export interface textureCube<T extends TextureSampleTypes = TextureSampleTypes> {
221
+ readonly kind: `texture_cube<${T['type']}>`;
222
+ [$internal]: T;
223
+ }
224
+ export declare function textureCube<T extends TextureSampleTypes>(sampleType: T): WgslTextureCube<T>;
225
+ export declare function textureCube(): WgslTextureCube<F32>;
226
+ export interface textureCubeArray<T extends TextureSampleTypes = TextureSampleTypes> {
227
+ readonly kind: `texture_cube_array<${T['type']}>`;
228
+ [$internal]: T;
229
+ }
230
+ export declare function textureCubeArray<T extends TextureSampleTypes>(sampleType: T): WgslTextureCubeArray<T>;
231
+ export declare function textureCubeArray(): WgslTextureCubeArray<F32>;
232
+ export interface texture3d<T extends TextureSampleTypes = TextureSampleTypes> {
233
+ readonly kind: `texture_3d<${T['type']}>`;
234
+ [$internal]: T;
235
+ }
236
+ export declare function texture3d<T extends TextureSampleTypes>(sampleType: T): WgslTexture3d<T>;
237
+ export declare function texture3d(): WgslTexture3d<F32>;
238
+ export interface textureStorage1d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
239
+ readonly kind: `texture_storage_1d<${TFormat}, ${TAccess}>`;
240
+ [$internal]: [TFormat, TAccess];
241
+ }
242
+ export declare function textureStorage1d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture1d<TFormat, TAccess>;
243
+ export declare function textureStorage1d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture1d<TFormat, 'write-only'>;
244
+ export interface textureStorage2d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
245
+ readonly kind: `texture_storage_2d<${TFormat}, ${TAccess}>`;
246
+ [$internal]: [TFormat, TAccess];
247
+ }
248
+ export declare function textureStorage2d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture2d<TFormat, TAccess>;
249
+ export declare function textureStorage2d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture2d<TFormat, 'write-only'>;
250
+ export interface textureStorage2dArray<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
251
+ readonly kind: `texture_storage_2d_array<${TFormat}, ${TAccess}>`;
252
+ [$internal]: [TFormat, TAccess];
253
+ }
254
+ export declare function textureStorage2dArray<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture2dArray<TFormat, TAccess>;
255
+ export declare function textureStorage2dArray<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture2dArray<TFormat, 'write-only'>;
256
+ export interface textureStorage3d<TFormat extends StorageTextureFormats = StorageTextureFormats, TAccess extends GPUStorageTextureAccess = GPUStorageTextureAccess> {
257
+ readonly kind: `texture_storage_3d<${TFormat}, ${TAccess}>`;
258
+ [$internal]: [TFormat, TAccess];
259
+ }
260
+ export declare function textureStorage3d<TFormat extends StorageTextureFormats, TAccess extends GPUStorageTextureAccess>(format: TFormat, access: TAccess): WgslStorageTexture3d<TFormat, TAccess>;
261
+ export declare function textureStorage3d<TFormat extends StorageTextureFormats>(format: TFormat): WgslStorageTexture3d<TFormat, 'write-only'>;
262
+ export interface textureDepth2d {
263
+ readonly kind: 'texture_depth_2d';
264
+ [$internal]: F32;
265
+ }
266
+ export declare function textureDepth2d(): WgslTextureDepth2d;
267
+ export interface textureDepthMultisampled2d {
268
+ readonly kind: 'texture_depth_multisampled_2d';
269
+ [$internal]: F32;
270
+ }
271
+ export declare function textureDepthMultisampled2d(): WgslTextureDepthMultisampled2d;
272
+ export interface textureDepth2dArray {
273
+ readonly kind: 'texture_depth_2d_array';
274
+ [$internal]: F32;
275
+ }
276
+ export declare function textureDepth2dArray(): WgslTextureDepth2dArray;
277
+ export interface textureDepthCube {
278
+ readonly kind: 'texture_depth_cube';
279
+ [$internal]: F32;
280
+ }
281
+ export declare function textureDepthCube(): WgslTextureDepthCube;
282
+ export interface textureDepthCubeArray {
283
+ readonly kind: 'texture_depth_cube_array';
284
+ [$internal]: F32;
285
+ }
286
+ export declare function textureDepthCubeArray(): WgslTextureDepthCubeArray;
287
+ export interface textureExternal {
288
+ readonly kind: 'texture_external';
289
+ [$internal]: true;
290
+ }
291
+ export declare function textureExternal(): WgslExternalTexture;
292
+ export declare function isWgslTexture(value: unknown): value is WgslTexture;
293
+ export declare function isWgslStorageTexture(value: unknown): value is WgslStorageTexture;
294
+ export declare function isWgslExternalTexture(value: unknown): value is WgslExternalTexture;
295
+ export {};