glre 0.37.0 → 0.39.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/addons.cjs +2 -0
- package/dist/addons.cjs.map +1 -0
- package/dist/addons.d.ts +457 -0
- package/dist/addons.js +2 -0
- package/dist/addons.js.map +1 -0
- package/dist/index.cjs +31 -40
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +170 -1791
- package/dist/index.js +31 -40
- package/dist/index.js.map +1 -1
- package/dist/native.cjs +1 -45
- package/dist/native.cjs.map +1 -1
- package/dist/native.d.ts +511 -11
- package/dist/native.js +1 -45
- package/dist/native.js.map +1 -1
- package/dist/node.cjs +40 -0
- package/dist/node.cjs.map +1 -0
- package/dist/node.d.ts +614 -0
- package/dist/node.js +40 -0
- package/dist/node.js.map +1 -0
- package/dist/react.cjs +1 -45
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.ts +506 -4
- package/dist/react.js +1 -45
- package/dist/react.js.map +1 -1
- package/dist/solid.cjs +1 -45
- package/dist/solid.cjs.map +1 -1
- package/dist/solid.d.ts +506 -4
- package/dist/solid.js +1 -45
- package/dist/solid.js.map +1 -1
- package/package.json +56 -3
- package/src/addons/index.ts +6 -0
- package/src/index.ts +6 -22
- package/src/node/{core.ts → build.ts} +3 -7
- package/src/node/create.ts +73 -0
- package/src/node/index.ts +63 -47
- package/src/node/scope.ts +65 -50
- package/src/node/types.ts +222 -164
- package/src/node/utils/const.ts +64 -3
- package/src/node/utils/index.ts +8 -5
- package/src/node/utils/infer.ts +23 -35
- package/src/node/utils/parse.ts +15 -18
- package/src/node/utils/utils.ts +13 -12
- package/src/types.ts +5 -7
- package/src/utils/pipeline.ts +3 -3
- package/src/utils/program.ts +7 -2
- package/src/{webgl.ts → utils/webgl.ts} +24 -14
- package/src/{webgpu.ts → utils/webgpu.ts} +28 -7
- package/src/node/node.ts +0 -64
package/dist/native.d.ts
CHANGED
|
@@ -1,8 +1,509 @@
|
|
|
1
1
|
import * as reev from 'reev';
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { EventState, Nested } from 'reev';
|
|
3
|
+
import * as refr from 'refr';
|
|
4
|
+
import { Queue, Frame } from 'refr';
|
|
5
|
+
|
|
6
|
+
declare const CONVERSIONS: readonly ["toBool", "toUint", "toInt", "toFloat", "toBvec2", "toIvec2", "toUvec2", "toVec2", "toBvec3", "toIvec3", "toUvec3", "toVec3", "toBvec4", "toIvec4", "toUvec4", "toVec4", "toColor", "toMat2", "toMat3", "toMat4"];
|
|
7
|
+
declare const TYPE_MAPPING: {
|
|
8
|
+
readonly bool: "bool";
|
|
9
|
+
readonly uint: "u32";
|
|
10
|
+
readonly int: "i32";
|
|
11
|
+
readonly float: "f32";
|
|
12
|
+
readonly bvec2: "vec2<bool>";
|
|
13
|
+
readonly ivec2: "vec2i";
|
|
14
|
+
readonly uvec2: "vec2u";
|
|
15
|
+
readonly vec2: "vec2f";
|
|
16
|
+
readonly bvec3: "vec3<bool>";
|
|
17
|
+
readonly ivec3: "vec3i";
|
|
18
|
+
readonly uvec3: "vec3u";
|
|
19
|
+
readonly vec3: "vec3f";
|
|
20
|
+
readonly bvec4: "vec4<bool>";
|
|
21
|
+
readonly ivec4: "vec4i";
|
|
22
|
+
readonly uvec4: "vec4u";
|
|
23
|
+
readonly vec4: "vec4f";
|
|
24
|
+
readonly color: "color";
|
|
25
|
+
readonly mat2: "mat2x2f";
|
|
26
|
+
readonly mat3: "mat3x3f";
|
|
27
|
+
readonly mat4: "mat4x4f";
|
|
28
|
+
readonly texture: "texture_2d<f32>";
|
|
29
|
+
readonly sampler2D: "sampler";
|
|
30
|
+
readonly struct: "struct";
|
|
31
|
+
};
|
|
32
|
+
declare const CONSTANTS: (keyof typeof TYPE_MAPPING)[];
|
|
33
|
+
declare const OPERATORS: {
|
|
34
|
+
readonly not: "";
|
|
35
|
+
readonly add: "+";
|
|
36
|
+
readonly sub: "-";
|
|
37
|
+
readonly mul: "*";
|
|
38
|
+
readonly div: "/";
|
|
39
|
+
readonly mod: "%";
|
|
40
|
+
readonly equal: "==";
|
|
41
|
+
readonly notEqual: "!=";
|
|
42
|
+
readonly lessThan: "<";
|
|
43
|
+
readonly lessThanEqual: "<=";
|
|
44
|
+
readonly greaterThan: ">";
|
|
45
|
+
readonly greaterThanEqual: ">=";
|
|
46
|
+
readonly and: "&&";
|
|
47
|
+
readonly or: "||";
|
|
48
|
+
readonly bitAnd: "&";
|
|
49
|
+
readonly bitOr: "|";
|
|
50
|
+
readonly bitXor: "^";
|
|
51
|
+
readonly shiftLeft: "<<";
|
|
52
|
+
readonly shiftRight: ">>";
|
|
53
|
+
readonly addAssign: "+=";
|
|
54
|
+
readonly subAssign: "-=";
|
|
55
|
+
readonly mulAssign: "*=";
|
|
56
|
+
readonly divAssign: "/=";
|
|
57
|
+
readonly modAssign: "%=";
|
|
58
|
+
readonly bitAndAssign: "&=";
|
|
59
|
+
readonly bitOrAssign: "|=";
|
|
60
|
+
readonly bitXorAssign: "^=";
|
|
61
|
+
readonly shiftLeftAssign: "<<=";
|
|
62
|
+
readonly shiftRightAssign: ">>=";
|
|
63
|
+
};
|
|
64
|
+
declare const OPERATOR_KEYS: (keyof typeof OPERATORS)[];
|
|
65
|
+
declare const OPERATOR_TYPE_RULES: readonly [readonly ["float", "vec2", "vec2"], readonly ["float", "vec3", "vec3"], readonly ["float", "vec4", "vec4"], readonly ["int", "ivec2", "ivec2"], readonly ["int", "ivec3", "ivec3"], readonly ["int", "ivec4", "ivec4"], readonly ["uint", "uvec2", "uvec2"], readonly ["uint", "uvec3", "uvec3"], readonly ["uint", "uvec4", "uvec4"], readonly ["mat2", "vec2", "vec2"], readonly ["mat3", "vec3", "vec3"], readonly ["mat4", "vec4", "vec4"], readonly ["vec2", "mat2", "vec2"], readonly ["vec3", "mat3", "vec3"], readonly ["vec4", "mat4", "vec4"]];
|
|
66
|
+
/**
|
|
67
|
+
* 2.2. unified with:
|
|
68
|
+
* 1.2. index.ts functions and
|
|
69
|
+
* 3.2. types.ts _N
|
|
70
|
+
*/
|
|
71
|
+
declare const FUNCTIONS: readonly [...("texture" | "all" | "any" | "determinant" | "distance" | "dot" | "length" | "lengthSq" | "luminance" | "cross" | "cubeTexture" | "texelFetch" | "textureLod")[], "abs", "acos", "acosh", "asin", "asinh", "atan", "atanh", "ceil", "cos", "cosh", "dFdx", "dFdy", "degrees", "exp", "exp2", "floor", "fract", "fwidth", "inverseSqrt", "log", "log2", "negate", "normalize", "oneMinus", "radians", "reciprocal", "round", "saturate", "sign", "sin", "sinh", "sqrt", "tan", "tanh", "trunc", "atan2", "clamp", "max", "min", "mix", "pow", "reflect", "refract", "smoothstep", "step"];
|
|
72
|
+
|
|
73
|
+
type Constants = (typeof CONSTANTS)[number] | 'void';
|
|
74
|
+
type Conversions = (typeof CONVERSIONS)[number];
|
|
75
|
+
type Functions = (typeof FUNCTIONS)[number];
|
|
76
|
+
type Operators = (typeof OPERATOR_KEYS)[number];
|
|
77
|
+
/**
|
|
78
|
+
* scope
|
|
79
|
+
*/
|
|
80
|
+
interface FnLayout {
|
|
81
|
+
name: string;
|
|
82
|
+
type: C | 'auto';
|
|
83
|
+
inputs?: Array<{
|
|
84
|
+
name: string;
|
|
85
|
+
type: C;
|
|
86
|
+
}>;
|
|
87
|
+
}
|
|
88
|
+
type StructFields = Record<string, X>;
|
|
89
|
+
/**
|
|
90
|
+
* node
|
|
91
|
+
*/
|
|
92
|
+
type NodeTypes = 'attribute' | 'storage' | 'uniform' | 'constant' | 'variable' | 'varying' | 'ternary' | 'builtin' | 'conversion' | 'operator' | 'function' | 'struct' | 'member' | 'element' | 'gather' | 'scatter' | 'scope' | 'assign' | 'loop' | 'define' | 'if' | 'switch' | 'declare' | 'return' | 'break' | 'continue';
|
|
93
|
+
interface NodeProps {
|
|
94
|
+
id?: string;
|
|
95
|
+
args?: any[];
|
|
96
|
+
type?: string;
|
|
97
|
+
children?: any[];
|
|
98
|
+
inferFrom?: any[];
|
|
99
|
+
layout?: FnLayout;
|
|
100
|
+
fields?: StructFields;
|
|
101
|
+
initialValues?: StructFields;
|
|
102
|
+
}
|
|
103
|
+
interface NodeContext {
|
|
104
|
+
gl?: Partial<GL>;
|
|
105
|
+
label?: 'vert' | 'frag' | 'compute';
|
|
106
|
+
isWebGL?: boolean;
|
|
107
|
+
units?: any;
|
|
108
|
+
infers?: WeakMap<X, C>;
|
|
109
|
+
onMount?: (name: string) => void;
|
|
110
|
+
code?: {
|
|
111
|
+
headers: Map<string, string>;
|
|
112
|
+
fragInputs: Map<string, string>;
|
|
113
|
+
vertInputs: Map<string, string>;
|
|
114
|
+
vertOutputs: Map<string, string>;
|
|
115
|
+
vertVaryings: Map<string, string>;
|
|
116
|
+
computeInputs: Map<string, string>;
|
|
117
|
+
dependencies: Map<string, Set<string>>;
|
|
118
|
+
structStructFields: Map<string, StructFields>;
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* infer
|
|
123
|
+
*/
|
|
124
|
+
type _StringLength<A extends string> = A extends `${infer _}${infer A}` ? A extends '' ? 1 : A extends `${infer _}${infer B}` ? B extends '' ? 2 : B extends `${infer _}${infer C}` ? C extends '' ? 3 : 4 : never : never : never;
|
|
125
|
+
type InferOperator<L extends C, R extends C> = 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;
|
|
126
|
+
type InferArrayElement<T extends C> = T extends 'mat4' ? 'vec4' : T extends 'mat3' ? 'vec3' : T extends 'mat2' ? 'vec2' : 'float';
|
|
127
|
+
type ExtractPairs<T> = T extends readonly [infer L, infer R, string] ? [L, R] | [R, L] : never;
|
|
128
|
+
type OperatorTypeRules = ExtractPairs<(typeof OPERATOR_TYPE_RULES)[number]>;
|
|
129
|
+
type IsInRules<L extends C, R extends C> = [L, R] extends OperatorTypeRules ? 1 : 0;
|
|
130
|
+
type ValidateOperator<L extends C, R extends C> = L extends R ? 1 : IsInRules<L, R>;
|
|
131
|
+
type InferSwizzleType<S extends string> = _StringLength<S> extends 4 ? 'vec4' : _StringLength<S> extends 3 ? 'vec3' : _StringLength<S> extends 2 ? 'vec2' : 'float';
|
|
132
|
+
/**
|
|
133
|
+
* Swizzles
|
|
134
|
+
*/
|
|
135
|
+
type _Swizzles<T extends string> = T | `${T}${T}` | `${T}${T}${T}` | `${T}${T}${T}${T}`;
|
|
136
|
+
type Swizzles = _Swizzles<'x' | 'y' | 'z' | 'w'> | _Swizzles<'r' | 'g' | 'b' | 'a'> | _Swizzles<'p' | 'q'> | _Swizzles<'s' | 't'>;
|
|
137
|
+
type Void = XImpl<'void'>;
|
|
138
|
+
type Bool = XImpl<'bool'>;
|
|
139
|
+
type UInt = XImpl<'uint'>;
|
|
140
|
+
type Int = XImpl<'int'>;
|
|
141
|
+
type Float = XImpl<'float'>;
|
|
142
|
+
type BVec2 = XImpl<'bvec2'>;
|
|
143
|
+
type IVec2 = XImpl<'ivec2'>;
|
|
144
|
+
type UVec2 = XImpl<'uvec2'>;
|
|
145
|
+
type Vec2 = XImpl<'vec2'>;
|
|
146
|
+
type BVec3 = XImpl<'bvec3'>;
|
|
147
|
+
type IVec3 = XImpl<'ivec3'>;
|
|
148
|
+
type UVec3 = XImpl<'uvec3'>;
|
|
149
|
+
type Vec3 = XImpl<'vec3'>;
|
|
150
|
+
type BVec4 = XImpl<'bvec4'>;
|
|
151
|
+
type IVec4 = XImpl<'ivec4'>;
|
|
152
|
+
type UVec4 = XImpl<'uvec4'>;
|
|
153
|
+
type Vec4 = XImpl<'vec4'>;
|
|
154
|
+
type Color = XImpl<'color'>;
|
|
155
|
+
type Mat2 = XImpl<'mat2'>;
|
|
156
|
+
type Mat3 = XImpl<'mat3'>;
|
|
157
|
+
type Mat4 = XImpl<'mat4'>;
|
|
158
|
+
type Texture = XImpl<'texture'>;
|
|
159
|
+
type Sampler2D = XImpl<'sampler2D'>;
|
|
160
|
+
type StructBase = XImpl<'struct'>;
|
|
161
|
+
interface ConstantsToType {
|
|
162
|
+
void: Void;
|
|
163
|
+
bool: Bool;
|
|
164
|
+
uint: UInt;
|
|
165
|
+
int: Int;
|
|
166
|
+
float: Float;
|
|
167
|
+
bvec2: BVec2;
|
|
168
|
+
ivec2: IVec2;
|
|
169
|
+
uvec2: UVec2;
|
|
170
|
+
vec2: Vec2;
|
|
171
|
+
bvec3: BVec3;
|
|
172
|
+
ivec3: IVec3;
|
|
173
|
+
uvec3: UVec3;
|
|
174
|
+
vec3: Vec3;
|
|
175
|
+
bvec4: BVec4;
|
|
176
|
+
ivec4: IVec4;
|
|
177
|
+
uvec4: UVec4;
|
|
178
|
+
vec4: Vec4;
|
|
179
|
+
color: Color;
|
|
180
|
+
mat2: Mat2;
|
|
181
|
+
mat3: Mat3;
|
|
182
|
+
mat4: Mat4;
|
|
183
|
+
texture: Texture;
|
|
184
|
+
sampler2D: Sampler2D;
|
|
185
|
+
struct: StructBase;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* X and Y
|
|
189
|
+
*/
|
|
190
|
+
type XImpl<T extends C> = _X<T> & {
|
|
191
|
+
[K in string as K extends Methods ? never : K]: any;
|
|
192
|
+
} & {
|
|
193
|
+
[K in Swizzles]: X<InferSwizzleType<K>>;
|
|
194
|
+
};
|
|
195
|
+
type C = Constants;
|
|
196
|
+
type X<T extends C = C> = T extends keyof ConstantsToType ? ConstantsToType[T] : _X<T>;
|
|
197
|
+
type Methods = Functions | Operators | Conversions | Swizzles | '__nodeType' | 'type' | 'props' | 'isProxy' | 'assign' | 'toVar' | 'toString' | 'element';
|
|
198
|
+
interface _X<T extends C> {
|
|
199
|
+
readonly __nodeType?: T;
|
|
200
|
+
assign(x: any): X<T>;
|
|
201
|
+
fragment(c: NodeContext): string;
|
|
202
|
+
toVar(name?: string): X<T>;
|
|
203
|
+
toString(c?: NodeContext): string;
|
|
204
|
+
fragment(c?: NodeContext): string;
|
|
205
|
+
compute(c?: NodeContext): string;
|
|
206
|
+
vertex(c?: NodeContext): string;
|
|
207
|
+
type: NodeTypes;
|
|
208
|
+
props: NodeProps;
|
|
209
|
+
isProxy: true;
|
|
210
|
+
listeners: Set<(value: any) => void>;
|
|
211
|
+
element<Index extends X>(index: Index): X<InferArrayElement<T>>;
|
|
212
|
+
member<K extends string>(key: K): K extends keyof T ? (T[K] extends X<infer U> ? X<U> : never) : never;
|
|
213
|
+
add<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
214
|
+
sub<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
215
|
+
mul<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
216
|
+
div<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
217
|
+
mod<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<InferOperator<T, U>>;
|
|
218
|
+
equal<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
219
|
+
notEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
220
|
+
lessThan<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
221
|
+
lessThanEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
222
|
+
greaterThan<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
223
|
+
greaterThanEqual<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): Bool;
|
|
224
|
+
and(x: Bool): Bool;
|
|
225
|
+
or(x: Bool): Bool;
|
|
226
|
+
not(): Bool;
|
|
227
|
+
bitAnd(x: X<T>): X<T>;
|
|
228
|
+
bitOr(x: X<T>): X<T>;
|
|
229
|
+
bitXor(x: X<T>): X<T>;
|
|
230
|
+
bitNot(): X<T>;
|
|
231
|
+
shiftLeft<U extends C>(x: X<U>): X<InferOperator<T, U>>;
|
|
232
|
+
shiftRight<U extends C>(x: X<U>): X<InferOperator<T, U>>;
|
|
233
|
+
addAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
234
|
+
subAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
235
|
+
mulAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
236
|
+
divAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
237
|
+
modAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
238
|
+
bitAndAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
239
|
+
bitOrAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
240
|
+
bitXorAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
241
|
+
shiftLeftAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
242
|
+
shiftRightAssign<U extends C>(x: ValidateOperator<T, U> extends 0 ? never : number | X<U>): X<T>;
|
|
243
|
+
toBool(): Bool;
|
|
244
|
+
toUint(): UInt;
|
|
245
|
+
toInt(): Int;
|
|
246
|
+
toFloat(): Float;
|
|
247
|
+
toBvec2(): BVec2;
|
|
248
|
+
toIvec2(): IVec2;
|
|
249
|
+
toUvec2(): UVec2;
|
|
250
|
+
toVec2(): Vec2;
|
|
251
|
+
toBvec3(): BVec3;
|
|
252
|
+
toIvec3(): IVec3;
|
|
253
|
+
toUvec3(): UVec3;
|
|
254
|
+
toVec3(): Vec3;
|
|
255
|
+
toBvec4(): BVec4;
|
|
256
|
+
toIvec4(): IVec4;
|
|
257
|
+
toUvec4(): UVec4;
|
|
258
|
+
toVec4(): Vec4;
|
|
259
|
+
toColor(): Color;
|
|
260
|
+
toMat2(): Mat2;
|
|
261
|
+
toMat3(): Mat3;
|
|
262
|
+
toMat4(): Mat4;
|
|
263
|
+
/**
|
|
264
|
+
* 3.1. unified logic with:
|
|
265
|
+
* 1.1. index.ts functions and
|
|
266
|
+
* 2.1. const.ts FUNCTION_RETURN_TYPES
|
|
267
|
+
*/
|
|
268
|
+
all(): Bool;
|
|
269
|
+
any(): Bool;
|
|
270
|
+
determinant(): T extends 'mat2' | 'mat3' | 'mat4' ? Float : never;
|
|
271
|
+
distance<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): Float;
|
|
272
|
+
dot<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' | 'ivec2' | 'ivec3' | 'ivec4' ? U extends T ? number | X<U> : never : never): T extends `ivec${string}` ? Int : Float;
|
|
273
|
+
length(): T extends 'vec2' | 'vec3' | 'vec4' ? Float : never;
|
|
274
|
+
lengthSq(): Float;
|
|
275
|
+
luminance(): Float;
|
|
276
|
+
cross<U extends C = 'vec3'>(y: T extends 'vec3' ? (U extends 'vec3' ? number | X<U> : never) : never): Vec3;
|
|
277
|
+
cubeTexture(...args: X[]): Vec4;
|
|
278
|
+
texture(...args: X[]): Vec4;
|
|
279
|
+
texelFetch(...args: X[]): Vec4;
|
|
280
|
+
textureLod(...args: X[]): Vec4;
|
|
281
|
+
/**
|
|
282
|
+
* 3.2. unified with:
|
|
283
|
+
* 1.2. index.ts functions and
|
|
284
|
+
* 2.2. const.ts FUNCTIONS
|
|
285
|
+
*/
|
|
286
|
+
abs(): X<T>;
|
|
287
|
+
acos(): X<T>;
|
|
288
|
+
acosh(): X<T>;
|
|
289
|
+
asin(): X<T>;
|
|
290
|
+
asinh(): X<T>;
|
|
291
|
+
atan(): X<T>;
|
|
292
|
+
atanh(): X<T>;
|
|
293
|
+
ceil(): X<T>;
|
|
294
|
+
cos(): X<T>;
|
|
295
|
+
cosh(): X<T>;
|
|
296
|
+
degrees(): X<T>;
|
|
297
|
+
dFdx(): X<T>;
|
|
298
|
+
dFdy(): X<T>;
|
|
299
|
+
exp(): X<T>;
|
|
300
|
+
exp2(): X<T>;
|
|
301
|
+
floor(): X<T>;
|
|
302
|
+
fract(): X<T>;
|
|
303
|
+
fwidth(): X<T>;
|
|
304
|
+
inverseSqrt(): X<T>;
|
|
305
|
+
log(): X<T>;
|
|
306
|
+
log2(): X<T>;
|
|
307
|
+
negate(): X<T>;
|
|
308
|
+
normalize(): T extends 'vec2' | 'vec3' | 'vec4' ? X<T> : never;
|
|
309
|
+
oneMinus(): X<T>;
|
|
310
|
+
radians(): X<T>;
|
|
311
|
+
reciprocal(): X<T>;
|
|
312
|
+
round(): X<T>;
|
|
313
|
+
saturate(): X<T>;
|
|
314
|
+
sign(): X<T>;
|
|
315
|
+
sin(): X<T>;
|
|
316
|
+
sinh(): X<T>;
|
|
317
|
+
sqrt(): X<T>;
|
|
318
|
+
tan(): X<T>;
|
|
319
|
+
tanh(): X<T>;
|
|
320
|
+
trunc(): X<T>;
|
|
321
|
+
atan2<U extends C>(x: number | X<U>): X<T>;
|
|
322
|
+
clamp<U extends C>(min: number | X<U>, max: number | X<U>): X<InferOperator<T, U>>;
|
|
323
|
+
max<U extends C>(y: number | X<U>): X<InferOperator<T, U>>;
|
|
324
|
+
min<U extends C>(y: number | X<U>): X<InferOperator<T, U>>;
|
|
325
|
+
mix<U extends C>(y: number | X<U>, a: number | Float | X<U>): X<InferOperator<T, U>>;
|
|
326
|
+
pow<U extends C>(y: number | X<U>): X<T>;
|
|
327
|
+
reflect<U extends C>(N: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): X<T>;
|
|
328
|
+
refract<U extends C>(N: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never, eta: number | Float): T extends 'vec2' | 'vec3' | 'vec4' ? X<T> : never;
|
|
329
|
+
smoothstep<U extends C>(edge0: number | X<U>, edge1: number | X<U>): X<InferOperator<T, U>>;
|
|
330
|
+
step<U extends C>(edge: number | X<U>): X<InferOperator<T, U>>;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
type GL = EventState<{
|
|
334
|
+
/**
|
|
335
|
+
* initial value
|
|
336
|
+
*/
|
|
337
|
+
isNative: boolean;
|
|
338
|
+
isWebGL: boolean;
|
|
339
|
+
isError: boolean;
|
|
340
|
+
isLoop: boolean;
|
|
341
|
+
isGL: true;
|
|
342
|
+
width?: number;
|
|
343
|
+
height?: number;
|
|
344
|
+
size: [number, number];
|
|
345
|
+
mouse: [number, number];
|
|
346
|
+
count: number;
|
|
347
|
+
loading: number;
|
|
348
|
+
particles: 64 | 256 | 576 | 1024 | 1600 | 2304 | 3136 | 4096 | 4096 | 5184 | 6400;
|
|
349
|
+
el: HTMLCanvasElement;
|
|
350
|
+
vs?: string | Vec4;
|
|
351
|
+
cs?: string | Void;
|
|
352
|
+
fs?: string | Vec4;
|
|
353
|
+
vert?: string | Vec4;
|
|
354
|
+
comp?: string | Void;
|
|
355
|
+
frag?: string | Vec4;
|
|
356
|
+
vertex?: string | Vec4;
|
|
357
|
+
compute?: string | Void;
|
|
358
|
+
fragment?: string | Vec4;
|
|
359
|
+
/**
|
|
360
|
+
* core state
|
|
361
|
+
*/
|
|
362
|
+
webgpu: WebGPUState;
|
|
363
|
+
webgl: WebGLState;
|
|
364
|
+
queue: Queue;
|
|
365
|
+
frame: Frame;
|
|
366
|
+
/**
|
|
367
|
+
* events
|
|
368
|
+
*/
|
|
369
|
+
ref?: any;
|
|
370
|
+
mount(): void;
|
|
371
|
+
clean(): void;
|
|
372
|
+
error(e?: string): void;
|
|
373
|
+
render(): void;
|
|
374
|
+
resize(e?: Event): void;
|
|
375
|
+
mousemove(e: Event): void;
|
|
376
|
+
loop(): void;
|
|
377
|
+
/**
|
|
378
|
+
* setter
|
|
379
|
+
*/
|
|
380
|
+
_uniform?(key: string, value: Uniform, isMatrix?: boolean): GL;
|
|
381
|
+
uniform(key: string, value: Uniform, isMatrix?: boolean): GL;
|
|
382
|
+
uniform(target: {
|
|
383
|
+
[key: string]: Uniform;
|
|
384
|
+
}): GL;
|
|
385
|
+
_texture?(key: string, value: string): GL;
|
|
386
|
+
texture(key: string, value: string): GL;
|
|
387
|
+
texture(target: {
|
|
388
|
+
[key: string]: string;
|
|
389
|
+
}): GL;
|
|
390
|
+
_attribute?(key: string, value: Attribute, iboValue?: Attribute): GL;
|
|
391
|
+
attribute(key: string, value: Attribute, iboValue?: Attribute): GL;
|
|
392
|
+
attribute(target: {
|
|
393
|
+
[key: string]: Attribute;
|
|
394
|
+
}): GL;
|
|
395
|
+
_storage?(key: string, value: Storage): GL;
|
|
396
|
+
storage(key: string, value: Storage): GL;
|
|
397
|
+
storage(target: {
|
|
398
|
+
[key: string]: Storage;
|
|
399
|
+
}): GL;
|
|
400
|
+
}>;
|
|
401
|
+
type Uniform = number | number[] | Float32Array;
|
|
402
|
+
type Attribute = number[] | Float32Array;
|
|
403
|
+
type Storage = number[] | Float32Array;
|
|
404
|
+
/**
|
|
405
|
+
* for webgpu
|
|
406
|
+
*/
|
|
407
|
+
interface UniformData {
|
|
408
|
+
array: Float32Array;
|
|
409
|
+
buffer: GPUBuffer;
|
|
410
|
+
binding: number;
|
|
411
|
+
group: number;
|
|
412
|
+
}
|
|
413
|
+
interface TextureData {
|
|
414
|
+
binding: number;
|
|
415
|
+
group: number;
|
|
416
|
+
texture: GPUTexture;
|
|
417
|
+
sampler: GPUSampler;
|
|
418
|
+
view: GPUTextureView;
|
|
419
|
+
}
|
|
420
|
+
interface AttribData {
|
|
421
|
+
array: Float32Array;
|
|
422
|
+
buffer: GPUBuffer;
|
|
423
|
+
location: number;
|
|
424
|
+
stride: number;
|
|
425
|
+
}
|
|
426
|
+
interface StorageData {
|
|
427
|
+
array: Float32Array;
|
|
428
|
+
buffer: GPUBuffer;
|
|
429
|
+
binding: number;
|
|
430
|
+
group: number;
|
|
431
|
+
}
|
|
432
|
+
interface WebGPUState {
|
|
433
|
+
device: GPUDevice;
|
|
434
|
+
uniforms: Nested<UniformData>;
|
|
435
|
+
textures: Nested<TextureData>;
|
|
436
|
+
attribs: Nested<AttribData>;
|
|
437
|
+
storages: Nested<StorageData>;
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* for webgl
|
|
441
|
+
*/
|
|
442
|
+
interface WebGLState {
|
|
443
|
+
context: WebGLRenderingContext;
|
|
444
|
+
program: WebGLProgram;
|
|
445
|
+
storages: any;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
declare const isGL: (a: unknown) => a is EventState<GL>;
|
|
449
|
+
declare const isServer: () => boolean;
|
|
450
|
+
declare const isWebGPUSupported: () => boolean;
|
|
451
|
+
declare const createGL: (props?: Partial<GL>) => EventState<{
|
|
452
|
+
isNative: boolean;
|
|
453
|
+
isWebGL: boolean;
|
|
454
|
+
isError: boolean;
|
|
455
|
+
isLoop: boolean;
|
|
456
|
+
isGL: true;
|
|
457
|
+
width?: number;
|
|
458
|
+
height?: number;
|
|
459
|
+
size: [number, number];
|
|
460
|
+
mouse: [number, number];
|
|
461
|
+
count: number;
|
|
462
|
+
loading: number;
|
|
463
|
+
particles: 64 | 256 | 576 | 1024 | 1600 | 2304 | 3136 | 4096 | 4096 | 5184 | 6400;
|
|
464
|
+
el: HTMLCanvasElement;
|
|
465
|
+
vs?: string | Vec4;
|
|
466
|
+
cs?: string | Void;
|
|
467
|
+
fs?: string | Vec4;
|
|
468
|
+
vert?: string | Vec4;
|
|
469
|
+
comp?: string | Void;
|
|
470
|
+
frag?: string | Vec4;
|
|
471
|
+
vertex?: string | Vec4;
|
|
472
|
+
compute?: string | Void;
|
|
473
|
+
fragment?: string | Vec4;
|
|
474
|
+
webgpu: WebGPUState;
|
|
475
|
+
webgl: WebGLState;
|
|
476
|
+
queue: refr.Queue;
|
|
477
|
+
frame: refr.Frame;
|
|
478
|
+
ref?: any;
|
|
479
|
+
mount(): void;
|
|
480
|
+
clean(): void;
|
|
481
|
+
error(e?: string): void;
|
|
482
|
+
render(): void;
|
|
483
|
+
resize(e?: Event): void;
|
|
484
|
+
mousemove(e: Event): void;
|
|
485
|
+
loop(): void;
|
|
486
|
+
_uniform?(key: string, value: number | number[] | Float32Array<ArrayBufferLike>, isMatrix?: boolean): GL;
|
|
487
|
+
uniform(key: string, value: number | number[] | Float32Array<ArrayBufferLike>, isMatrix?: boolean): GL;
|
|
488
|
+
uniform(target: {
|
|
489
|
+
[key: string]: number | number[] | Float32Array<ArrayBufferLike>;
|
|
490
|
+
}): GL;
|
|
491
|
+
_texture?(key: string, value: string): GL;
|
|
492
|
+
texture(key: string, value: string): GL;
|
|
493
|
+
texture(target: {
|
|
494
|
+
[key: string]: string;
|
|
495
|
+
}): GL;
|
|
496
|
+
_attribute?(key: string, value: number[] | Float32Array<ArrayBufferLike>, iboValue?: number[] | Float32Array<ArrayBufferLike>): GL;
|
|
497
|
+
attribute(key: string, value: number[] | Float32Array<ArrayBufferLike>, iboValue?: number[] | Float32Array<ArrayBufferLike>): GL;
|
|
498
|
+
attribute(target: {
|
|
499
|
+
[key: string]: number[] | Float32Array<ArrayBufferLike>;
|
|
500
|
+
}): GL;
|
|
501
|
+
_storage?(key: string, value: number[] | Float32Array<ArrayBufferLike>): GL;
|
|
502
|
+
storage(key: string, value: number[] | Float32Array<ArrayBufferLike>): GL;
|
|
503
|
+
storage(target: {
|
|
504
|
+
[key: string]: number[] | Float32Array<ArrayBufferLike>;
|
|
505
|
+
}): GL;
|
|
506
|
+
}, any[] | unknown[]>;
|
|
6
507
|
|
|
7
508
|
declare const useGL: (props?: Partial<GL>) => reev.EventState<{
|
|
8
509
|
isNative: boolean;
|
|
@@ -19,18 +520,18 @@ declare const useGL: (props?: Partial<GL>) => reev.EventState<{
|
|
|
19
520
|
particles: 64 | 256 | 576 | 1024 | 1600 | 2304 | 3136 | 4096 | 4096 | 5184 | 6400;
|
|
20
521
|
el: HTMLCanvasElement;
|
|
21
522
|
vs?: string | Vec4;
|
|
22
|
-
cs?: string |
|
|
523
|
+
cs?: string | Void;
|
|
23
524
|
fs?: string | Vec4;
|
|
24
525
|
vert?: string | Vec4;
|
|
25
|
-
comp?: string |
|
|
526
|
+
comp?: string | Void;
|
|
26
527
|
frag?: string | Vec4;
|
|
27
528
|
vertex?: string | Vec4;
|
|
28
|
-
compute?: string |
|
|
529
|
+
compute?: string | Void;
|
|
29
530
|
fragment?: string | Vec4;
|
|
30
531
|
webgpu: WebGPUState;
|
|
31
532
|
webgl: WebGLState;
|
|
32
|
-
queue:
|
|
33
|
-
frame:
|
|
533
|
+
queue: refr.Queue;
|
|
534
|
+
frame: refr.Frame;
|
|
34
535
|
ref?: any;
|
|
35
536
|
mount(): void;
|
|
36
537
|
clean(): void;
|
|
@@ -41,7 +542,6 @@ declare const useGL: (props?: Partial<GL>) => reev.EventState<{
|
|
|
41
542
|
loop(): void;
|
|
42
543
|
_uniform?(key: string, value: number | number[] | Float32Array<ArrayBufferLike>, isMatrix?: boolean): GL;
|
|
43
544
|
uniform(key: string, value: number | number[] | Float32Array<ArrayBufferLike>, isMatrix?: boolean): GL;
|
|
44
|
-
uniform(node: NodeProxy): GL;
|
|
45
545
|
uniform(target: {
|
|
46
546
|
[key: string]: number | number[] | Float32Array<ArrayBufferLike>;
|
|
47
547
|
}): GL;
|
|
@@ -62,4 +562,4 @@ declare const useGL: (props?: Partial<GL>) => reev.EventState<{
|
|
|
62
562
|
}): GL;
|
|
63
563
|
}, any[] | unknown[]>;
|
|
64
564
|
|
|
65
|
-
export { GL,
|
|
565
|
+
export { AttribData, GL, StorageData, TextureData, UniformData, WebGLState, WebGPUState, createGL, isGL, isServer, isWebGPUSupported, useGL };
|