Skip to content

Commit a78d313

Browse files
feat(shader-ast-js): fix #435, add new lshift/rshift ops/variations
1 parent a986766 commit a78d313

File tree

7 files changed

+26
-12
lines changed

7 files changed

+26
-12
lines changed

packages/shader-ast-js/src/api.ts

+2
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,8 @@ export interface JSBuiltinsIntVec
168168
JSBuiltinsVecCompare {
169169
modivn: Fn2<Vec, number, Vec>;
170170
modinv: Fn2<number, Vec, Vec>;
171+
lshiftvn: Fn2<Vec, number, Vec>;
172+
rshiftvn: Fn2<Vec, number, Vec>;
171173
}
172174

173175
export interface JSBuiltinsMat

packages/shader-ast-js/src/env/ivec2.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorI2 } from "@thi.ng/vectors/bit-xor";
66
import { divI2, divNI2 } from "@thi.ng/vectors/divi";
77
import { fmod2 } from "@thi.ng/vectors/fmod";
88
import { fmodN2 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftI2 } from "@thi.ng/vectors/lshift";
9+
import { lshiftI2, lshiftNI2 } from "@thi.ng/vectors/lshift";
1010
import { mulI2, mulNI2 } from "@thi.ng/vectors/muli";
11-
import { rshiftI2 } from "@thi.ng/vectors/rshift";
11+
import { rshiftI2, rshiftNI2 } from "@thi.ng/vectors/rshift";
1212
import { subI2, subNI2 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_IVEC2 } from "../pool.js";
@@ -35,8 +35,10 @@ export const IVEC2: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subI2(null, uniform(a), b),
3636
bitand: (a, b) => bitAndI2(next(), a, b),
3737
lshift: (a, b) => lshiftI2(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNI2(next(), a, b),
3839
bitnot1: (a) => bitNotI2(next(), a),
3940
bitor: (a, b) => bitOrI2(next(), a, b),
4041
rshift: (a, b) => rshiftI2(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNI2(next(), a, b),
4143
bitxor: (a, b) => bitXorI2(next(), a, b),
4244
};

packages/shader-ast-js/src/env/ivec3.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorI3 } from "@thi.ng/vectors/bit-xor";
66
import { divI3, divNI3 } from "@thi.ng/vectors/divi";
77
import { fmod3 } from "@thi.ng/vectors/fmod";
88
import { fmodN3 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftI3 } from "@thi.ng/vectors/lshift";
9+
import { lshiftI3, lshiftNI3 } from "@thi.ng/vectors/lshift";
1010
import { mulI3, mulNI3 } from "@thi.ng/vectors/muli";
11-
import { rshiftI3 } from "@thi.ng/vectors/rshift";
11+
import { rshiftI3, rshiftNI3 } from "@thi.ng/vectors/rshift";
1212
import { subI3, subNI3 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_IVEC3 } from "../pool.js";
@@ -35,8 +35,10 @@ export const IVEC3: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subI3(null, uniform(a), b),
3636
bitand: (a, b) => bitAndI3(next(), a, b),
3737
lshift: (a, b) => lshiftI3(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNI3(next(), a, b),
3839
bitnot1: (a) => bitNotI3(next(), a),
3940
bitor: (a, b) => bitOrI3(next(), a, b),
4041
rshift: (a, b) => rshiftI3(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNI3(next(), a, b),
4143
bitxor: (a, b) => bitXorI3(next(), a, b),
4244
};

packages/shader-ast-js/src/env/ivec4.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorI4 } from "@thi.ng/vectors/bit-xor";
66
import { divI4, divNI4 } from "@thi.ng/vectors/divi";
77
import { fmod4 } from "@thi.ng/vectors/fmod";
88
import { fmodN4 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftI4 } from "@thi.ng/vectors/lshift";
9+
import { lshiftI4, lshiftNI4 } from "@thi.ng/vectors/lshift";
1010
import { mulI4, mulNI4 } from "@thi.ng/vectors/muli";
11-
import { rshiftI4 } from "@thi.ng/vectors/rshift";
11+
import { rshiftI4, rshiftNI4 } from "@thi.ng/vectors/rshift";
1212
import { subI4, subNI4 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_IVEC4 } from "../pool.js";
@@ -35,8 +35,10 @@ export const IVEC4: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subI4(null, uniform(a), b),
3636
bitand: (a, b) => bitAndI4(next(), a, b),
3737
lshift: (a, b) => lshiftI4(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNI4(next(), a, b),
3839
bitnot1: (a) => bitNotI4(next(), a),
3940
bitor: (a, b) => bitOrI4(next(), a, b),
4041
rshift: (a, b) => rshiftI4(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNI4(next(), a, b),
4143
bitxor: (a, b) => bitXorI4(next(), a, b),
4244
};

packages/shader-ast-js/src/env/uvec2.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorU2 } from "@thi.ng/vectors/bit-xor";
66
import { divNU2, divU2 } from "@thi.ng/vectors/divi";
77
import { fmod2 } from "@thi.ng/vectors/fmod";
88
import { fmodN2 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftU2 } from "@thi.ng/vectors/lshift";
9+
import { lshiftNU2, lshiftU2 } from "@thi.ng/vectors/lshift";
1010
import { mulNU2, mulU2 } from "@thi.ng/vectors/muli";
11-
import { rshiftU2 } from "@thi.ng/vectors/rshift";
11+
import { rshiftNU2, rshiftU2 } from "@thi.ng/vectors/rshift";
1212
import { subNU2, subU2 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_UVEC2 } from "../pool.js";
@@ -35,8 +35,10 @@ export const UVEC2: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subU2(null, uniform(a), b),
3636
bitand: (a, b) => bitAndU2(next(), a, b),
3737
lshift: (a, b) => lshiftU2(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNU2(next(), a, b),
3839
bitnot1: (a) => bitNotU2(next(), a),
3940
bitor: (a, b) => bitOrU2(next(), a, b),
4041
rshift: (a, b) => rshiftU2(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNU2(next(), a, b),
4143
bitxor: (a, b) => bitXorU2(next(), a, b),
4244
};

packages/shader-ast-js/src/env/uvec3.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorU3 } from "@thi.ng/vectors/bit-xor";
66
import { divNU3, divU3 } from "@thi.ng/vectors/divi";
77
import { fmod3 } from "@thi.ng/vectors/fmod";
88
import { fmodN3 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftU3 } from "@thi.ng/vectors/lshift";
9+
import { lshiftNU3, lshiftU3 } from "@thi.ng/vectors/lshift";
1010
import { mulNU3, mulU3 } from "@thi.ng/vectors/muli";
11-
import { rshiftU3 } from "@thi.ng/vectors/rshift";
11+
import { rshiftNU3, rshiftU3 } from "@thi.ng/vectors/rshift";
1212
import { subNU3, subU3 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_UVEC3 } from "../pool.js";
@@ -35,8 +35,10 @@ export const UVEC3: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subU3(null, uniform(a), b),
3636
bitand: (a, b) => bitAndU3(next(), a, b),
3737
lshift: (a, b) => lshiftU3(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNU3(next(), a, b),
3839
bitnot1: (a) => bitNotU3(next(), a),
3940
bitor: (a, b) => bitOrU3(next(), a, b),
4041
rshift: (a, b) => rshiftU3(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNU3(next(), a, b),
4143
bitxor: (a, b) => bitXorU3(next(), a, b),
4244
};

packages/shader-ast-js/src/env/uvec4.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { bitXorU4 } from "@thi.ng/vectors/bit-xor";
66
import { divNU4, divU4 } from "@thi.ng/vectors/divi";
77
import { fmod4 } from "@thi.ng/vectors/fmod";
88
import { fmodN4 } from "@thi.ng/vectors/fmodn";
9-
import { lshiftU4 } from "@thi.ng/vectors/lshift";
9+
import { lshiftNU4, lshiftU4 } from "@thi.ng/vectors/lshift";
1010
import { mulNU4, mulU4 } from "@thi.ng/vectors/muli";
11-
import { rshiftU4 } from "@thi.ng/vectors/rshift";
11+
import { rshiftNU4, rshiftU4 } from "@thi.ng/vectors/rshift";
1212
import { subNU4, subU4 } from "@thi.ng/vectors/subi";
1313
import type { JSBuiltinsIntVec } from "../api.js";
1414
import { POOL_UVEC4 } from "../pool.js";
@@ -35,8 +35,10 @@ export const UVEC4: JSBuiltinsIntVec = {
3535
subnv: (a, b) => subU4(null, uniform(a), b),
3636
bitand: (a, b) => bitAndU4(next(), a, b),
3737
lshift: (a, b) => lshiftU4(next(), a, b),
38+
lshiftvn: (a, b) => lshiftNU4(next(), a, b),
3839
bitnot1: (a) => bitNotU4(next(), a),
3940
bitor: (a, b) => bitOrU4(next(), a, b),
4041
rshift: (a, b) => rshiftU4(next(), a, b),
42+
rshiftvn: (a, b) => rshiftNU4(next(), a, b),
4143
bitxor: (a, b) => bitXorU4(next(), a, b),
4244
};

0 commit comments

Comments
 (0)