typegpu 0.6.0 → 0.7.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.
- package/chunk-2VTISQYP.cjs +10 -0
- package/chunk-2VTISQYP.cjs.map +1 -0
- package/chunk-CYZBRBPD.cjs +6 -0
- package/chunk-CYZBRBPD.cjs.map +1 -0
- package/chunk-SAMYKEUN.js +6 -0
- package/chunk-SAMYKEUN.js.map +1 -0
- package/chunk-WP6W72RY.js +10 -0
- package/chunk-WP6W72RY.js.map +1 -0
- package/data/index.cjs +1 -1
- package/data/index.cjs.map +1 -1
- package/data/index.d.cts +17 -5
- package/data/index.d.ts +17 -5
- package/data/index.js +1 -1
- package/index.cjs +18 -29
- package/index.cjs.map +1 -1
- package/index.d.cts +38 -3
- package/index.d.ts +38 -3
- package/index.js +18 -29
- package/index.js.map +1 -1
- package/{matrix-S8W4dk8I.d.ts → matrix-4h_aOtIE.d.cts} +9 -9
- package/{matrix-BN6ObiMv.d.cts → matrix-Domrg-ap.d.ts} +9 -9
- package/package.json +1 -1
- package/std/index.cjs +1 -1
- package/std/index.cjs.map +1 -1
- package/std/index.d.cts +274 -112
- package/std/index.d.ts +274 -112
- package/std/index.js +1 -1
- package/std/index.js.map +1 -1
- package/{tgpuComputeFn-DOUjhQua.d.ts → tgpuConstant-BSgcF4zi.d.cts} +3058 -2938
- package/{tgpuComputeFn-DOUjhQua.d.cts → tgpuConstant-BSgcF4zi.d.ts} +3058 -2938
- package/chunk-APTRHY5Y.js +0 -41
- package/chunk-APTRHY5Y.js.map +0 -1
- package/chunk-RC26P3MP.cjs +0 -2
- package/chunk-RC26P3MP.cjs.map +0 -1
- package/chunk-RK6TMFVW.js +0 -2
- package/chunk-RK6TMFVW.js.map +0 -1
- package/chunk-S62QJDM6.js +0 -2
- package/chunk-S62QJDM6.js.map +0 -1
- package/chunk-TG4A6AM3.cjs +0 -2
- package/chunk-TG4A6AM3.cjs.map +0 -1
- package/chunk-UMHCZDPA.cjs +0 -41
- package/chunk-UMHCZDPA.cjs.map +0 -1
package/std/index.d.cts
CHANGED
@@ -1,145 +1,297 @@
|
|
1
|
-
import { c_ as
|
2
|
-
export { i as identity2, d as identity3, e as identity4, r as rotationX4, f as rotationY4, g as rotationZ4, s as scaling4, t as translation4 } from '../matrix-
|
1
|
+
import { c_ as DualFn, c$ as AnyNumericVecInstance, d0 as AnyFloatVecInstance, d1 as AnyIntegerVecInstance, bD as v3f, d2 as v3h, d3 as AnyMatInstance, I as Infer, aQ as WgslStruct, aM as F32, aN as I32, aL as F16, d4 as AbstractFloat, d5 as AbstractInt, aT as Vec2f, aV as Vec2i, aY as Vec3f, a_ as Vec3i, b1 as Vec4f, b3 as Vec4i, aU as Vec2h, aZ as Vec3h, b2 as Vec4h, bA as v2i, bE as v3i, bI as v4i, d6 as AnyFloat32VecInstance, d7 as AnySignedVecInstance, d8 as vBaseForMat, d9 as mBaseForVec, bt as m4x4f, bl as AnyVecInstance, da as AnyVec2Instance, by as v2b, db as AnyVec3Instance, bC as v3b, bG as v4b, dc as AnyBooleanVecInstance, dd as atomicI32, de as atomicU32, bH as v4f, bz as v2f, ag as TgpuSampledTexture, df as TgpuStorageTexture, bB as v2u, bF as v3u, dg as TexelData, bJ as v4u, dh as ChannelData, ao as TgpuSampler } from '../tgpuConstant-BSgcF4zi.cjs';
|
2
|
+
export { i as identity2, d as identity3, e as identity4, r as rotationX4, f as rotationY4, g as rotationZ4, s as scaling4, t as translation4 } from '../matrix-4h_aOtIE.cjs';
|
3
3
|
import 'tinyest';
|
4
4
|
|
5
|
-
declare const discard:
|
5
|
+
declare const discard: DualFn<() => never>;
|
6
6
|
|
7
|
-
type NumVec = AnyNumericVecInstance;
|
8
|
-
|
9
|
-
declare
|
10
|
-
declare function cpuAdd<T extends NumVec>(lhs: number, rhs: T): T;
|
11
|
-
declare function cpuAdd<T extends NumVec>(lhs: T, rhs: number): T;
|
12
|
-
declare function cpuAdd<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
13
|
-
declare function cpuAdd<Lhs extends number | NumVec | Mat, Rhs extends (Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never)>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
14
|
-
declare const add: TgpuDualFn<typeof cpuAdd>;
|
15
|
-
declare function cpuSub(lhs: number, rhs: number): number;
|
16
|
-
declare function cpuSub<T extends NumVec>(lhs: number, rhs: T): T;
|
17
|
-
declare function cpuSub<T extends NumVec>(lhs: T, rhs: number): T;
|
18
|
-
declare function cpuSub<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
19
|
-
declare function cpuSub<Lhs extends number | NumVec | Mat, Rhs extends (Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never)>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
20
|
-
declare const sub: TgpuDualFn<typeof cpuSub>;
|
21
|
-
declare function cpuMul(lhs: number, rhs: number): number;
|
22
|
-
declare function cpuMul<MV extends NumVec | Mat>(lhs: number, rhs: MV): MV;
|
23
|
-
declare function cpuMul<MV extends NumVec | Mat>(lhs: MV, rhs: number): MV;
|
24
|
-
declare function cpuMul<V extends NumVec>(lhs: V, rhs: V): V;
|
25
|
-
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: V, rhs: M): V;
|
26
|
-
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: M, rhs: V): V;
|
27
|
-
declare function cpuMul<M extends Mat>(lhs: M, rhs: M): M;
|
28
|
-
declare function cpuMul<Lhs extends number | NumVec | Mat, Rhs extends (Lhs extends number ? number | NumVec | Mat : Lhs extends NumVec ? number | Lhs | mBaseForVec<Lhs> : Lhs extends Mat ? number | vBaseForMat<Lhs> | Lhs : never)>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
29
|
-
declare const mul: TgpuDualFn<typeof cpuMul>;
|
30
|
-
declare function cpuDiv(lhs: number, rhs: number): number;
|
31
|
-
declare function cpuDiv<MV extends NumVec>(lhs: number, rhs: MV): MV;
|
32
|
-
declare function cpuDiv<MV extends NumVec>(lhs: MV, rhs: number): MV;
|
33
|
-
declare function cpuDiv<V extends NumVec>(lhs: V, rhs: V): V;
|
34
|
-
declare function cpuDiv<Lhs extends number | NumVec, Rhs extends (Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : never)>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
35
|
-
declare const div: TgpuDualFn<typeof cpuDiv>;
|
36
|
-
declare const abs: TgpuDualFn<(<T extends NumVec | number>(value: T) => T)>;
|
37
|
-
declare const atan2: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(y: T, x: T) => T)>;
|
38
|
-
declare const acos: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
7
|
+
type NumVec$1 = AnyNumericVecInstance;
|
8
|
+
declare const abs: DualFn<(<T extends NumVec$1 | number>(value: T) => T)>;
|
9
|
+
declare const acos: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
39
10
|
/**
|
40
11
|
* @privateRemarks
|
41
12
|
* https://www.w3.org/TR/WGSL/#acosh-builtin
|
42
13
|
*/
|
43
|
-
declare const acosh:
|
14
|
+
declare const acosh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
44
15
|
/**
|
45
16
|
* @privateRemarks
|
46
17
|
* https://www.w3.org/TR/WGSL/#asin-builtin
|
47
18
|
*/
|
48
|
-
declare const asin:
|
19
|
+
declare const asin: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
20
|
+
/**
|
21
|
+
* @privateRemarks
|
22
|
+
* https://www.w3.org/TR/WGSL/#asinh-builtin
|
23
|
+
*/
|
24
|
+
declare const asinh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
25
|
+
/**
|
26
|
+
* @privateRemarks
|
27
|
+
* https://www.w3.org/TR/WGSL/#atan-builtin
|
28
|
+
*/
|
29
|
+
declare const atan: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
30
|
+
/**
|
31
|
+
* @privateRemarks
|
32
|
+
* https://www.w3.org/TR/WGSL/#atanh-builtin
|
33
|
+
*/
|
34
|
+
declare const atanh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
35
|
+
declare const atan2: DualFn<(<T extends AnyFloatVecInstance | number>(y: T, x: T) => T)>;
|
49
36
|
/**
|
50
37
|
* @privateRemarks
|
51
38
|
* https://www.w3.org/TR/WGSL/#ceil-builtin
|
52
39
|
*/
|
53
|
-
declare const ceil:
|
40
|
+
declare const ceil: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
54
41
|
/**
|
55
42
|
* @privateRemarks
|
56
43
|
* https://www.w3.org/TR/WGSL/#clamp
|
57
44
|
*/
|
58
|
-
declare const clamp:
|
45
|
+
declare const clamp: DualFn<(<T extends NumVec$1 | number>(value: T, low: T, high: T) => T)>;
|
59
46
|
/**
|
60
47
|
* @privateRemarks
|
61
48
|
* https://www.w3.org/TR/WGSL/#cos-builtin
|
62
49
|
*/
|
63
|
-
declare const cos:
|
50
|
+
declare const cos: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
64
51
|
/**
|
65
52
|
* @privateRemarks
|
66
53
|
* https://www.w3.org/TR/WGSL/#cosh-builtin
|
67
54
|
*/
|
68
|
-
declare const cosh:
|
55
|
+
declare const cosh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
56
|
+
declare const countLeadingZeros: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
57
|
+
declare const countOneBits: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
58
|
+
declare const countTrailingZeros: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
69
59
|
/**
|
70
60
|
* @privateRemarks
|
71
61
|
* https://www.w3.org/TR/WGSL/#cross-builtin
|
72
62
|
*/
|
73
|
-
declare const cross:
|
63
|
+
declare const cross: DualFn<(<T extends v3f | v3h>(a: T, b: T) => T)>;
|
64
|
+
declare const degrees: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
65
|
+
declare const determinant: DualFn<(value: AnyMatInstance) => number>;
|
66
|
+
declare const distance: DualFn<(<T extends AnyFloatVecInstance | number>(a: T, b: T) => number)>;
|
74
67
|
/**
|
75
68
|
* @privateRemarks
|
76
69
|
* https://www.w3.org/TR/WGSL/#dot-builtin
|
77
70
|
*/
|
78
|
-
declare const dot:
|
79
|
-
declare const
|
71
|
+
declare const dot: DualFn<(<T extends NumVec$1>(lhs: T, rhs: T) => number)>;
|
72
|
+
declare const dot4U8Packed: DualFn<(e1: number, e2: number) => number>;
|
73
|
+
declare const dot4I8Packed: DualFn<(e1: number, e2: number) => number>;
|
74
|
+
/**
|
75
|
+
* @privateRemarks
|
76
|
+
* https://www.w3.org/TR/WGSL/#exp-builtin
|
77
|
+
*/
|
78
|
+
declare const exp: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
79
|
+
/**
|
80
|
+
* @privateRemarks
|
81
|
+
* https://www.w3.org/TR/WGSL/#exp2-builtin
|
82
|
+
*/
|
83
|
+
declare const exp2: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
84
|
+
declare const extractBits: DualFn<(<T extends AnyIntegerVecInstance | number>(e: T, offset: number, count: number) => T)>;
|
85
|
+
declare const faceForward: DualFn<(<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: T) => T)>;
|
86
|
+
declare const firstLeadingBit: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
87
|
+
declare const firstTrailingBit: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
80
88
|
/**
|
81
89
|
* @privateRemarks
|
82
90
|
* https://www.w3.org/TR/WGSL/#floor-builtin
|
83
91
|
*/
|
84
|
-
declare const floor:
|
85
|
-
declare const
|
92
|
+
declare const floor: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
93
|
+
declare const fma: DualFn<(<T extends AnyFloatVecInstance | number>(e1: T, e2: T, e3: T) => T)>;
|
94
|
+
declare const fract: DualFn<(<T extends AnyFloatVecInstance | number>(a: T) => T)>;
|
95
|
+
declare const FrexpResults: {
|
96
|
+
readonly f32: WgslStruct<{
|
97
|
+
fract: F32;
|
98
|
+
exp: I32;
|
99
|
+
}>;
|
100
|
+
readonly f16: WgslStruct<{
|
101
|
+
fract: F16;
|
102
|
+
exp: I32;
|
103
|
+
}>;
|
104
|
+
readonly abstractFloat: WgslStruct<{
|
105
|
+
fract: AbstractFloat;
|
106
|
+
exp: AbstractInt;
|
107
|
+
}>;
|
108
|
+
readonly vec2f: WgslStruct<{
|
109
|
+
fract: Vec2f;
|
110
|
+
exp: Vec2i;
|
111
|
+
}>;
|
112
|
+
readonly vec3f: WgslStruct<{
|
113
|
+
fract: Vec3f;
|
114
|
+
exp: Vec3i;
|
115
|
+
}>;
|
116
|
+
readonly vec4f: WgslStruct<{
|
117
|
+
fract: Vec4f;
|
118
|
+
exp: Vec4i;
|
119
|
+
}>;
|
120
|
+
readonly vec2h: WgslStruct<{
|
121
|
+
fract: Vec2h;
|
122
|
+
exp: Vec2i;
|
123
|
+
}>;
|
124
|
+
readonly vec3h: WgslStruct<{
|
125
|
+
fract: Vec3h;
|
126
|
+
exp: Vec3i;
|
127
|
+
}>;
|
128
|
+
readonly vec4h: WgslStruct<{
|
129
|
+
fract: Vec4h;
|
130
|
+
exp: Vec4i;
|
131
|
+
}>;
|
132
|
+
};
|
133
|
+
type FrexpOverload = {
|
134
|
+
(value: number): Infer<typeof FrexpResults['f32']>;
|
135
|
+
<T extends AnyFloatVecInstance>(value: T): Infer<typeof FrexpResults[T['kind']]>;
|
136
|
+
};
|
137
|
+
declare const frexp: FrexpOverload;
|
138
|
+
declare const insertBits: DualFn<(<T extends AnyIntegerVecInstance | number>(e: T, newbits: T, offset: number, count: number) => T)>;
|
139
|
+
declare const inverseSqrt: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
140
|
+
type FloatVecInstanceToIntVecInstance<T extends AnyFloatVecInstance> = {
|
141
|
+
'vec2f': v2i;
|
142
|
+
'vec3f': v3i;
|
143
|
+
'vec4f': v4i;
|
144
|
+
'vec2h': v2i;
|
145
|
+
'vec3h': v3i;
|
146
|
+
'vec4h': v4i;
|
147
|
+
}[T['kind']];
|
148
|
+
type LdexpOverload = {
|
149
|
+
(e1: number, e2: number): number;
|
150
|
+
<T extends AnyFloatVecInstance>(e1: T, e2: FloatVecInstanceToIntVecInstance<T>): T;
|
151
|
+
};
|
152
|
+
declare const ldexp: LdexpOverload;
|
86
153
|
/**
|
87
154
|
* @privateRemarks
|
88
155
|
* https://www.w3.org/TR/WGSL/#length-builtin
|
89
156
|
*/
|
90
|
-
declare const length:
|
157
|
+
declare const length: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => number)>;
|
91
158
|
/**
|
92
159
|
* @privateRemarks
|
93
160
|
* https://www.w3.org/TR/WGSL/#log-builtin
|
94
161
|
*/
|
95
|
-
declare const log:
|
162
|
+
declare const log: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
96
163
|
/**
|
97
164
|
* @privateRemarks
|
98
165
|
* https://www.w3.org/TR/WGSL/#log2-builtin
|
99
166
|
*/
|
100
|
-
declare const log2:
|
167
|
+
declare const log2: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
101
168
|
/**
|
102
169
|
* @privateRemarks
|
103
170
|
* https://www.w3.org/TR/WGSL/#max-float-builtin
|
104
171
|
*/
|
105
|
-
declare const max:
|
172
|
+
declare const max: DualFn<(<T extends NumVec$1 | number>(a: T, b: T) => T)>;
|
106
173
|
/**
|
107
174
|
* @privateRemarks
|
108
175
|
* https://www.w3.org/TR/WGSL/#min-float-builtin
|
109
176
|
*/
|
110
|
-
declare const min:
|
111
|
-
|
177
|
+
declare const min: DualFn<(<T extends NumVec$1 | number>(a: T, b: T) => T)>;
|
178
|
+
type MixOverload = {
|
179
|
+
(e1: number, e2: number, e3: number): number;
|
180
|
+
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: number): T;
|
181
|
+
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: T): T;
|
182
|
+
};
|
183
|
+
declare const mix: MixOverload;
|
184
|
+
declare const ModfResult: {
|
185
|
+
readonly f32: WgslStruct<{
|
186
|
+
fract: F32;
|
187
|
+
whole: F32;
|
188
|
+
}>;
|
189
|
+
readonly f16: WgslStruct<{
|
190
|
+
fract: F16;
|
191
|
+
whole: F16;
|
192
|
+
}>;
|
193
|
+
readonly abstractFloat: WgslStruct<{
|
194
|
+
fract: AbstractFloat;
|
195
|
+
whole: AbstractFloat;
|
196
|
+
}>;
|
197
|
+
readonly vec2f: WgslStruct<{
|
198
|
+
fract: Vec2f;
|
199
|
+
whole: Vec2f;
|
200
|
+
}>;
|
201
|
+
readonly vec3f: WgslStruct<{
|
202
|
+
fract: Vec3f;
|
203
|
+
whole: Vec3f;
|
204
|
+
}>;
|
205
|
+
readonly vec4f: WgslStruct<{
|
206
|
+
fract: Vec4f;
|
207
|
+
whole: Vec4f;
|
208
|
+
}>;
|
209
|
+
readonly vec2h: WgslStruct<{
|
210
|
+
fract: Vec2h;
|
211
|
+
whole: Vec2h;
|
212
|
+
}>;
|
213
|
+
readonly vec3h: WgslStruct<{
|
214
|
+
fract: Vec3h;
|
215
|
+
whole: Vec3h;
|
216
|
+
}>;
|
217
|
+
readonly vec4h: WgslStruct<{
|
218
|
+
fract: Vec4h;
|
219
|
+
whole: Vec4h;
|
220
|
+
}>;
|
221
|
+
};
|
222
|
+
type ModfOverload = {
|
223
|
+
(value: number): Infer<typeof ModfResult['f32']>;
|
224
|
+
<T extends AnyFloatVecInstance>(value: T): Infer<typeof ModfResult[T['kind']]>;
|
225
|
+
};
|
226
|
+
declare const modf: ModfOverload;
|
227
|
+
declare const normalize: DualFn<(<T extends AnyFloatVecInstance>(v: T) => T)>;
|
228
|
+
type PowOverload = {
|
229
|
+
(base: number, exponent: number): number;
|
230
|
+
<T extends AnyFloatVecInstance>(base: T, exponent: T): T;
|
231
|
+
};
|
232
|
+
declare const pow: PowOverload;
|
233
|
+
declare const quantizeToF16: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
234
|
+
declare const radians: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
235
|
+
declare const reflect: DualFn<(<T extends AnyFloatVecInstance>(e1: T, e2: T) => T)>;
|
236
|
+
declare const refract: DualFn<(<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: number) => T)>;
|
237
|
+
declare const reverseBits: DualFn<(<T extends AnyIntegerVecInstance | number>(value: T) => T)>;
|
238
|
+
declare const round: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
239
|
+
declare const saturate: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
240
|
+
declare const sign: DualFn<(<T extends AnySignedVecInstance | number>(e: T) => T)>;
|
112
241
|
/**
|
113
242
|
* @privateRemarks
|
114
243
|
* https://www.w3.org/TR/WGSL/#sin-builtin
|
115
244
|
*/
|
116
|
-
declare const sin:
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
declare const
|
245
|
+
declare const sin: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
246
|
+
declare const sinh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
247
|
+
declare const smoothstep: DualFn<(<T extends AnyFloatVecInstance | number>(edge0: T, edge1: T, x: T) => T)>;
|
248
|
+
declare const sqrt: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
249
|
+
declare const step: DualFn<(<T extends AnyFloatVecInstance | number>(edge: T, x: T) => T)>;
|
250
|
+
declare const tan: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
251
|
+
declare const tanh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
252
|
+
declare const transpose: DualFn<(e: AnyMatInstance) => never>;
|
253
|
+
declare const trunc: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
254
|
+
|
255
|
+
type NumVec = AnyNumericVecInstance;
|
256
|
+
type Mat = AnyMatInstance;
|
257
|
+
declare function cpuAdd(lhs: number, rhs: number): number;
|
258
|
+
declare function cpuAdd<T extends NumVec>(lhs: number, rhs: T): T;
|
259
|
+
declare function cpuAdd<T extends NumVec>(lhs: T, rhs: number): T;
|
260
|
+
declare function cpuAdd<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
261
|
+
declare function cpuAdd<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
262
|
+
declare const add: DualFn<typeof cpuAdd>;
|
263
|
+
declare function cpuSub(lhs: number, rhs: number): number;
|
264
|
+
declare function cpuSub<T extends NumVec>(lhs: number, rhs: T): T;
|
265
|
+
declare function cpuSub<T extends NumVec>(lhs: T, rhs: number): T;
|
266
|
+
declare function cpuSub<T extends NumVec | Mat>(lhs: T, rhs: T): T;
|
267
|
+
declare function cpuSub<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec : Lhs extends NumVec ? number | Lhs : Lhs extends Mat ? Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
268
|
+
declare const sub: DualFn<typeof cpuSub>;
|
269
|
+
declare function cpuMul(lhs: number, rhs: number): number;
|
270
|
+
declare function cpuMul<MV extends NumVec | Mat>(lhs: number, rhs: MV): MV;
|
271
|
+
declare function cpuMul<MV extends NumVec | Mat>(lhs: MV, rhs: number): MV;
|
272
|
+
declare function cpuMul<V extends NumVec>(lhs: V, rhs: V): V;
|
273
|
+
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: V, rhs: M): V;
|
274
|
+
declare function cpuMul<M extends Mat, V extends vBaseForMat<M>>(lhs: M, rhs: V): V;
|
275
|
+
declare function cpuMul<M extends Mat>(lhs: M, rhs: M): M;
|
276
|
+
declare function cpuMul<Lhs extends number | NumVec | Mat, Rhs extends Lhs extends number ? number | NumVec | Mat : Lhs extends NumVec ? number | Lhs | mBaseForVec<Lhs> : Lhs extends Mat ? number | vBaseForMat<Lhs> | Lhs : never>(lhs: Lhs, rhs: Rhs): Lhs | Rhs;
|
277
|
+
declare const mul: DualFn<typeof cpuMul>;
|
278
|
+
declare function cpuDiv(lhs: number, rhs: number): number;
|
279
|
+
declare function cpuDiv<T extends NumVec | number>(lhs: T, rhs: T): T;
|
280
|
+
declare function cpuDiv<T extends NumVec | number>(lhs: number, rhs: T): T;
|
281
|
+
declare function cpuDiv<T extends NumVec | number>(lhs: T, rhs: number): T;
|
282
|
+
declare const div: DualFn<typeof cpuDiv>;
|
283
|
+
type ModOverload = {
|
284
|
+
(a: number, b: number): number;
|
285
|
+
<T extends NumVec>(a: T, b: T): T;
|
286
|
+
<T extends NumVec>(a: number, b: T): T;
|
287
|
+
<T extends NumVec>(a: T, b: number): T;
|
288
|
+
};
|
122
289
|
/**
|
123
290
|
* @privateRemarks
|
124
|
-
*
|
291
|
+
* Both JS and WGSL implementations use truncated definition of modulo
|
125
292
|
*/
|
126
|
-
declare const
|
127
|
-
|
128
|
-
(base: number, exponent: number): number;
|
129
|
-
<T extends AnyFloatVecInstance>(base: T, exponent: T): T;
|
130
|
-
};
|
131
|
-
declare const pow: PowOverload;
|
132
|
-
type MixOverload = {
|
133
|
-
(e1: number, e2: number, e3: number): number;
|
134
|
-
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: number): T;
|
135
|
-
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: T): T;
|
136
|
-
};
|
137
|
-
declare const mix: MixOverload;
|
138
|
-
declare const reflect: TgpuDualFn<(<T extends AnyFloatVecInstance>(e1: T, e2: T) => T)>;
|
139
|
-
declare const distance: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(a: T, b: T) => number)>;
|
140
|
-
declare const neg: TgpuDualFn<(<T extends NumVec | number>(value: T) => T)>;
|
141
|
-
declare const sqrt: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
142
|
-
declare const tanh: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
293
|
+
declare const mod: ModOverload;
|
294
|
+
declare const neg: DualFn<(<T extends NumVec | number>(value: T) => T)>;
|
143
295
|
|
144
296
|
/**
|
145
297
|
* Translates the given 4-by-4 matrix by the given vector.
|
@@ -147,35 +299,35 @@ declare const tanh: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value:
|
|
147
299
|
* @param {v3f} vector - The vector by which to translate the matrix.
|
148
300
|
* @returns {m4x4f} The translated matrix.
|
149
301
|
*/
|
150
|
-
declare const translate4:
|
302
|
+
declare const translate4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
|
151
303
|
/**
|
152
304
|
* Scales the given 4-by-4 matrix in each dimension by an amount given by the corresponding entry in the given vector.
|
153
305
|
* @param {m4x4f} matrix - The matrix to be modified.
|
154
306
|
* @param {v3f} vector - A vector of three entries specifying the factor by which to scale in each dimension.
|
155
307
|
* @returns {m4x4f} The scaled matrix.
|
156
308
|
*/
|
157
|
-
declare const scale4:
|
309
|
+
declare const scale4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
|
158
310
|
/**
|
159
311
|
* Rotates the given 4-by-4 matrix around the x-axis by the given angle.
|
160
312
|
* @param {m4x4f} matrix - The matrix to be modified.
|
161
313
|
* @param {number} angle - The angle by which to rotate (in radians).
|
162
314
|
* @returns {m4x4f} The rotated matrix.
|
163
315
|
*/
|
164
|
-
declare const rotateX4:
|
316
|
+
declare const rotateX4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
165
317
|
/**
|
166
318
|
* Rotates the given 4-by-4 matrix around the y-axis by the given angle.
|
167
319
|
* @param {m4x4f} matrix - The matrix to be modified.
|
168
320
|
* @param {number} angle - The angle by which to rotate (in radians).
|
169
321
|
* @returns {m4x4f} The rotated matrix.
|
170
322
|
*/
|
171
|
-
declare const rotateY4:
|
323
|
+
declare const rotateY4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
172
324
|
/**
|
173
325
|
* Rotates the given 4-by-4 matrix around the z-axis by the given angle.
|
174
326
|
* @param {m4x4f} matrix - The matrix to be modified.
|
175
327
|
* @param {number} angle - The angle by which to rotate (in radians).
|
176
328
|
* @returns {m4x4f} The rotated matrix.
|
177
329
|
*/
|
178
|
-
declare const rotateZ4:
|
330
|
+
declare const rotateZ4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
179
331
|
|
180
332
|
/**
|
181
333
|
* Checks whether `lhs == rhs` on all components.
|
@@ -184,7 +336,7 @@ declare const rotateZ4: TgpuDualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
|
184
336
|
* allEq(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns false
|
185
337
|
* allEq(vec3u(0, 1, 2), vec3u(0, 1, 2)) // returns true
|
186
338
|
*/
|
187
|
-
declare const allEq:
|
339
|
+
declare const allEq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => boolean)>;
|
188
340
|
/**
|
189
341
|
* Checks **component-wise** whether `lhs == rhs`.
|
190
342
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`, or use `allEq`.
|
@@ -194,7 +346,7 @@ declare const allEq: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => b
|
|
194
346
|
* all(eq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1))) // returns true
|
195
347
|
* allEq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1)) // returns true
|
196
348
|
*/
|
197
|
-
declare const eq:
|
349
|
+
declare const eq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
198
350
|
/**
|
199
351
|
* Checks **component-wise** whether `lhs != rhs`.
|
200
352
|
* This function does **not** return `bool`, for that use-case, wrap the result in `any`.
|
@@ -203,7 +355,7 @@ declare const eq: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T ex
|
|
203
355
|
* ne(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, true)
|
204
356
|
* any(ne(vec4i(4, 3, 2, 1), vec4i(4, 2, 2, 1))) // returns true
|
205
357
|
*/
|
206
|
-
declare const ne:
|
358
|
+
declare const ne: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
207
359
|
/**
|
208
360
|
* Checks **component-wise** whether `lhs < rhs`.
|
209
361
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -212,7 +364,7 @@ declare const ne: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T ex
|
|
212
364
|
* lt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, false)
|
213
365
|
* all(lt(vec4i(1, 2, 3, 4), vec4i(2, 3, 4, 5))) // returns true
|
214
366
|
*/
|
215
|
-
declare const lt:
|
367
|
+
declare const lt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
216
368
|
/**
|
217
369
|
* Checks **component-wise** whether `lhs <= rhs`.
|
218
370
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -221,7 +373,7 @@ declare const lt: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
221
373
|
* le(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, true, false)
|
222
374
|
* all(le(vec4i(1, 2, 3, 4), vec4i(2, 3, 3, 5))) // returns true
|
223
375
|
*/
|
224
|
-
declare const le:
|
376
|
+
declare const le: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
225
377
|
/**
|
226
378
|
* Checks **component-wise** whether `lhs > rhs`.
|
227
379
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -230,7 +382,7 @@ declare const le: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
230
382
|
* gt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, false, true)
|
231
383
|
* all(gt(vec4i(2, 3, 4, 5), vec4i(1, 2, 3, 4))) // returns true
|
232
384
|
*/
|
233
|
-
declare const gt:
|
385
|
+
declare const gt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
234
386
|
/**
|
235
387
|
* Checks **component-wise** whether `lhs >= rhs`.
|
236
388
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -239,42 +391,42 @@ declare const gt: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
239
391
|
* ge(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, true, true)
|
240
392
|
* all(ge(vec4i(2, 2, 4, 5), vec4i(1, 2, 3, 4))) // returns true
|
241
393
|
*/
|
242
|
-
declare const ge:
|
394
|
+
declare const ge: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
243
395
|
/**
|
244
396
|
* Returns **component-wise** `!value`.
|
245
397
|
* @example
|
246
398
|
* not(vec2b(false, true)) // returns vec2b(true, false)
|
247
399
|
* not(vec3b(true, true, false)) // returns vec3b(false, false, true)
|
248
400
|
*/
|
249
|
-
declare const not:
|
401
|
+
declare const not: DualFn<(<T extends AnyBooleanVecInstance>(value: T) => T)>;
|
250
402
|
/**
|
251
403
|
* Returns **component-wise** logical `or` result.
|
252
404
|
* @example
|
253
405
|
* or(vec2b(false, true), vec2b(false, false)) // returns vec2b(false, true)
|
254
406
|
* or(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(true, true, false)
|
255
407
|
*/
|
256
|
-
declare const or:
|
408
|
+
declare const or: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => T)>;
|
257
409
|
/**
|
258
410
|
* Returns **component-wise** logical `and` result.
|
259
411
|
* @example
|
260
412
|
* and(vec2b(false, true), vec2b(true, true)) // returns vec2b(false, true)
|
261
413
|
* and(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(false, true, false)
|
262
414
|
*/
|
263
|
-
declare const and:
|
415
|
+
declare const and: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => T)>;
|
264
416
|
/**
|
265
417
|
* Returns `true` if each component of `value` is true.
|
266
418
|
* @example
|
267
419
|
* all(vec2b(false, true)) // returns false
|
268
420
|
* all(vec3b(true, true, true)) // returns true
|
269
421
|
*/
|
270
|
-
declare const all:
|
422
|
+
declare const all: DualFn<(value: AnyBooleanVecInstance) => boolean>;
|
271
423
|
/**
|
272
424
|
* Returns `true` if any component of `value` is true.
|
273
425
|
* @example
|
274
426
|
* any(vec2b(false, true)) // returns true
|
275
427
|
* any(vec3b(false, false, false)) // returns false
|
276
428
|
*/
|
277
|
-
declare const any:
|
429
|
+
declare const any: DualFn<(value: AnyBooleanVecInstance) => boolean>;
|
278
430
|
/**
|
279
431
|
* Checks whether the given elements differ by at most the `precision` value.
|
280
432
|
* Checks all elements of `lhs` and `rhs` if arguments are vectors.
|
@@ -284,7 +436,7 @@ declare const any: TgpuDualFn<(value: AnyBooleanVecInstance) => boolean>;
|
|
284
436
|
*
|
285
437
|
* @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.
|
286
438
|
*/
|
287
|
-
declare const isCloseTo:
|
439
|
+
declare const isCloseTo: DualFn<(<T extends AnyFloatVecInstance | number>(lhs: T, rhs: T, precision?: number) => boolean)>;
|
288
440
|
type SelectOverload = {
|
289
441
|
<T extends number | boolean | AnyVecInstance>(f: T, t: T, cond: boolean): T;
|
290
442
|
<T extends AnyVecInstance>(f: T, t: T, cond: T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b): T;
|
@@ -301,41 +453,51 @@ type SelectOverload = {
|
|
301
453
|
declare const select: SelectOverload;
|
302
454
|
|
303
455
|
type AnyAtomic = atomicI32 | atomicU32;
|
304
|
-
declare const workgroupBarrier:
|
305
|
-
declare const storageBarrier:
|
306
|
-
declare const textureBarrier:
|
307
|
-
declare const atomicLoad:
|
308
|
-
declare const atomicStore:
|
309
|
-
declare const atomicAdd:
|
310
|
-
declare const atomicSub:
|
311
|
-
declare const atomicMax:
|
312
|
-
declare const atomicMin:
|
313
|
-
declare const atomicAnd:
|
314
|
-
declare const atomicOr:
|
315
|
-
declare const atomicXor:
|
456
|
+
declare const workgroupBarrier: DualFn<() => void>;
|
457
|
+
declare const storageBarrier: DualFn<() => void>;
|
458
|
+
declare const textureBarrier: DualFn<() => void>;
|
459
|
+
declare const atomicLoad: DualFn<(<T extends AnyAtomic>(a: T) => number)>;
|
460
|
+
declare const atomicStore: DualFn<(<T extends AnyAtomic>(a: T, value: number) => void)>;
|
461
|
+
declare const atomicAdd: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
462
|
+
declare const atomicSub: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
463
|
+
declare const atomicMax: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
464
|
+
declare const atomicMin: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
465
|
+
declare const atomicAnd: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
466
|
+
declare const atomicOr: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
467
|
+
declare const atomicXor: DualFn<(<T extends AnyAtomic>(a: T, value: number) => number)>;
|
468
|
+
|
469
|
+
declare const dpdx: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
470
|
+
declare const dpdxCoarse: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
471
|
+
declare const dpdxFine: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
472
|
+
declare const dpdy: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
473
|
+
declare const dpdyCoarse: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
474
|
+
declare const dpdyFine: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
475
|
+
declare const fwidth: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
476
|
+
declare const fwidthCoarse: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
477
|
+
declare const fwidthFine: DualFn<(<T extends AnyFloat32VecInstance | number>(value: T) => T)>;
|
316
478
|
|
317
|
-
declare const arrayLength:
|
479
|
+
declare const arrayLength: DualFn<(a: unknown[]) => number>;
|
318
480
|
|
319
481
|
/**
|
320
482
|
* @privateRemarks
|
321
483
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack2x16float-builtin
|
322
484
|
*/
|
323
|
-
declare const unpack2x16float:
|
485
|
+
declare const unpack2x16float: DualFn<(e: number) => v2f>;
|
324
486
|
/**
|
325
487
|
* @privateRemarks
|
326
488
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack2x16float-builtin
|
327
489
|
*/
|
328
|
-
declare const pack2x16float:
|
490
|
+
declare const pack2x16float: DualFn<(e: v2f) => number>;
|
329
491
|
/**
|
330
492
|
* @privateRemarks
|
331
493
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack4x8unorm-builtin
|
332
494
|
*/
|
333
|
-
declare const unpack4x8unorm:
|
495
|
+
declare const unpack4x8unorm: DualFn<(e: number) => v4f>;
|
334
496
|
/**
|
335
497
|
* @privateRemarks
|
336
498
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack4x8unorm-builtin
|
337
499
|
*/
|
338
|
-
declare const pack4x8unorm:
|
500
|
+
declare const pack4x8unorm: DualFn<(e: v4f) => number>;
|
339
501
|
|
340
502
|
type TextureSampleOverload = {
|
341
503
|
<T extends TgpuSampledTexture<'1d'>>(texture: T, sampler: TgpuSampler, coords: number): v4f;
|
@@ -393,4 +555,4 @@ type TextureDimensionsOverload = {
|
|
393
555
|
};
|
394
556
|
declare const textureDimensions: TextureDimensionsOverload;
|
395
557
|
|
396
|
-
export { abs, acos, acosh, add, all, allEq, and, any, arrayLength, asin, atan2, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cosh, cross, discard, distance, div, dot, eq, exp, exp2, floor, fract, ge, gt, isCloseTo, le, length, log, log2, lt, max, min, mix, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, reflect, rotateX4, rotateY4, rotateZ4, scale4, select, sign, sin, sqrt, storageBarrier, sub, tanh, textureBarrier, textureDimensions, textureLoad, textureSample, textureSampleLevel, textureStore, translate4, unpack2x16float, unpack4x8unorm, workgroupBarrier };
|
558
|
+
export { abs, acos, acosh, add, all, allEq, and, any, arrayLength, asin, asinh, atan, atan2, atanh, atomicAdd, atomicAnd, atomicLoad, atomicMax, atomicMin, atomicOr, atomicStore, atomicSub, atomicXor, ceil, clamp, cos, cosh, countLeadingZeros, countOneBits, countTrailingZeros, cross, degrees, determinant, discard, distance, div, dot, dot4I8Packed, dot4U8Packed, dpdx, dpdxCoarse, dpdxFine, dpdy, dpdyCoarse, dpdyFine, eq, exp, exp2, extractBits, faceForward, firstLeadingBit, firstTrailingBit, floor, fma, fract, frexp, fwidth, fwidthCoarse, fwidthFine, ge, gt, insertBits, inverseSqrt, isCloseTo, ldexp, le, length, log, log2, lt, max, min, mix, mod, modf, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, quantizeToF16, radians, reflect, refract, reverseBits, rotateX4, rotateY4, rotateZ4, round, saturate, scale4, select, sign, sin, sinh, smoothstep, sqrt, step, storageBarrier, sub, tan, tanh, textureBarrier, textureDimensions, textureLoad, textureSample, textureSampleLevel, textureStore, translate4, transpose, trunc, unpack2x16float, unpack4x8unorm, workgroupBarrier };
|