Skip to content

Commit c21e975

Browse files
feat(shader-ast): add uvec support for basic math ops (#435)
- update function signatures for basic math ops: add, sub, mul, div
1 parent 4c082d7 commit c21e975

File tree

1 file changed

+17
-1
lines changed
  • packages/shader-ast/src/ast

1 file changed

+17
-1
lines changed

packages/shader-ast/src/ast/ops.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ export function add<T extends IVec>(l: IntTerm | number, r: Term<T>): Op2<T>;
129129
// prettier-ignore
130130
export function add<T extends IVec>(l: Term<T>, r: IntTerm | number): Op2<T>;
131131
// prettier-ignore
132+
export function add<T extends UVec>(l: UintTerm | number, r: Term<T>): Op2<T>;
133+
// prettier-ignore
134+
export function add<T extends UVec>(l: Term<T>, r: UintTerm | number): Op2<T>;
135+
// prettier-ignore
132136
export function add(l: Term<any> | number, r: Term<any> | number): Op2<any> {
133137
return op2("+", l, r);
134138
}
@@ -144,7 +148,11 @@ export function sub<T extends Vec | Mat>(l: Term<T>, r: FloatTerm | number): Op2
144148
// prettier-ignore
145149
export function sub<T extends IVec>(l: IntTerm | number, r: Term<T>): Op2<T>;
146150
// prettier-ignore
147-
export function sub<T extends IVec>(l: Term<T>, r: IntTerm| number): Op2<T>;
151+
export function sub<T extends IVec>(l: Term<T>, r: IntTerm | number): Op2<T>;
152+
// prettier-ignore
153+
export function sub<T extends UVec>(l: UintTerm | number, r: Term<T>): Op2<T>;
154+
// prettier-ignore
155+
export function sub<T extends UVec>(l: Term<T>, r: UintTerm | number): Op2<T>;
148156
export function sub(l: Term<any> | number, r: Term<any> | number): Op2<any> {
149157
return op2("-", l, r);
150158
}
@@ -161,6 +169,10 @@ export function mul<T extends Vec | Mat>(l: Term<T>, r: FloatTerm | number): Op2
161169
export function mul<T extends IVec>(l: IntTerm | number, r: Term<T>): Op2<T>;
162170
// prettier-ignore
163171
export function mul<T extends IVec>(l: Term<T>, r: IntTerm | number): Op2<T>;
172+
// prettier-ignore
173+
export function mul<T extends UVec>(l: UintTerm | number, r: Term<T>): Op2<T>;
174+
// prettier-ignore
175+
export function mul<T extends UVec>(l: Term<T>, r: UintTerm | number): Op2<T>;
164176
export function mul(l: Mat2Term, r: Vec2Term): Op2<"vec2">;
165177
export function mul(l: Mat3Term, r: Vec3Term): Op2<"vec3">;
166178
export function mul(l: Mat4Term, r: Vec4Term): Op2<"vec4">;
@@ -190,6 +202,10 @@ export function div<T extends Vec | Mat>(l: Term<T>, r: FloatTerm | number): Op2
190202
export function div<T extends IVec>(l: IntTerm | number, r: Term<T>): Op2<T>;
191203
// prettier-ignore
192204
export function div<T extends IVec>(l: Term<T>, r: IntTerm | number): Op2<T>;
205+
// prettier-ignore
206+
export function div<T extends UVec>(l: UintTerm | number, r: Term<T>): Op2<T>;
207+
// prettier-ignore
208+
export function div<T extends UVec>(l: Term<T>, r: UintTerm | number): Op2<T>;
193209
export function div(l: Term<any> | number, r: Term<any> | number): Op2<any> {
194210
return op2("/", l, r);
195211
}

0 commit comments

Comments
 (0)