7/7 Fixed-Point math

This commit is contained in:
2026-05-31 20:23:14 -04:00
parent e409fe0b2d
commit 66981351ee
7 changed files with 269 additions and 177 deletions
+13
View File
@@ -33,6 +33,9 @@ typedef def_struct(Rect_S4) { S4 x; S4 y; S4 width; S4 height; };
typedef def_struct(M3_S2) { A3A3_S2 m; A3_S4 t; };
typedef def_farray(V2_S2, 3);
typedef def_farray(V2_S2, 4);
#define v2s2(x,y) (V2_S2){x,y}
#define v3s2(x,y,z) (V3_S2){x,y,z,0}
#define v3s4(x,y,z) (V3_S4){x,y,z,0}
@@ -45,6 +48,16 @@ FI_ void add_a3s4(A3_S4_R out_a, A3_S4 b) {
(out_a[0])[2] += b[2];
}
FI_ void add_a3s4_fp(A3_S4_R out_a, A3_S4 b) {
(out_a[0])[0] += b[0] >> 1;
(out_a[0])[1] += b[1] >> 1;
(out_a[0])[2] += b[2] >> 1;
}
FI_ void add_v3s4(V3_S4_R out_a, V3_S4 b) {
add_a3s4(pcast(A3_S4_R, out_a), pcast(A3_S4, b));
}
FI_ void add_v3s4_fp(V3_S4_R out_a, V3_S4 b) {
add_a3s4_fp(pcast(A3_S4_R, out_a), pcast(A3_S4, b));
}