glre 0.32.0 → 0.34.0

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/dist/index.d.ts CHANGED
@@ -3,7 +3,32 @@ import { Queue, Frame } from 'refr';
3
3
  export { Frame, Fun, Queue } from 'refr';
4
4
  import { Nested, EventState } from 'reev';
5
5
 
6
- declare const CONSTANTS: readonly ["bool", "uint", "int", "float", "bvec2", "ivec2", "uvec2", "vec2", "bvec3", "ivec3", "uvec3", "vec3", "bvec4", "ivec4", "uvec4", "vec4", "color", "mat2", "mat3", "mat4", "texture", "sampler2D"];
6
+ declare const TYPE_MAPPING: {
7
+ readonly bool: "bool";
8
+ readonly uint: "u32";
9
+ readonly int: "i32";
10
+ readonly float: "f32";
11
+ readonly bvec2: "vec2<bool>";
12
+ readonly ivec2: "vec2i";
13
+ readonly uvec2: "vec2u";
14
+ readonly vec2: "vec2f";
15
+ readonly bvec3: "vec3<bool>";
16
+ readonly ivec3: "vec3i";
17
+ readonly uvec3: "vec3u";
18
+ readonly vec3: "vec3f";
19
+ readonly bvec4: "vec4<bool>";
20
+ readonly ivec4: "vec4i";
21
+ readonly uvec4: "vec4u";
22
+ readonly vec4: "vec4f";
23
+ readonly color: "color";
24
+ readonly mat2: "mat2x2f";
25
+ readonly mat3: "mat3x3f";
26
+ readonly mat4: "mat4x4f";
27
+ readonly texture: "texture_2d<f32>";
28
+ readonly sampler2D: "sampler";
29
+ readonly struct: "struct";
30
+ };
31
+ declare const CONSTANTS: keyof typeof TYPE_MAPPING;
7
32
  declare const CONVERSIONS: readonly ["toBool", "toUint", "toInt", "toFloat", "toBvec2", "toIvec2", "toUvec2", "toVec2", "toBvec3", "toIvec3", "toUvec3", "toVec3", "toBvec4", "toIvec4", "toUvec4", "toVec4", "toColor", "toMat2", "toMat3", "toMat4"];
8
33
  declare const OPERATORS: {
9
34
  readonly add: "+";
@@ -26,7 +51,7 @@ declare const OPERATORS: {
26
51
  readonly shiftRight: ">>";
27
52
  };
28
53
  declare const OPERATOR_KEYS: (keyof typeof OPERATORS)[];
29
- declare const FUNCTIONS: readonly ["dot", "distance", "length", "lengthSq", "determinant", "luminance", "all", "any", "abs", "sign", "floor", "ceil", "round", "fract", "trunc", "sin", "cos", "tan", "asin", "acos", "atan", "exp", "exp2", "log", "log2", "sqrt", "inverseSqrt", "normalize", "oneMinus", "saturate", "negate", "reciprocal", "dFdx", "dFdy", "fwidth", "cross", "reflect", "refract", "min", "max", "mix", "clamp", "step", "smoothstep", "texture", "textureLod", "textureSize", "cubeTexture", "atan2", "degrees", "faceforward", "bitcast", "cbrt", "difference", "equals", "pow", "pow2", "pow3", "pow4", "radians", "transformDirection"];
54
+ declare const FUNCTIONS: readonly ["dot", "distance", "length", "lengthSq", "determinant", "luminance", "all", "any", "abs", "sign", "floor", "ceil", "round", "fract", "trunc", "sin", "cos", "tan", "asin", "acos", "atan", "sinh", "cosh", "tanh", "asinh", "acosh", "atanh", "exp", "exp2", "log", "log2", "sqrt", "inverseSqrt", "normalize", "oneMinus", "saturate", "negate", "reciprocal", "dFdx", "dFdy", "fwidth", "degrees", "radians", "cross", "reflect", "refract", "min", "max", "mix", "clamp", "step", "smoothstep", "pow", "atan2", "texture", "textureLod", "textureSize", "cubeTexture", "faceforward", "bitcast", "cbrt", "difference", "equals", "pow2", "pow3", "pow4", "transformDirection"];
30
55
 
31
56
  type Constants = (typeof CONSTANTS)[number] | 'void';
32
57
  type Conversions = (typeof CONVERSIONS)[number];
@@ -43,277 +68,1848 @@ interface FnLayout {
43
68
  /**
44
69
  * Node
45
70
  */
46
- type NodeTypes = 'attribute' | 'uniform' | 'constant' | 'variable' | 'varying' | 'swizzle' | 'ternary' | 'builtin' | 'conversion' | 'operator' | 'function' | 'scope' | 'assign' | 'loop' | 'define' | 'if' | 'switch' | 'declare' | 'return';
47
- interface NodeProps {
71
+ type NodeTypes = 'attribute' | 'uniform' | 'constant' | 'variable' | 'varying' | 'ternary' | 'builtin' | 'conversion' | 'operator' | 'function' | 'struct' | 'member' | 'scope' | 'assign' | 'loop' | 'define' | 'if' | 'switch' | 'declare' | 'return';
72
+ interface NodeProps<T extends Record<string, NodeProxy> = {}> {
48
73
  id?: string;
49
- args?: X[];
74
+ args?: any[];
50
75
  type?: string;
51
- children?: X[];
52
- inferFrom?: X[];
76
+ children?: any[];
77
+ inferFrom?: any[];
53
78
  layout?: FnLayout;
54
79
  parent?: NodeProxy;
80
+ fields?: T;
81
+ initialValues?: T;
55
82
  }
56
83
  interface NodeContext {
84
+ gl?: Partial<GL>;
57
85
  isFrag?: boolean;
58
86
  isWebGL?: boolean;
59
87
  binding?: number;
60
88
  infers?: WeakMap<NodeProxy, Constants>;
61
89
  onMount?: (name: string) => void;
62
- webgpu?: WebGPUState;
63
- headers?: Map<string, string>;
64
- fragInputs?: Map<string, string>;
65
- vertInputs?: Map<string, string>;
66
- vertOutputs?: Map<string, string>;
67
- vertVaryings?: Map<string, string>;
90
+ code?: {
91
+ headers: Map<string, string>;
92
+ fragInputs: Map<string, string>;
93
+ vertInputs: Map<string, string>;
94
+ vertOutputs: Map<string, string>;
95
+ vertVaryings: Map<string, string>;
96
+ dependencies: Map<string, Set<string>>;
97
+ };
68
98
  }
69
99
  /**
70
- * NodeProxy
100
+ * infer
101
+ */
102
+ type InferOperator<L extends Constants, R extends Constants> = L extends R ? L : L extends 'float' | 'int' ? R : R extends 'float' | 'int' ? L : L extends 'mat4' ? R extends 'vec4' ? R : L : L extends 'mat3' ? R extends 'vec3' ? R : L : L extends 'mat2' ? R extends 'vec2' ? R : L : L extends 'vec4' ? R extends 'mat4' ? L : L : L extends 'vec3' ? R extends 'mat3' ? L : L : L extends 'vec2' ? R extends 'mat2' ? L : L : L;
103
+ type _StringLength<S extends string> = S extends `${infer _}${infer Rest}` ? Rest extends '' ? 1 : Rest extends `${infer _}${infer Rest2}` ? Rest2 extends '' ? 2 : Rest2 extends `${infer _}${infer Rest3}` ? Rest3 extends '' ? 3 : 4 : never : never : 0;
104
+ type InferSwizzleType<S extends string> = _StringLength<S> extends 4 ? 'vec4' : _StringLength<S> extends 3 ? 'vec3' : _StringLength<S> extends 2 ? 'vec2' : 'float';
105
+ /**
106
+ * Swizzles
71
107
  */
72
108
  type _Swizzles<T extends string> = T | `${T}${T}` | `${T}${T}${T}` | `${T}${T}${T}${T}`;
73
109
  type Swizzles = _Swizzles<'x' | 'y' | 'z' | 'w'> | _Swizzles<'r' | 'g' | 'b' | 'a'> | _Swizzles<'p' | 'q'> | _Swizzles<'s' | 't'>;
74
110
  type NodeProxyMethods = Functions | Operators | Conversions | Swizzles | 'type' | 'props' | 'isProxy' | 'assign' | 'toVar' | 'toString';
75
- type DynamicProperties = {
76
- [K in string as K extends NodeProxyMethods ? never : K]: NodeProxy;
77
- };
78
- interface BaseNodeProxy extends Record<Swizzles, NodeProxy> {
79
- assign(n: X): NodeProxy;
80
- toVar(name?: string): NodeProxy;
111
+ interface BaseNodeProxy<T extends Constants> {
112
+ assign(x: any): NodeProxy<T>;
113
+ toVar(name?: string): NodeProxy<T>;
81
114
  toString(c?: NodeContext): string;
82
115
  type: NodeTypes;
83
116
  props: NodeProps;
84
117
  isProxy: true;
85
- add(n: X): NodeProxy;
86
- sub(n: X): NodeProxy;
87
- mul(n: X): NodeProxy;
88
- div(n: X): NodeProxy;
89
- mod(n: X): NodeProxy;
90
- equal(n: X): NodeProxy;
91
- notEqual(n: X): NodeProxy;
92
- lessThan(n: X): NodeProxy;
93
- lessThanEqual(n: X): NodeProxy;
94
- greaterThan(n: X): NodeProxy;
95
- greaterThanEqual(n: X): NodeProxy;
96
- and(n: X): NodeProxy;
97
- or(n: X): NodeProxy;
98
- not(): NodeProxy;
99
- toBool(): NodeProxy;
100
- toUint(): NodeProxy;
101
- toInt(): NodeProxy;
102
- toFloat(): NodeProxy;
103
- toBvec2(): NodeProxy;
104
- toIvec2(): NodeProxy;
105
- toUvec2(): NodeProxy;
106
- toVec2(): NodeProxy;
107
- toBvec3(): NodeProxy;
108
- toIvec3(): NodeProxy;
109
- toUvec3(): NodeProxy;
110
- toVec3(): NodeProxy;
111
- toBvec4(): NodeProxy;
112
- toIvec4(): NodeProxy;
113
- toUvec4(): NodeProxy;
114
- toVec4(): NodeProxy;
115
- toColor(): NodeProxy;
116
- toMat2(): NodeProxy;
117
- toMat3(): NodeProxy;
118
- toMat4(): NodeProxy;
119
- abs(): NodeProxy;
120
- sin(): NodeProxy;
121
- cos(): NodeProxy;
122
- tan(): NodeProxy;
123
- asin(): NodeProxy;
124
- acos(): NodeProxy;
125
- atan(): NodeProxy;
126
- atan2(x: X): NodeProxy;
127
- pow(y: X): NodeProxy;
128
- pow2(): NodeProxy;
129
- pow3(): NodeProxy;
130
- pow4(): NodeProxy;
131
- sqrt(): NodeProxy;
132
- inverseSqrt(): NodeProxy;
133
- exp(): NodeProxy;
134
- exp2(): NodeProxy;
135
- log(): NodeProxy;
136
- log2(): NodeProxy;
137
- floor(): NodeProxy;
138
- ceil(): NodeProxy;
139
- round(): NodeProxy;
140
- fract(): NodeProxy;
141
- trunc(): NodeProxy;
142
- min(y: X): NodeProxy;
143
- max(y: X): NodeProxy;
144
- clamp(min: X, max: X): NodeProxy;
145
- saturate(): NodeProxy;
146
- mix(y: X, a: X): NodeProxy;
147
- step(edge: X): NodeProxy;
148
- smoothstep(edge0: X, edge1: X): NodeProxy;
149
- length(): NodeProxy;
150
- distance(y: X): NodeProxy;
151
- dot(y: X): NodeProxy;
152
- cross(y: X): NodeProxy;
153
- normalize(): NodeProxy;
154
- reflect(N: X): NodeProxy;
155
- refract(N: X, eta: X): NodeProxy;
156
- sign(): NodeProxy;
157
- oneMinus(): NodeProxy;
158
- reciprocal(): NodeProxy;
159
- negate(): NodeProxy;
160
- dFdx(): NodeProxy;
161
- dFdy(): NodeProxy;
162
- fwidth(): NodeProxy;
118
+ listeners: Set<(value: any) => void>;
119
+ add<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
120
+ sub<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
121
+ mul<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
122
+ div<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
123
+ mod<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
124
+ equal<U extends Constants>(x: X<U>): Bool;
125
+ notEqual<U extends Constants>(x: X<U>): Bool;
126
+ lessThan<U extends Constants>(x: X<U>): Bool;
127
+ lessThanEqual<U extends Constants>(x: X<U>): Bool;
128
+ greaterThan<U extends Constants>(x: X<U>): Bool;
129
+ greaterThanEqual<U extends Constants>(x: X<U>): Bool;
130
+ and(x: X<'bool'>): Bool;
131
+ or(x: X<'bool'>): Bool;
132
+ not(): Bool;
133
+ bitAnd(x: X<T>): NodeProxy<T>;
134
+ bitOr(x: X<T>): NodeProxy<T>;
135
+ bitXor(x: X<T>): NodeProxy<T>;
136
+ bitNot(): NodeProxy<T>;
137
+ shiftLeft<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
138
+ shiftRight<U extends Constants>(x: X<U>): NodeProxy<InferOperator<T, U>>;
139
+ toBool(): Bool;
140
+ toUint(): UInt;
141
+ toInt(): Int;
142
+ toFloat(): Float;
143
+ toBvec2(): BVec2;
144
+ toIvec2(): IVec2;
145
+ toUvec2(): UVec2;
146
+ toVec2(): Vec2;
147
+ toBvec3(): BVec3;
148
+ toIvec3(): IVec3;
149
+ toUvec3(): UVec3;
150
+ toVec3(): Vec3;
151
+ toBvec4(): BVec4;
152
+ toIvec4(): IVec4;
153
+ toUvec4(): UVec4;
154
+ toVec4(): Vec4;
155
+ toColor(): Color;
156
+ toMat2(): Mat2;
157
+ toMat3(): Mat3;
158
+ toMat4(): Mat4;
159
+ abs(): NodeProxy<T>;
160
+ sign(): NodeProxy<T>;
161
+ floor(): NodeProxy<T>;
162
+ ceil(): NodeProxy<T>;
163
+ round(): NodeProxy<T>;
164
+ fract(): NodeProxy<T>;
165
+ trunc(): NodeProxy<T>;
166
+ sin(): NodeProxy<T>;
167
+ cos(): NodeProxy<T>;
168
+ tan(): NodeProxy<T>;
169
+ asin(): NodeProxy<T>;
170
+ acos(): NodeProxy<T>;
171
+ atan(): NodeProxy<T>;
172
+ exp(): NodeProxy<T>;
173
+ exp2(): NodeProxy<T>;
174
+ log(): NodeProxy<T>;
175
+ log2(): NodeProxy<T>;
176
+ sqrt(): NodeProxy<T>;
177
+ inverseSqrt(): NodeProxy<T>;
178
+ normalize(): NodeProxy<T>;
179
+ oneMinus(): NodeProxy<T>;
180
+ saturate(): NodeProxy<T>;
181
+ negate(): NodeProxy<T>;
182
+ reciprocal(): NodeProxy<T>;
183
+ dFdx(): NodeProxy<T>;
184
+ dFdy(): NodeProxy<T>;
185
+ fwidth(): NodeProxy<T>;
186
+ length(): Float;
187
+ lengthSq(): Float;
188
+ determinant(): Float;
189
+ luminance(): Float;
190
+ all(): Bool;
191
+ any(): Bool;
192
+ cross<U extends Constants>(y: X<U>): Vec3;
193
+ atan2<U extends Constants>(x: X<U>): NodeProxy<T>;
194
+ pow<U extends Constants>(y: X<U>): NodeProxy<T>;
195
+ distance<U extends Constants>(y: X<U>): Float;
196
+ dot<U extends Constants>(y: X<U>): Float;
197
+ reflect<U extends Constants>(N: X<U>): NodeProxy<T>;
198
+ refract<U extends Constants>(N: X<U>, eta: any): NodeProxy<T>;
199
+ min<U extends Constants>(y: X<U>): NodeProxy<InferOperator<T, U>>;
200
+ max<U extends Constants>(y: X<U>): NodeProxy<InferOperator<T, U>>;
201
+ mix<U extends Constants, V>(y: X<U>, a: V): NodeProxy<InferOperator<T, U>>;
202
+ clamp<U extends Constants, V>(mix: X<U>, max: V): NodeProxy<InferOperator<T, U>>;
203
+ step<U extends Constants>(edge: X<U>): NodeProxy<InferOperator<T, U>>;
204
+ smoothstep<U extends Constants, V>(edge0: X<U>, edge1: V): NodeProxy<InferOperator<T, U>>;
205
+ pow2(): NodeProxy<T>;
206
+ pow3(): NodeProxy<T>;
207
+ pow4(): NodeProxy<T>;
208
+ }
209
+ type ReadNodeProxy = {
210
+ [K in string as K extends NodeProxyMethods ? never : K]: any;
211
+ } & {
212
+ [K in Swizzles]: NodeProxy<InferSwizzleType<K>>;
213
+ };
214
+ type NodeProxyImpl<T extends Constants = string> = BaseNodeProxy<T> & ReadNodeProxy;
215
+ type Bool = NodeProxyImpl<'bool'>;
216
+ type UInt = NodeProxyImpl<'uint'>;
217
+ type Int = NodeProxyImpl<'int'>;
218
+ type Float = NodeProxyImpl<'float'>;
219
+ type BVec2 = NodeProxyImpl<'bvec2'>;
220
+ type IVec2 = NodeProxyImpl<'ivec2'>;
221
+ type UVec2 = NodeProxyImpl<'uvec2'>;
222
+ type Vec2 = NodeProxyImpl<'vec2'>;
223
+ type BVec3 = NodeProxyImpl<'bvec3'>;
224
+ type IVec3 = NodeProxyImpl<'ivec3'>;
225
+ type UVec3 = NodeProxyImpl<'uvec3'>;
226
+ type Vec3 = NodeProxyImpl<'vec3'>;
227
+ type BVec4 = NodeProxyImpl<'bvec4'>;
228
+ type IVec4 = NodeProxyImpl<'ivec4'>;
229
+ type UVec4 = NodeProxyImpl<'uvec4'>;
230
+ type Vec4 = NodeProxyImpl<'vec4'>;
231
+ type Color = NodeProxyImpl<'color'>;
232
+ type Mat2 = NodeProxyImpl<'mat2'>;
233
+ type Mat3 = NodeProxyImpl<'mat3'>;
234
+ type Mat4 = NodeProxyImpl<'mat4'>;
235
+ type Texture = NodeProxyImpl<'texture'>;
236
+ type Sampler2D = NodeProxyImpl<'sampler2D'>;
237
+ type Struct = NodeProxyImpl<'struct'>;
238
+ interface ConstantsToType {
239
+ bool: Bool;
240
+ uint: UInt;
241
+ int: Int;
242
+ float: Float;
243
+ bvec2: BVec2;
244
+ ivec2: IVec2;
245
+ uvec2: UVec2;
246
+ vec2: Vec2;
247
+ bvec3: BVec3;
248
+ ivec3: IVec3;
249
+ uvec3: UVec3;
250
+ vec3: Vec3;
251
+ bvec4: BVec4;
252
+ ivec4: IVec4;
253
+ uvec4: UVec4;
254
+ vec4: Vec4;
255
+ color: Color;
256
+ mat2: Mat2;
257
+ mat3: Mat3;
258
+ mat4: Mat4;
259
+ texture: Texture;
260
+ sampler2D: Sampler2D;
261
+ struct: Struct;
163
262
  }
164
- type NodeProxy = BaseNodeProxy & DynamicProperties;
165
- type X = NodeProxy | number | string | boolean | undefined;
263
+ type NodeProxy<T extends Constants = string> = T extends keyof ConstantsToType ? ConstantsToType[T] : NodeProxyImpl<T>;
264
+ type X<T extends Constants = string> = number | string | boolean | undefined | NodeProxy<T> | X[];
166
265
 
167
- declare const code: (target: X, c?: NodeContext | null) => string;
266
+ declare const code: <T extends Constants>(target: X<T>, c?: NodeContext | null) => string;
168
267
 
169
- declare const node: (type: NodeTypes, props?: NodeProps | null, ...args: X[]) => NodeProxy;
170
- declare const attribute: (x: X, id?: string) => NodeProxy;
171
- declare const constant: (x: X, id?: string) => NodeProxy;
172
- declare const uniform: (x: X, id?: string) => NodeProxy;
173
- declare const variable: (id?: string) => NodeProxy;
174
- declare const builtin: (id?: string) => NodeProxy;
175
- declare const vertexStage: (x: X, id?: string) => NodeProxy;
176
- declare const swizzle: (key: Swizzles, x: X) => NodeProxy;
177
- declare const operator: (key: Operators, ...x: X[]) => NodeProxy;
178
- declare const function_: (key: Functions, ...x: X[]) => NodeProxy;
179
- declare const conversion: (key: string, ...x: X[]) => NodeProxy;
180
- declare const select: (x: X, y: X, z: X) => NodeProxy;
268
+ declare const node: <T extends Constants>(type: NodeTypes, props?: NodeProps | null, ...args: X[]) => NodeProxy<T>;
269
+ declare const attribute: <T extends Constants>(x: X, id?: string) => NodeProxy<T>;
270
+ declare const constant: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
271
+ declare const uniform: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
272
+ declare const variable: <T extends Constants>(id?: string) => NodeProxy<T>;
273
+ declare const builtin: <T extends Constants>(id?: string) => NodeProxy<T>;
274
+ declare const vertexStage: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
275
+ declare const member: <T extends Constants>(key: string, x: X) => NodeProxy<T>;
276
+ declare const select: <T extends Constants>(x: X<T>, y: X<T>, z: X) => NodeProxy<T>;
277
+ declare const operator: <T extends Constants>(key: Operators, ...x: X[]) => NodeProxy<T>;
278
+ declare const function_: <T extends Constants>(key: Functions, ...x: X[]) => NodeProxy<T>;
279
+ declare const conversion: <T extends Constants>(key: T, ...x: X[]) => NodeProxy<T>;
181
280
 
182
- declare const toVar: (x: X, id?: string) => NodeProxy;
183
- declare const assign: (x: X, y: X) => X;
184
- declare const Return: (x: X) => NodeProxy;
185
- declare const If: (x: X, fun: () => void) => {
281
+ declare const toVar: <T extends Constants>(x: X<T>, id?: string) => NodeProxy<T>;
282
+ declare const assign: <T extends Constants>(x: X<T>, y: X<T>) => X<T>;
283
+ declare const Return: <T extends Constants>(x: X<T>) => NodeProxy<T>;
284
+ declare const struct: <T extends Record<string, NodeProxy>>(fields: T, id?: string) => (initialValues?: T, instanceId?: string) => BaseNodeProxy<string> & {
285
+ [x: string]: any;
286
+ } & {
287
+ x: Float;
288
+ y: Float;
289
+ z: Float;
290
+ w: Float;
291
+ xx: Vec2;
292
+ xy: Vec2;
293
+ xz: Vec2;
294
+ xw: Vec2;
295
+ yx: Vec2;
296
+ yy: Vec2;
297
+ yz: Vec2;
298
+ yw: Vec2;
299
+ zx: Vec2;
300
+ zy: Vec2;
301
+ zz: Vec2;
302
+ zw: Vec2;
303
+ wx: Vec2;
304
+ wy: Vec2;
305
+ wz: Vec2;
306
+ ww: Vec2;
307
+ xxx: Vec3;
308
+ xxy: Vec3;
309
+ xxz: Vec3;
310
+ xxw: Vec3;
311
+ xyx: Vec3;
312
+ xyy: Vec3;
313
+ xyz: Vec3;
314
+ xyw: Vec3;
315
+ xzx: Vec3;
316
+ xzy: Vec3;
317
+ xzz: Vec3;
318
+ xzw: Vec3;
319
+ xwx: Vec3;
320
+ xwy: Vec3;
321
+ xwz: Vec3;
322
+ xww: Vec3;
323
+ yxx: Vec3;
324
+ yxy: Vec3;
325
+ yxz: Vec3;
326
+ yxw: Vec3;
327
+ yyx: Vec3;
328
+ yyy: Vec3;
329
+ yyz: Vec3;
330
+ yyw: Vec3;
331
+ yzx: Vec3;
332
+ yzy: Vec3;
333
+ yzz: Vec3;
334
+ yzw: Vec3;
335
+ ywx: Vec3;
336
+ ywy: Vec3;
337
+ ywz: Vec3;
338
+ yww: Vec3;
339
+ zxx: Vec3;
340
+ zxy: Vec3;
341
+ zxz: Vec3;
342
+ zxw: Vec3;
343
+ zyx: Vec3;
344
+ zyy: Vec3;
345
+ zyz: Vec3;
346
+ zyw: Vec3;
347
+ zzx: Vec3;
348
+ zzy: Vec3;
349
+ zzz: Vec3;
350
+ zzw: Vec3;
351
+ zwx: Vec3;
352
+ zwy: Vec3;
353
+ zwz: Vec3;
354
+ zww: Vec3;
355
+ wxx: Vec3;
356
+ wxy: Vec3;
357
+ wxz: Vec3;
358
+ wxw: Vec3;
359
+ wyx: Vec3;
360
+ wyy: Vec3;
361
+ wyz: Vec3;
362
+ wyw: Vec3;
363
+ wzx: Vec3;
364
+ wzy: Vec3;
365
+ wzz: Vec3;
366
+ wzw: Vec3;
367
+ wwx: Vec3;
368
+ wwy: Vec3;
369
+ wwz: Vec3;
370
+ www: Vec3;
371
+ xxxx: Vec4;
372
+ xxxy: Vec4;
373
+ xxxz: Vec4;
374
+ xxxw: Vec4;
375
+ xxyx: Vec4;
376
+ xxyy: Vec4;
377
+ xxyz: Vec4;
378
+ xxyw: Vec4;
379
+ xxzx: Vec4;
380
+ xxzy: Vec4;
381
+ xxzz: Vec4;
382
+ xxzw: Vec4;
383
+ xxwx: Vec4;
384
+ xxwy: Vec4;
385
+ xxwz: Vec4;
386
+ xxww: Vec4;
387
+ xyxx: Vec4;
388
+ xyxy: Vec4;
389
+ xyxz: Vec4;
390
+ xyxw: Vec4;
391
+ xyyx: Vec4;
392
+ xyyy: Vec4;
393
+ xyyz: Vec4;
394
+ xyyw: Vec4;
395
+ xyzx: Vec4;
396
+ xyzy: Vec4;
397
+ xyzz: Vec4;
398
+ xyzw: Vec4;
399
+ xywx: Vec4;
400
+ xywy: Vec4;
401
+ xywz: Vec4;
402
+ xyww: Vec4;
403
+ xzxx: Vec4;
404
+ xzxy: Vec4;
405
+ xzxz: Vec4;
406
+ xzxw: Vec4;
407
+ xzyx: Vec4;
408
+ xzyy: Vec4;
409
+ xzyz: Vec4;
410
+ xzyw: Vec4;
411
+ xzzx: Vec4;
412
+ xzzy: Vec4;
413
+ xzzz: Vec4;
414
+ xzzw: Vec4;
415
+ xzwx: Vec4;
416
+ xzwy: Vec4;
417
+ xzwz: Vec4;
418
+ xzww: Vec4;
419
+ xwxx: Vec4;
420
+ xwxy: Vec4;
421
+ xwxz: Vec4;
422
+ xwxw: Vec4;
423
+ xwyx: Vec4;
424
+ xwyy: Vec4;
425
+ xwyz: Vec4;
426
+ xwyw: Vec4;
427
+ xwzx: Vec4;
428
+ xwzy: Vec4;
429
+ xwzz: Vec4;
430
+ xwzw: Vec4;
431
+ xwwx: Vec4;
432
+ xwwy: Vec4;
433
+ xwwz: Vec4;
434
+ xwww: Vec4;
435
+ yxxx: Vec4;
436
+ yxxy: Vec4;
437
+ yxxz: Vec4;
438
+ yxxw: Vec4;
439
+ yxyx: Vec4;
440
+ yxyy: Vec4;
441
+ yxyz: Vec4;
442
+ yxyw: Vec4;
443
+ yxzx: Vec4;
444
+ yxzy: Vec4;
445
+ yxzz: Vec4;
446
+ yxzw: Vec4;
447
+ yxwx: Vec4;
448
+ yxwy: Vec4;
449
+ yxwz: Vec4;
450
+ yxww: Vec4;
451
+ yyxx: Vec4;
452
+ yyxy: Vec4;
453
+ yyxz: Vec4;
454
+ yyxw: Vec4;
455
+ yyyx: Vec4;
456
+ yyyy: Vec4;
457
+ yyyz: Vec4;
458
+ yyyw: Vec4;
459
+ yyzx: Vec4;
460
+ yyzy: Vec4;
461
+ yyzz: Vec4;
462
+ yyzw: Vec4;
463
+ yywx: Vec4;
464
+ yywy: Vec4;
465
+ yywz: Vec4;
466
+ yyww: Vec4;
467
+ yzxx: Vec4;
468
+ yzxy: Vec4;
469
+ yzxz: Vec4;
470
+ yzxw: Vec4;
471
+ yzyx: Vec4;
472
+ yzyy: Vec4;
473
+ yzyz: Vec4;
474
+ yzyw: Vec4;
475
+ yzzx: Vec4;
476
+ yzzy: Vec4;
477
+ yzzz: Vec4;
478
+ yzzw: Vec4;
479
+ yzwx: Vec4;
480
+ yzwy: Vec4;
481
+ yzwz: Vec4;
482
+ yzww: Vec4;
483
+ ywxx: Vec4;
484
+ ywxy: Vec4;
485
+ ywxz: Vec4;
486
+ ywxw: Vec4;
487
+ ywyx: Vec4;
488
+ ywyy: Vec4;
489
+ ywyz: Vec4;
490
+ ywyw: Vec4;
491
+ ywzx: Vec4;
492
+ ywzy: Vec4;
493
+ ywzz: Vec4;
494
+ ywzw: Vec4;
495
+ ywwx: Vec4;
496
+ ywwy: Vec4;
497
+ ywwz: Vec4;
498
+ ywww: Vec4;
499
+ zxxx: Vec4;
500
+ zxxy: Vec4;
501
+ zxxz: Vec4;
502
+ zxxw: Vec4;
503
+ zxyx: Vec4;
504
+ zxyy: Vec4;
505
+ zxyz: Vec4;
506
+ zxyw: Vec4;
507
+ zxzx: Vec4;
508
+ zxzy: Vec4;
509
+ zxzz: Vec4;
510
+ zxzw: Vec4;
511
+ zxwx: Vec4;
512
+ zxwy: Vec4;
513
+ zxwz: Vec4;
514
+ zxww: Vec4;
515
+ zyxx: Vec4;
516
+ zyxy: Vec4;
517
+ zyxz: Vec4;
518
+ zyxw: Vec4;
519
+ zyyx: Vec4;
520
+ zyyy: Vec4;
521
+ zyyz: Vec4;
522
+ zyyw: Vec4;
523
+ zyzx: Vec4;
524
+ zyzy: Vec4;
525
+ zyzz: Vec4;
526
+ zyzw: Vec4;
527
+ zywx: Vec4;
528
+ zywy: Vec4;
529
+ zywz: Vec4;
530
+ zyww: Vec4;
531
+ zzxx: Vec4;
532
+ zzxy: Vec4;
533
+ zzxz: Vec4;
534
+ zzxw: Vec4;
535
+ zzyx: Vec4;
536
+ zzyy: Vec4;
537
+ zzyz: Vec4;
538
+ zzyw: Vec4;
539
+ zzzx: Vec4;
540
+ zzzy: Vec4;
541
+ zzzz: Vec4;
542
+ zzzw: Vec4;
543
+ zzwx: Vec4;
544
+ zzwy: Vec4;
545
+ zzwz: Vec4;
546
+ zzww: Vec4;
547
+ zwxx: Vec4;
548
+ zwxy: Vec4;
549
+ zwxz: Vec4;
550
+ zwxw: Vec4;
551
+ zwyx: Vec4;
552
+ zwyy: Vec4;
553
+ zwyz: Vec4;
554
+ zwyw: Vec4;
555
+ zwzx: Vec4;
556
+ zwzy: Vec4;
557
+ zwzz: Vec4;
558
+ zwzw: Vec4;
559
+ zwwx: Vec4;
560
+ zwwy: Vec4;
561
+ zwwz: Vec4;
562
+ zwww: Vec4;
563
+ wxxx: Vec4;
564
+ wxxy: Vec4;
565
+ wxxz: Vec4;
566
+ wxxw: Vec4;
567
+ wxyx: Vec4;
568
+ wxyy: Vec4;
569
+ wxyz: Vec4;
570
+ wxyw: Vec4;
571
+ wxzx: Vec4;
572
+ wxzy: Vec4;
573
+ wxzz: Vec4;
574
+ wxzw: Vec4;
575
+ wxwx: Vec4;
576
+ wxwy: Vec4;
577
+ wxwz: Vec4;
578
+ wxww: Vec4;
579
+ wyxx: Vec4;
580
+ wyxy: Vec4;
581
+ wyxz: Vec4;
582
+ wyxw: Vec4;
583
+ wyyx: Vec4;
584
+ wyyy: Vec4;
585
+ wyyz: Vec4;
586
+ wyyw: Vec4;
587
+ wyzx: Vec4;
588
+ wyzy: Vec4;
589
+ wyzz: Vec4;
590
+ wyzw: Vec4;
591
+ wywx: Vec4;
592
+ wywy: Vec4;
593
+ wywz: Vec4;
594
+ wyww: Vec4;
595
+ wzxx: Vec4;
596
+ wzxy: Vec4;
597
+ wzxz: Vec4;
598
+ wzxw: Vec4;
599
+ wzyx: Vec4;
600
+ wzyy: Vec4;
601
+ wzyz: Vec4;
602
+ wzyw: Vec4;
603
+ wzzx: Vec4;
604
+ wzzy: Vec4;
605
+ wzzz: Vec4;
606
+ wzzw: Vec4;
607
+ wzwx: Vec4;
608
+ wzwy: Vec4;
609
+ wzwz: Vec4;
610
+ wzww: Vec4;
611
+ wwxx: Vec4;
612
+ wwxy: Vec4;
613
+ wwxz: Vec4;
614
+ wwxw: Vec4;
615
+ wwyx: Vec4;
616
+ wwyy: Vec4;
617
+ wwyz: Vec4;
618
+ wwyw: Vec4;
619
+ wwzx: Vec4;
620
+ wwzy: Vec4;
621
+ wwzz: Vec4;
622
+ wwzw: Vec4;
623
+ wwwx: Vec4;
624
+ wwwy: Vec4;
625
+ wwwz: Vec4;
626
+ wwww: Vec4;
627
+ r: Float;
628
+ g: Float;
629
+ b: Float;
630
+ a: Float;
631
+ rr: Vec2;
632
+ rg: Vec2;
633
+ rb: Vec2;
634
+ ra: Vec2;
635
+ gr: Vec2;
636
+ gg: Vec2;
637
+ gb: Vec2;
638
+ ga: Vec2;
639
+ br: Vec2;
640
+ bg: Vec2;
641
+ bb: Vec2;
642
+ ba: Vec2;
643
+ ar: Vec2;
644
+ ag: Vec2;
645
+ ab: Vec2;
646
+ aa: Vec2;
647
+ rrr: Vec3;
648
+ rrg: Vec3;
649
+ rrb: Vec3;
650
+ rra: Vec3;
651
+ rgr: Vec3;
652
+ rgg: Vec3;
653
+ rgb: Vec3;
654
+ rga: Vec3;
655
+ rbr: Vec3;
656
+ rbg: Vec3;
657
+ rbb: Vec3;
658
+ rba: Vec3;
659
+ rar: Vec3;
660
+ rag: Vec3;
661
+ rab: Vec3;
662
+ raa: Vec3;
663
+ grr: Vec3;
664
+ grg: Vec3;
665
+ grb: Vec3;
666
+ gra: Vec3;
667
+ ggr: Vec3;
668
+ ggg: Vec3;
669
+ ggb: Vec3;
670
+ gga: Vec3;
671
+ gbr: Vec3;
672
+ gbg: Vec3;
673
+ gbb: Vec3;
674
+ gba: Vec3;
675
+ gar: Vec3;
676
+ gag: Vec3;
677
+ gab: Vec3;
678
+ gaa: Vec3;
679
+ brr: Vec3;
680
+ brg: Vec3;
681
+ brb: Vec3;
682
+ bra: Vec3;
683
+ bgr: Vec3;
684
+ bgg: Vec3;
685
+ bgb: Vec3;
686
+ bga: Vec3;
687
+ bbr: Vec3;
688
+ bbg: Vec3;
689
+ bbb: Vec3;
690
+ bba: Vec3;
691
+ bar: Vec3;
692
+ bag: Vec3;
693
+ bab: Vec3;
694
+ baa: Vec3;
695
+ arr: Vec3;
696
+ arg: Vec3;
697
+ arb: Vec3;
698
+ ara: Vec3;
699
+ agr: Vec3;
700
+ agg: Vec3;
701
+ agb: Vec3;
702
+ aga: Vec3;
703
+ abr: Vec3;
704
+ abg: Vec3;
705
+ abb: Vec3;
706
+ aba: Vec3;
707
+ aar: Vec3;
708
+ aag: Vec3;
709
+ aab: Vec3;
710
+ aaa: Vec3;
711
+ rrrr: Vec4;
712
+ rrrg: Vec4;
713
+ rrrb: Vec4;
714
+ rrra: Vec4;
715
+ rrgr: Vec4;
716
+ rrgg: Vec4;
717
+ rrgb: Vec4;
718
+ rrga: Vec4;
719
+ rrbr: Vec4;
720
+ rrbg: Vec4;
721
+ rrbb: Vec4;
722
+ rrba: Vec4;
723
+ rrar: Vec4;
724
+ rrag: Vec4;
725
+ rrab: Vec4;
726
+ rraa: Vec4;
727
+ rgrr: Vec4;
728
+ rgrg: Vec4;
729
+ rgrb: Vec4;
730
+ rgra: Vec4;
731
+ rggr: Vec4;
732
+ rggg: Vec4;
733
+ rggb: Vec4;
734
+ rgga: Vec4;
735
+ rgbr: Vec4;
736
+ rgbg: Vec4;
737
+ rgbb: Vec4;
738
+ rgba: Vec4;
739
+ rgar: Vec4;
740
+ rgag: Vec4;
741
+ rgab: Vec4;
742
+ rgaa: Vec4;
743
+ rbrr: Vec4;
744
+ rbrg: Vec4;
745
+ rbrb: Vec4;
746
+ rbra: Vec4;
747
+ rbgr: Vec4;
748
+ rbgg: Vec4;
749
+ rbgb: Vec4;
750
+ rbga: Vec4;
751
+ rbbr: Vec4;
752
+ rbbg: Vec4;
753
+ rbbb: Vec4;
754
+ rbba: Vec4;
755
+ rbar: Vec4;
756
+ rbag: Vec4;
757
+ rbab: Vec4;
758
+ rbaa: Vec4;
759
+ rarr: Vec4;
760
+ rarg: Vec4;
761
+ rarb: Vec4;
762
+ rara: Vec4;
763
+ ragr: Vec4;
764
+ ragg: Vec4;
765
+ ragb: Vec4;
766
+ raga: Vec4;
767
+ rabr: Vec4;
768
+ rabg: Vec4;
769
+ rabb: Vec4;
770
+ raba: Vec4;
771
+ raar: Vec4;
772
+ raag: Vec4;
773
+ raab: Vec4;
774
+ raaa: Vec4;
775
+ grrr: Vec4;
776
+ grrg: Vec4;
777
+ grrb: Vec4;
778
+ grra: Vec4;
779
+ grgr: Vec4;
780
+ grgg: Vec4;
781
+ grgb: Vec4;
782
+ grga: Vec4;
783
+ grbr: Vec4;
784
+ grbg: Vec4;
785
+ grbb: Vec4;
786
+ grba: Vec4;
787
+ grar: Vec4;
788
+ grag: Vec4;
789
+ grab: Vec4;
790
+ graa: Vec4;
791
+ ggrr: Vec4;
792
+ ggrg: Vec4;
793
+ ggrb: Vec4;
794
+ ggra: Vec4;
795
+ gggr: Vec4;
796
+ gggg: Vec4;
797
+ gggb: Vec4;
798
+ ggga: Vec4;
799
+ ggbr: Vec4;
800
+ ggbg: Vec4;
801
+ ggbb: Vec4;
802
+ ggba: Vec4;
803
+ ggar: Vec4;
804
+ ggag: Vec4;
805
+ ggab: Vec4;
806
+ ggaa: Vec4;
807
+ gbrr: Vec4;
808
+ gbrg: Vec4;
809
+ gbrb: Vec4;
810
+ gbra: Vec4;
811
+ gbgr: Vec4;
812
+ gbgg: Vec4;
813
+ gbgb: Vec4;
814
+ gbga: Vec4;
815
+ gbbr: Vec4;
816
+ gbbg: Vec4;
817
+ gbbb: Vec4;
818
+ gbba: Vec4;
819
+ gbar: Vec4;
820
+ gbag: Vec4;
821
+ gbab: Vec4;
822
+ gbaa: Vec4;
823
+ garr: Vec4;
824
+ garg: Vec4;
825
+ garb: Vec4;
826
+ gara: Vec4;
827
+ gagr: Vec4;
828
+ gagg: Vec4;
829
+ gagb: Vec4;
830
+ gaga: Vec4;
831
+ gabr: Vec4;
832
+ gabg: Vec4;
833
+ gabb: Vec4;
834
+ gaba: Vec4;
835
+ gaar: Vec4;
836
+ gaag: Vec4;
837
+ gaab: Vec4;
838
+ gaaa: Vec4;
839
+ brrr: Vec4;
840
+ brrg: Vec4;
841
+ brrb: Vec4;
842
+ brra: Vec4;
843
+ brgr: Vec4;
844
+ brgg: Vec4;
845
+ brgb: Vec4;
846
+ brga: Vec4;
847
+ brbr: Vec4;
848
+ brbg: Vec4;
849
+ brbb: Vec4;
850
+ brba: Vec4;
851
+ brar: Vec4;
852
+ brag: Vec4;
853
+ brab: Vec4;
854
+ braa: Vec4;
855
+ bgrr: Vec4;
856
+ bgrg: Vec4;
857
+ bgrb: Vec4;
858
+ bgra: Vec4;
859
+ bggr: Vec4;
860
+ bggg: Vec4;
861
+ bggb: Vec4;
862
+ bgga: Vec4;
863
+ bgbr: Vec4;
864
+ bgbg: Vec4;
865
+ bgbb: Vec4;
866
+ bgba: Vec4;
867
+ bgar: Vec4;
868
+ bgag: Vec4;
869
+ bgab: Vec4;
870
+ bgaa: Vec4;
871
+ bbrr: Vec4;
872
+ bbrg: Vec4;
873
+ bbrb: Vec4;
874
+ bbra: Vec4;
875
+ bbgr: Vec4;
876
+ bbgg: Vec4;
877
+ bbgb: Vec4;
878
+ bbga: Vec4;
879
+ bbbr: Vec4;
880
+ bbbg: Vec4;
881
+ bbbb: Vec4;
882
+ bbba: Vec4;
883
+ bbar: Vec4;
884
+ bbag: Vec4;
885
+ bbab: Vec4;
886
+ bbaa: Vec4;
887
+ barr: Vec4;
888
+ barg: Vec4;
889
+ barb: Vec4;
890
+ bara: Vec4;
891
+ bagr: Vec4;
892
+ bagg: Vec4;
893
+ bagb: Vec4;
894
+ baga: Vec4;
895
+ babr: Vec4;
896
+ babg: Vec4;
897
+ babb: Vec4;
898
+ baba: Vec4;
899
+ baar: Vec4;
900
+ baag: Vec4;
901
+ baab: Vec4;
902
+ baaa: Vec4;
903
+ arrr: Vec4;
904
+ arrg: Vec4;
905
+ arrb: Vec4;
906
+ arra: Vec4;
907
+ argr: Vec4;
908
+ argg: Vec4;
909
+ argb: Vec4;
910
+ arga: Vec4;
911
+ arbr: Vec4;
912
+ arbg: Vec4;
913
+ arbb: Vec4;
914
+ arba: Vec4;
915
+ arar: Vec4;
916
+ arag: Vec4;
917
+ arab: Vec4;
918
+ araa: Vec4;
919
+ agrr: Vec4;
920
+ agrg: Vec4;
921
+ agrb: Vec4;
922
+ agra: Vec4;
923
+ aggr: Vec4;
924
+ aggg: Vec4;
925
+ aggb: Vec4;
926
+ agga: Vec4;
927
+ agbr: Vec4;
928
+ agbg: Vec4;
929
+ agbb: Vec4;
930
+ agba: Vec4;
931
+ agar: Vec4;
932
+ agag: Vec4;
933
+ agab: Vec4;
934
+ agaa: Vec4;
935
+ abrr: Vec4;
936
+ abrg: Vec4;
937
+ abrb: Vec4;
938
+ abra: Vec4;
939
+ abgr: Vec4;
940
+ abgg: Vec4;
941
+ abgb: Vec4;
942
+ abga: Vec4;
943
+ abbr: Vec4;
944
+ abbg: Vec4;
945
+ abbb: Vec4;
946
+ abba: Vec4;
947
+ abar: Vec4;
948
+ abag: Vec4;
949
+ abab: Vec4;
950
+ abaa: Vec4;
951
+ aarr: Vec4;
952
+ aarg: Vec4;
953
+ aarb: Vec4;
954
+ aara: Vec4;
955
+ aagr: Vec4;
956
+ aagg: Vec4;
957
+ aagb: Vec4;
958
+ aaga: Vec4;
959
+ aabr: Vec4;
960
+ aabg: Vec4;
961
+ aabb: Vec4;
962
+ aaba: Vec4;
963
+ aaar: Vec4;
964
+ aaag: Vec4;
965
+ aaab: Vec4;
966
+ aaaa: Vec4;
967
+ p: Float;
968
+ q: Float;
969
+ pp: Vec2;
970
+ pq: Vec2;
971
+ qp: Vec2;
972
+ qq: Vec2;
973
+ ppp: Vec3;
974
+ ppq: Vec3;
975
+ pqp: Vec3;
976
+ pqq: Vec3;
977
+ qpp: Vec3;
978
+ qpq: Vec3;
979
+ qqp: Vec3;
980
+ qqq: Vec3;
981
+ pppp: Vec4;
982
+ pppq: Vec4;
983
+ ppqp: Vec4;
984
+ ppqq: Vec4;
985
+ pqpp: Vec4;
986
+ pqpq: Vec4;
987
+ pqqp: Vec4;
988
+ pqqq: Vec4;
989
+ qppp: Vec4;
990
+ qppq: Vec4;
991
+ qpqp: Vec4;
992
+ qpqq: Vec4;
993
+ qqpp: Vec4;
994
+ qqpq: Vec4;
995
+ qqqp: Vec4;
996
+ qqqq: Vec4;
997
+ s: Float;
998
+ t: Float;
999
+ ss: Vec2;
1000
+ st: Vec2;
1001
+ ts: Vec2;
1002
+ tt: Vec2;
1003
+ sss: Vec3;
1004
+ sst: Vec3;
1005
+ sts: Vec3;
1006
+ stt: Vec3;
1007
+ tss: Vec3;
1008
+ tst: Vec3;
1009
+ tts: Vec3;
1010
+ ttt: Vec3;
1011
+ ssss: Vec4;
1012
+ ssst: Vec4;
1013
+ ssts: Vec4;
1014
+ sstt: Vec4;
1015
+ stss: Vec4;
1016
+ stst: Vec4;
1017
+ stts: Vec4;
1018
+ sttt: Vec4;
1019
+ tsss: Vec4;
1020
+ tsst: Vec4;
1021
+ tsts: Vec4;
1022
+ tstt: Vec4;
1023
+ ttss: Vec4;
1024
+ ttst: Vec4;
1025
+ ttts: Vec4;
1026
+ tttt: Vec4;
1027
+ };
1028
+ declare const If: (x: NodeProxy, fun: () => void) => {
186
1029
  ElseIf: (_x: X, _fun: () => void) => /*elided*/ any;
187
1030
  Else: (_fun: () => void) => void;
188
1031
  };
189
- declare const Loop: (x: X, fun: (params: {
190
- i: NodeProxy;
191
- }) => void) => NodeProxy;
192
- declare const Switch: (x: X) => {
1032
+ declare const Loop: (x: NodeProxy, fun: (params: {
1033
+ i: Int;
1034
+ }) => void) => BaseNodeProxy<string> & {
1035
+ [x: string]: any;
1036
+ } & {
1037
+ x: Float;
1038
+ y: Float;
1039
+ z: Float;
1040
+ w: Float;
1041
+ xx: Vec2;
1042
+ xy: Vec2;
1043
+ xz: Vec2;
1044
+ xw: Vec2;
1045
+ yx: Vec2;
1046
+ yy: Vec2;
1047
+ yz: Vec2;
1048
+ yw: Vec2;
1049
+ zx: Vec2;
1050
+ zy: Vec2;
1051
+ zz: Vec2;
1052
+ zw: Vec2;
1053
+ wx: Vec2;
1054
+ wy: Vec2;
1055
+ wz: Vec2;
1056
+ ww: Vec2;
1057
+ xxx: Vec3;
1058
+ xxy: Vec3;
1059
+ xxz: Vec3;
1060
+ xxw: Vec3;
1061
+ xyx: Vec3;
1062
+ xyy: Vec3;
1063
+ xyz: Vec3;
1064
+ xyw: Vec3;
1065
+ xzx: Vec3;
1066
+ xzy: Vec3;
1067
+ xzz: Vec3;
1068
+ xzw: Vec3;
1069
+ xwx: Vec3;
1070
+ xwy: Vec3;
1071
+ xwz: Vec3;
1072
+ xww: Vec3;
1073
+ yxx: Vec3;
1074
+ yxy: Vec3;
1075
+ yxz: Vec3;
1076
+ yxw: Vec3;
1077
+ yyx: Vec3;
1078
+ yyy: Vec3;
1079
+ yyz: Vec3;
1080
+ yyw: Vec3;
1081
+ yzx: Vec3;
1082
+ yzy: Vec3;
1083
+ yzz: Vec3;
1084
+ yzw: Vec3;
1085
+ ywx: Vec3;
1086
+ ywy: Vec3;
1087
+ ywz: Vec3;
1088
+ yww: Vec3;
1089
+ zxx: Vec3;
1090
+ zxy: Vec3;
1091
+ zxz: Vec3;
1092
+ zxw: Vec3;
1093
+ zyx: Vec3;
1094
+ zyy: Vec3;
1095
+ zyz: Vec3;
1096
+ zyw: Vec3;
1097
+ zzx: Vec3;
1098
+ zzy: Vec3;
1099
+ zzz: Vec3;
1100
+ zzw: Vec3;
1101
+ zwx: Vec3;
1102
+ zwy: Vec3;
1103
+ zwz: Vec3;
1104
+ zww: Vec3;
1105
+ wxx: Vec3;
1106
+ wxy: Vec3;
1107
+ wxz: Vec3;
1108
+ wxw: Vec3;
1109
+ wyx: Vec3;
1110
+ wyy: Vec3;
1111
+ wyz: Vec3;
1112
+ wyw: Vec3;
1113
+ wzx: Vec3;
1114
+ wzy: Vec3;
1115
+ wzz: Vec3;
1116
+ wzw: Vec3;
1117
+ wwx: Vec3;
1118
+ wwy: Vec3;
1119
+ wwz: Vec3;
1120
+ www: Vec3;
1121
+ xxxx: Vec4;
1122
+ xxxy: Vec4;
1123
+ xxxz: Vec4;
1124
+ xxxw: Vec4;
1125
+ xxyx: Vec4;
1126
+ xxyy: Vec4;
1127
+ xxyz: Vec4;
1128
+ xxyw: Vec4;
1129
+ xxzx: Vec4;
1130
+ xxzy: Vec4;
1131
+ xxzz: Vec4;
1132
+ xxzw: Vec4;
1133
+ xxwx: Vec4;
1134
+ xxwy: Vec4;
1135
+ xxwz: Vec4;
1136
+ xxww: Vec4;
1137
+ xyxx: Vec4;
1138
+ xyxy: Vec4;
1139
+ xyxz: Vec4;
1140
+ xyxw: Vec4;
1141
+ xyyx: Vec4;
1142
+ xyyy: Vec4;
1143
+ xyyz: Vec4;
1144
+ xyyw: Vec4;
1145
+ xyzx: Vec4;
1146
+ xyzy: Vec4;
1147
+ xyzz: Vec4;
1148
+ xyzw: Vec4;
1149
+ xywx: Vec4;
1150
+ xywy: Vec4;
1151
+ xywz: Vec4;
1152
+ xyww: Vec4;
1153
+ xzxx: Vec4;
1154
+ xzxy: Vec4;
1155
+ xzxz: Vec4;
1156
+ xzxw: Vec4;
1157
+ xzyx: Vec4;
1158
+ xzyy: Vec4;
1159
+ xzyz: Vec4;
1160
+ xzyw: Vec4;
1161
+ xzzx: Vec4;
1162
+ xzzy: Vec4;
1163
+ xzzz: Vec4;
1164
+ xzzw: Vec4;
1165
+ xzwx: Vec4;
1166
+ xzwy: Vec4;
1167
+ xzwz: Vec4;
1168
+ xzww: Vec4;
1169
+ xwxx: Vec4;
1170
+ xwxy: Vec4;
1171
+ xwxz: Vec4;
1172
+ xwxw: Vec4;
1173
+ xwyx: Vec4;
1174
+ xwyy: Vec4;
1175
+ xwyz: Vec4;
1176
+ xwyw: Vec4;
1177
+ xwzx: Vec4;
1178
+ xwzy: Vec4;
1179
+ xwzz: Vec4;
1180
+ xwzw: Vec4;
1181
+ xwwx: Vec4;
1182
+ xwwy: Vec4;
1183
+ xwwz: Vec4;
1184
+ xwww: Vec4;
1185
+ yxxx: Vec4;
1186
+ yxxy: Vec4;
1187
+ yxxz: Vec4;
1188
+ yxxw: Vec4;
1189
+ yxyx: Vec4;
1190
+ yxyy: Vec4;
1191
+ yxyz: Vec4;
1192
+ yxyw: Vec4;
1193
+ yxzx: Vec4;
1194
+ yxzy: Vec4;
1195
+ yxzz: Vec4;
1196
+ yxzw: Vec4;
1197
+ yxwx: Vec4;
1198
+ yxwy: Vec4;
1199
+ yxwz: Vec4;
1200
+ yxww: Vec4;
1201
+ yyxx: Vec4;
1202
+ yyxy: Vec4;
1203
+ yyxz: Vec4;
1204
+ yyxw: Vec4;
1205
+ yyyx: Vec4;
1206
+ yyyy: Vec4;
1207
+ yyyz: Vec4;
1208
+ yyyw: Vec4;
1209
+ yyzx: Vec4;
1210
+ yyzy: Vec4;
1211
+ yyzz: Vec4;
1212
+ yyzw: Vec4;
1213
+ yywx: Vec4;
1214
+ yywy: Vec4;
1215
+ yywz: Vec4;
1216
+ yyww: Vec4;
1217
+ yzxx: Vec4;
1218
+ yzxy: Vec4;
1219
+ yzxz: Vec4;
1220
+ yzxw: Vec4;
1221
+ yzyx: Vec4;
1222
+ yzyy: Vec4;
1223
+ yzyz: Vec4;
1224
+ yzyw: Vec4;
1225
+ yzzx: Vec4;
1226
+ yzzy: Vec4;
1227
+ yzzz: Vec4;
1228
+ yzzw: Vec4;
1229
+ yzwx: Vec4;
1230
+ yzwy: Vec4;
1231
+ yzwz: Vec4;
1232
+ yzww: Vec4;
1233
+ ywxx: Vec4;
1234
+ ywxy: Vec4;
1235
+ ywxz: Vec4;
1236
+ ywxw: Vec4;
1237
+ ywyx: Vec4;
1238
+ ywyy: Vec4;
1239
+ ywyz: Vec4;
1240
+ ywyw: Vec4;
1241
+ ywzx: Vec4;
1242
+ ywzy: Vec4;
1243
+ ywzz: Vec4;
1244
+ ywzw: Vec4;
1245
+ ywwx: Vec4;
1246
+ ywwy: Vec4;
1247
+ ywwz: Vec4;
1248
+ ywww: Vec4;
1249
+ zxxx: Vec4;
1250
+ zxxy: Vec4;
1251
+ zxxz: Vec4;
1252
+ zxxw: Vec4;
1253
+ zxyx: Vec4;
1254
+ zxyy: Vec4;
1255
+ zxyz: Vec4;
1256
+ zxyw: Vec4;
1257
+ zxzx: Vec4;
1258
+ zxzy: Vec4;
1259
+ zxzz: Vec4;
1260
+ zxzw: Vec4;
1261
+ zxwx: Vec4;
1262
+ zxwy: Vec4;
1263
+ zxwz: Vec4;
1264
+ zxww: Vec4;
1265
+ zyxx: Vec4;
1266
+ zyxy: Vec4;
1267
+ zyxz: Vec4;
1268
+ zyxw: Vec4;
1269
+ zyyx: Vec4;
1270
+ zyyy: Vec4;
1271
+ zyyz: Vec4;
1272
+ zyyw: Vec4;
1273
+ zyzx: Vec4;
1274
+ zyzy: Vec4;
1275
+ zyzz: Vec4;
1276
+ zyzw: Vec4;
1277
+ zywx: Vec4;
1278
+ zywy: Vec4;
1279
+ zywz: Vec4;
1280
+ zyww: Vec4;
1281
+ zzxx: Vec4;
1282
+ zzxy: Vec4;
1283
+ zzxz: Vec4;
1284
+ zzxw: Vec4;
1285
+ zzyx: Vec4;
1286
+ zzyy: Vec4;
1287
+ zzyz: Vec4;
1288
+ zzyw: Vec4;
1289
+ zzzx: Vec4;
1290
+ zzzy: Vec4;
1291
+ zzzz: Vec4;
1292
+ zzzw: Vec4;
1293
+ zzwx: Vec4;
1294
+ zzwy: Vec4;
1295
+ zzwz: Vec4;
1296
+ zzww: Vec4;
1297
+ zwxx: Vec4;
1298
+ zwxy: Vec4;
1299
+ zwxz: Vec4;
1300
+ zwxw: Vec4;
1301
+ zwyx: Vec4;
1302
+ zwyy: Vec4;
1303
+ zwyz: Vec4;
1304
+ zwyw: Vec4;
1305
+ zwzx: Vec4;
1306
+ zwzy: Vec4;
1307
+ zwzz: Vec4;
1308
+ zwzw: Vec4;
1309
+ zwwx: Vec4;
1310
+ zwwy: Vec4;
1311
+ zwwz: Vec4;
1312
+ zwww: Vec4;
1313
+ wxxx: Vec4;
1314
+ wxxy: Vec4;
1315
+ wxxz: Vec4;
1316
+ wxxw: Vec4;
1317
+ wxyx: Vec4;
1318
+ wxyy: Vec4;
1319
+ wxyz: Vec4;
1320
+ wxyw: Vec4;
1321
+ wxzx: Vec4;
1322
+ wxzy: Vec4;
1323
+ wxzz: Vec4;
1324
+ wxzw: Vec4;
1325
+ wxwx: Vec4;
1326
+ wxwy: Vec4;
1327
+ wxwz: Vec4;
1328
+ wxww: Vec4;
1329
+ wyxx: Vec4;
1330
+ wyxy: Vec4;
1331
+ wyxz: Vec4;
1332
+ wyxw: Vec4;
1333
+ wyyx: Vec4;
1334
+ wyyy: Vec4;
1335
+ wyyz: Vec4;
1336
+ wyyw: Vec4;
1337
+ wyzx: Vec4;
1338
+ wyzy: Vec4;
1339
+ wyzz: Vec4;
1340
+ wyzw: Vec4;
1341
+ wywx: Vec4;
1342
+ wywy: Vec4;
1343
+ wywz: Vec4;
1344
+ wyww: Vec4;
1345
+ wzxx: Vec4;
1346
+ wzxy: Vec4;
1347
+ wzxz: Vec4;
1348
+ wzxw: Vec4;
1349
+ wzyx: Vec4;
1350
+ wzyy: Vec4;
1351
+ wzyz: Vec4;
1352
+ wzyw: Vec4;
1353
+ wzzx: Vec4;
1354
+ wzzy: Vec4;
1355
+ wzzz: Vec4;
1356
+ wzzw: Vec4;
1357
+ wzwx: Vec4;
1358
+ wzwy: Vec4;
1359
+ wzwz: Vec4;
1360
+ wzww: Vec4;
1361
+ wwxx: Vec4;
1362
+ wwxy: Vec4;
1363
+ wwxz: Vec4;
1364
+ wwxw: Vec4;
1365
+ wwyx: Vec4;
1366
+ wwyy: Vec4;
1367
+ wwyz: Vec4;
1368
+ wwyw: Vec4;
1369
+ wwzx: Vec4;
1370
+ wwzy: Vec4;
1371
+ wwzz: Vec4;
1372
+ wwzw: Vec4;
1373
+ wwwx: Vec4;
1374
+ wwwy: Vec4;
1375
+ wwwz: Vec4;
1376
+ wwww: Vec4;
1377
+ r: Float;
1378
+ g: Float;
1379
+ b: Float;
1380
+ a: Float;
1381
+ rr: Vec2;
1382
+ rg: Vec2;
1383
+ rb: Vec2;
1384
+ ra: Vec2;
1385
+ gr: Vec2;
1386
+ gg: Vec2;
1387
+ gb: Vec2;
1388
+ ga: Vec2;
1389
+ br: Vec2;
1390
+ bg: Vec2;
1391
+ bb: Vec2;
1392
+ ba: Vec2;
1393
+ ar: Vec2;
1394
+ ag: Vec2;
1395
+ ab: Vec2;
1396
+ aa: Vec2;
1397
+ rrr: Vec3;
1398
+ rrg: Vec3;
1399
+ rrb: Vec3;
1400
+ rra: Vec3;
1401
+ rgr: Vec3;
1402
+ rgg: Vec3;
1403
+ rgb: Vec3;
1404
+ rga: Vec3;
1405
+ rbr: Vec3;
1406
+ rbg: Vec3;
1407
+ rbb: Vec3;
1408
+ rba: Vec3;
1409
+ rar: Vec3;
1410
+ rag: Vec3;
1411
+ rab: Vec3;
1412
+ raa: Vec3;
1413
+ grr: Vec3;
1414
+ grg: Vec3;
1415
+ grb: Vec3;
1416
+ gra: Vec3;
1417
+ ggr: Vec3;
1418
+ ggg: Vec3;
1419
+ ggb: Vec3;
1420
+ gga: Vec3;
1421
+ gbr: Vec3;
1422
+ gbg: Vec3;
1423
+ gbb: Vec3;
1424
+ gba: Vec3;
1425
+ gar: Vec3;
1426
+ gag: Vec3;
1427
+ gab: Vec3;
1428
+ gaa: Vec3;
1429
+ brr: Vec3;
1430
+ brg: Vec3;
1431
+ brb: Vec3;
1432
+ bra: Vec3;
1433
+ bgr: Vec3;
1434
+ bgg: Vec3;
1435
+ bgb: Vec3;
1436
+ bga: Vec3;
1437
+ bbr: Vec3;
1438
+ bbg: Vec3;
1439
+ bbb: Vec3;
1440
+ bba: Vec3;
1441
+ bar: Vec3;
1442
+ bag: Vec3;
1443
+ bab: Vec3;
1444
+ baa: Vec3;
1445
+ arr: Vec3;
1446
+ arg: Vec3;
1447
+ arb: Vec3;
1448
+ ara: Vec3;
1449
+ agr: Vec3;
1450
+ agg: Vec3;
1451
+ agb: Vec3;
1452
+ aga: Vec3;
1453
+ abr: Vec3;
1454
+ abg: Vec3;
1455
+ abb: Vec3;
1456
+ aba: Vec3;
1457
+ aar: Vec3;
1458
+ aag: Vec3;
1459
+ aab: Vec3;
1460
+ aaa: Vec3;
1461
+ rrrr: Vec4;
1462
+ rrrg: Vec4;
1463
+ rrrb: Vec4;
1464
+ rrra: Vec4;
1465
+ rrgr: Vec4;
1466
+ rrgg: Vec4;
1467
+ rrgb: Vec4;
1468
+ rrga: Vec4;
1469
+ rrbr: Vec4;
1470
+ rrbg: Vec4;
1471
+ rrbb: Vec4;
1472
+ rrba: Vec4;
1473
+ rrar: Vec4;
1474
+ rrag: Vec4;
1475
+ rrab: Vec4;
1476
+ rraa: Vec4;
1477
+ rgrr: Vec4;
1478
+ rgrg: Vec4;
1479
+ rgrb: Vec4;
1480
+ rgra: Vec4;
1481
+ rggr: Vec4;
1482
+ rggg: Vec4;
1483
+ rggb: Vec4;
1484
+ rgga: Vec4;
1485
+ rgbr: Vec4;
1486
+ rgbg: Vec4;
1487
+ rgbb: Vec4;
1488
+ rgba: Vec4;
1489
+ rgar: Vec4;
1490
+ rgag: Vec4;
1491
+ rgab: Vec4;
1492
+ rgaa: Vec4;
1493
+ rbrr: Vec4;
1494
+ rbrg: Vec4;
1495
+ rbrb: Vec4;
1496
+ rbra: Vec4;
1497
+ rbgr: Vec4;
1498
+ rbgg: Vec4;
1499
+ rbgb: Vec4;
1500
+ rbga: Vec4;
1501
+ rbbr: Vec4;
1502
+ rbbg: Vec4;
1503
+ rbbb: Vec4;
1504
+ rbba: Vec4;
1505
+ rbar: Vec4;
1506
+ rbag: Vec4;
1507
+ rbab: Vec4;
1508
+ rbaa: Vec4;
1509
+ rarr: Vec4;
1510
+ rarg: Vec4;
1511
+ rarb: Vec4;
1512
+ rara: Vec4;
1513
+ ragr: Vec4;
1514
+ ragg: Vec4;
1515
+ ragb: Vec4;
1516
+ raga: Vec4;
1517
+ rabr: Vec4;
1518
+ rabg: Vec4;
1519
+ rabb: Vec4;
1520
+ raba: Vec4;
1521
+ raar: Vec4;
1522
+ raag: Vec4;
1523
+ raab: Vec4;
1524
+ raaa: Vec4;
1525
+ grrr: Vec4;
1526
+ grrg: Vec4;
1527
+ grrb: Vec4;
1528
+ grra: Vec4;
1529
+ grgr: Vec4;
1530
+ grgg: Vec4;
1531
+ grgb: Vec4;
1532
+ grga: Vec4;
1533
+ grbr: Vec4;
1534
+ grbg: Vec4;
1535
+ grbb: Vec4;
1536
+ grba: Vec4;
1537
+ grar: Vec4;
1538
+ grag: Vec4;
1539
+ grab: Vec4;
1540
+ graa: Vec4;
1541
+ ggrr: Vec4;
1542
+ ggrg: Vec4;
1543
+ ggrb: Vec4;
1544
+ ggra: Vec4;
1545
+ gggr: Vec4;
1546
+ gggg: Vec4;
1547
+ gggb: Vec4;
1548
+ ggga: Vec4;
1549
+ ggbr: Vec4;
1550
+ ggbg: Vec4;
1551
+ ggbb: Vec4;
1552
+ ggba: Vec4;
1553
+ ggar: Vec4;
1554
+ ggag: Vec4;
1555
+ ggab: Vec4;
1556
+ ggaa: Vec4;
1557
+ gbrr: Vec4;
1558
+ gbrg: Vec4;
1559
+ gbrb: Vec4;
1560
+ gbra: Vec4;
1561
+ gbgr: Vec4;
1562
+ gbgg: Vec4;
1563
+ gbgb: Vec4;
1564
+ gbga: Vec4;
1565
+ gbbr: Vec4;
1566
+ gbbg: Vec4;
1567
+ gbbb: Vec4;
1568
+ gbba: Vec4;
1569
+ gbar: Vec4;
1570
+ gbag: Vec4;
1571
+ gbab: Vec4;
1572
+ gbaa: Vec4;
1573
+ garr: Vec4;
1574
+ garg: Vec4;
1575
+ garb: Vec4;
1576
+ gara: Vec4;
1577
+ gagr: Vec4;
1578
+ gagg: Vec4;
1579
+ gagb: Vec4;
1580
+ gaga: Vec4;
1581
+ gabr: Vec4;
1582
+ gabg: Vec4;
1583
+ gabb: Vec4;
1584
+ gaba: Vec4;
1585
+ gaar: Vec4;
1586
+ gaag: Vec4;
1587
+ gaab: Vec4;
1588
+ gaaa: Vec4;
1589
+ brrr: Vec4;
1590
+ brrg: Vec4;
1591
+ brrb: Vec4;
1592
+ brra: Vec4;
1593
+ brgr: Vec4;
1594
+ brgg: Vec4;
1595
+ brgb: Vec4;
1596
+ brga: Vec4;
1597
+ brbr: Vec4;
1598
+ brbg: Vec4;
1599
+ brbb: Vec4;
1600
+ brba: Vec4;
1601
+ brar: Vec4;
1602
+ brag: Vec4;
1603
+ brab: Vec4;
1604
+ braa: Vec4;
1605
+ bgrr: Vec4;
1606
+ bgrg: Vec4;
1607
+ bgrb: Vec4;
1608
+ bgra: Vec4;
1609
+ bggr: Vec4;
1610
+ bggg: Vec4;
1611
+ bggb: Vec4;
1612
+ bgga: Vec4;
1613
+ bgbr: Vec4;
1614
+ bgbg: Vec4;
1615
+ bgbb: Vec4;
1616
+ bgba: Vec4;
1617
+ bgar: Vec4;
1618
+ bgag: Vec4;
1619
+ bgab: Vec4;
1620
+ bgaa: Vec4;
1621
+ bbrr: Vec4;
1622
+ bbrg: Vec4;
1623
+ bbrb: Vec4;
1624
+ bbra: Vec4;
1625
+ bbgr: Vec4;
1626
+ bbgg: Vec4;
1627
+ bbgb: Vec4;
1628
+ bbga: Vec4;
1629
+ bbbr: Vec4;
1630
+ bbbg: Vec4;
1631
+ bbbb: Vec4;
1632
+ bbba: Vec4;
1633
+ bbar: Vec4;
1634
+ bbag: Vec4;
1635
+ bbab: Vec4;
1636
+ bbaa: Vec4;
1637
+ barr: Vec4;
1638
+ barg: Vec4;
1639
+ barb: Vec4;
1640
+ bara: Vec4;
1641
+ bagr: Vec4;
1642
+ bagg: Vec4;
1643
+ bagb: Vec4;
1644
+ baga: Vec4;
1645
+ babr: Vec4;
1646
+ babg: Vec4;
1647
+ babb: Vec4;
1648
+ baba: Vec4;
1649
+ baar: Vec4;
1650
+ baag: Vec4;
1651
+ baab: Vec4;
1652
+ baaa: Vec4;
1653
+ arrr: Vec4;
1654
+ arrg: Vec4;
1655
+ arrb: Vec4;
1656
+ arra: Vec4;
1657
+ argr: Vec4;
1658
+ argg: Vec4;
1659
+ argb: Vec4;
1660
+ arga: Vec4;
1661
+ arbr: Vec4;
1662
+ arbg: Vec4;
1663
+ arbb: Vec4;
1664
+ arba: Vec4;
1665
+ arar: Vec4;
1666
+ arag: Vec4;
1667
+ arab: Vec4;
1668
+ araa: Vec4;
1669
+ agrr: Vec4;
1670
+ agrg: Vec4;
1671
+ agrb: Vec4;
1672
+ agra: Vec4;
1673
+ aggr: Vec4;
1674
+ aggg: Vec4;
1675
+ aggb: Vec4;
1676
+ agga: Vec4;
1677
+ agbr: Vec4;
1678
+ agbg: Vec4;
1679
+ agbb: Vec4;
1680
+ agba: Vec4;
1681
+ agar: Vec4;
1682
+ agag: Vec4;
1683
+ agab: Vec4;
1684
+ agaa: Vec4;
1685
+ abrr: Vec4;
1686
+ abrg: Vec4;
1687
+ abrb: Vec4;
1688
+ abra: Vec4;
1689
+ abgr: Vec4;
1690
+ abgg: Vec4;
1691
+ abgb: Vec4;
1692
+ abga: Vec4;
1693
+ abbr: Vec4;
1694
+ abbg: Vec4;
1695
+ abbb: Vec4;
1696
+ abba: Vec4;
1697
+ abar: Vec4;
1698
+ abag: Vec4;
1699
+ abab: Vec4;
1700
+ abaa: Vec4;
1701
+ aarr: Vec4;
1702
+ aarg: Vec4;
1703
+ aarb: Vec4;
1704
+ aara: Vec4;
1705
+ aagr: Vec4;
1706
+ aagg: Vec4;
1707
+ aagb: Vec4;
1708
+ aaga: Vec4;
1709
+ aabr: Vec4;
1710
+ aabg: Vec4;
1711
+ aabb: Vec4;
1712
+ aaba: Vec4;
1713
+ aaar: Vec4;
1714
+ aaag: Vec4;
1715
+ aaab: Vec4;
1716
+ aaaa: Vec4;
1717
+ p: Float;
1718
+ q: Float;
1719
+ pp: Vec2;
1720
+ pq: Vec2;
1721
+ qp: Vec2;
1722
+ qq: Vec2;
1723
+ ppp: Vec3;
1724
+ ppq: Vec3;
1725
+ pqp: Vec3;
1726
+ pqq: Vec3;
1727
+ qpp: Vec3;
1728
+ qpq: Vec3;
1729
+ qqp: Vec3;
1730
+ qqq: Vec3;
1731
+ pppp: Vec4;
1732
+ pppq: Vec4;
1733
+ ppqp: Vec4;
1734
+ ppqq: Vec4;
1735
+ pqpp: Vec4;
1736
+ pqpq: Vec4;
1737
+ pqqp: Vec4;
1738
+ pqqq: Vec4;
1739
+ qppp: Vec4;
1740
+ qppq: Vec4;
1741
+ qpqp: Vec4;
1742
+ qpqq: Vec4;
1743
+ qqpp: Vec4;
1744
+ qqpq: Vec4;
1745
+ qqqp: Vec4;
1746
+ qqqq: Vec4;
1747
+ s: Float;
1748
+ t: Float;
1749
+ ss: Vec2;
1750
+ st: Vec2;
1751
+ ts: Vec2;
1752
+ tt: Vec2;
1753
+ sss: Vec3;
1754
+ sst: Vec3;
1755
+ sts: Vec3;
1756
+ stt: Vec3;
1757
+ tss: Vec3;
1758
+ tst: Vec3;
1759
+ tts: Vec3;
1760
+ ttt: Vec3;
1761
+ ssss: Vec4;
1762
+ ssst: Vec4;
1763
+ ssts: Vec4;
1764
+ sstt: Vec4;
1765
+ stss: Vec4;
1766
+ stst: Vec4;
1767
+ stts: Vec4;
1768
+ sttt: Vec4;
1769
+ tsss: Vec4;
1770
+ tsst: Vec4;
1771
+ tsts: Vec4;
1772
+ tstt: Vec4;
1773
+ ttss: Vec4;
1774
+ ttst: Vec4;
1775
+ ttts: Vec4;
1776
+ tttt: Vec4;
1777
+ };
1778
+ declare const Switch: (x: NodeProxy) => {
193
1779
  Case: (...values: X[]) => (fun: () => void) => /*elided*/ any;
194
1780
  Default: (fun: () => void) => void;
195
1781
  };
196
- declare const Fn: (fun: (paramVars: NodeProxy[]) => NodeProxy) => {
197
- (...args: X[]): NodeProxy;
198
- setLayout(newLayout: FnLayout): /*elided*/ any;
1782
+ declare const Fn: <ReturnType extends Constants, Args extends Constants[]>(fun: (paramVars: NodeProxy[]) => NodeProxy<ReturnType> | void, defaultId?: string) => {
1783
+ (...args: X<Args[number]>[]): NodeProxy<ReturnType>;
1784
+ setLayout(_layout: FnLayout): /*elided*/ any;
199
1785
  };
200
1786
 
201
1787
  declare const isSwizzle: (key: unknown) => key is Swizzles;
202
1788
  declare const isOperator: (key: unknown) => key is Operators;
203
1789
  declare const isFunction: (key: unknown) => key is Functions;
204
1790
  declare const isConversion: (key: unknown) => key is Conversions;
205
- declare const isNodeProxy: (x: unknown) => x is NodeProxy;
206
- declare const isConstantsType: (type?: Constants | "auto") => type is Constants;
1791
+ declare const isNodeProxy: <T extends Constants>(x: unknown) => x is NodeProxy<T>;
1792
+ declare const isConstants: (type?: unknown) => type is Constants;
207
1793
  declare const hex2rgb: (hex: number) => number[];
208
1794
  declare const getId: () => string;
209
- declare const joins: (children: X[], c: NodeContext) => string;
210
- declare const formatConversions: (x: X, c?: NodeContext) => string;
211
- declare const getOperator: (op: X) => "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "&" | "|" | "^" | "<<" | ">>";
1795
+ declare const formatConversions: <T extends Constants>(x: X<T>, c?: NodeContext) => string;
1796
+ declare const getOperator: (op: X<string>) => "+" | "-" | "*" | "/" | "%" | "==" | "!=" | "<" | "<=" | ">" | ">=" | "&&" | "||" | "&" | "|" | "^" | "<<" | ">>";
212
1797
  declare const getBluiltin: (id: string) => "gl_FragCoord" | "gl_VertexID" | "gl_InstanceID" | "gl_FrontFacing" | "gl_FragDepth" | "gl_SampleID" | "gl_SampleMask" | "gl_PointCoord" | "gl_FragCoord.xy";
213
1798
  declare const conversionToConstant: (conversionKey: string) => Constants;
1799
+ declare const getEventFun: (c: NodeContext, id: string, isAttribute?: boolean, isTexture?: boolean) => (value: any) => GL | undefined;
1800
+ declare const safeEventCall: <T extends Constants>(x: X<T>, fun: (value: unknown) => void) => void;
1801
+ declare const initNodeContext: (c: NodeContext) => NodeContext;
1802
+ declare const addDependency: (c: NodeContext, id: string | undefined, type: string) => void;
1803
+ declare const sortHeadersByDependencies: (headers: Map<string, string>, dependencies: Map<string, Set<string>>) => [string, string][];
214
1804
 
215
1805
  declare const vertex: (x: X, c: NodeContext) => string;
216
1806
  declare const fragment: (x: X, c: NodeContext) => string;
217
- declare const position: NodeProxy;
218
- declare const vertexIndex: NodeProxy;
219
- declare const instanceIndex: NodeProxy;
220
- declare const frontFacing: NodeProxy;
221
- declare const fragDepth: NodeProxy;
222
- declare const sampleIndex: NodeProxy;
223
- declare const sampleMask: NodeProxy;
224
- declare const pointCoord: NodeProxy;
225
- declare const normalLocal: NodeProxy;
226
- declare const normalWorld: NodeProxy;
227
- declare const normalView: NodeProxy;
228
- declare const positionLocal: NodeProxy;
229
- declare const positionWorld: NodeProxy;
230
- declare const positionView: NodeProxy;
231
- declare const screenCoordinate: NodeProxy;
232
- declare const screenUV: NodeProxy;
233
- declare const float: (x: X) => NodeProxy;
234
- declare const int: (x: X) => NodeProxy;
235
- declare const uint: (x: X) => NodeProxy;
236
- declare const bool: (x: X) => NodeProxy;
237
- declare const vec2: (x?: X, y?: X) => NodeProxy;
238
- declare const vec3: (x?: X, y?: X, z?: X) => NodeProxy;
239
- declare const vec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
240
- declare const mat2: (...args: X[]) => NodeProxy;
241
- declare const mat3: (...args: X[]) => NodeProxy;
242
- declare const mat4: (...args: X[]) => NodeProxy;
243
- declare const ivec2: (x?: X, y?: X) => NodeProxy;
244
- declare const ivec3: (x?: X, y?: X, z?: X) => NodeProxy;
245
- declare const ivec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
246
- declare const uvec2: (x?: X, y?: X) => NodeProxy;
247
- declare const uvec3: (x?: X, y?: X, z?: X) => NodeProxy;
248
- declare const uvec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
249
- declare const bvec2: (x?: X, y?: X) => NodeProxy;
250
- declare const bvec3: (x?: X, y?: X, z?: X) => NodeProxy;
251
- declare const bvec4: (x?: X, y?: X, z?: X, w?: X) => NodeProxy;
252
- declare const texture2D: () => NodeProxy;
253
- declare const sampler2D: () => NodeProxy;
254
- declare const color: (r?: X, g?: X, b?: X) => NodeProxy;
255
- declare const iResolution: NodeProxy;
256
- declare const iMouse: NodeProxy;
257
- declare const iTime: NodeProxy;
258
- declare const uv: () => NodeProxy;
259
- declare const texture: (x: X, y: X, z?: X) => NodeProxy;
260
- declare const cubeTexture: (x: X, y: X, z?: X) => NodeProxy;
261
- declare const textureSize: (x: X, y?: X) => NodeProxy;
262
- declare const abs: (x: X) => NodeProxy;
263
- declare const acos: (x: X) => NodeProxy;
264
- declare const all: (x: X) => NodeProxy;
265
- declare const any: (x: X) => NodeProxy;
266
- declare const asin: (x: X) => NodeProxy;
267
- declare const atan: (y: X, x?: X) => NodeProxy;
268
- declare const atan2: (y: X, x: X) => NodeProxy;
269
- declare const bitcast: (x: X, y: X) => NodeProxy;
270
- declare const cbrt: (x: X) => NodeProxy;
271
- declare const ceil: (x: X) => NodeProxy;
272
- declare const clamp: (x: X, min: X, max: X) => NodeProxy;
273
- declare const cos: (x: X) => NodeProxy;
274
- declare const cross: (x: X, y: X) => NodeProxy;
275
- declare const dFdx: (p: X) => NodeProxy;
276
- declare const dFdy: (p: X) => NodeProxy;
277
- declare const degrees: (radians: X) => NodeProxy;
278
- declare const difference: (x: X, y: X) => NodeProxy;
279
- declare const distance: (x: X, y: X) => NodeProxy;
280
- declare const dot: (x: X, y: X) => NodeProxy;
281
- declare const equals: (x: X, y: X) => NodeProxy;
282
- declare const exp: (x: X) => NodeProxy;
283
- declare const exp2: (x: X) => NodeProxy;
284
- declare const faceforward: (N: X, I: X, Nref: X) => NodeProxy;
285
- declare const floor: (x: X) => NodeProxy;
286
- declare const fract: (x: X) => NodeProxy;
287
- declare const fwidth: (x: X) => NodeProxy;
288
- declare const inverseSqrt: (x: X) => NodeProxy;
289
- declare const length: (x: X) => NodeProxy;
290
- declare const lengthSq: (x: X) => NodeProxy;
291
- declare const log: (x: X) => NodeProxy;
292
- declare const log2: (x: X) => NodeProxy;
293
- declare const max: (x: X, y: X) => NodeProxy;
294
- declare const min: (x: X, y: X) => NodeProxy;
295
- declare const mix: (x: X, y: X, a: X) => NodeProxy;
296
- declare const negate: (x: X) => NodeProxy;
297
- declare const normalize: (x: X) => NodeProxy;
298
- declare const oneMinus: (x: X) => NodeProxy;
299
- declare const pow: (x: X, y: X) => NodeProxy;
300
- declare const pow2: (x: X) => NodeProxy;
301
- declare const pow3: (x: X) => NodeProxy;
302
- declare const pow4: (x: X) => NodeProxy;
303
- declare const radians: (degrees: X) => NodeProxy;
304
- declare const reciprocal: (x: X) => NodeProxy;
305
- declare const reflect: (I: X, N: X) => NodeProxy;
306
- declare const refract: (I: X, N: X, eta: X) => NodeProxy;
307
- declare const round: (x: X) => NodeProxy;
308
- declare const saturate: (x: X) => NodeProxy;
309
- declare const sign: (x: X) => NodeProxy;
310
- declare const sin: (x: X) => NodeProxy;
311
- declare const smoothstep: (e0: X, e1: X, x: X) => NodeProxy;
312
- declare const sqrt: (x: X) => NodeProxy;
313
- declare const step: (edge: X, x: X) => NodeProxy;
314
- declare const tan: (x: X) => NodeProxy;
315
- declare const transformDirection: (dir: X, matrix: X) => NodeProxy;
316
- declare const trunc: (x: X) => NodeProxy;
1807
+ declare const position: Vec4;
1808
+ declare const vertexIndex: UInt;
1809
+ declare const instanceIndex: UInt;
1810
+ declare const frontFacing: Bool;
1811
+ declare const fragDepth: Float;
1812
+ declare const sampleIndex: UInt;
1813
+ declare const sampleMask: UInt;
1814
+ declare const pointCoord: Vec2;
1815
+ declare const positionLocal: Vec3;
1816
+ declare const positionWorld: Vec3;
1817
+ declare const positionView: Vec3;
1818
+ declare const normalLocal: Vec3;
1819
+ declare const normalWorld: Vec3;
1820
+ declare const normalView: Vec3;
1821
+ declare const screenCoordinate: Vec2;
1822
+ declare const screenUV: Vec2;
1823
+ declare const float: (x?: X) => Float;
1824
+ declare const int: (x?: X) => Int;
1825
+ declare const uint: (x?: X) => UInt;
1826
+ declare const bool: (x?: X) => Bool;
1827
+ declare const vec2: (x?: X, y?: X) => Vec2;
1828
+ declare const vec3: (x?: X, y?: X, z?: X) => Vec3;
1829
+ declare const vec4: (x?: X, y?: X, z?: X, w?: X) => Vec4;
1830
+ declare const mat2: (...args: X[]) => Mat2;
1831
+ declare const mat3: (...args: X[]) => Mat3;
1832
+ declare const mat4: (...args: X[]) => Mat4;
1833
+ declare const ivec2: (x?: X, y?: X) => IVec2;
1834
+ declare const ivec3: (x?: X, y?: X, z?: X) => IVec3;
1835
+ declare const ivec4: (x?: X, y?: X, z?: X, w?: X) => IVec4;
1836
+ declare const uvec2: (x?: X, y?: X) => UVec2;
1837
+ declare const uvec3: (x?: X, y?: X, z?: X) => UVec3;
1838
+ declare const uvec4: (x?: X, y?: X, z?: X, w?: X) => UVec4;
1839
+ declare const bvec2: (x?: X, y?: X) => BVec2;
1840
+ declare const bvec3: (x?: X, y?: X, z?: X) => BVec3;
1841
+ declare const bvec4: (x?: X, y?: X, z?: X, w?: X) => BVec4;
1842
+ declare const texture2D: (x?: X) => Texture;
1843
+ declare const sampler2D: () => Sampler2D;
1844
+ declare const color: (r?: X, g?: X, b?: X) => Vec3;
1845
+ declare const iResolution: Vec2;
1846
+ declare const iMouse: Vec2;
1847
+ declare const iTime: Float;
1848
+ declare const uv: Vec2;
1849
+ declare const texture: (x: X, y: X, z?: X) => Vec4;
1850
+ declare const cubeTexture: (x: X, y: X, z?: X) => Vec4;
1851
+ declare const textureSize: (x: X, y?: X) => Vec4;
1852
+ declare const length: (x: X) => Float;
1853
+ declare const lengthSq: (x: X) => Float;
1854
+ declare const distance: (x: X, y: X) => Float;
1855
+ declare const dot: (x: X, y: X) => Float;
1856
+ declare const all: <T extends Constants>(x: X<T>) => Bool;
1857
+ declare const any: <T extends Constants>(x: X<T>) => Bool;
1858
+ declare const cross: (x: X<"vec3">, y: X<"vec3">) => Vec3;
1859
+ declare const abs: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1860
+ declare const sign: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1861
+ declare const floor: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1862
+ declare const ceil: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1863
+ declare const round: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1864
+ declare const fract: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1865
+ declare const trunc: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1866
+ declare const sin: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1867
+ declare const cos: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1868
+ declare const tan: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1869
+ declare const asin: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1870
+ declare const acos: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1871
+ declare const atan: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1872
+ declare const sinh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1873
+ declare const cosh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1874
+ declare const tanh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1875
+ declare const asinh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1876
+ declare const acosh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1877
+ declare const atanh: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1878
+ declare const exp: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1879
+ declare const exp2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1880
+ declare const log: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1881
+ declare const log2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1882
+ declare const sqrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1883
+ declare const inverseSqrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1884
+ declare const normalize: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1885
+ declare const oneMinus: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1886
+ declare const saturate: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1887
+ declare const negate: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1888
+ declare const reciprocal: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1889
+ declare const dFdx: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1890
+ declare const dFdy: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1891
+ declare const fwidth: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1892
+ declare const degrees: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1893
+ declare const radians: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1894
+ declare const reflect: <T extends Constants>(I: X<T>, N: X) => NodeProxy<T>;
1895
+ declare const refract: <T extends Constants>(I: X<T>, N: X, eta: X) => NodeProxy<T>;
1896
+ declare const min: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1897
+ declare const max: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1898
+ declare const mix: <T extends Constants>(x: X<T>, y: X, a: X) => NodeProxy<T>;
1899
+ declare const clamp: <T extends Constants>(x: X<T>, minVal: X, maxVal: X) => NodeProxy<T>;
1900
+ declare const step: <T extends Constants>(edge: X, x: X<T>) => NodeProxy<T>;
1901
+ declare const smoothstep: <T extends Constants>(e0: X, e1: X, x: X<T>) => NodeProxy<T>;
1902
+ declare const atan2: <T extends Constants>(y: X<T>, x: X) => NodeProxy<T>;
1903
+ declare const pow: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1904
+ declare const pow2: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1905
+ declare const pow3: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1906
+ declare const pow4: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1907
+ declare const bitcast: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1908
+ declare const cbrt: <T extends Constants>(x: X<T>) => NodeProxy<T>;
1909
+ declare const difference: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1910
+ declare const equals: (x: X, y: X) => Bool;
1911
+ declare const faceforward: <T extends Constants>(N: X<T>, I: X, Nref: X) => NodeProxy<T>;
1912
+ declare const transformDirection: <T extends Constants>(dir: X<T>, matrix: X) => NodeProxy<T>;
317
1913
 
318
1914
  type PrecisionMode = 'highp' | 'mediump' | 'lowp';
319
1915
  type GLClearMode = 'COLOR_BUFFER_BIT' | 'DEPTH_BUFFER_BIT' | 'STENCIL_BUFFER_BIT';
@@ -330,6 +1926,7 @@ interface TextureData {
330
1926
  group: number;
331
1927
  texture: GPUTexture;
332
1928
  sampler: GPUSampler;
1929
+ view: GPUTextureView;
333
1930
  }
334
1931
  interface AttribData {
335
1932
  array: Float32Array;
@@ -365,12 +1962,12 @@ type GL = EventState<{
365
1962
  mouse: [number, number];
366
1963
  count: number;
367
1964
  el: HTMLCanvasElement;
368
- vs: string | NodeProxy;
369
- fs: string | NodeProxy;
370
- vert: string | NodeProxy;
371
- frag: string | NodeProxy;
372
- vertex: string | NodeProxy;
373
- fragment: string | NodeProxy;
1965
+ vs: string | Vec4;
1966
+ fs: string | Vec4;
1967
+ vert: string | Vec4;
1968
+ frag: string | Vec4;
1969
+ vertex: string | Vec4;
1970
+ fragment: string | Vec4;
374
1971
  /**
375
1972
  * core state
376
1973
  */
@@ -462,7 +2059,15 @@ declare const createBindings: () => {
462
2059
  location: number;
463
2060
  };
464
2061
  };
465
- declare const createPipeline: (device: GPUDevice, format: GPUTextureFormat, bufferLayouts: GPUVertexBufferLayout[], bindGroupLayouts: GPUBindGroupLayout[], webgpu: WebGPUState, vs: string | X, fs: string | X) => GPURenderPipeline;
2062
+ declare const createVertexBuffers: (attribs: Iterable<AttribData>) => {
2063
+ vertexBuffers: GPUBuffer[];
2064
+ bufferLayouts: GPUVertexBufferLayout[];
2065
+ };
2066
+ declare const createBindGroup: (device: GPUDevice, uniforms: Iterable<UniformData>, textures: Iterable<TextureData>) => {
2067
+ bindGroups: GPUBindGroup[];
2068
+ bindGroupLayouts: GPUBindGroupLayout[];
2069
+ };
2070
+ declare const createPipeline: (device: GPUDevice, format: GPUTextureFormat, bufferLayouts: GPUVertexBufferLayout[], bindGroupLayouts: GPUBindGroupLayout[], vs: string, fs: string) => GPURenderPipeline;
466
2071
  /**
467
2072
  * buffers
468
2073
  */
@@ -474,25 +2079,17 @@ declare const createAttribBuffer: (device: GPUDevice, value: number[]) => {
474
2079
  array: Float32Array<ArrayBuffer>;
475
2080
  buffer: GPUBuffer;
476
2081
  };
2082
+ declare const createDescriptor: (c: GPUCanvasContext, depthTexture: GPUTexture) => GPURenderPassDescriptor;
477
2083
  /**
478
- * uniforms
2084
+ * textures
479
2085
  */
480
- declare const createBindGroup: (device: GPUDevice, uniforms: Map<string, UniformData>, textures: Map<string, TextureData>) => {
481
- bindGroups: GPUBindGroup[];
482
- bindGroupLayouts: GPUBindGroupLayout[];
483
- };
484
- declare const createDescriptor: (c: GPUCanvasContext, depthTexture: GPUTexture) => GPURenderPassDescriptor;
485
2086
  declare const createTextureSampler: (device: GPUDevice, width?: number, height?: number) => {
486
2087
  texture: GPUTexture;
487
2088
  sampler: GPUSampler;
488
2089
  };
489
2090
  declare const createDepthTexture: (device: GPUDevice, width: number, height: number) => GPUTexture;
490
- declare const createVertexBuffers: (attribs: Map<string, AttribData>) => {
491
- vertexBuffers: GPUBuffer[];
492
- bufferLayouts: GPUVertexBufferLayout[];
493
- };
494
2091
 
495
- declare const createProgram: (c: WebGLRenderingContext, vs: X, fs: string | X, onError?: () => void, gl?: any) => void | WebGLProgram;
2092
+ declare const createProgram: (c: WebGLRenderingContext, vert: string, frag: string, onError?: () => void) => void | WebGLProgram;
496
2093
  declare const createVbo: (c: WebGLRenderingContext, data: number[]) => WebGLBuffer;
497
2094
  declare const createIbo: (c: WebGLRenderingContext, data: number[]) => WebGLBuffer;
498
2095
  declare const getStride: (count: number, value: number[], iboValue?: number[]) => number;
@@ -532,12 +2129,12 @@ declare const createGL: (props?: Partial<GL>) => EventState<{
532
2129
  mouse: [number, number];
533
2130
  count: number;
534
2131
  el: HTMLCanvasElement;
535
- vs: string | NodeProxy;
536
- fs: string | NodeProxy;
537
- vert: string | NodeProxy;
538
- frag: string | NodeProxy;
539
- vertex: string | NodeProxy;
540
- fragment: string | NodeProxy;
2132
+ vs: string | Vec4;
2133
+ fs: string | Vec4;
2134
+ vert: string | Vec4;
2135
+ frag: string | Vec4;
2136
+ vertex: string | Vec4;
2137
+ fragment: string | Vec4;
541
2138
  webgpu: WebGPUState;
542
2139
  webgl: WebGLState;
543
2140
  queue: refr.Queue;
@@ -568,4 +2165,4 @@ declare const createGL: (props?: Partial<GL>) => EventState<{
568
2165
  }): GL;
569
2166
  }, any[] | unknown[]>;
570
2167
 
571
- export { AttribData, Attribute, Attributes, BaseNodeProxy, Constants, Conversions, DynamicProperties, Fn, FnLayout, Functions, GL, GLClearMode, GLDrawMode, GLDrawType, If, Loop, NodeContext, NodeProps, NodeProxy, NodeTypes, Operators, PrecisionMode, Return, Switch, Swizzles, TextureData, Uniform, UniformData, Uniforms, WebGLState, WebGPUState, X, abs, acos, all, any, asin, assign, atan, atan2, attribute, bitcast, bool, builtin, bvec2, bvec3, bvec4, cbrt, ceil, clamp, code, color, constant, conversion, conversionToConstant, cos, createAttrib, createAttribBuffer, createBindGroup, createBindings, createDepthTexture, createDescriptor, createDevice, createGL, createIbo, createPipeline, createProgram, createTexture, createTextureSampler, createUniformBuffer, createVbo, createVertexBuffers, cross, cubeTexture, dFdx, dFdy, createGL as default, degrees, difference, dig, distance, dot, each, equals, exp, exp2, ext, faceforward, fig, float, floor, flush, formatConversions, fract, fragDepth, fragment, frontFacing, function_, fwidth, getBluiltin, getId, getOperator, getStride, hex2rgb, iMouse, iResolution, iTime, instanceIndex, int, inverseSqrt, is, isConstantsType, isConversion, isFunction, isGL, isNodeProxy, isOperator, isServer, isSwizzle, isWebGPUSupported, ivec2, ivec3, ivec4, joins, length, lengthSq, log, log2, mat2, mat3, mat4, max, min, mix, negate, node, normalLocal, normalView, normalWorld, normalize, oneMinus, operator, pointCoord, position, positionLocal, positionView, positionWorld, pow, pow2, pow3, pow4, radians, reciprocal, reflect, refract, replace, round, sampleIndex, sampleMask, sampler2D, saturate, screenCoordinate, screenUV, select, sig, sign, sin, smoothstep, sqrt, step, swizzle, tan, texture, texture2D, textureSize, toVar, transformDirection, trunc, uint, uniform, uv, uvec2, uvec3, uvec4, variable, vec2, vec3, vec4, vertex, vertexIndex, vertexStage, webgl, webgpu };
2168
+ export { AttribData, Attribute, Attributes, BVec2, BVec3, BVec4, BaseNodeProxy, Bool, Color, Constants, ConstantsToType, Conversions, Float, Fn, FnLayout, Functions, GL, GLClearMode, GLDrawMode, GLDrawType, IVec2, IVec3, IVec4, If, Int, Loop, Mat2, Mat3, Mat4, NodeContext, NodeProps, NodeProxy, NodeTypes, Operators, PrecisionMode, Return, Sampler2D, Struct, Switch, Swizzles, Texture, TextureData, UInt, UVec2, UVec3, UVec4, Uniform, UniformData, Uniforms, Vec2, Vec3, Vec4, WebGLState, WebGPUState, X, abs, acos, acosh, addDependency, all, any, asin, asinh, assign, atan, atan2, atanh, attribute, bitcast, bool, builtin, bvec2, bvec3, bvec4, cbrt, ceil, clamp, code, color, constant, conversion, conversionToConstant, cos, cosh, createAttrib, createAttribBuffer, createBindGroup, createBindings, createDepthTexture, createDescriptor, createDevice, createGL, createIbo, createPipeline, createProgram, createTexture, createTextureSampler, createUniformBuffer, createVbo, createVertexBuffers, cross, cubeTexture, dFdx, dFdy, createGL as default, degrees, difference, dig, distance, dot, each, equals, exp, exp2, ext, faceforward, fig, float, floor, flush, formatConversions, fract, fragDepth, fragment, frontFacing, function_, fwidth, getBluiltin, getEventFun, getId, getOperator, getStride, hex2rgb, iMouse, iResolution, iTime, initNodeContext, instanceIndex, int, inverseSqrt, is, isConstants, isConversion, isFunction, isGL, isNodeProxy, isOperator, isServer, isSwizzle, isWebGPUSupported, ivec2, ivec3, ivec4, length, lengthSq, log, log2, mat2, mat3, mat4, max, member, min, mix, negate, node, normalLocal, normalView, normalWorld, normalize, oneMinus, operator, pointCoord, position, positionLocal, positionView, positionWorld, pow, pow2, pow3, pow4, radians, reciprocal, reflect, refract, replace, round, safeEventCall, sampleIndex, sampleMask, sampler2D, saturate, screenCoordinate, screenUV, select, sig, sign, sin, sinh, smoothstep, sortHeadersByDependencies, sqrt, step, struct, tan, tanh, texture, texture2D, textureSize, toVar, transformDirection, trunc, uint, uniform, uv, uvec2, uvec3, uvec4, variable, vec2, vec3, vec4, vertex, vertexIndex, vertexStage, webgl, webgpu };