glre 0.43.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 +60 -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 +59 -7
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/native.d.ts +60 -7
- package/dist/node.cjs +15 -19
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +58 -7
- package/dist/node.js +14 -18
- package/dist/node.js.map +1 -1
- package/dist/react.d.ts +59 -7
- package/dist/solid.d.ts +59 -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 +1 -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 +3 -2
- package/src/utils/helpers.ts +2 -1
- package/src/utils/program.ts +7 -43
- package/src/utils/webgl.ts +6 -20
package/dist/addons.d.ts
CHANGED
|
@@ -87,6 +87,7 @@ type GL = EventState<{
|
|
|
87
87
|
count: number;
|
|
88
88
|
instanceCount: number;
|
|
89
89
|
particleCount: number | [number, number] | [number, number, number];
|
|
90
|
+
precision: 'lowp' | 'mediump' | 'highp';
|
|
90
91
|
loading: number;
|
|
91
92
|
el: HTMLCanvasElement;
|
|
92
93
|
vs?: string | Vec4;
|
|
@@ -189,9 +190,9 @@ interface WebGPUState {
|
|
|
189
190
|
* for webgl
|
|
190
191
|
*/
|
|
191
192
|
interface WebGLState {
|
|
192
|
-
context:
|
|
193
|
+
context: WebGL2RenderingContext;
|
|
193
194
|
program: WebGLProgram;
|
|
194
|
-
|
|
195
|
+
uniforms: Nested<WebGLUniformLocation | null>;
|
|
195
196
|
}
|
|
196
197
|
|
|
197
198
|
type Constants = (typeof CONSTANTS)[number] | 'void';
|
|
@@ -253,14 +254,64 @@ interface NodeContext {
|
|
|
253
254
|
/**
|
|
254
255
|
* infer
|
|
255
256
|
*/
|
|
256
|
-
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;
|
|
257
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;
|
|
258
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;
|
|
259
260
|
type ExtractPairs<T> = T extends readonly [infer L, infer R, string] ? [L, R] | [R, L] : never;
|
|
260
|
-
type OperatorTypeRules = ExtractPairs<
|
|
261
|
+
type OperatorTypeRules = ExtractPairs<_OperatorTypeRulesMap[number]>;
|
|
261
262
|
type IsInRules<L extends C, R extends C> = [L, R] extends OperatorTypeRules ? 1 : 0;
|
|
262
263
|
type ValidateOperator<L extends C, R extends C> = L extends R ? 1 : IsInRules<L, R>;
|
|
263
|
-
|
|
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;
|
|
264
315
|
/**
|
|
265
316
|
* Swizzles
|
|
266
317
|
*/
|
|
@@ -327,7 +378,7 @@ interface ConstantsToType {
|
|
|
327
378
|
type XImpl<T extends C> = _X<T> & {
|
|
328
379
|
[K in string as K extends Methods ? never : K]: any;
|
|
329
380
|
} & {
|
|
330
|
-
[K in Swizzles]: X<InferSwizzleType<K>>;
|
|
381
|
+
[K in Swizzles]: X<InferSwizzleType<T, K>>;
|
|
331
382
|
};
|
|
332
383
|
type C = Constants;
|
|
333
384
|
type X<T extends C = C> = T extends keyof ConstantsToType ? ConstantsToType[T] : _X<T>;
|
|
@@ -407,7 +458,7 @@ interface _X<T extends C> {
|
|
|
407
458
|
any(): Bool;
|
|
408
459
|
determinant(): T extends 'mat2' | 'mat3' | 'mat4' ? Float : never;
|
|
409
460
|
distance<U extends C>(y: T extends 'vec2' | 'vec3' | 'vec4' ? (U extends T ? number | X<U> : never) : never): Float;
|
|
410
|
-
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;
|
|
411
462
|
length(): T extends 'vec2' | 'vec3' | 'vec4' ? Float : never;
|
|
412
463
|
lengthSq(): Float;
|
|
413
464
|
luminance(): Float;
|
|
@@ -1279,7 +1330,7 @@ declare const mod289Vec2: FnType<Vec2, [Vec2]>;
|
|
|
1279
1330
|
declare const mod289Vec3: FnType<Vec3, [Vec3]>;
|
|
1280
1331
|
declare const mod289Vec4: FnType<Vec4, [Vec4]>;
|
|
1281
1332
|
|
|
1282
|
-
declare const mod2: FnType<
|
|
1333
|
+
declare const mod2: FnType<Vec4, any[]>;
|
|
1283
1334
|
declare const mod2Cell: FnType<Vec2, [Vec2, X]>;
|
|
1284
1335
|
declare const mod2Wrap: FnType<Vec2, [Vec2, X]>;
|
|
1285
1336
|
|
|
@@ -1374,7 +1425,7 @@ declare const scale4dVec4: FnType<Mat4, [Vec4]>;
|
|
|
1374
1425
|
|
|
1375
1426
|
declare const smootherstep: FnType<X, [X, X, X]>;
|
|
1376
1427
|
|
|
1377
|
-
declare const taylorInvSqrt: FnType<
|
|
1428
|
+
declare const taylorInvSqrt: FnType<any, any[]>;
|
|
1378
1429
|
|
|
1379
1430
|
declare const toMat3: FnType<Mat3, [Mat4]>;
|
|
1380
1431
|
|