36static inline int32_t dMul(int32_t a, int32_t
b) {
41int32_t
dDiv(int32_t a, int32_t
b);
68static inline void rotationMatrix2D(
struct Matrix2D *m,
int t) {
77static inline void scaleMatrix2D(
struct Matrix2D *m, int32_t
s) {
78 m->
vs[0].
x = dMul(m->
vs[0].
x,
s);
79 m->
vs[0].
y = dMul(m->
vs[0].
y,
s);
80 m->
vs[1].
x = dMul(m->
vs[1].
x,
s);
81 m->
vs[1].
y = dMul(m->
vs[1].
y,
s);
84static inline void matrixVertexMul2D(
struct Matrix2D *m,
struct Vertex2D *v) {
87 int32_t mx1 = m->
vs[0].
x;
88 int32_t my1 = m->
vs[0].
y;
89 int32_t mx2 = m->
vs[1].
x;
90 int32_t my2 = m->
vs[1].
y;
91 int32_t nx1 = dMul(
x, mx1);
92 int32_t ny1 = dMul(
y, my1);
93 int32_t nx2 = dMul(
x, mx2);
94 int32_t ny2 = dMul(
y, my2);
95 int32_t nx = nx1 + ny1;
96 int32_t ny = nx2 + ny2;
108static inline int32_t lerpS(int32_t
s, int32_t d,
unsigned p) {
return (
s * (256 - p) + d * p) >> 8; }
109static inline int32_t lerpD(int32_t
s, int32_t d, int32_t p) {
return dMul(
s, 16777216 - p) + dMul(d, p); }
110static inline union Color lerpC(const union
Color s, const union
Color d, unsigned p) {
112 r.
r = lerpU(
s.r, d.r, p);
113 r.b = lerpU(
s.b, d.b, p);
114 r.g = lerpU(
s.g, d.g, p);
uint32_t t
Definition cop0.c:79
uint32_t r
Definition cpu.c:222
uint32_t out
Definition cpu.c:62
void matrixVertexMul3D(const struct Matrix3D *m, const struct Vertex3D *v, struct Vertex3D *out)
Definition math.c:107
int32_t matrixVertexMul3Dz(const struct Matrix3D *m, const struct Vertex3D *v)
Definition math.c:159
void generateRotationMatrix3D(struct Matrix3D *m, int t, enum Axis a)
Definition math.c:33
void multiplyMatrix3D(const struct Matrix3D *m1, const struct Matrix3D *m2, struct Matrix3D *out)
Definition math.c:73
int32_t dDiv(int32_t a, int32_t b)
Definition math.c:202
void scaleMatrix3D(struct Matrix3D *m, int32_t s)
Definition math.c:95
void matrixVertexMul3Dxy(const struct Matrix3D *m, const struct Vertex3D *v, struct Vertex2D *out)
Definition math.c:137
@ AXIS_X
Definition math.h:59
@ AXIS_Y
Definition math.h:59
@ AXIS_Z
Definition math.h:59
char * s
Definition string.c:48
char b[9]
Definition string.c:47
struct Vertex2D vs[2]
Definition math.h:48
struct Vertex3D vs[3]
Definition math.h:56
int32_t y
Definition math.h:44
int32_t x
Definition math.h:44
int32_t y
Definition math.h:52
int32_t x
Definition math.h:52
int32_t z
Definition math.h:52
static int c
Definition syscalls.h:121
void uint32_t(classId, spec)
uint8_t r
Definition gpu.h:111