typegpu 0.7.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 +14 -14
- package/index.cjs.map +1 -1
- package/index.d.cts +2 -2
- package/index.d.ts +2 -2
- package/index.js +14 -14
- package/index.js.map +1 -1
- package/{matrix-BXuR-7-A.d.ts → matrix-4h_aOtIE.d.cts} +9 -9
- package/{matrix-DzXuhOr3.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 +266 -117
- package/std/index.d.ts +266 -117
- package/std/index.js +1 -1
- package/std/index.js.map +1 -1
- package/{tgpuConstant-BAmV6caN.d.cts → tgpuConstant-BSgcF4zi.d.cts} +383 -464
- package/{tgpuConstant-BAmV6caN.d.ts → tgpuConstant-BSgcF4zi.d.ts} +383 -464
- package/chunk-3K53YJSU.cjs +0 -10
- package/chunk-3K53YJSU.cjs.map +0 -1
- package/chunk-BF35NEOX.cjs +0 -43
- package/chunk-BF35NEOX.cjs.map +0 -1
- package/chunk-IH2QU6TV.js +0 -43
- package/chunk-IH2QU6TV.js.map +0 -1
- package/chunk-S27MYQ6U.js +0 -10
- package/chunk-S27MYQ6U.js.map +0 -1
package/std/index.d.cts
CHANGED
@@ -1,120 +1,285 @@
|
|
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
|
-
type DivOverload = {
|
31
|
-
(lhs: number, rhs: number): number;
|
32
|
-
<T extends NumVec | number>(lhs: T, rhs: T): T;
|
33
|
-
<T extends NumVec | number>(lhs: number, rhs: T): T;
|
34
|
-
<T extends NumVec | number>(lhs: T, rhs: number): T;
|
35
|
-
};
|
36
|
-
declare const div: TgpuDualFn<DivOverload>;
|
37
|
-
declare const abs: TgpuDualFn<(<T extends NumVec | number>(value: T) => T)>;
|
38
|
-
declare const atan2: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(y: T, x: T) => T)>;
|
39
|
-
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)>;
|
40
10
|
/**
|
41
11
|
* @privateRemarks
|
42
12
|
* https://www.w3.org/TR/WGSL/#acosh-builtin
|
43
13
|
*/
|
44
|
-
declare const acosh:
|
14
|
+
declare const acosh: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
45
15
|
/**
|
46
16
|
* @privateRemarks
|
47
17
|
* https://www.w3.org/TR/WGSL/#asin-builtin
|
48
18
|
*/
|
49
|
-
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)>;
|
50
36
|
/**
|
51
37
|
* @privateRemarks
|
52
38
|
* https://www.w3.org/TR/WGSL/#ceil-builtin
|
53
39
|
*/
|
54
|
-
declare const ceil:
|
40
|
+
declare const ceil: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
55
41
|
/**
|
56
42
|
* @privateRemarks
|
57
43
|
* https://www.w3.org/TR/WGSL/#clamp
|
58
44
|
*/
|
59
|
-
declare const clamp:
|
45
|
+
declare const clamp: DualFn<(<T extends NumVec$1 | number>(value: T, low: T, high: T) => T)>;
|
60
46
|
/**
|
61
47
|
* @privateRemarks
|
62
48
|
* https://www.w3.org/TR/WGSL/#cos-builtin
|
63
49
|
*/
|
64
|
-
declare const cos:
|
50
|
+
declare const cos: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
65
51
|
/**
|
66
52
|
* @privateRemarks
|
67
53
|
* https://www.w3.org/TR/WGSL/#cosh-builtin
|
68
54
|
*/
|
69
|
-
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)>;
|
70
59
|
/**
|
71
60
|
* @privateRemarks
|
72
61
|
* https://www.w3.org/TR/WGSL/#cross-builtin
|
73
62
|
*/
|
74
|
-
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)>;
|
75
67
|
/**
|
76
68
|
* @privateRemarks
|
77
69
|
* https://www.w3.org/TR/WGSL/#dot-builtin
|
78
70
|
*/
|
79
|
-
declare const dot:
|
80
|
-
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)>;
|
81
88
|
/**
|
82
89
|
* @privateRemarks
|
83
90
|
* https://www.w3.org/TR/WGSL/#floor-builtin
|
84
91
|
*/
|
85
|
-
declare const floor:
|
86
|
-
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;
|
87
153
|
/**
|
88
154
|
* @privateRemarks
|
89
155
|
* https://www.w3.org/TR/WGSL/#length-builtin
|
90
156
|
*/
|
91
|
-
declare const length:
|
157
|
+
declare const length: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => number)>;
|
92
158
|
/**
|
93
159
|
* @privateRemarks
|
94
160
|
* https://www.w3.org/TR/WGSL/#log-builtin
|
95
161
|
*/
|
96
|
-
declare const log:
|
162
|
+
declare const log: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
97
163
|
/**
|
98
164
|
* @privateRemarks
|
99
165
|
* https://www.w3.org/TR/WGSL/#log2-builtin
|
100
166
|
*/
|
101
|
-
declare const log2:
|
167
|
+
declare const log2: DualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
102
168
|
/**
|
103
169
|
* @privateRemarks
|
104
170
|
* https://www.w3.org/TR/WGSL/#max-float-builtin
|
105
171
|
*/
|
106
|
-
declare const max:
|
172
|
+
declare const max: DualFn<(<T extends NumVec$1 | number>(a: T, b: T) => T)>;
|
107
173
|
/**
|
108
174
|
* @privateRemarks
|
109
175
|
* https://www.w3.org/TR/WGSL/#min-float-builtin
|
110
176
|
*/
|
111
|
-
declare const min:
|
112
|
-
|
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)>;
|
113
241
|
/**
|
114
242
|
* @privateRemarks
|
115
243
|
* https://www.w3.org/TR/WGSL/#sin-builtin
|
116
244
|
*/
|
117
|
-
declare const sin:
|
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>;
|
118
283
|
type ModOverload = {
|
119
284
|
(a: number, b: number): number;
|
120
285
|
<T extends NumVec>(a: T, b: T): T;
|
@@ -126,33 +291,7 @@ type ModOverload = {
|
|
126
291
|
* Both JS and WGSL implementations use truncated definition of modulo
|
127
292
|
*/
|
128
293
|
declare const mod: ModOverload;
|
129
|
-
|
130
|
-
* @privateRemarks
|
131
|
-
* https://www.w3.org/TR/WGSL/#exp-builtin
|
132
|
-
*/
|
133
|
-
declare const exp: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
134
|
-
/**
|
135
|
-
* @privateRemarks
|
136
|
-
* https://www.w3.org/TR/WGSL/#exp2-builtin
|
137
|
-
*/
|
138
|
-
declare const exp2: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
139
|
-
type PowOverload = {
|
140
|
-
(base: number, exponent: number): number;
|
141
|
-
<T extends AnyFloatVecInstance>(base: T, exponent: T): T;
|
142
|
-
};
|
143
|
-
declare const pow: PowOverload;
|
144
|
-
type MixOverload = {
|
145
|
-
(e1: number, e2: number, e3: number): number;
|
146
|
-
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: number): T;
|
147
|
-
<T extends AnyFloatVecInstance>(e1: T, e2: T, e3: T): T;
|
148
|
-
};
|
149
|
-
declare const mix: MixOverload;
|
150
|
-
declare const reflect: TgpuDualFn<(<T extends AnyFloatVecInstance>(e1: T, e2: T) => T)>;
|
151
|
-
declare const distance: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(a: T, b: T) => number)>;
|
152
|
-
declare const neg: TgpuDualFn<(<T extends NumVec | number>(value: T) => T)>;
|
153
|
-
declare const sqrt: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
154
|
-
declare const tanh: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(value: T) => T)>;
|
155
|
-
declare const smoothstep: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(edge0: T, edge1: T, x: T) => T)>;
|
294
|
+
declare const neg: DualFn<(<T extends NumVec | number>(value: T) => T)>;
|
156
295
|
|
157
296
|
/**
|
158
297
|
* Translates the given 4-by-4 matrix by the given vector.
|
@@ -160,35 +299,35 @@ declare const smoothstep: TgpuDualFn<(<T extends AnyFloatVecInstance | number>(e
|
|
160
299
|
* @param {v3f} vector - The vector by which to translate the matrix.
|
161
300
|
* @returns {m4x4f} The translated matrix.
|
162
301
|
*/
|
163
|
-
declare const translate4:
|
302
|
+
declare const translate4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
|
164
303
|
/**
|
165
304
|
* Scales the given 4-by-4 matrix in each dimension by an amount given by the corresponding entry in the given vector.
|
166
305
|
* @param {m4x4f} matrix - The matrix to be modified.
|
167
306
|
* @param {v3f} vector - A vector of three entries specifying the factor by which to scale in each dimension.
|
168
307
|
* @returns {m4x4f} The scaled matrix.
|
169
308
|
*/
|
170
|
-
declare const scale4:
|
309
|
+
declare const scale4: DualFn<(matrix: m4x4f, vector: v3f) => m4x4f>;
|
171
310
|
/**
|
172
311
|
* Rotates the given 4-by-4 matrix around the x-axis by the given angle.
|
173
312
|
* @param {m4x4f} matrix - The matrix to be modified.
|
174
313
|
* @param {number} angle - The angle by which to rotate (in radians).
|
175
314
|
* @returns {m4x4f} The rotated matrix.
|
176
315
|
*/
|
177
|
-
declare const rotateX4:
|
316
|
+
declare const rotateX4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
178
317
|
/**
|
179
318
|
* Rotates the given 4-by-4 matrix around the y-axis by the given angle.
|
180
319
|
* @param {m4x4f} matrix - The matrix to be modified.
|
181
320
|
* @param {number} angle - The angle by which to rotate (in radians).
|
182
321
|
* @returns {m4x4f} The rotated matrix.
|
183
322
|
*/
|
184
|
-
declare const rotateY4:
|
323
|
+
declare const rotateY4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
185
324
|
/**
|
186
325
|
* Rotates the given 4-by-4 matrix around the z-axis by the given angle.
|
187
326
|
* @param {m4x4f} matrix - The matrix to be modified.
|
188
327
|
* @param {number} angle - The angle by which to rotate (in radians).
|
189
328
|
* @returns {m4x4f} The rotated matrix.
|
190
329
|
*/
|
191
|
-
declare const rotateZ4:
|
330
|
+
declare const rotateZ4: DualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
192
331
|
|
193
332
|
/**
|
194
333
|
* Checks whether `lhs == rhs` on all components.
|
@@ -197,7 +336,7 @@ declare const rotateZ4: TgpuDualFn<(matrix: m4x4f, angle: number) => m4x4f>;
|
|
197
336
|
* allEq(vec2f(0.0, 1.0), vec2f(0.0, 2.0)) // returns false
|
198
337
|
* allEq(vec3u(0, 1, 2), vec3u(0, 1, 2)) // returns true
|
199
338
|
*/
|
200
|
-
declare const allEq:
|
339
|
+
declare const allEq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => boolean)>;
|
201
340
|
/**
|
202
341
|
* Checks **component-wise** whether `lhs == rhs`.
|
203
342
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`, or use `allEq`.
|
@@ -207,7 +346,7 @@ declare const allEq: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => b
|
|
207
346
|
* all(eq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1))) // returns true
|
208
347
|
* allEq(vec4i(4, 3, 2, 1), vec4i(4, 3, 2, 1)) // returns true
|
209
348
|
*/
|
210
|
-
declare const eq:
|
349
|
+
declare const eq: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
211
350
|
/**
|
212
351
|
* Checks **component-wise** whether `lhs != rhs`.
|
213
352
|
* This function does **not** return `bool`, for that use-case, wrap the result in `any`.
|
@@ -216,7 +355,7 @@ declare const eq: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T ex
|
|
216
355
|
* ne(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, true)
|
217
356
|
* any(ne(vec4i(4, 3, 2, 1), vec4i(4, 2, 2, 1))) // returns true
|
218
357
|
*/
|
219
|
-
declare const ne:
|
358
|
+
declare const ne: DualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
220
359
|
/**
|
221
360
|
* Checks **component-wise** whether `lhs < rhs`.
|
222
361
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -225,7 +364,7 @@ declare const ne: TgpuDualFn<(<T extends AnyVecInstance>(lhs: T, rhs: T) => T ex
|
|
225
364
|
* lt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, false, false)
|
226
365
|
* all(lt(vec4i(1, 2, 3, 4), vec4i(2, 3, 4, 5))) // returns true
|
227
366
|
*/
|
228
|
-
declare const lt:
|
367
|
+
declare const lt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
229
368
|
/**
|
230
369
|
* Checks **component-wise** whether `lhs <= rhs`.
|
231
370
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -234,7 +373,7 @@ declare const lt: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
234
373
|
* le(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(true, true, false)
|
235
374
|
* all(le(vec4i(1, 2, 3, 4), vec4i(2, 3, 3, 5))) // returns true
|
236
375
|
*/
|
237
|
-
declare const le:
|
376
|
+
declare const le: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
238
377
|
/**
|
239
378
|
* Checks **component-wise** whether `lhs > rhs`.
|
240
379
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -243,7 +382,7 @@ declare const le: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
243
382
|
* gt(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, false, true)
|
244
383
|
* all(gt(vec4i(2, 3, 4, 5), vec4i(1, 2, 3, 4))) // returns true
|
245
384
|
*/
|
246
|
-
declare const gt:
|
385
|
+
declare const gt: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
247
386
|
/**
|
248
387
|
* Checks **component-wise** whether `lhs >= rhs`.
|
249
388
|
* This function does **not** return `bool`, for that use-case, wrap the result in `all`.
|
@@ -252,42 +391,42 @@ declare const gt: TgpuDualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T)
|
|
252
391
|
* ge(vec3u(0, 1, 2), vec3u(2, 1, 0)) // returns vec3b(false, true, true)
|
253
392
|
* all(ge(vec4i(2, 2, 4, 5), vec4i(1, 2, 3, 4))) // returns true
|
254
393
|
*/
|
255
|
-
declare const ge:
|
394
|
+
declare const ge: DualFn<(<T extends AnyNumericVecInstance>(lhs: T, rhs: T) => T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b)>;
|
256
395
|
/**
|
257
396
|
* Returns **component-wise** `!value`.
|
258
397
|
* @example
|
259
398
|
* not(vec2b(false, true)) // returns vec2b(true, false)
|
260
399
|
* not(vec3b(true, true, false)) // returns vec3b(false, false, true)
|
261
400
|
*/
|
262
|
-
declare const not:
|
401
|
+
declare const not: DualFn<(<T extends AnyBooleanVecInstance>(value: T) => T)>;
|
263
402
|
/**
|
264
403
|
* Returns **component-wise** logical `or` result.
|
265
404
|
* @example
|
266
405
|
* or(vec2b(false, true), vec2b(false, false)) // returns vec2b(false, true)
|
267
406
|
* or(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(true, true, false)
|
268
407
|
*/
|
269
|
-
declare const or:
|
408
|
+
declare const or: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => T)>;
|
270
409
|
/**
|
271
410
|
* Returns **component-wise** logical `and` result.
|
272
411
|
* @example
|
273
412
|
* and(vec2b(false, true), vec2b(true, true)) // returns vec2b(false, true)
|
274
413
|
* and(vec3b(true, true, false), vec3b(false, true, false)) // returns vec3b(false, true, false)
|
275
414
|
*/
|
276
|
-
declare const and:
|
415
|
+
declare const and: DualFn<(<T extends AnyBooleanVecInstance>(lhs: T, rhs: T) => T)>;
|
277
416
|
/**
|
278
417
|
* Returns `true` if each component of `value` is true.
|
279
418
|
* @example
|
280
419
|
* all(vec2b(false, true)) // returns false
|
281
420
|
* all(vec3b(true, true, true)) // returns true
|
282
421
|
*/
|
283
|
-
declare const all:
|
422
|
+
declare const all: DualFn<(value: AnyBooleanVecInstance) => boolean>;
|
284
423
|
/**
|
285
424
|
* Returns `true` if any component of `value` is true.
|
286
425
|
* @example
|
287
426
|
* any(vec2b(false, true)) // returns true
|
288
427
|
* any(vec3b(false, false, false)) // returns false
|
289
428
|
*/
|
290
|
-
declare const any:
|
429
|
+
declare const any: DualFn<(value: AnyBooleanVecInstance) => boolean>;
|
291
430
|
/**
|
292
431
|
* Checks whether the given elements differ by at most the `precision` value.
|
293
432
|
* Checks all elements of `lhs` and `rhs` if arguments are vectors.
|
@@ -297,7 +436,7 @@ declare const any: TgpuDualFn<(value: AnyBooleanVecInstance) => boolean>;
|
|
297
436
|
*
|
298
437
|
* @param {number} precision argument that specifies the maximum allowed difference, 0.01 by default.
|
299
438
|
*/
|
300
|
-
declare const isCloseTo:
|
439
|
+
declare const isCloseTo: DualFn<(<T extends AnyFloatVecInstance | number>(lhs: T, rhs: T, precision?: number) => boolean)>;
|
301
440
|
type SelectOverload = {
|
302
441
|
<T extends number | boolean | AnyVecInstance>(f: T, t: T, cond: boolean): T;
|
303
442
|
<T extends AnyVecInstance>(f: T, t: T, cond: T extends AnyVec2Instance ? v2b : T extends AnyVec3Instance ? v3b : v4b): T;
|
@@ -314,41 +453,51 @@ type SelectOverload = {
|
|
314
453
|
declare const select: SelectOverload;
|
315
454
|
|
316
455
|
type AnyAtomic = atomicI32 | atomicU32;
|
317
|
-
declare const workgroupBarrier:
|
318
|
-
declare const storageBarrier:
|
319
|
-
declare const textureBarrier:
|
320
|
-
declare const atomicLoad:
|
321
|
-
declare const atomicStore:
|
322
|
-
declare const atomicAdd:
|
323
|
-
declare const atomicSub:
|
324
|
-
declare const atomicMax:
|
325
|
-
declare const atomicMin:
|
326
|
-
declare const atomicAnd:
|
327
|
-
declare const atomicOr:
|
328
|
-
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)>;
|
329
478
|
|
330
|
-
declare const arrayLength:
|
479
|
+
declare const arrayLength: DualFn<(a: unknown[]) => number>;
|
331
480
|
|
332
481
|
/**
|
333
482
|
* @privateRemarks
|
334
483
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack2x16float-builtin
|
335
484
|
*/
|
336
|
-
declare const unpack2x16float:
|
485
|
+
declare const unpack2x16float: DualFn<(e: number) => v2f>;
|
337
486
|
/**
|
338
487
|
* @privateRemarks
|
339
488
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack2x16float-builtin
|
340
489
|
*/
|
341
|
-
declare const pack2x16float:
|
490
|
+
declare const pack2x16float: DualFn<(e: v2f) => number>;
|
342
491
|
/**
|
343
492
|
* @privateRemarks
|
344
493
|
* https://gpuweb.github.io/gpuweb/wgsl/#unpack4x8unorm-builtin
|
345
494
|
*/
|
346
|
-
declare const unpack4x8unorm:
|
495
|
+
declare const unpack4x8unorm: DualFn<(e: number) => v4f>;
|
347
496
|
/**
|
348
497
|
* @privateRemarks
|
349
498
|
* https://gpuweb.github.io/gpuweb/wgsl/#pack4x8unorm-builtin
|
350
499
|
*/
|
351
|
-
declare const pack4x8unorm:
|
500
|
+
declare const pack4x8unorm: DualFn<(e: v4f) => number>;
|
352
501
|
|
353
502
|
type TextureSampleOverload = {
|
354
503
|
<T extends TgpuSampledTexture<'1d'>>(texture: T, sampler: TgpuSampler, coords: number): v4f;
|
@@ -406,4 +555,4 @@ type TextureDimensionsOverload = {
|
|
406
555
|
};
|
407
556
|
declare const textureDimensions: TextureDimensionsOverload;
|
408
557
|
|
409
|
-
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, mod, mul, ne, neg, normalize, not, or, pack2x16float, pack4x8unorm, pow, reflect, rotateX4, rotateY4, rotateZ4, scale4, select, sign, sin, smoothstep, 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 };
|