glre 0.34.0 → 0.35.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
@@ -1910,6 +1910,7 @@ declare const difference: <T extends Constants>(x: X<T>, y: X) => NodeProxy<T>;
1910
1910
  declare const equals: (x: X, y: X) => Bool;
1911
1911
  declare const faceforward: <T extends Constants>(N: X<T>, I: X, Nref: X) => NodeProxy<T>;
1912
1912
  declare const transformDirection: <T extends Constants>(dir: X<T>, matrix: X) => NodeProxy<T>;
1913
+ declare const mod: <T extends Constants>(x: NodeProxy<T>, y: X<T>) => NodeProxy<"texture" extends infer T_1 ? T_1 extends "texture" ? T_1 extends ("vec4" extends infer T_2 ? T_2 extends "vec4" ? T_2 extends T ? T_2 : T_2 extends "int" | "float" ? T : T extends "int" | "float" ? T_2 : T_2 extends "mat4" ? T extends "vec4" ? T : T_2 : T_2 extends "mat3" ? T extends "vec3" ? T : T_2 : T_2 extends "mat2" ? T extends "vec2" ? T : T_2 : T_2 extends "vec4" ? T extends "mat4" ? T_2 : T_2 : T_2 extends "vec3" ? T extends "mat3" ? T_2 : T_2 : T_2 extends "vec2" ? T extends "mat2" ? T_2 : T_2 : T_2 : never : never) ? T_1 : T_1 extends "int" | "float" ? "vec4" extends infer T_3 ? T_3 extends "vec4" ? T_3 extends T ? T_3 : T_3 extends "int" | "float" ? T : T extends "int" | "float" ? T_3 : T_3 extends "mat4" ? T extends "vec4" ? T : T_3 : T_3 extends "mat3" ? T extends "vec3" ? T : T_3 : T_3 extends "mat2" ? T extends "vec2" ? T : T_3 : T_3 extends "vec4" ? T extends "mat4" ? T_3 : T_3 : T_3 extends "vec3" ? T extends "mat3" ? T_3 : T_3 : T_3 extends "vec2" ? T extends "mat2" ? T_3 : T_3 : T_3 : never : never : ("vec4" extends infer T_4 ? T_4 extends "vec4" ? T_4 extends T ? T_4 : T_4 extends "int" | "float" ? T : T extends "int" | "float" ? T_4 : T_4 extends "mat4" ? T extends "vec4" ? T : T_4 : T_4 extends "mat3" ? T extends "vec3" ? T : T_4 : T_4 extends "mat2" ? T extends "vec2" ? T : T_4 : T_4 extends "vec4" ? T extends "mat4" ? T_4 : T_4 : T_4 extends "vec3" ? T extends "mat3" ? T_4 : T_4 : T_4 extends "vec2" ? T extends "mat2" ? T_4 : T_4 : T_4 : never : never) extends infer T_5 ? T_5 extends ("vec4" extends infer T_6 ? T_6 extends "vec4" ? T_6 extends T ? T_6 : T_6 extends "int" | "float" ? T : T extends "int" | "float" ? T_6 : T_6 extends "mat4" ? T extends "vec4" ? T : T_6 : T_6 extends "mat3" ? T extends "vec3" ? T : T_6 : T_6 extends "mat2" ? T extends "vec2" ? T : T_6 : T_6 extends "vec4" ? T extends "mat4" ? T_6 : T_6 : T_6 extends "vec3" ? T extends "mat3" ? T_6 : T_6 : T_6 extends "vec2" ? T extends "mat2" ? T_6 : T_6 : T_6 : never : never) ? T_5 extends "int" | "float" ? T_1 : T_1 extends "mat4" ? T_5 extends "vec4" ? T_5 : T_1 : T_1 extends "mat3" ? T_5 extends "vec3" ? T_5 : T_1 : T_1 extends "mat2" ? T_5 extends "vec2" ? T_5 : T_1 : T_1 extends "vec4" ? T_5 extends "mat4" ? T_1 : T_1 : T_1 extends "vec3" ? T_5 extends "mat3" ? T_1 : T_1 : T_1 extends "vec2" ? T_5 extends "mat2" ? T_1 : T_1 : T_1 : never : never : never : never> | NodeProxy<"vec4" extends infer T_7 ? T_7 extends "vec4" ? T_7 extends ("vec4" extends infer T_8 ? T_8 extends "vec4" ? T_8 extends T ? T_8 : T_8 extends "int" | "float" ? T : T extends "int" | "float" ? T_8 : T_8 extends "mat4" ? T extends "vec4" ? T : T_8 : T_8 extends "mat3" ? T extends "vec3" ? T : T_8 : T_8 extends "mat2" ? T extends "vec2" ? T : T_8 : T_8 extends "vec4" ? T extends "mat4" ? T_8 : T_8 : T_8 extends "vec3" ? T extends "mat3" ? T_8 : T_8 : T_8 extends "vec2" ? T extends "mat2" ? T_8 : T_8 : T_8 : never : never) ? T_7 : T_7 extends "int" | "float" ? "vec4" extends infer T_9 ? T_9 extends "vec4" ? T_9 extends T ? T_9 : T_9 extends "int" | "float" ? T : T extends "int" | "float" ? T_9 : T_9 extends "mat4" ? T extends "vec4" ? T : T_9 : T_9 extends "mat3" ? T extends "vec3" ? T : T_9 : T_9 extends "mat2" ? T extends "vec2" ? T : T_9 : T_9 extends "vec4" ? T extends "mat4" ? T_9 : T_9 : T_9 extends "vec3" ? T extends "mat3" ? T_9 : T_9 : T_9 extends "vec2" ? T extends "mat2" ? T_9 : T_9 : T_9 : never : never : ("vec4" extends infer T_10 ? T_10 extends "vec4" ? T_10 extends T ? T_10 : T_10 extends "int" | "float" ? T : T extends "int" | "float" ? T_10 : T_10 extends "mat4" ? T extends "vec4" ? T : T_10 : T_10 extends "mat3" ? T extends "vec3" ? T : T_10 : T_10 extends "mat2" ? T extends "vec2" ? T : T_10 : T_10 extends "vec4" ? T extends "mat4" ? T_10 : T_10 : T_10 extends "vec3" ? T extends "mat3" ? T_10 : T_10 : T_10 extends "vec2" ? T extends "mat2" ? T_10 : T_10 : T_10 : never : never) extends infer T_11 ? T_11 extends ("vec4" extends infer T_12 ? T_12 extends "vec4" ? T_12 extends T ? T_12 : T_12 extends "int" | "float" ? T : T extends "int" | "float" ? T_12 : T_12 extends "mat4" ? T extends "vec4" ? T : T_12 : T_12 extends "mat3" ? T extends "vec3" ? T : T_12 : T_12 extends "mat2" ? T extends "vec2" ? T : T_12 : T_12 extends "vec4" ? T extends "mat4" ? T_12 : T_12 : T_12 extends "vec3" ? T extends "mat3" ? T_12 : T_12 : T_12 extends "vec2" ? T extends "mat2" ? T_12 : T_12 : T_12 : never : never) ? T_11 extends "int" | "float" ? T_7 : T_7 extends "mat4" ? T_11 extends "vec4" ? T_11 : T_7 : T_7 extends "mat3" ? T_11 extends "vec3" ? T_11 : T_7 : T_7 extends "mat2" ? T_11 extends "vec2" ? T_11 : T_7 : T_7 extends "vec4" ? T_11 extends "mat4" ? T_7 : T_7 : T_7 extends "vec3" ? T_11 extends "mat3" ? T_7 : T_7 : T_7 extends "vec2" ? T_11 extends "mat2" ? T_7 : T_7 : T_7 : never : never : never : never> | NodeProxy<string extends infer T_13 ? T_13 extends string ? T_13 extends ("vec4" extends infer T_14 ? T_14 extends "vec4" ? T_14 extends T ? T_14 : T_14 extends "int" | "float" ? T : T extends "int" | "float" ? T_14 : T_14 extends "mat4" ? T extends "vec4" ? T : T_14 : T_14 extends "mat3" ? T extends "vec3" ? T : T_14 : T_14 extends "mat2" ? T extends "vec2" ? T : T_14 : T_14 extends "vec4" ? T extends "mat4" ? T_14 : T_14 : T_14 extends "vec3" ? T extends "mat3" ? T_14 : T_14 : T_14 extends "vec2" ? T extends "mat2" ? T_14 : T_14 : T_14 : never : never) ? T_13 : T_13 extends "int" | "float" ? "vec4" extends infer T_15 ? T_15 extends "vec4" ? T_15 extends T ? T_15 : T_15 extends "int" | "float" ? T : T extends "int" | "float" ? T_15 : T_15 extends "mat4" ? T extends "vec4" ? T : T_15 : T_15 extends "mat3" ? T extends "vec3" ? T : T_15 : T_15 extends "mat2" ? T extends "vec2" ? T : T_15 : T_15 extends "vec4" ? T extends "mat4" ? T_15 : T_15 : T_15 extends "vec3" ? T extends "mat3" ? T_15 : T_15 : T_15 extends "vec2" ? T extends "mat2" ? T_15 : T_15 : T_15 : never : never : ("vec4" extends infer T_16 ? T_16 extends "vec4" ? T_16 extends T ? T_16 : T_16 extends "int" | "float" ? T : T extends "int" | "float" ? T_16 : T_16 extends "mat4" ? T extends "vec4" ? T : T_16 : T_16 extends "mat3" ? T extends "vec3" ? T : T_16 : T_16 extends "mat2" ? T extends "vec2" ? T : T_16 : T_16 extends "vec4" ? T extends "mat4" ? T_16 : T_16 : T_16 extends "vec3" ? T extends "mat3" ? T_16 : T_16 : T_16 extends "vec2" ? T extends "mat2" ? T_16 : T_16 : T_16 : never : never) extends infer T_17 ? T_17 extends ("vec4" extends infer T_18 ? T_18 extends "vec4" ? T_18 extends T ? T_18 : T_18 extends "int" | "float" ? T : T extends "int" | "float" ? T_18 : T_18 extends "mat4" ? T extends "vec4" ? T : T_18 : T_18 extends "mat3" ? T extends "vec3" ? T : T_18 : T_18 extends "mat2" ? T extends "vec2" ? T : T_18 : T_18 extends "vec4" ? T extends "mat4" ? T_18 : T_18 : T_18 extends "vec3" ? T extends "mat3" ? T_18 : T_18 : T_18 extends "vec2" ? T extends "mat2" ? T_18 : T_18 : T_18 : never : never) ? T_17 extends "int" | "float" ? T_13 : T_13 extends "mat4" ? T_17 extends "vec4" ? T_17 : T_13 : T_13 extends "mat3" ? T_17 extends "vec3" ? T_17 : T_13 : T_13 extends "mat2" ? T_17 extends "vec2" ? T_17 : T_13 : T_13 extends "vec4" ? T_17 extends "mat4" ? T_13 : T_13 : T_13 extends "vec3" ? T_17 extends "mat3" ? T_13 : T_13 : T_13 extends "vec2" ? T_17 extends "mat2" ? T_13 : T_13 : T_13 : never : never : never : never> | NodeProxy<"bool" extends infer T_19 ? T_19 extends "bool" ? T_19 extends ("vec4" extends infer T_20 ? T_20 extends "vec4" ? T_20 extends T ? T_20 : T_20 extends "int" | "float" ? T : T extends "int" | "float" ? T_20 : T_20 extends "mat4" ? T extends "vec4" ? T : T_20 : T_20 extends "mat3" ? T extends "vec3" ? T : T_20 : T_20 extends "mat2" ? T extends "vec2" ? T : T_20 : T_20 extends "vec4" ? T extends "mat4" ? T_20 : T_20 : T_20 extends "vec3" ? T extends "mat3" ? T_20 : T_20 : T_20 extends "vec2" ? T extends "mat2" ? T_20 : T_20 : T_20 : never : never) ? T_19 : T_19 extends "int" | "float" ? "vec4" extends infer T_21 ? T_21 extends "vec4" ? T_21 extends T ? T_21 : T_21 extends "int" | "float" ? T : T extends "int" | "float" ? T_21 : T_21 extends "mat4" ? T extends "vec4" ? T : T_21 : T_21 extends "mat3" ? T extends "vec3" ? T : T_21 : T_21 extends "mat2" ? T extends "vec2" ? T : T_21 : T_21 extends "vec4" ? T extends "mat4" ? T_21 : T_21 : T_21 extends "vec3" ? T extends "mat3" ? T_21 : T_21 : T_21 extends "vec2" ? T extends "mat2" ? T_21 : T_21 : T_21 : never : never : ("vec4" extends infer T_22 ? T_22 extends "vec4" ? T_22 extends T ? T_22 : T_22 extends "int" | "float" ? T : T extends "int" | "float" ? T_22 : T_22 extends "mat4" ? T extends "vec4" ? T : T_22 : T_22 extends "mat3" ? T extends "vec3" ? T : T_22 : T_22 extends "mat2" ? T extends "vec2" ? T : T_22 : T_22 extends "vec4" ? T extends "mat4" ? T_22 : T_22 : T_22 extends "vec3" ? T extends "mat3" ? T_22 : T_22 : T_22 extends "vec2" ? T extends "mat2" ? T_22 : T_22 : T_22 : never : never) extends infer T_23 ? T_23 extends ("vec4" extends infer T_24 ? T_24 extends "vec4" ? T_24 extends T ? T_24 : T_24 extends "int" | "float" ? T : T extends "int" | "float" ? T_24 : T_24 extends "mat4" ? T extends "vec4" ? T : T_24 : T_24 extends "mat3" ? T extends "vec3" ? T : T_24 : T_24 extends "mat2" ? T extends "vec2" ? T : T_24 : T_24 extends "vec4" ? T extends "mat4" ? T_24 : T_24 : T_24 extends "vec3" ? T extends "mat3" ? T_24 : T_24 : T_24 extends "vec2" ? T extends "mat2" ? T_24 : T_24 : T_24 : never : never) ? T_23 extends "int" | "float" ? T_19 : T_19 extends "mat4" ? T_23 extends "vec4" ? T_23 : T_19 : T_19 extends "mat3" ? T_23 extends "vec3" ? T_23 : T_19 : T_19 extends "mat2" ? T_23 extends "vec2" ? T_23 : T_19 : T_19 extends "vec4" ? T_23 extends "mat4" ? T_19 : T_19 : T_19 extends "vec3" ? T_23 extends "mat3" ? T_19 : T_19 : T_19 extends "vec2" ? T_23 extends "mat2" ? T_19 : T_19 : T_19 : never : never : never : never> | NodeProxy<"uint" extends infer T_25 ? T_25 extends "uint" ? T_25 extends ("vec4" extends infer T_26 ? T_26 extends "vec4" ? T_26 extends T ? T_26 : T_26 extends "int" | "float" ? T : T extends "int" | "float" ? T_26 : T_26 extends "mat4" ? T extends "vec4" ? T : T_26 : T_26 extends "mat3" ? T extends "vec3" ? T : T_26 : T_26 extends "mat2" ? T extends "vec2" ? T : T_26 : T_26 extends "vec4" ? T extends "mat4" ? T_26 : T_26 : T_26 extends "vec3" ? T extends "mat3" ? T_26 : T_26 : T_26 extends "vec2" ? T extends "mat2" ? T_26 : T_26 : T_26 : never : never) ? T_25 : T_25 extends "int" | "float" ? "vec4" extends infer T_27 ? T_27 extends "vec4" ? T_27 extends T ? T_27 : T_27 extends "int" | "float" ? T : T extends "int" | "float" ? T_27 : T_27 extends "mat4" ? T extends "vec4" ? T : T_27 : T_27 extends "mat3" ? T extends "vec3" ? T : T_27 : T_27 extends "mat2" ? T extends "vec2" ? T : T_27 : T_27 extends "vec4" ? T extends "mat4" ? T_27 : T_27 : T_27 extends "vec3" ? T extends "mat3" ? T_27 : T_27 : T_27 extends "vec2" ? T extends "mat2" ? T_27 : T_27 : T_27 : never : never : ("vec4" extends infer T_28 ? T_28 extends "vec4" ? T_28 extends T ? T_28 : T_28 extends "int" | "float" ? T : T extends "int" | "float" ? T_28 : T_28 extends "mat4" ? T extends "vec4" ? T : T_28 : T_28 extends "mat3" ? T extends "vec3" ? T : T_28 : T_28 extends "mat2" ? T extends "vec2" ? T : T_28 : T_28 extends "vec4" ? T extends "mat4" ? T_28 : T_28 : T_28 extends "vec3" ? T extends "mat3" ? T_28 : T_28 : T_28 extends "vec2" ? T extends "mat2" ? T_28 : T_28 : T_28 : never : never) extends infer T_29 ? T_29 extends ("vec4" extends infer T_30 ? T_30 extends "vec4" ? T_30 extends T ? T_30 : T_30 extends "int" | "float" ? T : T extends "int" | "float" ? T_30 : T_30 extends "mat4" ? T extends "vec4" ? T : T_30 : T_30 extends "mat3" ? T extends "vec3" ? T : T_30 : T_30 extends "mat2" ? T extends "vec2" ? T : T_30 : T_30 extends "vec4" ? T extends "mat4" ? T_30 : T_30 : T_30 extends "vec3" ? T extends "mat3" ? T_30 : T_30 : T_30 extends "vec2" ? T extends "mat2" ? T_30 : T_30 : T_30 : never : never) ? T_29 extends "int" | "float" ? T_25 : T_25 extends "mat4" ? T_29 extends "vec4" ? T_29 : T_25 : T_25 extends "mat3" ? T_29 extends "vec3" ? T_29 : T_25 : T_25 extends "mat2" ? T_29 extends "vec2" ? T_29 : T_25 : T_25 extends "vec4" ? T_29 extends "mat4" ? T_25 : T_25 : T_25 extends "vec3" ? T_29 extends "mat3" ? T_25 : T_25 : T_25 extends "vec2" ? T_29 extends "mat2" ? T_25 : T_25 : T_25 : never : never : never : never> | NodeProxy<"int" extends infer T_31 ? T_31 extends "int" ? T_31 extends ("vec4" extends infer T_32 ? T_32 extends "vec4" ? T_32 extends T ? T_32 : T_32 extends "int" | "float" ? T : T extends "int" | "float" ? T_32 : T_32 extends "mat4" ? T extends "vec4" ? T : T_32 : T_32 extends "mat3" ? T extends "vec3" ? T : T_32 : T_32 extends "mat2" ? T extends "vec2" ? T : T_32 : T_32 extends "vec4" ? T extends "mat4" ? T_32 : T_32 : T_32 extends "vec3" ? T extends "mat3" ? T_32 : T_32 : T_32 extends "vec2" ? T extends "mat2" ? T_32 : T_32 : T_32 : never : never) ? T_31 : T_31 extends "int" | "float" ? "vec4" extends infer T_33 ? T_33 extends "vec4" ? T_33 extends T ? T_33 : T_33 extends "int" | "float" ? T : T extends "int" | "float" ? T_33 : T_33 extends "mat4" ? T extends "vec4" ? T : T_33 : T_33 extends "mat3" ? T extends "vec3" ? T : T_33 : T_33 extends "mat2" ? T extends "vec2" ? T : T_33 : T_33 extends "vec4" ? T extends "mat4" ? T_33 : T_33 : T_33 extends "vec3" ? T extends "mat3" ? T_33 : T_33 : T_33 extends "vec2" ? T extends "mat2" ? T_33 : T_33 : T_33 : never : never : ("vec4" extends infer T_34 ? T_34 extends "vec4" ? T_34 extends T ? T_34 : T_34 extends "int" | "float" ? T : T extends "int" | "float" ? T_34 : T_34 extends "mat4" ? T extends "vec4" ? T : T_34 : T_34 extends "mat3" ? T extends "vec3" ? T : T_34 : T_34 extends "mat2" ? T extends "vec2" ? T : T_34 : T_34 extends "vec4" ? T extends "mat4" ? T_34 : T_34 : T_34 extends "vec3" ? T extends "mat3" ? T_34 : T_34 : T_34 extends "vec2" ? T extends "mat2" ? T_34 : T_34 : T_34 : never : never) extends infer T_35 ? T_35 extends ("vec4" extends infer T_36 ? T_36 extends "vec4" ? T_36 extends T ? T_36 : T_36 extends "int" | "float" ? T : T extends "int" | "float" ? T_36 : T_36 extends "mat4" ? T extends "vec4" ? T : T_36 : T_36 extends "mat3" ? T extends "vec3" ? T : T_36 : T_36 extends "mat2" ? T extends "vec2" ? T : T_36 : T_36 extends "vec4" ? T extends "mat4" ? T_36 : T_36 : T_36 extends "vec3" ? T extends "mat3" ? T_36 : T_36 : T_36 extends "vec2" ? T extends "mat2" ? T_36 : T_36 : T_36 : never : never) ? T_35 extends "int" | "float" ? T_31 : T_31 extends "mat4" ? T_35 extends "vec4" ? T_35 : T_31 : T_31 extends "mat3" ? T_35 extends "vec3" ? T_35 : T_31 : T_31 extends "mat2" ? T_35 extends "vec2" ? T_35 : T_31 : T_31 extends "vec4" ? T_35 extends "mat4" ? T_31 : T_31 : T_31 extends "vec3" ? T_35 extends "mat3" ? T_31 : T_31 : T_31 extends "vec2" ? T_35 extends "mat2" ? T_31 : T_31 : T_31 : never : never : never : never> | NodeProxy<"float" extends infer T_37 ? T_37 extends "float" ? T_37 extends ("vec4" extends infer T_38 ? T_38 extends "vec4" ? T_38 extends T ? T_38 : T_38 extends "int" | "float" ? T : T extends "int" | "float" ? T_38 : T_38 extends "mat4" ? T extends "vec4" ? T : T_38 : T_38 extends "mat3" ? T extends "vec3" ? T : T_38 : T_38 extends "mat2" ? T extends "vec2" ? T : T_38 : T_38 extends "vec4" ? T extends "mat4" ? T_38 : T_38 : T_38 extends "vec3" ? T extends "mat3" ? T_38 : T_38 : T_38 extends "vec2" ? T extends "mat2" ? T_38 : T_38 : T_38 : never : never) ? T_37 : T_37 extends "int" | "float" ? "vec4" extends infer T_39 ? T_39 extends "vec4" ? T_39 extends T ? T_39 : T_39 extends "int" | "float" ? T : T extends "int" | "float" ? T_39 : T_39 extends "mat4" ? T extends "vec4" ? T : T_39 : T_39 extends "mat3" ? T extends "vec3" ? T : T_39 : T_39 extends "mat2" ? T extends "vec2" ? T : T_39 : T_39 extends "vec4" ? T extends "mat4" ? T_39 : T_39 : T_39 extends "vec3" ? T extends "mat3" ? T_39 : T_39 : T_39 extends "vec2" ? T extends "mat2" ? T_39 : T_39 : T_39 : never : never : ("vec4" extends infer T_40 ? T_40 extends "vec4" ? T_40 extends T ? T_40 : T_40 extends "int" | "float" ? T : T extends "int" | "float" ? T_40 : T_40 extends "mat4" ? T extends "vec4" ? T : T_40 : T_40 extends "mat3" ? T extends "vec3" ? T : T_40 : T_40 extends "mat2" ? T extends "vec2" ? T : T_40 : T_40 extends "vec4" ? T extends "mat4" ? T_40 : T_40 : T_40 extends "vec3" ? T extends "mat3" ? T_40 : T_40 : T_40 extends "vec2" ? T extends "mat2" ? T_40 : T_40 : T_40 : never : never) extends infer T_41 ? T_41 extends ("vec4" extends infer T_42 ? T_42 extends "vec4" ? T_42 extends T ? T_42 : T_42 extends "int" | "float" ? T : T extends "int" | "float" ? T_42 : T_42 extends "mat4" ? T extends "vec4" ? T : T_42 : T_42 extends "mat3" ? T extends "vec3" ? T : T_42 : T_42 extends "mat2" ? T extends "vec2" ? T : T_42 : T_42 extends "vec4" ? T extends "mat4" ? T_42 : T_42 : T_42 extends "vec3" ? T extends "mat3" ? T_42 : T_42 : T_42 extends "vec2" ? T extends "mat2" ? T_42 : T_42 : T_42 : never : never) ? T_41 extends "int" | "float" ? T_37 : T_37 extends "mat4" ? T_41 extends "vec4" ? T_41 : T_37 : T_37 extends "mat3" ? T_41 extends "vec3" ? T_41 : T_37 : T_37 extends "mat2" ? T_41 extends "vec2" ? T_41 : T_37 : T_37 extends "vec4" ? T_41 extends "mat4" ? T_37 : T_37 : T_37 extends "vec3" ? T_41 extends "mat3" ? T_37 : T_37 : T_37 extends "vec2" ? T_41 extends "mat2" ? T_37 : T_37 : T_37 : never : never : never : never> | NodeProxy<"bvec2" extends infer T_43 ? T_43 extends "bvec2" ? T_43 extends ("vec4" extends infer T_44 ? T_44 extends "vec4" ? T_44 extends T ? T_44 : T_44 extends "int" | "float" ? T : T extends "int" | "float" ? T_44 : T_44 extends "mat4" ? T extends "vec4" ? T : T_44 : T_44 extends "mat3" ? T extends "vec3" ? T : T_44 : T_44 extends "mat2" ? T extends "vec2" ? T : T_44 : T_44 extends "vec4" ? T extends "mat4" ? T_44 : T_44 : T_44 extends "vec3" ? T extends "mat3" ? T_44 : T_44 : T_44 extends "vec2" ? T extends "mat2" ? T_44 : T_44 : T_44 : never : never) ? T_43 : T_43 extends "int" | "float" ? "vec4" extends infer T_45 ? T_45 extends "vec4" ? T_45 extends T ? T_45 : T_45 extends "int" | "float" ? T : T extends "int" | "float" ? T_45 : T_45 extends "mat4" ? T extends "vec4" ? T : T_45 : T_45 extends "mat3" ? T extends "vec3" ? T : T_45 : T_45 extends "mat2" ? T extends "vec2" ? T : T_45 : T_45 extends "vec4" ? T extends "mat4" ? T_45 : T_45 : T_45 extends "vec3" ? T extends "mat3" ? T_45 : T_45 : T_45 extends "vec2" ? T extends "mat2" ? T_45 : T_45 : T_45 : never : never : ("vec4" extends infer T_46 ? T_46 extends "vec4" ? T_46 extends T ? T_46 : T_46 extends "int" | "float" ? T : T extends "int" | "float" ? T_46 : T_46 extends "mat4" ? T extends "vec4" ? T : T_46 : T_46 extends "mat3" ? T extends "vec3" ? T : T_46 : T_46 extends "mat2" ? T extends "vec2" ? T : T_46 : T_46 extends "vec4" ? T extends "mat4" ? T_46 : T_46 : T_46 extends "vec3" ? T extends "mat3" ? T_46 : T_46 : T_46 extends "vec2" ? T extends "mat2" ? T_46 : T_46 : T_46 : never : never) extends infer T_47 ? T_47 extends ("vec4" extends infer T_48 ? T_48 extends "vec4" ? T_48 extends T ? T_48 : T_48 extends "int" | "float" ? T : T extends "int" | "float" ? T_48 : T_48 extends "mat4" ? T extends "vec4" ? T : T_48 : T_48 extends "mat3" ? T extends "vec3" ? T : T_48 : T_48 extends "mat2" ? T extends "vec2" ? T : T_48 : T_48 extends "vec4" ? T extends "mat4" ? T_48 : T_48 : T_48 extends "vec3" ? T extends "mat3" ? T_48 : T_48 : T_48 extends "vec2" ? T extends "mat2" ? T_48 : T_48 : T_48 : never : never) ? T_47 extends "int" | "float" ? T_43 : T_43 extends "mat4" ? T_47 extends "vec4" ? T_47 : T_43 : T_43 extends "mat3" ? T_47 extends "vec3" ? T_47 : T_43 : T_43 extends "mat2" ? T_47 extends "vec2" ? T_47 : T_43 : T_43 extends "vec4" ? T_47 extends "mat4" ? T_43 : T_43 : T_43 extends "vec3" ? T_47 extends "mat3" ? T_43 : T_43 : T_43 extends "vec2" ? T_47 extends "mat2" ? T_43 : T_43 : T_43 : never : never : never : never> | NodeProxy<"ivec2" extends infer T_49 ? T_49 extends "ivec2" ? T_49 extends ("vec4" extends infer T_50 ? T_50 extends "vec4" ? T_50 extends T ? T_50 : T_50 extends "int" | "float" ? T : T extends "int" | "float" ? T_50 : T_50 extends "mat4" ? T extends "vec4" ? T : T_50 : T_50 extends "mat3" ? T extends "vec3" ? T : T_50 : T_50 extends "mat2" ? T extends "vec2" ? T : T_50 : T_50 extends "vec4" ? T extends "mat4" ? T_50 : T_50 : T_50 extends "vec3" ? T extends "mat3" ? T_50 : T_50 : T_50 extends "vec2" ? T extends "mat2" ? T_50 : T_50 : T_50 : never : never) ? T_49 : T_49 extends "int" | "float" ? "vec4" extends infer T_51 ? T_51 extends "vec4" ? T_51 extends T ? T_51 : T_51 extends "int" | "float" ? T : T extends "int" | "float" ? T_51 : T_51 extends "mat4" ? T extends "vec4" ? T : T_51 : T_51 extends "mat3" ? T extends "vec3" ? T : T_51 : T_51 extends "mat2" ? T extends "vec2" ? T : T_51 : T_51 extends "vec4" ? T extends "mat4" ? T_51 : T_51 : T_51 extends "vec3" ? T extends "mat3" ? T_51 : T_51 : T_51 extends "vec2" ? T extends "mat2" ? T_51 : T_51 : T_51 : never : never : ("vec4" extends infer T_52 ? T_52 extends "vec4" ? T_52 extends T ? T_52 : T_52 extends "int" | "float" ? T : T extends "int" | "float" ? T_52 : T_52 extends "mat4" ? T extends "vec4" ? T : T_52 : T_52 extends "mat3" ? T extends "vec3" ? T : T_52 : T_52 extends "mat2" ? T extends "vec2" ? T : T_52 : T_52 extends "vec4" ? T extends "mat4" ? T_52 : T_52 : T_52 extends "vec3" ? T extends "mat3" ? T_52 : T_52 : T_52 extends "vec2" ? T extends "mat2" ? T_52 : T_52 : T_52 : never : never) extends infer T_53 ? T_53 extends ("vec4" extends infer T_54 ? T_54 extends "vec4" ? T_54 extends T ? T_54 : T_54 extends "int" | "float" ? T : T extends "int" | "float" ? T_54 : T_54 extends "mat4" ? T extends "vec4" ? T : T_54 : T_54 extends "mat3" ? T extends "vec3" ? T : T_54 : T_54 extends "mat2" ? T extends "vec2" ? T : T_54 : T_54 extends "vec4" ? T extends "mat4" ? T_54 : T_54 : T_54 extends "vec3" ? T extends "mat3" ? T_54 : T_54 : T_54 extends "vec2" ? T extends "mat2" ? T_54 : T_54 : T_54 : never : never) ? T_53 extends "int" | "float" ? T_49 : T_49 extends "mat4" ? T_53 extends "vec4" ? T_53 : T_49 : T_49 extends "mat3" ? T_53 extends "vec3" ? T_53 : T_49 : T_49 extends "mat2" ? T_53 extends "vec2" ? T_53 : T_49 : T_49 extends "vec4" ? T_53 extends "mat4" ? T_49 : T_49 : T_49 extends "vec3" ? T_53 extends "mat3" ? T_49 : T_49 : T_49 extends "vec2" ? T_53 extends "mat2" ? T_49 : T_49 : T_49 : never : never : never : never> | NodeProxy<"uvec2" extends infer T_55 ? T_55 extends "uvec2" ? T_55 extends ("vec4" extends infer T_56 ? T_56 extends "vec4" ? T_56 extends T ? T_56 : T_56 extends "int" | "float" ? T : T extends "int" | "float" ? T_56 : T_56 extends "mat4" ? T extends "vec4" ? T : T_56 : T_56 extends "mat3" ? T extends "vec3" ? T : T_56 : T_56 extends "mat2" ? T extends "vec2" ? T : T_56 : T_56 extends "vec4" ? T extends "mat4" ? T_56 : T_56 : T_56 extends "vec3" ? T extends "mat3" ? T_56 : T_56 : T_56 extends "vec2" ? T extends "mat2" ? T_56 : T_56 : T_56 : never : never) ? T_55 : T_55 extends "int" | "float" ? "vec4" extends infer T_57 ? T_57 extends "vec4" ? T_57 extends T ? T_57 : T_57 extends "int" | "float" ? T : T extends "int" | "float" ? T_57 : T_57 extends "mat4" ? T extends "vec4" ? T : T_57 : T_57 extends "mat3" ? T extends "vec3" ? T : T_57 : T_57 extends "mat2" ? T extends "vec2" ? T : T_57 : T_57 extends "vec4" ? T extends "mat4" ? T_57 : T_57 : T_57 extends "vec3" ? T extends "mat3" ? T_57 : T_57 : T_57 extends "vec2" ? T extends "mat2" ? T_57 : T_57 : T_57 : never : never : ("vec4" extends infer T_58 ? T_58 extends "vec4" ? T_58 extends T ? T_58 : T_58 extends "int" | "float" ? T : T extends "int" | "float" ? T_58 : T_58 extends "mat4" ? T extends "vec4" ? T : T_58 : T_58 extends "mat3" ? T extends "vec3" ? T : T_58 : T_58 extends "mat2" ? T extends "vec2" ? T : T_58 : T_58 extends "vec4" ? T extends "mat4" ? T_58 : T_58 : T_58 extends "vec3" ? T extends "mat3" ? T_58 : T_58 : T_58 extends "vec2" ? T extends "mat2" ? T_58 : T_58 : T_58 : never : never) extends infer T_59 ? T_59 extends ("vec4" extends infer T_60 ? T_60 extends "vec4" ? T_60 extends T ? T_60 : T_60 extends "int" | "float" ? T : T extends "int" | "float" ? T_60 : T_60 extends "mat4" ? T extends "vec4" ? T : T_60 : T_60 extends "mat3" ? T extends "vec3" ? T : T_60 : T_60 extends "mat2" ? T extends "vec2" ? T : T_60 : T_60 extends "vec4" ? T extends "mat4" ? T_60 : T_60 : T_60 extends "vec3" ? T extends "mat3" ? T_60 : T_60 : T_60 extends "vec2" ? T extends "mat2" ? T_60 : T_60 : T_60 : never : never) ? T_59 extends "int" | "float" ? T_55 : T_55 extends "mat4" ? T_59 extends "vec4" ? T_59 : T_55 : T_55 extends "mat3" ? T_59 extends "vec3" ? T_59 : T_55 : T_55 extends "mat2" ? T_59 extends "vec2" ? T_59 : T_55 : T_55 extends "vec4" ? T_59 extends "mat4" ? T_55 : T_55 : T_55 extends "vec3" ? T_59 extends "mat3" ? T_55 : T_55 : T_55 extends "vec2" ? T_59 extends "mat2" ? T_55 : T_55 : T_55 : never : never : never : never> | NodeProxy<"vec2" extends infer T_61 ? T_61 extends "vec2" ? T_61 extends ("vec4" extends infer T_62 ? T_62 extends "vec4" ? T_62 extends T ? T_62 : T_62 extends "int" | "float" ? T : T extends "int" | "float" ? T_62 : T_62 extends "mat4" ? T extends "vec4" ? T : T_62 : T_62 extends "mat3" ? T extends "vec3" ? T : T_62 : T_62 extends "mat2" ? T extends "vec2" ? T : T_62 : T_62 extends "vec4" ? T extends "mat4" ? T_62 : T_62 : T_62 extends "vec3" ? T extends "mat3" ? T_62 : T_62 : T_62 extends "vec2" ? T extends "mat2" ? T_62 : T_62 : T_62 : never : never) ? T_61 : T_61 extends "int" | "float" ? "vec4" extends infer T_63 ? T_63 extends "vec4" ? T_63 extends T ? T_63 : T_63 extends "int" | "float" ? T : T extends "int" | "float" ? T_63 : T_63 extends "mat4" ? T extends "vec4" ? T : T_63 : T_63 extends "mat3" ? T extends "vec3" ? T : T_63 : T_63 extends "mat2" ? T extends "vec2" ? T : T_63 : T_63 extends "vec4" ? T extends "mat4" ? T_63 : T_63 : T_63 extends "vec3" ? T extends "mat3" ? T_63 : T_63 : T_63 extends "vec2" ? T extends "mat2" ? T_63 : T_63 : T_63 : never : never : ("vec4" extends infer T_64 ? T_64 extends "vec4" ? T_64 extends T ? T_64 : T_64 extends "int" | "float" ? T : T extends "int" | "float" ? T_64 : T_64 extends "mat4" ? T extends "vec4" ? T : T_64 : T_64 extends "mat3" ? T extends "vec3" ? T : T_64 : T_64 extends "mat2" ? T extends "vec2" ? T : T_64 : T_64 extends "vec4" ? T extends "mat4" ? T_64 : T_64 : T_64 extends "vec3" ? T extends "mat3" ? T_64 : T_64 : T_64 extends "vec2" ? T extends "mat2" ? T_64 : T_64 : T_64 : never : never) extends infer T_65 ? T_65 extends ("vec4" extends infer T_66 ? T_66 extends "vec4" ? T_66 extends T ? T_66 : T_66 extends "int" | "float" ? T : T extends "int" | "float" ? T_66 : T_66 extends "mat4" ? T extends "vec4" ? T : T_66 : T_66 extends "mat3" ? T extends "vec3" ? T : T_66 : T_66 extends "mat2" ? T extends "vec2" ? T : T_66 : T_66 extends "vec4" ? T extends "mat4" ? T_66 : T_66 : T_66 extends "vec3" ? T extends "mat3" ? T_66 : T_66 : T_66 extends "vec2" ? T extends "mat2" ? T_66 : T_66 : T_66 : never : never) ? T_65 extends "int" | "float" ? T_61 : T_61 extends "mat4" ? T_65 extends "vec4" ? T_65 : T_61 : T_61 extends "mat3" ? T_65 extends "vec3" ? T_65 : T_61 : T_61 extends "mat2" ? T_65 extends "vec2" ? T_65 : T_61 : T_61 extends "vec4" ? T_65 extends "mat4" ? T_61 : T_61 : T_61 extends "vec3" ? T_65 extends "mat3" ? T_61 : T_61 : T_61 extends "vec2" ? T_65 extends "mat2" ? T_61 : T_61 : T_61 : never : never : never : never> | NodeProxy<"bvec3" extends infer T_67 ? T_67 extends "bvec3" ? T_67 extends ("vec4" extends infer T_68 ? T_68 extends "vec4" ? T_68 extends T ? T_68 : T_68 extends "int" | "float" ? T : T extends "int" | "float" ? T_68 : T_68 extends "mat4" ? T extends "vec4" ? T : T_68 : T_68 extends "mat3" ? T extends "vec3" ? T : T_68 : T_68 extends "mat2" ? T extends "vec2" ? T : T_68 : T_68 extends "vec4" ? T extends "mat4" ? T_68 : T_68 : T_68 extends "vec3" ? T extends "mat3" ? T_68 : T_68 : T_68 extends "vec2" ? T extends "mat2" ? T_68 : T_68 : T_68 : never : never) ? T_67 : T_67 extends "int" | "float" ? "vec4" extends infer T_69 ? T_69 extends "vec4" ? T_69 extends T ? T_69 : T_69 extends "int" | "float" ? T : T extends "int" | "float" ? T_69 : T_69 extends "mat4" ? T extends "vec4" ? T : T_69 : T_69 extends "mat3" ? T extends "vec3" ? T : T_69 : T_69 extends "mat2" ? T extends "vec2" ? T : T_69 : T_69 extends "vec4" ? T extends "mat4" ? T_69 : T_69 : T_69 extends "vec3" ? T extends "mat3" ? T_69 : T_69 : T_69 extends "vec2" ? T extends "mat2" ? T_69 : T_69 : T_69 : never : never : ("vec4" extends infer T_70 ? T_70 extends "vec4" ? T_70 extends T ? T_70 : T_70 extends "int" | "float" ? T : T extends "int" | "float" ? T_70 : T_70 extends "mat4" ? T extends "vec4" ? T : T_70 : T_70 extends "mat3" ? T extends "vec3" ? T : T_70 : T_70 extends "mat2" ? T extends "vec2" ? T : T_70 : T_70 extends "vec4" ? T extends "mat4" ? T_70 : T_70 : T_70 extends "vec3" ? T extends "mat3" ? T_70 : T_70 : T_70 extends "vec2" ? T extends "mat2" ? T_70 : T_70 : T_70 : never : never) extends infer T_71 ? T_71 extends ("vec4" extends infer T_72 ? T_72 extends "vec4" ? T_72 extends T ? T_72 : T_72 extends "int" | "float" ? T : T extends "int" | "float" ? T_72 : T_72 extends "mat4" ? T extends "vec4" ? T : T_72 : T_72 extends "mat3" ? T extends "vec3" ? T : T_72 : T_72 extends "mat2" ? T extends "vec2" ? T : T_72 : T_72 extends "vec4" ? T extends "mat4" ? T_72 : T_72 : T_72 extends "vec3" ? T extends "mat3" ? T_72 : T_72 : T_72 extends "vec2" ? T extends "mat2" ? T_72 : T_72 : T_72 : never : never) ? T_71 extends "int" | "float" ? T_67 : T_67 extends "mat4" ? T_71 extends "vec4" ? T_71 : T_67 : T_67 extends "mat3" ? T_71 extends "vec3" ? T_71 : T_67 : T_67 extends "mat2" ? T_71 extends "vec2" ? T_71 : T_67 : T_67 extends "vec4" ? T_71 extends "mat4" ? T_67 : T_67 : T_67 extends "vec3" ? T_71 extends "mat3" ? T_67 : T_67 : T_67 extends "vec2" ? T_71 extends "mat2" ? T_67 : T_67 : T_67 : never : never : never : never> | NodeProxy<"ivec3" extends infer T_73 ? T_73 extends "ivec3" ? T_73 extends ("vec4" extends infer T_74 ? T_74 extends "vec4" ? T_74 extends T ? T_74 : T_74 extends "int" | "float" ? T : T extends "int" | "float" ? T_74 : T_74 extends "mat4" ? T extends "vec4" ? T : T_74 : T_74 extends "mat3" ? T extends "vec3" ? T : T_74 : T_74 extends "mat2" ? T extends "vec2" ? T : T_74 : T_74 extends "vec4" ? T extends "mat4" ? T_74 : T_74 : T_74 extends "vec3" ? T extends "mat3" ? T_74 : T_74 : T_74 extends "vec2" ? T extends "mat2" ? T_74 : T_74 : T_74 : never : never) ? T_73 : T_73 extends "int" | "float" ? "vec4" extends infer T_75 ? T_75 extends "vec4" ? T_75 extends T ? T_75 : T_75 extends "int" | "float" ? T : T extends "int" | "float" ? T_75 : T_75 extends "mat4" ? T extends "vec4" ? T : T_75 : T_75 extends "mat3" ? T extends "vec3" ? T : T_75 : T_75 extends "mat2" ? T extends "vec2" ? T : T_75 : T_75 extends "vec4" ? T extends "mat4" ? T_75 : T_75 : T_75 extends "vec3" ? T extends "mat3" ? T_75 : T_75 : T_75 extends "vec2" ? T extends "mat2" ? T_75 : T_75 : T_75 : never : never : ("vec4" extends infer T_76 ? T_76 extends "vec4" ? T_76 extends T ? T_76 : T_76 extends "int" | "float" ? T : T extends "int" | "float" ? T_76 : T_76 extends "mat4" ? T extends "vec4" ? T : T_76 : T_76 extends "mat3" ? T extends "vec3" ? T : T_76 : T_76 extends "mat2" ? T extends "vec2" ? T : T_76 : T_76 extends "vec4" ? T extends "mat4" ? T_76 : T_76 : T_76 extends "vec3" ? T extends "mat3" ? T_76 : T_76 : T_76 extends "vec2" ? T extends "mat2" ? T_76 : T_76 : T_76 : never : never) extends infer T_77 ? T_77 extends ("vec4" extends infer T_78 ? T_78 extends "vec4" ? T_78 extends T ? T_78 : T_78 extends "int" | "float" ? T : T extends "int" | "float" ? T_78 : T_78 extends "mat4" ? T extends "vec4" ? T : T_78 : T_78 extends "mat3" ? T extends "vec3" ? T : T_78 : T_78 extends "mat2" ? T extends "vec2" ? T : T_78 : T_78 extends "vec4" ? T extends "mat4" ? T_78 : T_78 : T_78 extends "vec3" ? T extends "mat3" ? T_78 : T_78 : T_78 extends "vec2" ? T extends "mat2" ? T_78 : T_78 : T_78 : never : never) ? T_77 extends "int" | "float" ? T_73 : T_73 extends "mat4" ? T_77 extends "vec4" ? T_77 : T_73 : T_73 extends "mat3" ? T_77 extends "vec3" ? T_77 : T_73 : T_73 extends "mat2" ? T_77 extends "vec2" ? T_77 : T_73 : T_73 extends "vec4" ? T_77 extends "mat4" ? T_73 : T_73 : T_73 extends "vec3" ? T_77 extends "mat3" ? T_73 : T_73 : T_73 extends "vec2" ? T_77 extends "mat2" ? T_73 : T_73 : T_73 : never : never : never : never> | NodeProxy<"uvec3" extends infer T_79 ? T_79 extends "uvec3" ? T_79 extends ("vec4" extends infer T_80 ? T_80 extends "vec4" ? T_80 extends T ? T_80 : T_80 extends "int" | "float" ? T : T extends "int" | "float" ? T_80 : T_80 extends "mat4" ? T extends "vec4" ? T : T_80 : T_80 extends "mat3" ? T extends "vec3" ? T : T_80 : T_80 extends "mat2" ? T extends "vec2" ? T : T_80 : T_80 extends "vec4" ? T extends "mat4" ? T_80 : T_80 : T_80 extends "vec3" ? T extends "mat3" ? T_80 : T_80 : T_80 extends "vec2" ? T extends "mat2" ? T_80 : T_80 : T_80 : never : never) ? T_79 : T_79 extends "int" | "float" ? "vec4" extends infer T_81 ? T_81 extends "vec4" ? T_81 extends T ? T_81 : T_81 extends "int" | "float" ? T : T extends "int" | "float" ? T_81 : T_81 extends "mat4" ? T extends "vec4" ? T : T_81 : T_81 extends "mat3" ? T extends "vec3" ? T : T_81 : T_81 extends "mat2" ? T extends "vec2" ? T : T_81 : T_81 extends "vec4" ? T extends "mat4" ? T_81 : T_81 : T_81 extends "vec3" ? T extends "mat3" ? T_81 : T_81 : T_81 extends "vec2" ? T extends "mat2" ? T_81 : T_81 : T_81 : never : never : ("vec4" extends infer T_82 ? T_82 extends "vec4" ? T_82 extends T ? T_82 : T_82 extends "int" | "float" ? T : T extends "int" | "float" ? T_82 : T_82 extends "mat4" ? T extends "vec4" ? T : T_82 : T_82 extends "mat3" ? T extends "vec3" ? T : T_82 : T_82 extends "mat2" ? T extends "vec2" ? T : T_82 : T_82 extends "vec4" ? T extends "mat4" ? T_82 : T_82 : T_82 extends "vec3" ? T extends "mat3" ? T_82 : T_82 : T_82 extends "vec2" ? T extends "mat2" ? T_82 : T_82 : T_82 : never : never) extends infer T_83 ? T_83 extends ("vec4" extends infer T_84 ? T_84 extends "vec4" ? T_84 extends T ? T_84 : T_84 extends "int" | "float" ? T : T extends "int" | "float" ? T_84 : T_84 extends "mat4" ? T extends "vec4" ? T : T_84 : T_84 extends "mat3" ? T extends "vec3" ? T : T_84 : T_84 extends "mat2" ? T extends "vec2" ? T : T_84 : T_84 extends "vec4" ? T extends "mat4" ? T_84 : T_84 : T_84 extends "vec3" ? T extends "mat3" ? T_84 : T_84 : T_84 extends "vec2" ? T extends "mat2" ? T_84 : T_84 : T_84 : never : never) ? T_83 extends "int" | "float" ? T_79 : T_79 extends "mat4" ? T_83 extends "vec4" ? T_83 : T_79 : T_79 extends "mat3" ? T_83 extends "vec3" ? T_83 : T_79 : T_79 extends "mat2" ? T_83 extends "vec2" ? T_83 : T_79 : T_79 extends "vec4" ? T_83 extends "mat4" ? T_79 : T_79 : T_79 extends "vec3" ? T_83 extends "mat3" ? T_79 : T_79 : T_79 extends "vec2" ? T_83 extends "mat2" ? T_79 : T_79 : T_79 : never : never : never : never> | NodeProxy<"vec3" extends infer T_85 ? T_85 extends "vec3" ? T_85 extends ("vec4" extends infer T_86 ? T_86 extends "vec4" ? T_86 extends T ? T_86 : T_86 extends "int" | "float" ? T : T extends "int" | "float" ? T_86 : T_86 extends "mat4" ? T extends "vec4" ? T : T_86 : T_86 extends "mat3" ? T extends "vec3" ? T : T_86 : T_86 extends "mat2" ? T extends "vec2" ? T : T_86 : T_86 extends "vec4" ? T extends "mat4" ? T_86 : T_86 : T_86 extends "vec3" ? T extends "mat3" ? T_86 : T_86 : T_86 extends "vec2" ? T extends "mat2" ? T_86 : T_86 : T_86 : never : never) ? T_85 : T_85 extends "int" | "float" ? "vec4" extends infer T_87 ? T_87 extends "vec4" ? T_87 extends T ? T_87 : T_87 extends "int" | "float" ? T : T extends "int" | "float" ? T_87 : T_87 extends "mat4" ? T extends "vec4" ? T : T_87 : T_87 extends "mat3" ? T extends "vec3" ? T : T_87 : T_87 extends "mat2" ? T extends "vec2" ? T : T_87 : T_87 extends "vec4" ? T extends "mat4" ? T_87 : T_87 : T_87 extends "vec3" ? T extends "mat3" ? T_87 : T_87 : T_87 extends "vec2" ? T extends "mat2" ? T_87 : T_87 : T_87 : never : never : ("vec4" extends infer T_88 ? T_88 extends "vec4" ? T_88 extends T ? T_88 : T_88 extends "int" | "float" ? T : T extends "int" | "float" ? T_88 : T_88 extends "mat4" ? T extends "vec4" ? T : T_88 : T_88 extends "mat3" ? T extends "vec3" ? T : T_88 : T_88 extends "mat2" ? T extends "vec2" ? T : T_88 : T_88 extends "vec4" ? T extends "mat4" ? T_88 : T_88 : T_88 extends "vec3" ? T extends "mat3" ? T_88 : T_88 : T_88 extends "vec2" ? T extends "mat2" ? T_88 : T_88 : T_88 : never : never) extends infer T_89 ? T_89 extends ("vec4" extends infer T_90 ? T_90 extends "vec4" ? T_90 extends T ? T_90 : T_90 extends "int" | "float" ? T : T extends "int" | "float" ? T_90 : T_90 extends "mat4" ? T extends "vec4" ? T : T_90 : T_90 extends "mat3" ? T extends "vec3" ? T : T_90 : T_90 extends "mat2" ? T extends "vec2" ? T : T_90 : T_90 extends "vec4" ? T extends "mat4" ? T_90 : T_90 : T_90 extends "vec3" ? T extends "mat3" ? T_90 : T_90 : T_90 extends "vec2" ? T extends "mat2" ? T_90 : T_90 : T_90 : never : never) ? T_89 extends "int" | "float" ? T_85 : T_85 extends "mat4" ? T_89 extends "vec4" ? T_89 : T_85 : T_85 extends "mat3" ? T_89 extends "vec3" ? T_89 : T_85 : T_85 extends "mat2" ? T_89 extends "vec2" ? T_89 : T_85 : T_85 extends "vec4" ? T_89 extends "mat4" ? T_85 : T_85 : T_85 extends "vec3" ? T_89 extends "mat3" ? T_85 : T_85 : T_85 extends "vec2" ? T_89 extends "mat2" ? T_85 : T_85 : T_85 : never : never : never : never> | NodeProxy<"bvec4" extends infer T_91 ? T_91 extends "bvec4" ? T_91 extends ("vec4" extends infer T_92 ? T_92 extends "vec4" ? T_92 extends T ? T_92 : T_92 extends "int" | "float" ? T : T extends "int" | "float" ? T_92 : T_92 extends "mat4" ? T extends "vec4" ? T : T_92 : T_92 extends "mat3" ? T extends "vec3" ? T : T_92 : T_92 extends "mat2" ? T extends "vec2" ? T : T_92 : T_92 extends "vec4" ? T extends "mat4" ? T_92 : T_92 : T_92 extends "vec3" ? T extends "mat3" ? T_92 : T_92 : T_92 extends "vec2" ? T extends "mat2" ? T_92 : T_92 : T_92 : never : never) ? T_91 : T_91 extends "int" | "float" ? "vec4" extends infer T_93 ? T_93 extends "vec4" ? T_93 extends T ? T_93 : T_93 extends "int" | "float" ? T : T extends "int" | "float" ? T_93 : T_93 extends "mat4" ? T extends "vec4" ? T : T_93 : T_93 extends "mat3" ? T extends "vec3" ? T : T_93 : T_93 extends "mat2" ? T extends "vec2" ? T : T_93 : T_93 extends "vec4" ? T extends "mat4" ? T_93 : T_93 : T_93 extends "vec3" ? T extends "mat3" ? T_93 : T_93 : T_93 extends "vec2" ? T extends "mat2" ? T_93 : T_93 : T_93 : never : never : ("vec4" extends infer T_94 ? T_94 extends "vec4" ? T_94 extends T ? T_94 : T_94 extends "int" | "float" ? T : T extends "int" | "float" ? T_94 : T_94 extends "mat4" ? T extends "vec4" ? T : T_94 : T_94 extends "mat3" ? T extends "vec3" ? T : T_94 : T_94 extends "mat2" ? T extends "vec2" ? T : T_94 : T_94 extends "vec4" ? T extends "mat4" ? T_94 : T_94 : T_94 extends "vec3" ? T extends "mat3" ? T_94 : T_94 : T_94 extends "vec2" ? T extends "mat2" ? T_94 : T_94 : T_94 : never : never) extends infer T_95 ? T_95 extends ("vec4" extends infer T_96 ? T_96 extends "vec4" ? T_96 extends T ? T_96 : T_96 extends "int" | "float" ? T : T extends "int" | "float" ? T_96 : T_96 extends "mat4" ? T extends "vec4" ? T : T_96 : T_96 extends "mat3" ? T extends "vec3" ? T : T_96 : T_96 extends "mat2" ? T extends "vec2" ? T : T_96 : T_96 extends "vec4" ? T extends "mat4" ? T_96 : T_96 : T_96 extends "vec3" ? T extends "mat3" ? T_96 : T_96 : T_96 extends "vec2" ? T extends "mat2" ? T_96 : T_96 : T_96 : never : never) ? T_95 extends "int" | "float" ? T_91 : T_91 extends "mat4" ? T_95 extends "vec4" ? T_95 : T_91 : T_91 extends "mat3" ? T_95 extends "vec3" ? T_95 : T_91 : T_91 extends "mat2" ? T_95 extends "vec2" ? T_95 : T_91 : T_91 extends "vec4" ? T_95 extends "mat4" ? T_91 : T_91 : T_91 extends "vec3" ? T_95 extends "mat3" ? T_91 : T_91 : T_91 extends "vec2" ? T_95 extends "mat2" ? T_91 : T_91 : T_91 : never : never : never : never> | NodeProxy<"ivec4" extends infer T_97 ? T_97 extends "ivec4" ? T_97 extends ("vec4" extends infer T_98 ? T_98 extends "vec4" ? T_98 extends T ? T_98 : T_98 extends "int" | "float" ? T : T extends "int" | "float" ? T_98 : T_98 extends "mat4" ? T extends "vec4" ? T : T_98 : T_98 extends "mat3" ? T extends "vec3" ? T : T_98 : T_98 extends "mat2" ? T extends "vec2" ? T : T_98 : T_98 extends "vec4" ? T extends "mat4" ? T_98 : T_98 : T_98 extends "vec3" ? T extends "mat3" ? T_98 : T_98 : T_98 extends "vec2" ? T extends "mat2" ? T_98 : T_98 : T_98 : never : never) ? T_97 : T_97 extends "int" | "float" ? "vec4" extends infer T_99 ? T_99 extends "vec4" ? T_99 extends T ? T_99 : T_99 extends "int" | "float" ? T : T extends "int" | "float" ? T_99 : T_99 extends "mat4" ? T extends "vec4" ? T : T_99 : T_99 extends "mat3" ? T extends "vec3" ? T : T_99 : T_99 extends "mat2" ? T extends "vec2" ? T : T_99 : T_99 extends "vec4" ? T extends "mat4" ? T_99 : T_99 : T_99 extends "vec3" ? T extends "mat3" ? T_99 : T_99 : T_99 extends "vec2" ? T extends "mat2" ? T_99 : T_99 : T_99 : never : never : ("vec4" extends infer T_100 ? T_100 extends "vec4" ? T_100 extends T ? T_100 : T_100 extends "int" | "float" ? T : T extends "int" | "float" ? T_100 : T_100 extends "mat4" ? T extends "vec4" ? T : T_100 : T_100 extends "mat3" ? T extends "vec3" ? T : T_100 : T_100 extends "mat2" ? T extends "vec2" ? T : T_100 : T_100 extends "vec4" ? T extends "mat4" ? T_100 : T_100 : T_100 extends "vec3" ? T extends "mat3" ? T_100 : T_100 : T_100 extends "vec2" ? T extends "mat2" ? T_100 : T_100 : T_100 : never : never) extends infer T_101 ? T_101 extends ("vec4" extends infer T_102 ? T_102 extends "vec4" ? T_102 extends T ? T_102 : T_102 extends "int" | "float" ? T : T extends "int" | "float" ? T_102 : T_102 extends "mat4" ? T extends "vec4" ? T : T_102 : T_102 extends "mat3" ? T extends "vec3" ? T : T_102 : T_102 extends "mat2" ? T extends "vec2" ? T : T_102 : T_102 extends "vec4" ? T extends "mat4" ? T_102 : T_102 : T_102 extends "vec3" ? T extends "mat3" ? T_102 : T_102 : T_102 extends "vec2" ? T extends "mat2" ? T_102 : T_102 : T_102 : never : never) ? T_101 extends "int" | "float" ? T_97 : T_97 extends "mat4" ? T_101 extends "vec4" ? T_101 : T_97 : T_97 extends "mat3" ? T_101 extends "vec3" ? T_101 : T_97 : T_97 extends "mat2" ? T_101 extends "vec2" ? T_101 : T_97 : T_97 extends "vec4" ? T_101 extends "mat4" ? T_97 : T_97 : T_97 extends "vec3" ? T_101 extends "mat3" ? T_97 : T_97 : T_97 extends "vec2" ? T_101 extends "mat2" ? T_97 : T_97 : T_97 : never : never : never : never> | NodeProxy<"uvec4" extends infer T_103 ? T_103 extends "uvec4" ? T_103 extends ("vec4" extends infer T_104 ? T_104 extends "vec4" ? T_104 extends T ? T_104 : T_104 extends "int" | "float" ? T : T extends "int" | "float" ? T_104 : T_104 extends "mat4" ? T extends "vec4" ? T : T_104 : T_104 extends "mat3" ? T extends "vec3" ? T : T_104 : T_104 extends "mat2" ? T extends "vec2" ? T : T_104 : T_104 extends "vec4" ? T extends "mat4" ? T_104 : T_104 : T_104 extends "vec3" ? T extends "mat3" ? T_104 : T_104 : T_104 extends "vec2" ? T extends "mat2" ? T_104 : T_104 : T_104 : never : never) ? T_103 : T_103 extends "int" | "float" ? "vec4" extends infer T_105 ? T_105 extends "vec4" ? T_105 extends T ? T_105 : T_105 extends "int" | "float" ? T : T extends "int" | "float" ? T_105 : T_105 extends "mat4" ? T extends "vec4" ? T : T_105 : T_105 extends "mat3" ? T extends "vec3" ? T : T_105 : T_105 extends "mat2" ? T extends "vec2" ? T : T_105 : T_105 extends "vec4" ? T extends "mat4" ? T_105 : T_105 : T_105 extends "vec3" ? T extends "mat3" ? T_105 : T_105 : T_105 extends "vec2" ? T extends "mat2" ? T_105 : T_105 : T_105 : never : never : ("vec4" extends infer T_106 ? T_106 extends "vec4" ? T_106 extends T ? T_106 : T_106 extends "int" | "float" ? T : T extends "int" | "float" ? T_106 : T_106 extends "mat4" ? T extends "vec4" ? T : T_106 : T_106 extends "mat3" ? T extends "vec3" ? T : T_106 : T_106 extends "mat2" ? T extends "vec2" ? T : T_106 : T_106 extends "vec4" ? T extends "mat4" ? T_106 : T_106 : T_106 extends "vec3" ? T extends "mat3" ? T_106 : T_106 : T_106 extends "vec2" ? T extends "mat2" ? T_106 : T_106 : T_106 : never : never) extends infer T_107 ? T_107 extends ("vec4" extends infer T_108 ? T_108 extends "vec4" ? T_108 extends T ? T_108 : T_108 extends "int" | "float" ? T : T extends "int" | "float" ? T_108 : T_108 extends "mat4" ? T extends "vec4" ? T : T_108 : T_108 extends "mat3" ? T extends "vec3" ? T : T_108 : T_108 extends "mat2" ? T extends "vec2" ? T : T_108 : T_108 extends "vec4" ? T extends "mat4" ? T_108 : T_108 : T_108 extends "vec3" ? T extends "mat3" ? T_108 : T_108 : T_108 extends "vec2" ? T extends "mat2" ? T_108 : T_108 : T_108 : never : never) ? T_107 extends "int" | "float" ? T_103 : T_103 extends "mat4" ? T_107 extends "vec4" ? T_107 : T_103 : T_103 extends "mat3" ? T_107 extends "vec3" ? T_107 : T_103 : T_103 extends "mat2" ? T_107 extends "vec2" ? T_107 : T_103 : T_103 extends "vec4" ? T_107 extends "mat4" ? T_103 : T_103 : T_103 extends "vec3" ? T_107 extends "mat3" ? T_103 : T_103 : T_103 extends "vec2" ? T_107 extends "mat2" ? T_103 : T_103 : T_103 : never : never : never : never> | NodeProxy<"color" extends infer T_109 ? T_109 extends "color" ? T_109 extends ("vec4" extends infer T_110 ? T_110 extends "vec4" ? T_110 extends T ? T_110 : T_110 extends "int" | "float" ? T : T extends "int" | "float" ? T_110 : T_110 extends "mat4" ? T extends "vec4" ? T : T_110 : T_110 extends "mat3" ? T extends "vec3" ? T : T_110 : T_110 extends "mat2" ? T extends "vec2" ? T : T_110 : T_110 extends "vec4" ? T extends "mat4" ? T_110 : T_110 : T_110 extends "vec3" ? T extends "mat3" ? T_110 : T_110 : T_110 extends "vec2" ? T extends "mat2" ? T_110 : T_110 : T_110 : never : never) ? T_109 : T_109 extends "int" | "float" ? "vec4" extends infer T_111 ? T_111 extends "vec4" ? T_111 extends T ? T_111 : T_111 extends "int" | "float" ? T : T extends "int" | "float" ? T_111 : T_111 extends "mat4" ? T extends "vec4" ? T : T_111 : T_111 extends "mat3" ? T extends "vec3" ? T : T_111 : T_111 extends "mat2" ? T extends "vec2" ? T : T_111 : T_111 extends "vec4" ? T extends "mat4" ? T_111 : T_111 : T_111 extends "vec3" ? T extends "mat3" ? T_111 : T_111 : T_111 extends "vec2" ? T extends "mat2" ? T_111 : T_111 : T_111 : never : never : ("vec4" extends infer T_112 ? T_112 extends "vec4" ? T_112 extends T ? T_112 : T_112 extends "int" | "float" ? T : T extends "int" | "float" ? T_112 : T_112 extends "mat4" ? T extends "vec4" ? T : T_112 : T_112 extends "mat3" ? T extends "vec3" ? T : T_112 : T_112 extends "mat2" ? T extends "vec2" ? T : T_112 : T_112 extends "vec4" ? T extends "mat4" ? T_112 : T_112 : T_112 extends "vec3" ? T extends "mat3" ? T_112 : T_112 : T_112 extends "vec2" ? T extends "mat2" ? T_112 : T_112 : T_112 : never : never) extends infer T_113 ? T_113 extends ("vec4" extends infer T_114 ? T_114 extends "vec4" ? T_114 extends T ? T_114 : T_114 extends "int" | "float" ? T : T extends "int" | "float" ? T_114 : T_114 extends "mat4" ? T extends "vec4" ? T : T_114 : T_114 extends "mat3" ? T extends "vec3" ? T : T_114 : T_114 extends "mat2" ? T extends "vec2" ? T : T_114 : T_114 extends "vec4" ? T extends "mat4" ? T_114 : T_114 : T_114 extends "vec3" ? T extends "mat3" ? T_114 : T_114 : T_114 extends "vec2" ? T extends "mat2" ? T_114 : T_114 : T_114 : never : never) ? T_113 extends "int" | "float" ? T_109 : T_109 extends "mat4" ? T_113 extends "vec4" ? T_113 : T_109 : T_109 extends "mat3" ? T_113 extends "vec3" ? T_113 : T_109 : T_109 extends "mat2" ? T_113 extends "vec2" ? T_113 : T_109 : T_109 extends "vec4" ? T_113 extends "mat4" ? T_109 : T_109 : T_109 extends "vec3" ? T_113 extends "mat3" ? T_109 : T_109 : T_109 extends "vec2" ? T_113 extends "mat2" ? T_109 : T_109 : T_109 : never : never : never : never> | NodeProxy<"mat2" extends infer T_115 ? T_115 extends "mat2" ? T_115 extends ("vec4" extends infer T_116 ? T_116 extends "vec4" ? T_116 extends T ? T_116 : T_116 extends "int" | "float" ? T : T extends "int" | "float" ? T_116 : T_116 extends "mat4" ? T extends "vec4" ? T : T_116 : T_116 extends "mat3" ? T extends "vec3" ? T : T_116 : T_116 extends "mat2" ? T extends "vec2" ? T : T_116 : T_116 extends "vec4" ? T extends "mat4" ? T_116 : T_116 : T_116 extends "vec3" ? T extends "mat3" ? T_116 : T_116 : T_116 extends "vec2" ? T extends "mat2" ? T_116 : T_116 : T_116 : never : never) ? T_115 : T_115 extends "int" | "float" ? "vec4" extends infer T_117 ? T_117 extends "vec4" ? T_117 extends T ? T_117 : T_117 extends "int" | "float" ? T : T extends "int" | "float" ? T_117 : T_117 extends "mat4" ? T extends "vec4" ? T : T_117 : T_117 extends "mat3" ? T extends "vec3" ? T : T_117 : T_117 extends "mat2" ? T extends "vec2" ? T : T_117 : T_117 extends "vec4" ? T extends "mat4" ? T_117 : T_117 : T_117 extends "vec3" ? T extends "mat3" ? T_117 : T_117 : T_117 extends "vec2" ? T extends "mat2" ? T_117 : T_117 : T_117 : never : never : ("vec4" extends infer T_118 ? T_118 extends "vec4" ? T_118 extends T ? T_118 : T_118 extends "int" | "float" ? T : T extends "int" | "float" ? T_118 : T_118 extends "mat4" ? T extends "vec4" ? T : T_118 : T_118 extends "mat3" ? T extends "vec3" ? T : T_118 : T_118 extends "mat2" ? T extends "vec2" ? T : T_118 : T_118 extends "vec4" ? T extends "mat4" ? T_118 : T_118 : T_118 extends "vec3" ? T extends "mat3" ? T_118 : T_118 : T_118 extends "vec2" ? T extends "mat2" ? T_118 : T_118 : T_118 : never : never) extends infer T_119 ? T_119 extends ("vec4" extends infer T_120 ? T_120 extends "vec4" ? T_120 extends T ? T_120 : T_120 extends "int" | "float" ? T : T extends "int" | "float" ? T_120 : T_120 extends "mat4" ? T extends "vec4" ? T : T_120 : T_120 extends "mat3" ? T extends "vec3" ? T : T_120 : T_120 extends "mat2" ? T extends "vec2" ? T : T_120 : T_120 extends "vec4" ? T extends "mat4" ? T_120 : T_120 : T_120 extends "vec3" ? T extends "mat3" ? T_120 : T_120 : T_120 extends "vec2" ? T extends "mat2" ? T_120 : T_120 : T_120 : never : never) ? T_119 extends "int" | "float" ? T_115 : T_115 extends "mat4" ? T_119 extends "vec4" ? T_119 : T_115 : T_115 extends "mat3" ? T_119 extends "vec3" ? T_119 : T_115 : T_115 extends "mat2" ? T_119 extends "vec2" ? T_119 : T_115 : T_115 extends "vec4" ? T_119 extends "mat4" ? T_115 : T_115 : T_115 extends "vec3" ? T_119 extends "mat3" ? T_115 : T_115 : T_115 extends "vec2" ? T_119 extends "mat2" ? T_115 : T_115 : T_115 : never : never : never : never> | NodeProxy<"mat3" extends infer T_121 ? T_121 extends "mat3" ? T_121 extends ("vec4" extends infer T_122 ? T_122 extends "vec4" ? T_122 extends T ? T_122 : T_122 extends "int" | "float" ? T : T extends "int" | "float" ? T_122 : T_122 extends "mat4" ? T extends "vec4" ? T : T_122 : T_122 extends "mat3" ? T extends "vec3" ? T : T_122 : T_122 extends "mat2" ? T extends "vec2" ? T : T_122 : T_122 extends "vec4" ? T extends "mat4" ? T_122 : T_122 : T_122 extends "vec3" ? T extends "mat3" ? T_122 : T_122 : T_122 extends "vec2" ? T extends "mat2" ? T_122 : T_122 : T_122 : never : never) ? T_121 : T_121 extends "int" | "float" ? "vec4" extends infer T_123 ? T_123 extends "vec4" ? T_123 extends T ? T_123 : T_123 extends "int" | "float" ? T : T extends "int" | "float" ? T_123 : T_123 extends "mat4" ? T extends "vec4" ? T : T_123 : T_123 extends "mat3" ? T extends "vec3" ? T : T_123 : T_123 extends "mat2" ? T extends "vec2" ? T : T_123 : T_123 extends "vec4" ? T extends "mat4" ? T_123 : T_123 : T_123 extends "vec3" ? T extends "mat3" ? T_123 : T_123 : T_123 extends "vec2" ? T extends "mat2" ? T_123 : T_123 : T_123 : never : never : ("vec4" extends infer T_124 ? T_124 extends "vec4" ? T_124 extends T ? T_124 : T_124 extends "int" | "float" ? T : T extends "int" | "float" ? T_124 : T_124 extends "mat4" ? T extends "vec4" ? T : T_124 : T_124 extends "mat3" ? T extends "vec3" ? T : T_124 : T_124 extends "mat2" ? T extends "vec2" ? T : T_124 : T_124 extends "vec4" ? T extends "mat4" ? T_124 : T_124 : T_124 extends "vec3" ? T extends "mat3" ? T_124 : T_124 : T_124 extends "vec2" ? T extends "mat2" ? T_124 : T_124 : T_124 : never : never) extends infer T_125 ? T_125 extends ("vec4" extends infer T_126 ? T_126 extends "vec4" ? T_126 extends T ? T_126 : T_126 extends "int" | "float" ? T : T extends "int" | "float" ? T_126 : T_126 extends "mat4" ? T extends "vec4" ? T : T_126 : T_126 extends "mat3" ? T extends "vec3" ? T : T_126 : T_126 extends "mat2" ? T extends "vec2" ? T : T_126 : T_126 extends "vec4" ? T extends "mat4" ? T_126 : T_126 : T_126 extends "vec3" ? T extends "mat3" ? T_126 : T_126 : T_126 extends "vec2" ? T extends "mat2" ? T_126 : T_126 : T_126 : never : never) ? T_125 extends "int" | "float" ? T_121 : T_121 extends "mat4" ? T_125 extends "vec4" ? T_125 : T_121 : T_121 extends "mat3" ? T_125 extends "vec3" ? T_125 : T_121 : T_121 extends "mat2" ? T_125 extends "vec2" ? T_125 : T_121 : T_121 extends "vec4" ? T_125 extends "mat4" ? T_121 : T_121 : T_121 extends "vec3" ? T_125 extends "mat3" ? T_121 : T_121 : T_121 extends "vec2" ? T_125 extends "mat2" ? T_121 : T_121 : T_121 : never : never : never : never> | NodeProxy<"mat4" extends infer T_127 ? T_127 extends "mat4" ? T_127 extends ("vec4" extends infer T_128 ? T_128 extends "vec4" ? T_128 extends T ? T_128 : T_128 extends "int" | "float" ? T : T extends "int" | "float" ? T_128 : T_128 extends "mat4" ? T extends "vec4" ? T : T_128 : T_128 extends "mat3" ? T extends "vec3" ? T : T_128 : T_128 extends "mat2" ? T extends "vec2" ? T : T_128 : T_128 extends "vec4" ? T extends "mat4" ? T_128 : T_128 : T_128 extends "vec3" ? T extends "mat3" ? T_128 : T_128 : T_128 extends "vec2" ? T extends "mat2" ? T_128 : T_128 : T_128 : never : never) ? T_127 : T_127 extends "int" | "float" ? "vec4" extends infer T_129 ? T_129 extends "vec4" ? T_129 extends T ? T_129 : T_129 extends "int" | "float" ? T : T extends "int" | "float" ? T_129 : T_129 extends "mat4" ? T extends "vec4" ? T : T_129 : T_129 extends "mat3" ? T extends "vec3" ? T : T_129 : T_129 extends "mat2" ? T extends "vec2" ? T : T_129 : T_129 extends "vec4" ? T extends "mat4" ? T_129 : T_129 : T_129 extends "vec3" ? T extends "mat3" ? T_129 : T_129 : T_129 extends "vec2" ? T extends "mat2" ? T_129 : T_129 : T_129 : never : never : ("vec4" extends infer T_130 ? T_130 extends "vec4" ? T_130 extends T ? T_130 : T_130 extends "int" | "float" ? T : T extends "int" | "float" ? T_130 : T_130 extends "mat4" ? T extends "vec4" ? T : T_130 : T_130 extends "mat3" ? T extends "vec3" ? T : T_130 : T_130 extends "mat2" ? T extends "vec2" ? T : T_130 : T_130 extends "vec4" ? T extends "mat4" ? T_130 : T_130 : T_130 extends "vec3" ? T extends "mat3" ? T_130 : T_130 : T_130 extends "vec2" ? T extends "mat2" ? T_130 : T_130 : T_130 : never : never) extends infer T_131 ? T_131 extends ("vec4" extends infer T_132 ? T_132 extends "vec4" ? T_132 extends T ? T_132 : T_132 extends "int" | "float" ? T : T extends "int" | "float" ? T_132 : T_132 extends "mat4" ? T extends "vec4" ? T : T_132 : T_132 extends "mat3" ? T extends "vec3" ? T : T_132 : T_132 extends "mat2" ? T extends "vec2" ? T : T_132 : T_132 extends "vec4" ? T extends "mat4" ? T_132 : T_132 : T_132 extends "vec3" ? T extends "mat3" ? T_132 : T_132 : T_132 extends "vec2" ? T extends "mat2" ? T_132 : T_132 : T_132 : never : never) ? T_131 extends "int" | "float" ? T_127 : T_127 extends "mat4" ? T_131 extends "vec4" ? T_131 : T_127 : T_127 extends "mat3" ? T_131 extends "vec3" ? T_131 : T_127 : T_127 extends "mat2" ? T_131 extends "vec2" ? T_131 : T_127 : T_127 extends "vec4" ? T_131 extends "mat4" ? T_127 : T_127 : T_127 extends "vec3" ? T_131 extends "mat3" ? T_127 : T_127 : T_127 extends "vec2" ? T_131 extends "mat2" ? T_127 : T_127 : T_127 : never : never : never : never> | NodeProxy<"sampler2D" extends infer T_133 ? T_133 extends "sampler2D" ? T_133 extends ("vec4" extends infer T_134 ? T_134 extends "vec4" ? T_134 extends T ? T_134 : T_134 extends "int" | "float" ? T : T extends "int" | "float" ? T_134 : T_134 extends "mat4" ? T extends "vec4" ? T : T_134 : T_134 extends "mat3" ? T extends "vec3" ? T : T_134 : T_134 extends "mat2" ? T extends "vec2" ? T : T_134 : T_134 extends "vec4" ? T extends "mat4" ? T_134 : T_134 : T_134 extends "vec3" ? T extends "mat3" ? T_134 : T_134 : T_134 extends "vec2" ? T extends "mat2" ? T_134 : T_134 : T_134 : never : never) ? T_133 : T_133 extends "int" | "float" ? "vec4" extends infer T_135 ? T_135 extends "vec4" ? T_135 extends T ? T_135 : T_135 extends "int" | "float" ? T : T extends "int" | "float" ? T_135 : T_135 extends "mat4" ? T extends "vec4" ? T : T_135 : T_135 extends "mat3" ? T extends "vec3" ? T : T_135 : T_135 extends "mat2" ? T extends "vec2" ? T : T_135 : T_135 extends "vec4" ? T extends "mat4" ? T_135 : T_135 : T_135 extends "vec3" ? T extends "mat3" ? T_135 : T_135 : T_135 extends "vec2" ? T extends "mat2" ? T_135 : T_135 : T_135 : never : never : ("vec4" extends infer T_136 ? T_136 extends "vec4" ? T_136 extends T ? T_136 : T_136 extends "int" | "float" ? T : T extends "int" | "float" ? T_136 : T_136 extends "mat4" ? T extends "vec4" ? T : T_136 : T_136 extends "mat3" ? T extends "vec3" ? T : T_136 : T_136 extends "mat2" ? T extends "vec2" ? T : T_136 : T_136 extends "vec4" ? T extends "mat4" ? T_136 : T_136 : T_136 extends "vec3" ? T extends "mat3" ? T_136 : T_136 : T_136 extends "vec2" ? T extends "mat2" ? T_136 : T_136 : T_136 : never : never) extends infer T_137 ? T_137 extends ("vec4" extends infer T_138 ? T_138 extends "vec4" ? T_138 extends T ? T_138 : T_138 extends "int" | "float" ? T : T extends "int" | "float" ? T_138 : T_138 extends "mat4" ? T extends "vec4" ? T : T_138 : T_138 extends "mat3" ? T extends "vec3" ? T : T_138 : T_138 extends "mat2" ? T extends "vec2" ? T : T_138 : T_138 extends "vec4" ? T extends "mat4" ? T_138 : T_138 : T_138 extends "vec3" ? T extends "mat3" ? T_138 : T_138 : T_138 extends "vec2" ? T extends "mat2" ? T_138 : T_138 : T_138 : never : never) ? T_137 extends "int" | "float" ? T_133 : T_133 extends "mat4" ? T_137 extends "vec4" ? T_137 : T_133 : T_133 extends "mat3" ? T_137 extends "vec3" ? T_137 : T_133 : T_133 extends "mat2" ? T_137 extends "vec2" ? T_137 : T_133 : T_133 extends "vec4" ? T_137 extends "mat4" ? T_133 : T_133 : T_133 extends "vec3" ? T_137 extends "mat3" ? T_133 : T_133 : T_133 extends "vec2" ? T_137 extends "mat2" ? T_133 : T_133 : T_133 : never : never : never : never> | NodeProxy<"struct" extends infer T_139 ? T_139 extends "struct" ? T_139 extends ("vec4" extends infer T_140 ? T_140 extends "vec4" ? T_140 extends T ? T_140 : T_140 extends "int" | "float" ? T : T extends "int" | "float" ? T_140 : T_140 extends "mat4" ? T extends "vec4" ? T : T_140 : T_140 extends "mat3" ? T extends "vec3" ? T : T_140 : T_140 extends "mat2" ? T extends "vec2" ? T : T_140 : T_140 extends "vec4" ? T extends "mat4" ? T_140 : T_140 : T_140 extends "vec3" ? T extends "mat3" ? T_140 : T_140 : T_140 extends "vec2" ? T extends "mat2" ? T_140 : T_140 : T_140 : never : never) ? T_139 : T_139 extends "int" | "float" ? "vec4" extends infer T_141 ? T_141 extends "vec4" ? T_141 extends T ? T_141 : T_141 extends "int" | "float" ? T : T extends "int" | "float" ? T_141 : T_141 extends "mat4" ? T extends "vec4" ? T : T_141 : T_141 extends "mat3" ? T extends "vec3" ? T : T_141 : T_141 extends "mat2" ? T extends "vec2" ? T : T_141 : T_141 extends "vec4" ? T extends "mat4" ? T_141 : T_141 : T_141 extends "vec3" ? T extends "mat3" ? T_141 : T_141 : T_141 extends "vec2" ? T extends "mat2" ? T_141 : T_141 : T_141 : never : never : ("vec4" extends infer T_142 ? T_142 extends "vec4" ? T_142 extends T ? T_142 : T_142 extends "int" | "float" ? T : T extends "int" | "float" ? T_142 : T_142 extends "mat4" ? T extends "vec4" ? T : T_142 : T_142 extends "mat3" ? T extends "vec3" ? T : T_142 : T_142 extends "mat2" ? T extends "vec2" ? T : T_142 : T_142 extends "vec4" ? T extends "mat4" ? T_142 : T_142 : T_142 extends "vec3" ? T extends "mat3" ? T_142 : T_142 : T_142 extends "vec2" ? T extends "mat2" ? T_142 : T_142 : T_142 : never : never) extends infer T_143 ? T_143 extends ("vec4" extends infer T_144 ? T_144 extends "vec4" ? T_144 extends T ? T_144 : T_144 extends "int" | "float" ? T : T extends "int" | "float" ? T_144 : T_144 extends "mat4" ? T extends "vec4" ? T : T_144 : T_144 extends "mat3" ? T extends "vec3" ? T : T_144 : T_144 extends "mat2" ? T extends "vec2" ? T : T_144 : T_144 extends "vec4" ? T extends "mat4" ? T_144 : T_144 : T_144 extends "vec3" ? T extends "mat3" ? T_144 : T_144 : T_144 extends "vec2" ? T extends "mat2" ? T_144 : T_144 : T_144 : never : never) ? T_143 extends "int" | "float" ? T_139 : T_139 extends "mat4" ? T_143 extends "vec4" ? T_143 : T_139 : T_139 extends "mat3" ? T_143 extends "vec3" ? T_143 : T_139 : T_139 extends "mat2" ? T_143 extends "vec2" ? T_143 : T_139 : T_139 extends "vec4" ? T_143 extends "mat4" ? T_139 : T_139 : T_139 extends "vec3" ? T_143 extends "mat3" ? T_139 : T_139 : T_139 extends "vec2" ? T_143 extends "mat2" ? T_139 : T_139 : T_139 : never : never : never : never>;
1913
1914
 
1914
1915
  type PrecisionMode = 'highp' | 'mediump' | 'lowp';
1915
1916
  type GLClearMode = 'COLOR_BUFFER_BIT' | 'DEPTH_BUFFER_BIT' | 'STENCIL_BUFFER_BIT';
@@ -1954,20 +1955,22 @@ type GL = EventState<{
1954
1955
  */
1955
1956
  isNative: boolean;
1956
1957
  isWebGL: boolean;
1958
+ isError: boolean;
1957
1959
  isLoop: boolean;
1958
1960
  isGL: true;
1959
- width: number;
1960
- height: number;
1961
+ width?: number;
1962
+ height?: number;
1961
1963
  size: [number, number];
1962
1964
  mouse: [number, number];
1963
1965
  count: number;
1966
+ loading: number;
1964
1967
  el: HTMLCanvasElement;
1965
- vs: string | Vec4;
1966
- fs: string | Vec4;
1967
- vert: string | Vec4;
1968
- frag: string | Vec4;
1969
- vertex: string | Vec4;
1970
- fragment: string | Vec4;
1968
+ vs?: string | Vec4;
1969
+ fs?: string | Vec4;
1970
+ vert?: string | Vec4;
1971
+ frag?: string | Vec4;
1972
+ vertex?: string | Vec4;
1973
+ fragment?: string | Vec4;
1971
1974
  /**
1972
1975
  * core state
1973
1976
  */
@@ -1979,13 +1982,13 @@ type GL = EventState<{
1979
1982
  * events
1980
1983
  */
1981
1984
  ref?: any;
1982
- init(): void;
1983
- loop(): void;
1984
1985
  mount(): void;
1985
1986
  clean(): void;
1987
+ error(e?: string): void;
1986
1988
  render(): void;
1987
1989
  resize(e?: Event): void;
1988
1990
  mousemove(e: Event): void;
1991
+ loop(): void;
1989
1992
  /**
1990
1993
  * setter
1991
1994
  */
@@ -2089,23 +2092,23 @@ declare const createTextureSampler: (device: GPUDevice, width?: number, height?:
2089
2092
  };
2090
2093
  declare const createDepthTexture: (device: GPUDevice, width: number, height: number) => GPUTexture;
2091
2094
 
2092
- declare const createProgram: (c: WebGLRenderingContext, vert: string, frag: string, onError?: () => void) => void | WebGLProgram;
2095
+ declare const createProgram: (c: WebGLRenderingContext, vert: string, frag: string, onError?: (...data: any[]) => void) => WebGLProgram | undefined;
2093
2096
  declare const createVbo: (c: WebGLRenderingContext, data: number[]) => WebGLBuffer;
2094
2097
  declare const createIbo: (c: WebGLRenderingContext, data: number[]) => WebGLBuffer;
2095
2098
  declare const getStride: (count: number, value: number[], iboValue?: number[]) => number;
2096
2099
  declare const createAttrib: (c: WebGLRenderingContext, stride: number, loc: any, vbo: WebGLBuffer, ibo?: WebGLBuffer) => void;
2097
2100
  declare const createTexture: (c: WebGLRenderingContext, img: HTMLImageElement, loc: any, unit: number) => void;
2098
2101
 
2099
- declare const webgl: (gl: Partial<GL>) => Promise<{
2102
+ declare const webgl: (gl: GL) => Promise<{
2103
+ webgl: WebGLState;
2100
2104
  render: () => void;
2101
2105
  clean: () => void;
2102
2106
  _attribute: (key: string | undefined, value: number[], iboValue: number[]) => void;
2103
2107
  _uniform: (key: string, value: number | number[]) => void;
2104
2108
  _texture: (key: string, src: string) => void;
2105
- webgl: WebGLState;
2106
2109
  }>;
2107
2110
 
2108
- declare const webgpu: (gl: Partial<GL>) => Promise<{
2111
+ declare const webgpu: (gl: GL) => Promise<{
2109
2112
  webgpu: WebGPUState;
2110
2113
  render: () => void;
2111
2114
  resize: () => void;
@@ -2121,32 +2124,34 @@ declare const isWebGPUSupported: () => boolean;
2121
2124
  declare const createGL: (props?: Partial<GL>) => EventState<{
2122
2125
  isNative: boolean;
2123
2126
  isWebGL: boolean;
2127
+ isError: boolean;
2124
2128
  isLoop: boolean;
2125
2129
  isGL: true;
2126
- width: number;
2127
- height: number;
2130
+ width?: number;
2131
+ height?: number;
2128
2132
  size: [number, number];
2129
2133
  mouse: [number, number];
2130
2134
  count: number;
2135
+ loading: number;
2131
2136
  el: HTMLCanvasElement;
2132
- vs: string | Vec4;
2133
- fs: string | Vec4;
2134
- vert: string | Vec4;
2135
- frag: string | Vec4;
2136
- vertex: string | Vec4;
2137
- fragment: string | Vec4;
2137
+ vs?: string | Vec4;
2138
+ fs?: string | Vec4;
2139
+ vert?: string | Vec4;
2140
+ frag?: string | Vec4;
2141
+ vertex?: string | Vec4;
2142
+ fragment?: string | Vec4;
2138
2143
  webgpu: WebGPUState;
2139
2144
  webgl: WebGLState;
2140
2145
  queue: refr.Queue;
2141
2146
  frame: refr.Frame;
2142
2147
  ref?: any;
2143
- init(): void;
2144
- loop(): void;
2145
2148
  mount(): void;
2146
2149
  clean(): void;
2150
+ error(e?: string): void;
2147
2151
  render(): void;
2148
2152
  resize(e?: Event): void;
2149
2153
  mousemove(e: Event): void;
2154
+ loop(): void;
2150
2155
  _uniform?(key: string, value: Uniform, isMatrix?: boolean): GL;
2151
2156
  uniform(key: string, value: Uniform, isMatrix?: boolean): GL;
2152
2157
  uniform(node: NodeProxy): GL;
@@ -2165,4 +2170,4 @@ declare const createGL: (props?: Partial<GL>) => EventState<{
2165
2170
  }): GL;
2166
2171
  }, any[] | unknown[]>;
2167
2172
 
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 };
2173
+ 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, mod, 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 };
package/dist/index.js CHANGED
@@ -1,40 +1,38 @@
1
- import{durable as de,event as wt}from"reev";import{createFrame as Nt,createQueue as $t}from"refr";import{nested as ce}from"reev";var d={arr:Array.isArray,bol:e=>typeof e=="boolean",str:e=>typeof e=="string",num:e=>typeof e=="number",int:e=>Number.isInteger(e),fun:e=>typeof e=="function",und:e=>typeof e>"u",nul:e=>e===null,set:e=>e instanceof Set,map:e=>e instanceof Map,obj:e=>!!e&&e.constructor.name==="Object",nan:e=>typeof e=="number"&&Number.isNaN(e)},mt=(e,t)=>e.forEach(t),It=(e,...t)=>{mt(e,r=>r(...t))},Ft=(e="",t="_",r="/")=>e.split(t).join(r),Ut=(e=".pdf")=>e.split(".").pop()?.toLowerCase()??"",At=(e=0)=>`${e}`.split(".")[1]?.length??0,Bt=(e=0)=>`${e}`.split(".")[0]?.length-(e<0?1:0),Dt=(e=0,t=-2)=>(t*=-1,t=Math.pow(10,t),e*=t,e=Math.round(e),e/=t,e);var K={bool:"bool",uint:"u32",int:"i32",float:"f32",bvec2:"vec2<bool>",ivec2:"vec2i",uvec2:"vec2u",vec2:"vec2f",bvec3:"vec3<bool>",ivec3:"vec3i",uvec3:"vec3u",vec3:"vec3f",bvec4:"vec4<bool>",ivec4:"vec4i",uvec4:"vec4u",vec4:"vec4f",color:"color",mat2:"mat2x2f",mat3:"mat3x3f",mat4:"mat4x4f",texture:"texture_2d<f32>",sampler2D:"sampler",struct:"struct"},Z=Object.keys(K),Q=["toBool","toUint","toInt","toFloat","toBvec2","toIvec2","toUvec2","toVec2","toBvec3","toIvec3","toUvec3","toVec3","toBvec4","toIvec4","toUvec4","toVec4","toColor","toMat2","toMat3","toMat4"],J={add:"+",sub:"-",mul:"*",div:"/",mod:"%",equal:"==",notEqual:"!=",lessThan:"<",lessThanEqual:"<=",greaterThan:">",greaterThanEqual:">=",and:"&&",or:"||",bitAnd:"&",bitOr:"|",bitXor:"^",shiftLeft:"<<",shiftRight:">>"},xe=Object.keys(J),me=["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"],ee={1:"float",2:"vec2",3:"vec3",4:"vec4",9:"mat3",16:"mat4"},Te={texture:"vec4",cubeTexture:"vec4",textureSize:"vec4",length:"float",lengthSq:"float",distance:"float",dot:"float",all:"bool",any:"bool",cross:"vec3"},ge={position:"vec4",vertex_index:"uint",instance_index:"uint",front_facing:"bool",frag_depth:"float",sample_index:"uint",sample_mask:"uint",point_coord:"vec2",positionLocal:"vec3",positionWorld:"vec3",positionView:"vec3",normalLocal:"vec3",normalWorld:"vec3",normalView:"vec3",screenCoordinate:"vec2",screenUV:"vec2",gl_FragCoord:"vec4",gl_VertexID:"uint",gl_InstanceID:"uint",gl_FrontFacing:"bool",gl_FragDepth:"float",gl_SampleID:"uint",gl_SampleMask:"uint",gl_PointCoord:"vec2",normal:"vec3",uv:"vec2",color:"vec4"},be=["equal","notEqual","lessThan","lessThanEqual","greaterThan","greaterThanEqual"],ve=["and","or"],he={position:"gl_FragCoord",vertex_index:"gl_VertexID",instance_index:"gl_InstanceID",front_facing:"gl_FrontFacing",frag_depth:"gl_FragDepth",sample_index:"gl_SampleID",sample_mask:"gl_SampleMask",point_coord:"gl_PointCoord",uv:"gl_FragCoord.xy"};var ye=e=>d.str(e)&&/^[xyzwrgbastpq]{1,4}$/.test(e),Ce=e=>xe.includes(e),Xe=e=>me.includes(e),_e=e=>Q.includes(e),W=e=>!e||typeof e!="object"?!1:e.isProxy,te=e=>d.str(e)?Z.includes(e):!1,Pe=e=>{let t=(e>>16&255)/255,r=(e>>8&255)/255,o=(e&255)/255;return[t,r,o]},Tt=0,$=()=>`i${Tt++}`,G=(e,t)=>d.str(e)?t?.isWebGL?e:K[e]||e:"",Ee=e=>J[e]||e,we=e=>he[e],Ne=e=>{let t=Q.indexOf(e);return t!==-1?Z[t]:"float"},re=(e,t,r=!1,o=!1)=>e.isWebGL?r?n=>e.gl?.attribute?.(t,n):o?n=>e.gl?.texture?.(t,n):n=>e.gl?.uniform?.(t,n):r?n=>e.gl?._attribute?.(t,n):o?n=>e.gl?._texture?.(t,n):n=>e.gl?._uniform?.(t,n),ne=(e,t)=>{if(!e)return;if(!W(e))return t(e);if(e.type!=="conversion")return;let r=e.props.children?.slice(1).filter(Boolean);r?.length&&t(r)},$e=e=>(e.code||(e.code={headers:new Map,fragInputs:new Map,vertInputs:new Map,vertOutputs:new Map,vertVaryings:new Map,dependencies:new Map},e.isWebGL||(e.code.fragInputs.set("position","@builtin(position) position: vec4f"),e.code.vertOutputs.set("position","@builtin(position) position: vec4f"))),e),V=(e,t="",r)=>{e.code?.dependencies?.has(t)||e.code.dependencies.set(t,new Set),te(r)||e.code.dependencies.get(t).add(r)},Ge=(e,t)=>{let r=[],o=new Set,n=new Set,s=i=>{if(n.has(i)||o.has(i))return;n.add(i);let p=t.get(i)||new Set;for(let a of p)e.has(a)&&s(a);n.delete(i),o.add(i),e.has(i)&&r.push([i,e.get(i)])};for(let[i]of e)s(i);return r};var gt=e=>ge[e],Le=(e,t,r)=>be.includes(r)||ve.includes(r)?"bool":e===t?e:e==="float"||e==="int"?t:t==="float"||t==="int"?e:e==="mat4"&&t==="vec4"||e==="mat3"&&t==="vec3"||e==="mat2"&&t==="vec2"?t:e,bt=e=>d.bol(e)?"bool":d.str(e)?"texture":d.num(e)?"float":d.arr(e)?ee[e.length]:"float",oe=e=>ee[e],vt=(e,t)=>{if(e.length===0)return"void";let[r]=e;if(d.str(r))return r;let o=v(r,t);for(let n of e.slice(1))if(o!==v(n,t))throw new Error("glre node system error: defined scope return mismatch");return o},ht=e=>Te[e],yt=(e,t)=>{let{type:r,props:o}=e,{id:n,children:s=[],inferFrom:i,layout:p}=o,[a,c,l]=s;if(r==="conversion")return a;if(r==="operator")return Le(v(c,t),v(l,t),a);if(r==="ternary")return Le(v(c,t),v(l,t),"add");if(r==="builtin")return gt(n);if(r==="function")return ht(a)||v(c,t);if(r==="define"&&te(p?.type))return p?.type;if(r==="attribute"&&d.arr(a)&&t.gl?.count)return oe(a.length/t.gl.count);if(r==="member"){if(ye(a))return oe(a.length);if(W(c)&&d.str(a)){let E=c.props.fields?.[a];if(E)return v(E,t)}return"float"}return i?vt(i,t):v(a,t)},v=(e,t)=>{if(t||(t={}),!W(e))return bt(e);if(d.arr(e))return oe(e.length);if(t.infers||(t.infers=new WeakMap),t.infers.has(e))return t.infers.get(e);let r=yt(e,t);return t.infers.set(e,r),r};var R=(e,t)=>e.filter(r=>!d.und(r)&&!d.nul(r)).map(r=>f(r,t)).join(", "),Se=(e,t,r,o)=>{if(e.isWebGL)return`texture(${R(o?[t,r,o]:[t,r],e)})`;let n=f(t,e),s=[n,n+"Sampler",f(r,e)];return o?(s.push(f(o,e)),`textureSampleLevel(${s})`):`textureSample(${s})`},Re=(e,t,r,o)=>{let n=`if (${f(t,e)}) {
2
- ${f(r,e)}
3
- }`;for(let s=2;s<o.length;s+=2){let i=s>=o.length-1;n+=i?` else {
4
- ${f(o[s],e)}
5
- }`:` else if (${f(o[s],e)}) {
6
- ${f(o[s+1],e)}
7
- }`}return n},Oe=(e,t,r)=>{let o=`switch (${f(t,e)}) {
1
+ import{durable as fe,event as Pt}from"reev";import{createFrame as $t,createQueue as wt}from"refr";import{nested as pe}from"reev";var d={arr:Array.isArray,bol:e=>typeof e=="boolean",str:e=>typeof e=="string",num:e=>typeof e=="number",int:e=>Number.isInteger(e),fun:e=>typeof e=="function",und:e=>typeof e>"u",nul:e=>e===null,set:e=>e instanceof Set,map:e=>e instanceof Map,obj:e=>!!e&&e.constructor.name==="Object",nan:e=>typeof e=="number"&&Number.isNaN(e)},xt=(e,t)=>e.forEach(t),Ot=(e,...t)=>{xt(e,r=>r(...t))},It=(e="",t="_",r="/")=>e.split(t).join(r),Ft=(e=".pdf")=>e.split(".").pop()?.toLowerCase()??"",Ut=(e=0)=>`${e}`.split(".")[1]?.length??0,At=(e=0)=>`${e}`.split(".")[0]?.length-(e<0?1:0),Bt=(e=0,t=-2)=>(t*=-1,t=Math.pow(10,t),e*=t,e=Math.round(e),e/=t,e);var j={bool:"bool",uint:"u32",int:"i32",float:"f32",bvec2:"vec2<bool>",ivec2:"vec2i",uvec2:"vec2u",vec2:"vec2f",bvec3:"vec3<bool>",ivec3:"vec3i",uvec3:"vec3u",vec3:"vec3f",bvec4:"vec4<bool>",ivec4:"vec4i",uvec4:"vec4u",vec4:"vec4f",color:"color",mat2:"mat2x2f",mat3:"mat3x3f",mat4:"mat4x4f",texture:"texture_2d<f32>",sampler2D:"sampler",struct:"struct"},K=Object.keys(j),Z=["toBool","toUint","toInt","toFloat","toBvec2","toIvec2","toUvec2","toVec2","toBvec3","toIvec3","toUvec3","toVec3","toBvec4","toIvec4","toUvec4","toVec4","toColor","toMat2","toMat3","toMat4"],Q={add:"+",sub:"-",mul:"*",div:"/",mod:"%",equal:"==",notEqual:"!=",lessThan:"<",lessThanEqual:"<=",greaterThan:">",greaterThanEqual:">=",and:"&&",or:"||",bitAnd:"&",bitOr:"|",bitXor:"^",shiftLeft:"<<",shiftRight:">>"},le=Object.keys(Q),xe=["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"],J={1:"float",2:"vec2",3:"vec3",4:"vec4",9:"mat3",16:"mat4"},me={texture:"vec4",cubeTexture:"vec4",textureSize:"vec4",length:"float",lengthSq:"float",distance:"float",dot:"float",all:"bool",any:"bool",cross:"vec3"},Te={position:"vec4",vertex_index:"uint",instance_index:"uint",front_facing:"bool",frag_depth:"float",sample_index:"uint",sample_mask:"uint",point_coord:"vec2",positionLocal:"vec3",positionWorld:"vec3",positionView:"vec3",normalLocal:"vec3",normalWorld:"vec3",normalView:"vec3",screenCoordinate:"vec2",screenUV:"vec2",gl_FragCoord:"vec4",gl_VertexID:"uint",gl_InstanceID:"uint",gl_FrontFacing:"bool",gl_FragDepth:"float",gl_SampleID:"uint",gl_SampleMask:"uint",gl_PointCoord:"vec2",normal:"vec3",uv:"vec2",color:"vec4"},ge=["equal","notEqual","lessThan","lessThanEqual","greaterThan","greaterThanEqual"],be=["and","or"],ve={position:"gl_FragCoord",vertex_index:"gl_VertexID",instance_index:"gl_InstanceID",front_facing:"gl_FrontFacing",frag_depth:"gl_FragDepth",sample_index:"gl_SampleID",sample_mask:"gl_SampleMask",point_coord:"gl_PointCoord",uv:"gl_FragCoord.xy"};var he=e=>d.str(e)&&/^[xyzwrgbastpq]{1,4}$/.test(e),ye=e=>le.includes(e),Ce=e=>xe.includes(e),Xe=e=>Z.includes(e),M=e=>!e||typeof e!="object"?!1:e.isProxy,ee=e=>d.str(e)?K.includes(e):!1,_e=e=>{let t=(e>>16&255)/255,r=(e>>8&255)/255,o=(e&255)/255;return[t,r,o]},mt=0,P=()=>`x${mt++}`,G=(e,t)=>d.str(e)?t?.isWebGL?e:j[e]||e:"",Ee=e=>Q[e]||e,Pe=e=>ve[e],$e=e=>{let t=Z.indexOf(e);return t!==-1?K[t]:"float"},te=(e,t,r=!1,o=!1)=>e.isWebGL?r?n=>e.gl?.attribute?.(t,n):o?n=>e.gl?.texture?.(t,n):n=>e.gl?.uniform?.(t,n):r?n=>e.gl?._attribute?.(t,n):o?n=>e.gl?._texture?.(t,n):n=>e.gl?._uniform?.(t,n),re=(e,t)=>{if(d.und(e))return;if(!M(e))return t(e);if(e.type!=="conversion")return;let r=e.props.children?.slice(1).filter(Boolean);r?.length&&t(r)},we=e=>(e.code||(e.code={headers:new Map,fragInputs:new Map,vertInputs:new Map,vertOutputs:new Map,vertVaryings:new Map,dependencies:new Map},e.isWebGL||(e.code.fragInputs.set("position","@builtin(position) position: vec4f"),e.code.vertOutputs.set("position","@builtin(position) position: vec4f"))),e),W=(e,t="",r)=>{e.code?.dependencies?.has(t)||e.code.dependencies.set(t,new Set),ee(r)||e.code.dependencies.get(t).add(r)},Ne=(e,t)=>{let r=[],o=new Set,n=new Set,s=a=>{if(n.has(a)||o.has(a))return;n.add(a);let c=t.get(a)||new Set;for(let i of c)e.has(i)&&s(i);n.delete(a),o.add(a),e.has(a)&&r.push([a,e.get(a)])};for(let[a]of e)s(a);return r};var Tt=e=>Te[e],Ge=(e,t,r)=>ge.includes(r)||be.includes(r)?"bool":e===t?e:e==="float"||e==="int"?t:t==="float"||t==="int"?e:e==="mat4"&&t==="vec4"||e==="mat3"&&t==="vec3"||e==="mat2"&&t==="vec2"?t:e,gt=e=>d.bol(e)?"bool":d.str(e)?"texture":d.num(e)?"float":d.arr(e)?J[e.length]:"float",ne=e=>J[e],bt=(e,t)=>{if(e.length===0)return"void";let[r]=e;if(d.str(r))return r;let o=h(r,t);for(let n of e.slice(1))if(o!==h(n,t))throw new Error("glre node system error: defined scope return mismatch");return o},vt=e=>me[e],ht=(e,t)=>{let{type:r,props:o}=e,{id:n,children:s=[],inferFrom:a,layout:c}=o,[i,f,l]=s;if(r==="conversion")return i;if(r==="operator")return Ge(h(f,t),h(l,t),i);if(r==="ternary")return Ge(h(f,t),h(l,t),"add");if(r==="builtin")return Tt(n);if(r==="function")return vt(i)||h(f,t);if(r==="define"&&ee(c?.type))return c?.type;if(r==="attribute"&&d.arr(i)&&t.gl?.count)return ne(i.length/t.gl.count);if(r==="member"){if(he(i))return ne(i.length);if(M(f)&&d.str(i)){let _=f.props.fields?.[i];if(_)return h(_,t)}return"float"}return a?bt(a,t):h(i,t)},h=(e,t)=>{if(t||(t={}),!M(e))return gt(e);if(d.arr(e))return ne(e.length);if(t.infers||(t.infers=new WeakMap),t.infers.has(e))return t.infers.get(e);let r=ht(e,t);return t.infers.set(e,r),r};var R=(e,t)=>e.filter(r=>!d.und(r)&&!d.nul(r)).map(r=>p(r,t)).join(", "),Le=(e,t,r,o)=>{if(e.isWebGL)return`texture(${R(o?[t,r,o]:[t,r],e)})`;let n=p(t,e),s=[n,n+"Sampler",p(r,e)];return o?(s.push(p(o,e)),`textureSampleLevel(${s})`):`textureSample(${s})`},Se=(e,t,r,o)=>{let n=`if (${p(t,e)}) {
2
+ ${p(r,e)}
3
+ }`;for(let s=2;s<o.length;s+=2){let a=s>=o.length-1;n+=a?` else {
4
+ ${p(o[s],e)}
5
+ }`:` else if (${p(o[s],e)}) {
6
+ ${p(o[s+1],e)}
7
+ }`}return n},Re=(e,t,r)=>{let o=`switch (${p(t,e)}) {
8
8
  `;for(let n=1;n<r.length;n+=2)n>=r.length-1&&r.length%2===0?o+=`default:
9
- ${f(r[n],e)}
9
+ ${p(r[n],e)}
10
10
  break;
11
- `:n+1<r.length&&(o+=`case ${f(r[n],e)}:
12
- ${f(r[n+1],e)}
11
+ `:n+1<r.length&&(o+=`case ${p(r[n],e)}:
12
+ ${p(r[n+1],e)}
13
13
  break;
14
- `);return o+="}",o},Ie=(e,t,r)=>{let o=v(t,e),n=r?.props?.id;if(e.isWebGL)return`${o} ${n} = ${f(t,e)};`;let s=G(o);return`var ${n}: ${s} = ${f(t,e)};`},Fe=(e,t,r)=>{let{id:o,children:n=[],layout:s}=t,[i,...p]=n,a=[],c=[];if(s?.inputs)for(let b of s.inputs)a.push([b.name,b.type]);else for(let b=0;b<p.length;b++)a.push([`p${b}`,v(p[b],e)]);let l=[];if(e?.isWebGL){for(let[b,m]of a)V(e,o,m),c.push(`${m} ${b}`);V(e,o,r),l.push(`${r} ${o}(${c}) {`)}else{for(let[b,m]of a)c.push(`${b}: ${G(m,e)}`);l.push(`fn ${o}(${c}) -> ${G(r,e)} {`)}let E=f(i,e);return E&&l.push(E),l.push("}"),l.join(`
15
- `)},Ue=(e,t,r={})=>{let o=[];for(let s in r){let i=r[s],p=v(i,e);e.isWebGL&&V(e,t,p),o.push(e.isWebGL?`${p} ${s};`:`${s}: ${G(p,e)},`)}let n=o.join(`
14
+ `);return o+="}",o},Oe=(e,t,r)=>{let o=h(t,e),n=r?.props?.id;if(e.isWebGL)return`${o} ${n} = ${p(t,e)};`;let s=G(o);return`var ${n}: ${s} = ${p(t,e)};`},Ie=(e,t,r={})=>{let o=[];for(let s in r){let a=r[s],c=h(a,e);e.isWebGL&&W(e,t,c),o.push(e.isWebGL?`${c} ${s};`:`${s}: ${G(c,e)},`)}let n=o.join(`
16
15
  `);return`struct ${t} {
17
16
  ${n}
18
- };`},Ae=(e,t,r="",o,n)=>{if(e.isWebGL)if(n){let s=[];for(let i in o)s.push(n[i]);return`${t} ${r} = ${t}(${R(s,e)});`}else return`${t} ${r};`;else if(n){let s=[];for(let i in o)s.push(n[i]);return`var ${r}: ${t} = ${t}(${R(s,e)});`}else return`var ${r}: ${t};`},Be=(e,t,r)=>e.isWebGL?`${r} ${t};`:`@location(${e.code?.vertVaryings?.size||0}) ${t}: ${G(r,e)}`,De=(e,t,r)=>{let o=r==="sampler2D"||r==="texture";if(e.isWebGL)return o?`uniform sampler2D ${t};`:`uniform ${r} ${t};`;if(o){let{group:p=1,binding:a=0}=e.gl?.webgpu?.textures.map.get(t)||{};return`@group(${p}) @binding(${a}) var ${t}Sampler: sampler;
19
- @group(${p}) @binding(${a+1}) var ${t}: texture_2d<f32>;`}let{group:n=0,binding:s=0}=e.gl?.webgpu?.uniforms.map.get(t)||{},i=G(r,e);return`@group(${n}) @binding(${s}) var<uniform> ${t}: ${i};`},Me=(e,t,r)=>{if(e.isWebGL)return`${r} ${t};`;let{location:o=0}=e.gl?.webgpu?.attribs.map.get(t)||{},n=G(r,e);return`@location(${o}) ${t}: ${n}`},We=(e,t,r,o)=>e.isWebGL?`const ${r} ${t} = ${o};`:`const ${t}: ${G(r,e)} = ${o};`;var f=(e,t)=>{if(t||(t={}),$e(t),d.arr(e))return R(e,t);if(d.str(e))return e;if(d.num(e)){let m=`${e}`;return m.includes(".")?m:m+".0"}if(d.bol(e))return e?"true":"false";if(!e)return"";let{type:r,props:o}=e,{id:n="",children:s=[],fields:i,initialValues:p}=o,[a,c,l,E]=s;if(r==="variable")return n;if(r==="member")return`${f(c,t)}.${f(a,t)}`;if(r==="ternary")return t.isWebGL?`(${f(l,t)} ? ${f(a,t)} : ${f(c,t)})`:`select(${f(a,t)}, ${f(c,t)}, ${f(l,t)})`;if(r==="conversion")return`${G(a,t)}(${R(s.slice(1),t)})`;if(r==="operator")return a==="not"||a==="bitNot"?`!${f(c,t)}`:`(${f(c,t)} ${Ee(a)} ${f(l,t)})`;if(r==="function")return a==="negate"?`(-${R(s.slice(1),t)})`:a==="texture"?Se(t,c,l,E):`${a}(${R(s.slice(1),t)})`;if(r==="scope")return s.map(m=>f(m,t)).join(`
20
- `);if(r==="assign")return`${f(a,t)} = ${f(c,t)};`;if(r==="return")return`return ${f(a,t)};`;if(r==="loop")return t.isWebGL?`for (int i = 0; i < ${f(a,t)}; i += 1) {
21
- ${f(c,t)}
22
- }`:`for (var i: i32 = 0; i < ${f(a,t)}; i++) {
23
- ${f(c,t)}
24
- }`;if(r==="if")return Re(t,a,c,s);if(r==="switch")return Oe(t,a,s);if(r==="declare")return Ie(t,a,c);if(r==="define")return t.code?.headers.has(n)||t.code?.headers.set(n,Fe(t,o,v(e,t))),`${n}(${R(s.slice(1),t)})`;if(r==="struct")return t.code?.headers.has(n)||t.code?.headers.set(n,Ue(t,n,i)),Ae(t,n,a.props.id,i,p);if(r==="varying"){if(t.code?.vertOutputs.has(n))return t.isWebGL?`${n}`:`out.${n}`;let m=Be(t,n,v(e,t));return t.code?.fragInputs.set(n,m),t.code?.vertOutputs.set(n,m),t.code?.vertVaryings.set(n,f(a,t)),t.isWebGL?`${n}`:`out.${n}`}if(r==="builtin"){if(t.isWebGL)return we(n);if(n==="position")return"out.position";let m=`@builtin(${n}) ${n}: ${G(v(e,t),t)}`;return t.isFrag?t.code?.fragInputs.set(n,m):t.code?.vertInputs.set(n,m),`in.${n}`}if(r==="attribute"){let m=re(t,n,!0);return ne(a,m),e.listeners.add(m),t.code?.vertInputs.set(n,Me(t,n,v(e,t))),t.isWebGL?`${n}`:`in.${n}`}if(t.code?.headers.has(n))return n;let b="";if(r==="uniform"){let m=v(e,t),A=re(t,n,!1,m==="texture");ne(a,A),e.listeners.add(A),b=De(t,n,m)}return r==="constant"&&(b=We(t,n,v(e,t),f(a,t))),b?(t.code?.headers.set(n,b),n):f(a,t)};var O=null,U=null,F=e=>{if(!O||(O.props.children||(O.props.children=[]),O.props.children.push(e),e.type!=="return"||!U))return;let{props:t}=U;t.inferFrom||(t.inferFrom=[]),t.inferFrom.push(e)},Ve=(e,t)=>{t||(t=$());let r=x("variable",{id:t,inferFrom:[e]}),o=x("declare",null,e,r);return F(o),r},ze=(e,t)=>{let r=x("assign",null,e,t);return F(r),e},Ct=e=>{let t=x("return",{inferFrom:[e]},e);return F(t),t},ur=(e,t=$())=>(r={},o=$())=>{let n=x("variable",{id:o,inferFrom:[t]}),s=x("struct",{id:t,fields:e,initialValues:r},n);return F(s),n},I=(e,t,r=U)=>{let o=O,n=U;O=e,U=r,o&&(e.props.parent=o);let s=t();s&&Ct(s),O=o,U=n},pr=(e,t)=>{let r=x("scope");I(r,t);let o=x("if",null,e,r);F(o);let n=()=>({ElseIf:(s,i)=>{let p=x("scope");return I(p,i),o.props.children.push(s,p),n()},Else:s=>{let i=x("scope");I(i,s),o.props.children.push(i)}});return n()},cr=(e,t)=>{let r=x("scope");I(r,()=>t({i:x("variable",{id:"i",inferFrom:[T("int",0)]})}));let o=x("loop",null,e,r);return F(o),o},fr=e=>{let t=x("switch",null,e);F(t);let r=()=>({Case:(...o)=>n=>{let s=x("scope");I(s,n);for(let i of o)t.props.children.push(i,s);return r()},Default:o=>{let n=x("scope");I(n,o),t.props.children.push(n)}});return r()},dr=(e,t=$())=>{let r,o=(...n)=>{let s=r?.name||t,i=x("scope"),p=[],a=[];if(r?.inputs)for(let l of r.inputs)a.push({id:l.name,inferFrom:[T(l.type)]});else for(let l=0;l<n.length;l++)a.push({id:`p${l}`,inferFrom:[n[l]]});for(let l of a)p.push(x("variable",l));let c=x("define",{id:s,layout:r},i,...n);return I(i,()=>e(p),c),c};return o.setLayout=n=>(r=n,o),o};var Xt=(e,t)=>{if(t==="string")return f(e)},x=(e,t,...r)=>{t||(t={}),r.length&&(t.children=r);let o=new Set,n=(p,a)=>{if(a==="type")return e;if(a==="props")return t;if(a==="toVar")return Ve.bind(null,i);if(a==="assign")return ze.bind(null,i);if(a==="isProxy")return!0;if(a==="toString")return f.bind(null,i);if(a===Symbol.toPrimitive)return Xt.bind(null,i);if(a==="listeners")return o;if(Ce(a))return(...c)=>_t(a,i,...c);if(Xe(a))return(...c)=>u(a,i,...c);if(_e(a))return()=>T(Ne(a),i);if(d.str(a))return ke(a,i)},s=(p,a,c)=>(a==="value"&&o.forEach(l=>l(c)),d.str(a)&&ke(a,i).assign(c),!0),i=new Proxy({},{get:n,set:s});return i},br=(e,t=$())=>x("attribute",{id:t},e),vr=(e,t=$())=>x("constant",{id:t},e),z=(e,t=$())=>x("uniform",{id:t},e),hr=(e=$())=>x("variable",{id:e}),C=(e=$())=>x("builtin",{id:e}),yr=(e,t=$())=>x("varying",{id:t,inferFrom:[e]},e),ke=(e,t)=>x("member",null,e,t),Cr=(e,t,r)=>x("ternary",null,e,t,r),_t=(e,...t)=>x("operator",null,e,...t),u=(e,...t)=>x("function",null,e,...t),T=(e,...t)=>x("conversion",null,e,...t);var Pt=`
17
+ };`},Fe=(e,t,r="",o,n)=>{if(e.isWebGL)if(n){let s=[];for(let a in o)s.push(n[a]);return`${t} ${r} = ${t}(${R(s,e)});`}else return`${t} ${r};`;else if(n){let s=[];for(let a in o)s.push(n[a]);return`var ${r}: ${t} = ${t}(${R(s,e)});`}else return`var ${r}: ${t};`},Ue=(e,t,r)=>{let{id:o,children:n=[],layout:s}=t,[a,...c]=n,i=[],f=[];if(s?.inputs)for(let v of s.inputs)i.push([v.name,v.type]);else for(let v=0;v<c.length;v++)i.push([`p${v}`,h(c[v],e)]);let l=[];if(e?.isWebGL){for(let[v,g]of i)W(e,o,g),f.push(`${g} ${v}`);W(e,o,r),l.push(`${r} ${o}(${f}) {`)}else{for(let[v,g]of i)f.push(`${v}: ${G(g,e)}`);l.push(`fn ${o}(${f}) -> ${G(r,e)} {`)}let _=p(a,e);return _&&l.push(_),l.push("}"),l.join(`
18
+ `)},Ae=(e,t,r)=>e.isWebGL?`${r} ${t};`:`@location(${e.code?.vertVaryings?.size||0}) ${t}: ${G(r,e)}`,Be=(e,t,r)=>{let o=r==="sampler2D"||r==="texture";if(e.isWebGL)return o?`uniform sampler2D ${t};`:`uniform ${r} ${t};`;if(o){let{group:c=1,binding:i=0}=e.gl?.webgpu?.textures.map.get(t)||{};return`@group(${c}) @binding(${i}) var ${t}Sampler: sampler;
19
+ @group(${c}) @binding(${i+1}) var ${t}: texture_2d<f32>;`}let{group:n=0,binding:s=0}=e.gl?.webgpu?.uniforms.map.get(t)||{},a=G(r,e);return`@group(${n}) @binding(${s}) var<uniform> ${t}: ${a};`},De=(e,t,r)=>{if(e.isWebGL)return`${r} ${t};`;let{location:o=0}=e.gl?.webgpu?.attribs.map.get(t)||{},n=G(r,e);return`@location(${o}) ${t}: ${n}`},Me=(e,t,r,o)=>e.isWebGL?`const ${r} ${t} = ${o};`:`const ${t}: ${G(r,e)} = ${o};`;var p=(e,t)=>{if(t||(t={}),we(t),d.arr(e))return R(e,t);if(d.str(e))return e;if(d.num(e)){let g=`${e}`;return g.includes(".")?g:g+".0"}if(d.bol(e))return e?"true":"false";if(!e)return"";let{type:r,props:o}=e,{id:n="i",children:s=[],fields:a,initialValues:c}=o,[i,f,l,_]=s;if(r==="variable")return n;if(r==="member")return`${p(f,t)}.${p(i,t)}`;if(r==="ternary")return t.isWebGL?`(${p(l,t)} ? ${p(i,t)} : ${p(f,t)})`:`select(${p(i,t)}, ${p(f,t)}, ${p(l,t)})`;if(r==="conversion")return`${G(i,t)}(${R(s.slice(1),t)})`;if(r==="operator")return i==="not"||i==="bitNot"?`!${p(f,t)}`:`(${p(f,t)} ${Ee(i)} ${p(l,t)})`;if(r==="function")return i==="negate"?`(-${p(f,t)})`:i==="oneMinus"?`(1.0-${p(f,t)})`:i==="texture"?Le(t,f,l,_):i==="atan2"&&t.isWebGL?`atan(${p(f,t)}, ${p(l,t)})`:`${i}(${R(s.slice(1),t)})`;if(r==="scope")return s.map(g=>p(g,t)).join(`
20
+ `);if(r==="assign")return`${p(i,t)} = ${p(f,t)};`;if(r==="return")return`return ${p(i,t)};`;if(r==="loop")return t.isWebGL?`for (int ${n} = 0; ${n} < ${p(i,t)}; ${n} += 1) {
21
+ ${p(f,t)}
22
+ }`:`for (var ${n}: i32 = 0; ${n} < ${p(i,t)}; ${n}++) {
23
+ ${p(f,t)}
24
+ }`;if(r==="if")return Se(t,i,f,s);if(r==="switch")return Re(t,i,s);if(r==="declare")return Oe(t,i,f);if(r==="define")return t.code?.headers.has(n)||t.code?.headers.set(n,Ue(t,o,h(e,t))),`${n}(${R(s.slice(1),t)})`;if(r==="struct")return t.code?.headers.has(n)||t.code?.headers.set(n,Ie(t,n,a)),Fe(t,n,i.props.id,a,c);if(r==="varying"){if(t.code?.vertOutputs.has(n))return t.isWebGL?`${n}`:`out.${n}`;let g=Ae(t,n,h(e,t));return t.code?.fragInputs.set(n,g),t.code?.vertOutputs.set(n,g),t.code?.vertVaryings.set(n,p(i,t)),t.isWebGL?`${n}`:`out.${n}`}if(r==="builtin"){if(t.isWebGL)return Pe(n);if(n==="position")return"out.position";let g=`@builtin(${n}) ${n}: ${G(h(e,t),t)}`;return t.isFrag?t.code?.fragInputs.set(n,g):t.code?.vertInputs.set(n,g),`in.${n}`}if(r==="attribute"){let g=te(t,n,!0);return re(i,g),e.listeners.add(g),t.code?.vertInputs.set(n,De(t,n,h(e,t))),t.isWebGL?`${n}`:`in.${n}`}if(t.code?.headers.has(n))return n;let v="";if(r==="uniform"){let g=h(e,t),A=te(t,n,!1,g==="texture");re(i,A),e.listeners.add(A),v=Be(t,n,g)}return r==="constant"&&(v=Me(t,n,h(e,t),p(i,t))),v?(t.code?.headers.set(n,v),n):p(i,t)};var O=null,U=null,F=e=>{if(!O||(O.props.children||(O.props.children=[]),O.props.children.push(e),e.type!=="return"||!U))return;let{props:t}=U;t.inferFrom||(t.inferFrom=[]),t.inferFrom.push(e)},We=(e,t)=>{t||(t=P());let r=x("variable",{id:t,inferFrom:[e]}),o=x("declare",null,e,r);return F(o),r},Ve=(e,t)=>{let r=x("assign",null,e,t);return F(r),e},yt=e=>{let t=x("return",{inferFrom:[e]},e);return F(t),t},ar=(e,t=P())=>(r={},o=P())=>{let n=x("variable",{id:o,inferFrom:[t]}),s=x("struct",{id:t,fields:e,initialValues:r},n);return F(s),n},I=(e,t,r=U)=>{let o=O,n=U;O=e,U=r,o&&(e.props.parent=o);let s=t();s&&yt(s),O=o,U=n},ur=(e,t)=>{let r=x("scope");I(r,t);let o=x("if",null,e,r);F(o);let n=()=>({ElseIf:(s,a)=>{let c=x("scope");return I(c,a),o.props.children.push(s,c),n()},Else:s=>{let a=x("scope");I(a,s),o.props.children.push(a)}});return n()},pr=(e,t)=>{let r=x("scope"),o=P();I(r,()=>t({i:x("variable",{id:o,inferFrom:[T("int",0)]})}));let n=x("loop",{id:o},e,r);return F(n),n},cr=e=>{let t=x("switch",null,e);F(t);let r=()=>({Case:(...o)=>n=>{let s=x("scope");I(s,n);for(let a of o)t.props.children.push(a,s);return r()},Default:o=>{let n=x("scope");I(n,o),t.props.children.push(n)}});return r()},fr=(e,t=P())=>{let r,o=(...n)=>{let s=r?.name||t,a=x("scope"),c=[],i=[];if(r?.inputs)for(let l of r.inputs)i.push({id:l.name,inferFrom:[T(l.type)]});else for(let l=0;l<n.length;l++)i.push({id:`p${l}`,inferFrom:[n[l]]});for(let l of i)c.push(x("variable",l));let f=x("define",{id:s,layout:r},a,...n);return I(a,()=>e(c),f),f};return o.setLayout=n=>(r=n,o),o};var Ct=(e,t)=>{if(t==="string")return p(e)},x=(e,t,...r)=>{t||(t={}),r.length&&(t.children=r);let o=new Set,n=(c,i)=>{if(i==="type")return e;if(i==="props")return t;if(i==="toVar")return We.bind(null,a);if(i==="assign")return Ve.bind(null,a);if(i==="isProxy")return!0;if(i==="toString")return p.bind(null,a);if(i===Symbol.toPrimitive)return Ct.bind(null,a);if(i==="listeners")return o;if(ye(i))return(...f)=>Xt(i,a,...f);if(Ce(i))return(...f)=>u(i,a,...f);if(Xe(i))return()=>T($e(i),a);if(d.str(i))return ze(i,a)},s=(c,i,f)=>(i==="value"&&o.forEach(l=>l(f)),d.str(i)&&ze(i,a).assign(f),!0),a=new Proxy({},{get:n,set:s});return a},gr=(e,t=P())=>x("attribute",{id:t},e),br=(e,t=P())=>x("constant",{id:t},e),V=(e,t=P())=>x("uniform",{id:t},e),vr=(e=P())=>x("variable",{id:e}),C=(e=P())=>x("builtin",{id:e}),hr=(e,t=P())=>x("varying",{id:t,inferFrom:[e]},e),ze=(e,t)=>x("member",null,e,t),yr=(e,t,r)=>x("ternary",null,e,t,r),Xt=(e,...t)=>x("operator",null,e,...t),u=(e,...t)=>x("function",null,e,...t),T=(e,...t)=>x("conversion",null,e,...t);var _t=`
25
25
  #version 300 es
26
26
  precision mediump float;
27
27
  out vec4 fragColor;
28
- `.trim(),Ye=(e,t)=>{let r=f(e,t),o="";return t.isWebGL&&t.code?.dependencies?o=Ge(t.code.headers,t.code.dependencies).map(([,s])=>s).join(`
28
+ `.trim(),qe=(e,t)=>{let r=p(e,t),o="";return t.isWebGL&&t.code?.dependencies?o=Ne(t.code.headers,t.code.dependencies).map(([,s])=>s).join(`
29
29
  `):o=Array.from(t.code?.headers?.values()||[]).join(`
30
- `),[o,r]},se=(e,t)=>`struct ${e} {
30
+ `),[o,r]},oe=(e,t)=>`struct ${e} {
31
31
  ${Array.from(t.values()).join(`,
32
32
  `)}
33
- }`,k=(e,t)=>{if(d.str(e))return e.trim();t.code?.headers?.clear(),t.isFrag=!1;let[r,o]=Ye(e,t),n=[];if(t.isWebGL){n.push("#version 300 es");for(let i of t.code?.vertInputs?.values()||[])n.push(`in ${i}`);for(let i of t.code?.vertOutputs?.values()||[])n.push(`out ${i}`);n.push(r),n.push("void main() {"),n.push(` gl_Position = ${o};`);for(let[i,p]of t.code?.vertVaryings?.entries()||[])n.push(` ${i} = ${p};`)}else{t.code?.vertInputs?.size&&n.push(se("In",t.code.vertInputs)),t.code?.vertOutputs?.size&&n.push(se("Out",t.code.vertOutputs)),n.push(r),n.push("@vertex"),n.push(`fn main(${t.code?.vertInputs?.size?"in: In":""}) -> Out {`),n.push(" var out: Out;"),n.push(` out.position = ${o};`);for(let[i,p]of t.code?.vertVaryings?.entries()||[])n.push(` out.${i} = ${p};`);n.push(" return out;")}n.push("}");let s=n.filter(Boolean).join(`
34
- `).trim();return console.log(`\u2193\u2193\u2193generated\u2193\u2193\u2193
35
- ${s}`),s},q=(e,t)=>{if(d.str(e))return e.trim();t.code?.headers?.clear(),t.isFrag=!0;let[r,o]=Ye(e,t),n=[];if(t.isWebGL){n.push(Pt);for(let i of t.code?.fragInputs?.values()||[])n.push(`in ${i}`);n.push(r),n.push(`void main() {
36
- fragColor = ${o};`)}else t.code?.fragInputs?.size&&n.push(se("Out",t.code.fragInputs)),n.push(r),n.push(`@fragment
37
- fn main(out: Out) -> @location(0) vec4f {`),n.push(` return ${o};`);n.push("}");let s=n.filter(Boolean).join(`
38
- `).trim();return console.log(`\u2193\u2193\u2193generated\u2193\u2193\u2193
39
- ${s}`),s},ie=C("position"),ae=C("vertex_index"),Nr=C("instance_index"),$r=C("front_facing"),Gr=C("frag_depth"),Lr=C("sample_index"),Sr=C("sample_mask"),Rr=C("point_coord"),Or=C("position"),Ir=C("positionWorld"),Fr=C("positionView"),Ur=C("normalLocal"),Ar=C("normalWorld"),Br=C("normalView"),Dr=C("screenCoordinate"),Mr=C("screenUV"),Y=e=>T("float",e),M=e=>T("int",e),Wr=e=>T("uint",e),Vr=e=>T("bool",e),He=(e,t)=>T("vec2",e,t),qe=(e,t,r)=>T("vec3",e,t,r),ue=(e,t,r,o)=>T("vec4",e,t,r,o),zr=(...e)=>T("mat2",...e),kr=(...e)=>T("mat3",...e),qr=(...e)=>T("mat4",...e),Yr=(e,t)=>T("ivec2",e,t),Hr=(e,t,r)=>T("ivec3",e,t,r),jr=(e,t,r,o)=>T("ivec4",e,t,r,o),Kr=(e,t)=>T("uvec2",e,t),Zr=(e,t,r)=>T("uvec3",e,t,r),Qr=(e,t,r,o)=>T("uvec4",e,t,r,o),Jr=(e,t)=>T("bvec2",e,t),en=(e,t,r)=>T("bvec3",e,t,r),tn=(e,t,r,o)=>T("bvec4",e,t,r,o),rn=e=>T("texture",e),nn=()=>T("sampler2D"),on=(e,t,r)=>d.num(e)&&d.und(t)&&d.und(r)?qe(...Pe(e)):qe(e,t,r),pe=z(He(),"iResolution"),sn=z(He(),"iMouse"),an=z(Y(),"iTime"),un=ie.xy.div(pe),pn=(e,t,r)=>u("texture",e,t,r),cn=(e,t,r)=>u("cubeTexture",e,t,r),fn=(e,t)=>u("textureSize",e,t),dn=e=>u("length",e),ln=e=>u("lengthSq",e),xn=(e,t)=>u("distance",e,t),mn=(e,t)=>u("dot",e,t),Tn=e=>u("all",e),gn=e=>u("any",e),bn=(e,t)=>u("cross",e,t),vn=e=>u("abs",e),hn=e=>u("sign",e),yn=e=>u("floor",e),Cn=e=>u("ceil",e),Xn=e=>u("round",e),je=e=>u("fract",e),_n=e=>u("trunc",e),Pn=e=>u("sin",e),En=e=>u("cos",e),wn=e=>u("tan",e),Nn=e=>u("asin",e),$n=e=>u("acos",e),Gn=e=>u("atan",e),Ln=e=>u("sinh",e),Sn=e=>u("cosh",e),Rn=e=>u("tanh",e),On=e=>u("asinh",e),In=e=>u("acosh",e),Fn=e=>u("atanh",e),Un=e=>u("exp",e),An=e=>u("exp2",e),Bn=e=>u("log",e),Dn=e=>u("log2",e),Mn=e=>u("sqrt",e),Wn=e=>u("inverseSqrt",e),Vn=e=>u("normalize",e),zn=e=>u("oneMinus",e),kn=e=>u("saturate",e),qn=e=>u("negate",e),Yn=e=>u("reciprocal",e),Hn=e=>u("dFdx",e),jn=e=>u("dFdy",e),Kn=e=>u("fwidth",e),Zn=e=>u("degrees",e),Qn=e=>u("radians",e),Jn=(e,t)=>u("reflect",e,t),eo=(e,t,r)=>u("refract",e,t,r),to=(e,t)=>u("min",e,t),ro=(e,t)=>u("max",e,t),no=(e,t,r)=>u("mix",e,t,r),oo=(e,t,r)=>u("clamp",e,t,r),so=(e,t)=>u("step",e,t),io=(e,t,r)=>u("smoothstep",e,t,r),ao=(e,t)=>u("atan2",e,t),uo=(e,t)=>u("pow",e,t),po=e=>u("pow2",e),co=e=>u("pow3",e),fo=e=>u("pow4",e),lo=(e,t)=>u("bitcast",e,t),xo=e=>u("cbrt",e),mo=(e,t)=>u("difference",e,t),To=(e,t)=>u("equals",e,t),go=(e,t,r)=>u("faceforward",e,t,r),bo=(e,t)=>u("transformDirection",e,t);var Ke=(e,t,r)=>{let o=e.createShader(r);if(!o)throw new Error("Failed to create shader");if(e.shaderSource(o,t.trim()),e.compileShader(o),e.getShaderParameter(o,e.COMPILE_STATUS))return o;let n=e.getShaderInfoLog(o);e.deleteShader(o),console.warn(`Could not compile shader: ${n}`)},Ze=(e,t,r,o=()=>{})=>{let n=e.createProgram(),s=Ke(e,r,e.FRAGMENT_SHADER),i=Ke(e,t,e.VERTEX_SHADER);if(!s||!i)return o();if(e.attachShader(n,i),e.attachShader(n,s),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS))return n;let p=e.getProgramInfoLog(n);e.deleteProgram(n),o(),console.warn(`Could not link program: ${p}`)},Qe=(e,t)=>{let r=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,r),e.bufferData(e.ARRAY_BUFFER,new Float32Array(t),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),r},Je=(e,t)=>{let r=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(t),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),r},et=(e,t,r)=>{r&&(e=Math.max(...r)+1);let o=t.length/e;return Math.floor(o)},tt=(e,t,r,o,n)=>{e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(r),e.vertexAttribPointer(r,t,e.FLOAT,!1,0,0),n&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)},rt=(e,t,r,o)=>{let n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(r,o),e.activeTexture(e.TEXTURE0+o),e.bindTexture(e.TEXTURE_2D,n)};var nt=async e=>{let t=e.el.getContext("webgl2"),r={isWebGL:!0,gl:e},o=q(e.fs,r),n=k(e.vs,r),s=Ze(t,n,o,()=>void(e.isLoop=!1));t.useProgram(s);let i=0,p=ce(w=>t.getUniformLocation(s,w)),a=ce(w=>t.getAttribLocation(s,w)),c=ce(()=>i++);return{render:()=>{t.clear(t.COLOR_BUFFER_BIT),t.viewport(0,0,...e.size),t.drawArrays(t.TRIANGLES,0,3)},clean:()=>t.deleteProgram(s),_attribute:(w="",_,N)=>{let L=a(w,!0),B=Qe(t,_),H=Je(t,N),h=et(e.count,_,N);tt(t,h,L,B,H)},_uniform:(w,_)=>{let N=p(w);if(d.num(_))return t.uniform1f(N,_);let L=_.length;if(L<=4)return t[`uniform${L}fv`](N,_);L=Math.sqrt(L)<<0,t[`uniformMatrix${L}fv`](N,!1,_)},_texture:(w,_)=>{let N=new Image;Object.assign(N,{src:_,crossOrigin:"anonymous"}),N.decode().then(()=>{let L=p(w),B=c(w);rt(t,N,L,B)})},webgl:{context:t,program:s}}};import{nested as fe}from"reev";var ot=async e=>{let t=navigator.gpu,r=t.getPreferredCanvasFormat(),n=await(await t.requestAdapter()).requestDevice();return e.configure({device:n,format:r,alphaMode:"opaque"}),{device:n,format:r}},st=()=>{let e=0,t=0,r=0;return{uniform:()=>{let o=Math.floor(e/12),n=e%12;return e++,{group:o,binding:n}},texture:()=>{let n=Math.floor(e/12)+1+Math.floor(t/6),s=t%6*2;return t++,{group:n,binding:s}},attrib:()=>{let o=r;return r++,{location:o}}}},Et=e=>e===2?"float32x2":e===3?"float32x3":e===4?"float32x4":"float32",it=e=>{let t=[],r=[];for(let{buffer:o,location:n,stride:s}of e)t[n]=o,r[n]={arrayStride:s*4,attributes:[{shaderLocation:n,offset:0,format:Et(s)}]};return{vertexBuffers:t,bufferLayouts:r}},at=(e,t,r)=>{let o=new Map,n={bindGroups:[],bindGroupLayouts:[]},s=(i,p,a)=>{o.has(i)||o.set(i,{layouts:[],bindings:[]});let{layouts:c,bindings:l}=o.get(i);c.push(p),l.push(a)};for(let{binding:i,buffer:p,group:a}of t)s(a,{binding:i,visibility:3,buffer:{type:"uniform"}},{binding:i,resource:{buffer:p}});for(let{binding:i,group:p,sampler:a,view:c}of r)s(p,{binding:i,visibility:2,sampler:{}},{binding:i,resource:a}),s(p,{binding:i+1,visibility:2,texture:{}},{binding:i+1,resource:c});for(let[i,{layouts:p,bindings:a}]of o)n.bindGroupLayouts[i]=e.createBindGroupLayout({entries:p}),n.bindGroups[i]=e.createBindGroup({layout:n.bindGroupLayouts[i],entries:a});return n},ut=(e,t,r,o,n,s)=>e.createRenderPipeline({vertex:{module:e.createShaderModule({label:"vert",code:n}),entryPoint:"main",buffers:r},fragment:{module:e.createShaderModule({label:"frag",code:s}),entryPoint:"main",targets:[{format:t}]},layout:e.createPipelineLayout({bindGroupLayouts:o}),primitive:{topology:"triangle-list"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}}),pt=(e,t)=>{let r=new Float32Array(t),o=Math.ceil(r.byteLength/256)*256,n=e.createBuffer({size:o,usage:72});return{array:r,buffer:n}},ct=(e,t)=>{let r=new Float32Array(t),o=e.createBuffer({size:r.byteLength,usage:40});return{array:r,buffer:o}},ft=(e,t)=>({colorAttachments:[{view:e.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:t.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}}),dt=(e,t=1280,r=800)=>{let o=e.createTexture({size:[t,r],format:"rgba8unorm",usage:22}),n=e.createSampler({magFilter:"linear",minFilter:"linear"});return{texture:o,sampler:n}},lt=(e,t,r)=>e.createTexture({size:[t,r],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT});var xt=async e=>{let t=e.el.getContext("webgpu"),{device:r,format:o}=await ot(t),n=st(),s,i,p=h=>{},a=0,c=!0,l,E=fe((h,g)=>{c=!0;let{array:y,buffer:X}=pt(r,g),{binding:S,group:P}=n.uniform();return{binding:S,group:P,array:y,buffer:X}}),b=fe((h,g=0,y=0)=>{c=!0;let{texture:X,sampler:S}=dt(r,g,y),{binding:P,group:D}=n.texture();return{binding:P,group:D,texture:X,sampler:S,view:X.createView()}}),m=fe((h,g)=>{c=!0;let y=g.length/e.count,{location:X}=n.attrib(),{array:S,buffer:P}=ct(r,g);return{array:S,buffer:P,location:X,stride:y}}),A=()=>{let{vertexBuffers:h,bufferLayouts:g}=it(m.map.values()),{bindGroups:y,bindGroupLayouts:X}=at(r,E.map.values(),b.map.values()),S=ut(r,o,g,X,i,s);p=P=>{P.setPipeline(S),y.forEach((D,j)=>P.setBindGroup(j,D)),h.forEach((D,j)=>P.setVertexBuffer(j,D)),P.draw(e.count,1,0,0),P.end()}},w=()=>{if(!s||!i){let g={isWebGL:!1,gl:e};s=q(e.fs,g),i=k(e.vs,g)}if(a)return;c&&A(),c=!1;let h=r.createCommandEncoder();p(h.beginRenderPass(ft(t,l))),r.queue.submit([h.finish()])},_=()=>{let h=e.el;l?.destroy(),l=lt(r,h.width,h.height)},N=()=>{l?.destroy()},L=(h="",g)=>{let{array:y,buffer:X}=m(h,g);y.set(g),r.queue.writeBuffer(X,0,y)},B=(h,g)=>{d.num(g)&&(g=[g]);let{array:y,buffer:X}=E(h,g);y.set(g),r.queue.writeBuffer(X,0,y)},H=(h,g)=>{a++;let y=Object.assign(new Image,{src:g,crossOrigin:"anonymous"});y.decode().then(()=>{let{width:X,height:S}=y,{texture:P}=b(h,X,S);r.queue.copyExternalImageToTexture({source:y},{texture:P},{width:X,height:S}),a--})};return _(),{webgpu:{device:r,uniforms:E,textures:b,attribs:m},render:w,resize:_,clean:N,_attribute:L,_uniform:B,_texture:H}};var Vo=e=>d.obj(e)?"isGL"in e:!1,Gt=()=>typeof window>"u",Lt=()=>Gt()?!1:"gpu"in navigator,le=performance.now(),St=()=>ue(je(ie.xy.div(pe)),0,1),Rt=()=>ue(Y(M(ae).mod(M(2))).mul(4).sub(1),Y(M(ae).div(M(2))).mul(4).sub(1),0,1),Ot=e=>{let t=wt({isNative:!1,isWebGL:!0,isLoop:!0,isGL:!0,size:[0,0],mouse:[0,0],count:6,webgl:{},webgpu:{}});return t.queue=$t(),t.frame=Nt(),t.attribute=de((r,o,n)=>t.queue(()=>t._attribute?.(r,o,n)),t),t.uniform=de((r,o,n)=>t.queue(()=>t._uniform?.(r,o,n)),t),t.texture=de((r,o)=>t.queue(()=>t._texture?.(r,o)),t),t.uniform({iResolution:t.size,iMouse:[0,0],iTime:le}),t("mount",async()=>{t.vs=t.vs||t.vert||t.vertex||Rt(),t.fs=t.fs||t.frag||t.fragment||St(),Lt()||(t.isWebGL=!0),t.isWebGL?t(await nt(t)):t(await xt(t)),t.resize(),t.frame(()=>(t.loop(),t.queue.flush(),t.render(),t.isLoop)),!t.isNative&&(window.addEventListener("resize",t.resize),t.el.addEventListener("mousemove",t.mousemove))}),t("clean",()=>{t.frame.stop(),t.frame.clean(t.render),!t.isNative&&(window.removeEventListener("resize",t.resize),t.el.removeEventListener("mousemove",t.mousemove))}),t("resize",()=>{let r=t.width||window.innerWidth,o=t.height||window.innerHeight;t.size[0]=t.el.width=r,t.size[1]=t.el.height=o,t.uniform("iResolution",t.size)}),t("mousemove",(r,o=r.clientX,n=r.clientY)=>{let[s,i]=t.size,{top:p,left:a}=t.el.getBoundingClientRect();t.mouse[0]=(o-p-s/2)/(s/2),t.mouse[1]=-(n-a-i/2)/(i/2),t.uniform("iMouse",t.mouse)}),t("loop",()=>{le=performance.now()/1e3,t.uniform("iTime",le)}),t(e)},zo=Ot;export{dr as Fn,pr as If,cr as Loop,Ct as Return,fr as Switch,vn as abs,$n as acos,In as acosh,V as addDependency,Tn as all,gn as any,Nn as asin,On as asinh,ze as assign,Gn as atan,ao as atan2,Fn as atanh,br as attribute,lo as bitcast,Vr as bool,C as builtin,Jr as bvec2,en as bvec3,tn as bvec4,xo as cbrt,Cn as ceil,oo as clamp,f as code,on as color,vr as constant,T as conversion,Ne as conversionToConstant,En as cos,Sn as cosh,tt as createAttrib,ct as createAttribBuffer,at as createBindGroup,st as createBindings,lt as createDepthTexture,ft as createDescriptor,ot as createDevice,Ot as createGL,Je as createIbo,ut as createPipeline,Ze as createProgram,rt as createTexture,dt as createTextureSampler,pt as createUniformBuffer,Qe as createVbo,it as createVertexBuffers,bn as cross,cn as cubeTexture,Hn as dFdx,jn as dFdy,zo as default,Zn as degrees,mo as difference,Bt as dig,xn as distance,mn as dot,mt as each,To as equals,Un as exp,An as exp2,Ut as ext,go as faceforward,At as fig,Y as float,yn as floor,It as flush,G as formatConversions,je as fract,Gr as fragDepth,q as fragment,$r as frontFacing,u as function_,Kn as fwidth,we as getBluiltin,re as getEventFun,$ as getId,Ee as getOperator,et as getStride,Pe as hex2rgb,sn as iMouse,pe as iResolution,an as iTime,$e as initNodeContext,Nr as instanceIndex,M as int,Wn as inverseSqrt,d as is,te as isConstants,_e as isConversion,Xe as isFunction,Vo as isGL,W as isNodeProxy,Ce as isOperator,Gt as isServer,ye as isSwizzle,Lt as isWebGPUSupported,Yr as ivec2,Hr as ivec3,jr as ivec4,dn as length,ln as lengthSq,Bn as log,Dn as log2,zr as mat2,kr as mat3,qr as mat4,ro as max,ke as member,to as min,no as mix,qn as negate,x as node,Ur as normalLocal,Br as normalView,Ar as normalWorld,Vn as normalize,zn as oneMinus,_t as operator,Rr as pointCoord,ie as position,Or as positionLocal,Fr as positionView,Ir as positionWorld,uo as pow,po as pow2,co as pow3,fo as pow4,Qn as radians,Yn as reciprocal,Jn as reflect,eo as refract,Ft as replace,Xn as round,ne as safeEventCall,Lr as sampleIndex,Sr as sampleMask,nn as sampler2D,kn as saturate,Dr as screenCoordinate,Mr as screenUV,Cr as select,Dt as sig,hn as sign,Pn as sin,Ln as sinh,io as smoothstep,Ge as sortHeadersByDependencies,Mn as sqrt,so as step,ur as struct,wn as tan,Rn as tanh,pn as texture,rn as texture2D,fn as textureSize,Ve as toVar,bo as transformDirection,_n as trunc,Wr as uint,z as uniform,un as uv,Kr as uvec2,Zr as uvec3,Qr as uvec4,hr as variable,He as vec2,qe as vec3,ue as vec4,k as vertex,ae as vertexIndex,yr as vertexStage,nt as webgl,xt as webgpu};
33
+ }`,z=(e,t)=>{if(d.str(e))return e.trim();t.code?.headers?.clear(),t.isFrag=!1;let[r,o]=qe(e,t),n=[];if(t.isWebGL){n.push("#version 300 es");for(let a of t.code?.vertInputs?.values()||[])n.push(`in ${a}`);for(let a of t.code?.vertOutputs?.values()||[])n.push(`out ${a}`);n.push(r),n.push("void main() {"),n.push(` gl_Position = ${o};`);for(let[a,c]of t.code?.vertVaryings?.entries()||[])n.push(` ${a} = ${c};`)}else{t.code?.vertInputs?.size&&n.push(oe("In",t.code.vertInputs)),t.code?.vertOutputs?.size&&n.push(oe("Out",t.code.vertOutputs)),n.push(r),n.push("@vertex"),n.push(`fn main(${t.code?.vertInputs?.size?"in: In":""}) -> Out {`),n.push(" var out: Out;"),n.push(` out.position = ${o};`);for(let[a,c]of t.code?.vertVaryings?.entries()||[])n.push(` out.${a} = ${c};`);n.push(" return out;")}return n.push("}"),n.filter(Boolean).join(`
34
+ `).trim()},k=(e,t)=>{if(d.str(e))return e.trim();t.code?.headers?.clear(),t.isFrag=!0;let[r,o]=qe(e,t),n=[];if(t.isWebGL){n.push(_t);for(let a of t.code?.fragInputs?.values()||[])n.push(`in ${a}`);n.push(r),n.push(`void main() {
35
+ fragColor = ${o};`)}else t.code?.fragInputs?.size&&n.push(oe("Out",t.code.fragInputs)),n.push(r),n.push(`@fragment
36
+ fn main(out: Out) -> @location(0) vec4f {`),n.push(` return ${o};`);return n.push("}"),n.filter(Boolean).join(`
37
+ `).trim()},se=C("position"),ie=C("vertex_index"),$r=C("instance_index"),wr=C("front_facing"),Nr=C("frag_depth"),Gr=C("sample_index"),Lr=C("sample_mask"),Sr=C("point_coord"),Rr=C("position"),Or=C("positionWorld"),Ir=C("positionView"),Fr=C("normalLocal"),Ur=C("normalWorld"),Ar=C("normalView"),Br=C("screenCoordinate"),Dr=C("screenUV"),q=e=>T("float",e),D=e=>T("int",e),Mr=e=>T("uint",e),Wr=e=>T("bool",e),Ye=(e,t)=>T("vec2",e,t),ke=(e,t,r)=>T("vec3",e,t,r),ae=(e,t,r,o)=>T("vec4",e,t,r,o),Vr=(...e)=>T("mat2",...e),zr=(...e)=>T("mat3",...e),kr=(...e)=>T("mat4",...e),qr=(e,t)=>T("ivec2",e,t),Yr=(e,t,r)=>T("ivec3",e,t,r),Hr=(e,t,r,o)=>T("ivec4",e,t,r,o),jr=(e,t)=>T("uvec2",e,t),Kr=(e,t,r)=>T("uvec3",e,t,r),Zr=(e,t,r,o)=>T("uvec4",e,t,r,o),Qr=(e,t)=>T("bvec2",e,t),Jr=(e,t,r)=>T("bvec3",e,t,r),en=(e,t,r,o)=>T("bvec4",e,t,r,o),tn=e=>T("texture",e),rn=()=>T("sampler2D"),nn=(e,t,r)=>d.num(e)&&d.und(t)&&d.und(r)?ke(..._e(e)):ke(e,t,r),ue=V(Ye(),"iResolution"),on=V(Ye(),"iMouse"),sn=V(q(),"iTime"),an=se.xy.div(ue),un=(e,t,r)=>u("texture",e,t,r),pn=(e,t,r)=>u("cubeTexture",e,t,r),cn=(e,t)=>u("textureSize",e,t),fn=e=>u("length",e),dn=e=>u("lengthSq",e),ln=(e,t)=>u("distance",e,t),xn=(e,t)=>u("dot",e,t),mn=e=>u("all",e),Tn=e=>u("any",e),gn=(e,t)=>u("cross",e,t),bn=e=>u("abs",e),vn=e=>u("sign",e),hn=e=>u("floor",e),yn=e=>u("ceil",e),Cn=e=>u("round",e),He=e=>u("fract",e),Xn=e=>u("trunc",e),_n=e=>u("sin",e),En=e=>u("cos",e),Pn=e=>u("tan",e),$n=e=>u("asin",e),wn=e=>u("acos",e),Nn=e=>u("atan",e),Gn=e=>u("sinh",e),Ln=e=>u("cosh",e),Sn=e=>u("tanh",e),Rn=e=>u("asinh",e),On=e=>u("acosh",e),In=e=>u("atanh",e),Fn=e=>u("exp",e),Un=e=>u("exp2",e),An=e=>u("log",e),Bn=e=>u("log2",e),Dn=e=>u("sqrt",e),Mn=e=>u("inverseSqrt",e),Wn=e=>u("normalize",e),Vn=e=>u("oneMinus",e),zn=e=>u("saturate",e),kn=e=>u("negate",e),qn=e=>u("reciprocal",e),Yn=e=>u("dFdx",e),Hn=e=>u("dFdy",e),jn=e=>u("fwidth",e),Kn=e=>u("degrees",e),Zn=e=>u("radians",e),Qn=(e,t)=>u("reflect",e,t),Jn=(e,t,r)=>u("refract",e,t,r),eo=(e,t)=>u("min",e,t),to=(e,t)=>u("max",e,t),ro=(e,t,r)=>u("mix",e,t,r),no=(e,t,r)=>u("clamp",e,t,r),oo=(e,t)=>u("step",e,t),so=(e,t,r)=>u("smoothstep",e,t,r),io=(e,t)=>u("atan2",e,t),ao=(e,t)=>u("pow",e,t),uo=e=>u("pow2",e),po=e=>u("pow3",e),co=e=>u("pow4",e),fo=(e,t)=>u("bitcast",e,t),lo=e=>u("cbrt",e),xo=(e,t)=>u("difference",e,t),mo=(e,t)=>u("equals",e,t),To=(e,t,r)=>u("faceforward",e,t,r),go=(e,t)=>u("transformDirection",e,t),bo=(e,t)=>e.sub(e.div(t).floor().mul(t));var je=(e,t,r,o=console.warn)=>{let n=e.createShader(r);if(!n)return o("Failed to create shader");if(e.shaderSource(n,t.trim()),e.compileShader(n),e.getShaderParameter(n,e.COMPILE_STATUS))return n;let s=e.getShaderInfoLog(n);e.deleteShader(n),o(`Could not compile shader: ${s}`)},Ke=(e,t,r,o=console.warn)=>{let n=e.createProgram(),s=je(e,r,e.FRAGMENT_SHADER,o),a=je(e,t,e.VERTEX_SHADER,o);if(!s||!a)return;if(e.attachShader(n,a),e.attachShader(n,s),e.linkProgram(n),e.getProgramParameter(n,e.LINK_STATUS))return n;let c=e.getProgramInfoLog(n);e.deleteProgram(n),o(`Could not link program: ${c}`)},Ze=(e,t)=>{let r=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,r),e.bufferData(e.ARRAY_BUFFER,new Float32Array(t),e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,null),r},Qe=(e,t)=>{let r=e.createBuffer();return e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,r),e.bufferData(e.ELEMENT_ARRAY_BUFFER,new Int16Array(t),e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null),r},Je=(e,t,r)=>{r&&(e=Math.max(...r)+1);let o=t.length/e;return Math.floor(o)},et=(e,t,r,o,n)=>{e.bindBuffer(e.ARRAY_BUFFER,o),e.enableVertexAttribArray(r),e.vertexAttribPointer(r,t,e.FLOAT,!1,0,0),n&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)},tt=(e,t,r,o)=>{let n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.bindTexture(e.TEXTURE_2D,null),e.uniform1i(r,o),e.activeTexture(e.TEXTURE0+o),e.bindTexture(e.TEXTURE_2D,n)};var rt=async e=>{let t=e.el.getContext("webgl2"),r={isWebGL:!0,gl:e},o=k(e.fs,r),n=z(e.vs,r),s=Ke(t,n,o,e.error);t.useProgram(s);let a=0,c=pe($=>t.getUniformLocation(s,$)),i=pe($=>t.getAttribLocation(s,$)),f=pe(()=>a++);return{webgl:{context:t,program:s},render:()=>{t.clear(t.COLOR_BUFFER_BIT),t.viewport(0,0,...e.size),t.drawArrays(t.TRIANGLES,0,3)},clean:()=>{t.deleteProgram(s),t.getExtension("WEBGL_lose_context")?.loseContext(),e.el.width=1,e.el.height=1},_attribute:($="",w,N)=>{let L=i($,!0),m=Ze(t,w),b=Qe(t,N),y=Je(e.count,w,N);et(t,y,L,m,b)},_uniform:($,w)=>{let N=c($);if(d.num(w))return t.uniform1f(N,w);let L=w.length;if(L<=4)return t[`uniform${L}fv`](N,w);L=Math.sqrt(L)<<0,t[`uniformMatrix${L}fv`](N,!1,w)},_texture:($,w)=>{e.loading++;let N=new Image;Object.assign(N,{src:w,crossOrigin:"anonymous"}),N.decode().then(()=>{let L=c($),m=f($);tt(t,N,L,m),e.loading--})}}};import{nested as ce}from"reev";var nt=async e=>{let t=navigator.gpu,r=t.getPreferredCanvasFormat(),n=await(await t.requestAdapter()).requestDevice();return e.configure({device:n,format:r,alphaMode:"opaque"}),{device:n,format:r}},ot=()=>{let e=0,t=0,r=0;return{uniform:()=>{let o=Math.floor(e/12),n=e%12;return e++,{group:o,binding:n}},texture:()=>{let n=Math.floor(e/12)+1+Math.floor(t/6),s=t%6*2;return t++,{group:n,binding:s}},attrib:()=>{let o=r;return r++,{location:o}}}},Et=e=>e===2?"float32x2":e===3?"float32x3":e===4?"float32x4":"float32",st=e=>{let t=[],r=[];for(let{buffer:o,location:n,stride:s}of e)t[n]=o,r[n]={arrayStride:s*4,attributes:[{shaderLocation:n,offset:0,format:Et(s)}]};return{vertexBuffers:t,bufferLayouts:r}},it=(e,t,r)=>{let o=new Map,n={bindGroups:[],bindGroupLayouts:[]},s=(a,c,i)=>{o.has(a)||o.set(a,{layouts:[],bindings:[]});let{layouts:f,bindings:l}=o.get(a);f.push(c),l.push(i)};for(let{binding:a,buffer:c,group:i}of t)s(i,{binding:a,visibility:3,buffer:{type:"uniform"}},{binding:a,resource:{buffer:c}});for(let{binding:a,group:c,sampler:i,view:f}of r)s(c,{binding:a,visibility:2,sampler:{}},{binding:a,resource:i}),s(c,{binding:a+1,visibility:2,texture:{}},{binding:a+1,resource:f});for(let[a,{layouts:c,bindings:i}]of o)n.bindGroupLayouts[a]=e.createBindGroupLayout({entries:c}),n.bindGroups[a]=e.createBindGroup({layout:n.bindGroupLayouts[a],entries:i});return n},at=(e,t,r,o,n,s)=>e.createRenderPipeline({vertex:{module:e.createShaderModule({label:"vert",code:n}),entryPoint:"main",buffers:r},fragment:{module:e.createShaderModule({label:"frag",code:s}),entryPoint:"main",targets:[{format:t}]},layout:e.createPipelineLayout({bindGroupLayouts:o}),primitive:{topology:"triangle-list"},depthStencil:{depthWriteEnabled:!0,depthCompare:"less",format:"depth24plus"}}),ut=(e,t)=>{let r=new Float32Array(t),o=Math.ceil(r.byteLength/256)*256,n=e.createBuffer({size:o,usage:72});return{array:r,buffer:n}},pt=(e,t)=>{let r=new Float32Array(t),o=e.createBuffer({size:r.byteLength,usage:40});return{array:r,buffer:o}},ct=(e,t)=>({colorAttachments:[{view:e.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}],depthStencilAttachment:{view:t.createView(),depthClearValue:1,depthLoadOp:"clear",depthStoreOp:"store"}}),ft=(e,t=1280,r=800)=>{let o=e.createTexture({size:[t,r],format:"rgba8unorm",usage:22}),n=e.createSampler({magFilter:"linear",minFilter:"linear"});return{texture:o,sampler:n}},dt=(e,t,r)=>e.createTexture({size:[t,r],format:"depth24plus",usage:GPUTextureUsage.RENDER_ATTACHMENT});var lt=async e=>{let t=e.el.getContext("webgpu"),{device:r,format:o}=await nt(t);r.onuncapturederror=m=>e.error(m.error.message);let n=ot(),s,a,c=m=>{},i=!0,f,l=ce((m,b)=>{i=!0;let{array:y,buffer:X}=ut(r,b),{binding:S,group:E}=n.uniform();return{binding:S,group:E,array:y,buffer:X}}),_=ce((m,b=0,y=0)=>{i=!0;let{texture:X,sampler:S}=ft(r,b,y),{binding:E,group:B}=n.texture();return{binding:E,group:B,texture:X,sampler:S,view:X.createView()}}),v=ce((m,b)=>{i=!0;let y=b.length/e.count,{location:X}=n.attrib(),{array:S,buffer:E}=pt(r,b);return{array:S,buffer:E,location:X,stride:y}}),g=()=>{let{vertexBuffers:m,bufferLayouts:b}=st(v.map.values()),{bindGroups:y,bindGroupLayouts:X}=it(r,l.map.values(),_.map.values()),S=at(r,o,b,X,a,s);c=E=>{E.setPipeline(S),y.forEach((B,H)=>E.setBindGroup(H,B)),m.forEach((B,H)=>E.setVertexBuffer(H,B)),E.draw(e.count,1,0,0),E.end()}},A=()=>{if(!s||!a){let b={isWebGL:!1,gl:e};s=k(e.fs,b),a=z(e.vs,b)}if(e.loading)return;i&&g(),i=!1;let m=r.createCommandEncoder();c(m.beginRenderPass(ct(t,f))),r.queue.submit([m.finish()])},Y=()=>{let m=e.el;f?.destroy(),f=dt(r,m.width,m.height)},$=()=>{r.destroy(),f?.destroy();for(let{texture:m}of _.map.values())m.destroy();for(let{buffer:m}of l.map.values())m.destroy();for(let{buffer:m}of v.map.values())m.destroy()},w=(m="",b)=>{let{array:y,buffer:X}=v(m,b);y.set(b),r.queue.writeBuffer(X,0,y)},N=(m,b)=>{d.num(b)&&(b=[b]);let{array:y,buffer:X}=l(m,b);y.set(b),r.queue.writeBuffer(X,0,y)},L=(m,b)=>{e.loading++;let y=Object.assign(new Image,{src:b,crossOrigin:"anonymous"});y.decode().then(()=>{let{width:X,height:S}=y,{texture:E}=_(m,X,S);r.queue.copyExternalImageToTexture({source:y},{texture:E},{width:X,height:S}),e.loading--})};return Y(),{webgpu:{device:r,uniforms:l,textures:_,attribs:v},render:A,resize:Y,clean:$,_attribute:w,_uniform:N,_texture:L}};var Vo=e=>d.obj(e)?"isGL"in e:!1,Nt=()=>typeof window>"u",Gt=()=>Nt()?!1:"gpu"in navigator,de=performance.now(),Lt=()=>ae(He(se.xy.div(ue)),0,1),St=()=>ae(q(D(ie).mod(D(2))).mul(4).sub(1),q(D(ie).div(D(2))).mul(4).sub(1),0,1),Rt=e=>{let t=Pt({isNative:!1,isWebGL:!0,isError:!1,isLoop:!0,isGL:!0,size:[0,0],mouse:[0,0],count:6,webgl:{},webgpu:{},loading:0,error(){t.isError=!0,t.isLoop=!1,t.clean()}});return t.queue=wt(),t.frame=$t(),t.attribute=fe((r,o,n)=>t.queue(()=>t._attribute?.(r,o,n)),t),t.uniform=fe((r,o,n)=>t.queue(()=>t._uniform?.(r,o,n)),t),t.texture=fe((r,o)=>t.queue(()=>t._texture?.(r,o)),t),t.uniform({iResolution:t.size,iMouse:[0,0],iTime:de}),t("mount",async()=>{t.vs=t.vs||t.vert||t.vertex||St(),t.fs=t.fs||t.frag||t.fragment||Lt(),Gt()||(t.isWebGL=!0),t.isWebGL?t(await rt(t)):t(await lt(t)),!t.isError&&(t.resize(),t.frame(()=>(t.loop(),t.queue.flush(),t.loading?!0:(t.render(),t.isLoop))),!t.isNative&&(window.addEventListener("resize",t.resize),t.el.addEventListener("mousemove",t.mousemove)))}),t("clean",()=>{t.frame.stop(),!t.isNative&&(window.removeEventListener("resize",t.resize),t.el.removeEventListener("mousemove",t.mousemove))}),t("resize",()=>{let r=t.width||window.innerWidth,o=t.height||window.innerHeight;t.size[0]=t.el.width=r,t.size[1]=t.el.height=o,t.uniform("iResolution",t.size)}),t("mousemove",(r,o=r.clientX,n=r.clientY)=>{let[s,a]=t.size,{top:c,left:i}=t.el.getBoundingClientRect();t.mouse[0]=(o-c-s/2)/(s/2),t.mouse[1]=-(n-i-a/2)/(a/2),t.uniform("iMouse",t.mouse)}),t("loop",()=>{de=performance.now()/1e3,t.uniform("iTime",de)}),t(e)},zo=Rt;export{fr as Fn,ur as If,pr as Loop,yt as Return,cr as Switch,bn as abs,wn as acos,On as acosh,W as addDependency,mn as all,Tn as any,$n as asin,Rn as asinh,Ve as assign,Nn as atan,io as atan2,In as atanh,gr as attribute,fo as bitcast,Wr as bool,C as builtin,Qr as bvec2,Jr as bvec3,en as bvec4,lo as cbrt,yn as ceil,no as clamp,p as code,nn as color,br as constant,T as conversion,$e as conversionToConstant,En as cos,Ln as cosh,et as createAttrib,pt as createAttribBuffer,it as createBindGroup,ot as createBindings,dt as createDepthTexture,ct as createDescriptor,nt as createDevice,Rt as createGL,Qe as createIbo,at as createPipeline,Ke as createProgram,tt as createTexture,ft as createTextureSampler,ut as createUniformBuffer,Ze as createVbo,st as createVertexBuffers,gn as cross,pn as cubeTexture,Yn as dFdx,Hn as dFdy,zo as default,Kn as degrees,xo as difference,At as dig,ln as distance,xn as dot,xt as each,mo as equals,Fn as exp,Un as exp2,Ft as ext,To as faceforward,Ut as fig,q as float,hn as floor,Ot as flush,G as formatConversions,He as fract,Nr as fragDepth,k as fragment,wr as frontFacing,u as function_,jn as fwidth,Pe as getBluiltin,te as getEventFun,P as getId,Ee as getOperator,Je as getStride,_e as hex2rgb,on as iMouse,ue as iResolution,sn as iTime,we as initNodeContext,$r as instanceIndex,D as int,Mn as inverseSqrt,d as is,ee as isConstants,Xe as isConversion,Ce as isFunction,Vo as isGL,M as isNodeProxy,ye as isOperator,Nt as isServer,he as isSwizzle,Gt as isWebGPUSupported,qr as ivec2,Yr as ivec3,Hr as ivec4,fn as length,dn as lengthSq,An as log,Bn as log2,Vr as mat2,zr as mat3,kr as mat4,to as max,ze as member,eo as min,ro as mix,bo as mod,kn as negate,x as node,Fr as normalLocal,Ar as normalView,Ur as normalWorld,Wn as normalize,Vn as oneMinus,Xt as operator,Sr as pointCoord,se as position,Rr as positionLocal,Ir as positionView,Or as positionWorld,ao as pow,uo as pow2,po as pow3,co as pow4,Zn as radians,qn as reciprocal,Qn as reflect,Jn as refract,It as replace,Cn as round,re as safeEventCall,Gr as sampleIndex,Lr as sampleMask,rn as sampler2D,zn as saturate,Br as screenCoordinate,Dr as screenUV,yr as select,Bt as sig,vn as sign,_n as sin,Gn as sinh,so as smoothstep,Ne as sortHeadersByDependencies,Dn as sqrt,oo as step,ar as struct,Pn as tan,Sn as tanh,un as texture,tn as texture2D,cn as textureSize,We as toVar,go as transformDirection,Xn as trunc,Mr as uint,V as uniform,an as uv,jr as uvec2,Kr as uvec3,Zr as uvec4,vr as variable,Ye as vec2,ke as vec3,ae as vec4,z as vertex,ie as vertexIndex,hr as vertexStage,rt as webgl,lt as webgpu};
40
38
  //# sourceMappingURL=index.js.map