glre 0.42.0 → 0.44.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 +1 -1
- package/dist/addons.cjs.map +1 -1
- package/dist/addons.d.ts +61 -9
- package/dist/addons.js +1 -1
- package/dist/addons.js.map +1 -1
- package/dist/index.cjs +6 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +61 -7
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/native.d.ts +63 -7
- package/dist/node.cjs +15 -19
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +59 -7
- package/dist/node.js +14 -18
- package/dist/node.js.map +1 -1
- package/dist/react.d.ts +61 -7
- package/dist/solid.d.ts +61 -7
- package/package.json +1 -1
- package/src/addons/generative/cnoise.ts +5 -13
- package/src/addons/generative/gerstnerWave.ts +1 -1
- package/src/addons/generative/snoise.ts +0 -1
- package/src/addons/math/mod2.ts +1 -1
- package/src/addons/math/taylorInvSqrt.ts +2 -2
- package/src/index.ts +2 -0
- package/src/node/build.ts +42 -8
- package/src/node/types.ts +47 -37
- package/src/node/utils/const.ts +4 -36
- package/src/types.ts +4 -2
- package/src/utils/helpers.ts +2 -1
- package/src/utils/program.ts +7 -43
- package/src/utils/webgl.ts +10 -19
package/dist/addons.d.ts
CHANGED
|
@@ -78,6 +78,7 @@ type GL = EventState<{
|
|
|
78
78
|
isLoop: boolean;
|
|
79
79
|
isDebug: boolean;
|
|
80
80
|
isDepth: boolean;
|
|
81
|
+
wireframe: boolean;
|
|
81
82
|
isGL: true;
|
|
82
83
|
width?: number;
|
|
83
84
|
height?: number;
|
|
@@ -86,6 +87,7 @@ type GL = EventState<{
|
|
|
86
87
|
count: number;
|
|
87
88
|
instanceCount: number;
|
|
88
89
|
particleCount: number | [number, number] | [number, number, number];
|
|
90
|
+
precision: 'lowp' | 'mediump' | 'highp';
|
|
89
91
|
loading: number;
|
|
90
92
|
el: HTMLCanvasElement;
|
|
91
93
|
vs?: string | Vec4;
|
|
@@ -188,9 +190,9 @@ interface WebGPUState {
|
|
|
188
190
|
* for webgl
|
|
189
191
|
*/
|
|
190
192
|
interface WebGLState {
|
|
191
|
-
context:
|
|
193
|
+
context: WebGL2RenderingContext;
|
|
192
194
|
program: WebGLProgram;
|
|
193
|
-
|
|
195
|
+
uniforms: Nested<WebGLUniformLocation | null>;
|
|
194
196
|
}
|
|
195
197
|
|
|
196
198
|
type Constants = (typeof CONSTANTS)[number] | 'void';
|
|
@@ -252,14 +254,64 @@ interface NodeContext {
|
|
|
252
254
|
/**
|
|
253
255
|
* infer
|
|
254
256
|
*/
|
|
255
|
-
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;
|
|
256
257
|
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;
|
|
257
258
|
type InferArrayElement<T extends C> = T extends 'mat4' ? 'vec4' : T extends 'mat3' ? 'vec3' : T extends 'mat2' ? 'vec2' : 'float';
|
|
259
|
+
type _OperatorTypeRulesMap = typeof OPERATOR_TYPE_RULES;
|
|
258
260
|
type ExtractPairs<T> = T extends readonly [infer L, infer R, string] ? [L, R] | [R, L] : never;
|
|
259
|
-
type OperatorTypeRules = ExtractPairs<
|
|
261
|
+
type OperatorTypeRules = ExtractPairs<_OperatorTypeRulesMap[number]>;
|
|
260
262
|
type IsInRules<L extends C, R extends C> = [L, R] extends OperatorTypeRules ? 1 : 0;
|
|
261
263
|
type ValidateOperator<L extends C, R extends C> = L extends R ? 1 : IsInRules<L, R>;
|
|
262
|
-
|
|
264
|
+
/**
|
|
265
|
+
* swizzle
|
|
266
|
+
*/
|
|
267
|
+
type _SwizzleLength<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;
|
|
268
|
+
type _SwizzleBaseMap = {
|
|
269
|
+
float: 'float';
|
|
270
|
+
vec2: 'float';
|
|
271
|
+
vec3: 'float';
|
|
272
|
+
vec4: 'float';
|
|
273
|
+
int: 'int';
|
|
274
|
+
ivec2: 'int';
|
|
275
|
+
ivec3: 'int';
|
|
276
|
+
ivec4: 'int';
|
|
277
|
+
uint: 'uint';
|
|
278
|
+
uvec2: 'uint';
|
|
279
|
+
uvec3: 'uint';
|
|
280
|
+
uvec4: 'uint';
|
|
281
|
+
bool: 'bool';
|
|
282
|
+
bvec2: 'bool';
|
|
283
|
+
bvec3: 'bool';
|
|
284
|
+
bvec4: 'bool';
|
|
285
|
+
};
|
|
286
|
+
type _SwizzleResultMap = {
|
|
287
|
+
float: {
|
|
288
|
+
1: 'float';
|
|
289
|
+
2: 'vec2';
|
|
290
|
+
3: 'vec3';
|
|
291
|
+
4: 'vec4';
|
|
292
|
+
};
|
|
293
|
+
int: {
|
|
294
|
+
1: 'int';
|
|
295
|
+
2: 'ivec2';
|
|
296
|
+
3: 'ivec3';
|
|
297
|
+
4: 'ivec4';
|
|
298
|
+
};
|
|
299
|
+
uint: {
|
|
300
|
+
1: 'uint';
|
|
301
|
+
2: 'uvec2';
|
|
302
|
+
3: 'uvec3';
|
|
303
|
+
4: 'uvec4';
|
|
304
|
+
};
|
|
305
|
+
bool: {
|
|
306
|
+
1: 'bool';
|
|
307
|
+
2: 'bvec2';
|
|
308
|
+
3: 'bvec3';
|
|
309
|
+
4: 'bvec4';
|
|
310
|
+
};
|
|
311
|
+
};
|
|
312
|
+
type _SwizzleBase<T extends C> = T extends keyof _SwizzleBaseMap ? _SwizzleBaseMap[T] : never;
|
|
313
|
+
type _SwizzleResult<T extends C, L extends 1 | 2 | 3 | 4> = _SwizzleResultMap[_SwizzleBase<T>][L];
|
|
314
|
+
type InferSwizzleType<T extends C, S extends string> = _SwizzleLength<S> extends infer L extends 1 | 2 | 3 | 4 ? _SwizzleResult<_SwizzleBase<T>, L> : never;
|
|
263
315
|
/**
|
|
264
316
|
* Swizzles
|
|
265
317
|
*/
|
|
@@ -326,7 +378,7 @@ interface ConstantsToType {
|
|
|
326
378
|
type XImpl<T extends C> = _X<T> & {
|
|
327
379
|
[K in string as K extends Methods ? never : K]: any;
|
|
328
380
|
} & {
|
|
329
|
-
[K in Swizzles]: X<InferSwizzleType<K>>;
|
|
381
|
+
[K in Swizzles]: X<InferSwizzleType<T, K>>;
|
|
330
382
|
};
|
|
331
383
|
type C = Constants;
|
|
332
384
|
type X<T extends C = C> = T extends keyof ConstantsToType ? ConstantsToType[T] : _X<T>;
|
|
@@ -406,7 +458,7 @@ interface _X<T extends C> {
|
|
|
406
458
|
any(): Bool;
|
|
407
459
|
determinant(): T extends 'mat2' | 'mat3' | 'mat4' ? Float : never;
|
|
408
460
|
distance<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): Float;
|
|
409
|
-
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;
|
|
461
|
+
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;
|
|
410
462
|
length(): T extends 'vec2' | 'vec3' | 'vec4' ? Float : never;
|
|
411
463
|
lengthSq(): Float;
|
|
412
464
|
luminance(): Float;
|
|
@@ -1278,7 +1330,7 @@ declare const mod289Vec2: FnType<Vec2, [Vec2]>;
|
|
|
1278
1330
|
declare const mod289Vec3: FnType<Vec3, [Vec3]>;
|
|
1279
1331
|
declare const mod289Vec4: FnType<Vec4, [Vec4]>;
|
|
1280
1332
|
|
|
1281
|
-
declare const mod2: FnType<
|
|
1333
|
+
declare const mod2: FnType<Vec4, any[]>;
|
|
1282
1334
|
declare const mod2Cell: FnType<Vec2, [Vec2, X]>;
|
|
1283
1335
|
declare const mod2Wrap: FnType<Vec2, [Vec2, X]>;
|
|
1284
1336
|
|
|
@@ -1373,7 +1425,7 @@ declare const scale4dVec4: FnType<Mat4, [Vec4]>;
|
|
|
1373
1425
|
|
|
1374
1426
|
declare const smootherstep: FnType<X, [X, X, X]>;
|
|
1375
1427
|
|
|
1376
|
-
declare const taylorInvSqrt: FnType<
|
|
1428
|
+
declare const taylorInvSqrt: FnType<any, any[]>;
|
|
1377
1429
|
|
|
1378
1430
|
declare const toMat3: FnType<Mat3, [Mat4]>;
|
|
1379
1431
|
|