mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
42 lines
1012 B
C
42 lines
1012 B
C
#include "common.h"
|
|
|
|
#ifdef NON_MATCHING
|
|
void guOrthoF(float mf[4][4], float l, float r, float b, float t,
|
|
float n, float f, float scale) {
|
|
s32 i, j;
|
|
|
|
guMtxIdentF(mf);
|
|
|
|
mf[0][0] = 2 / (r - l);
|
|
mf[1][1] = 2 / (t - b);
|
|
mf[2][2] = -2 / (f - n);
|
|
mf[3][0] = -(r + l) / (r - l);
|
|
mf[3][1] = -(t + b) / (t - b);
|
|
mf[3][2] = -(f + n) / (f - n);
|
|
mf[3][3] = 1;
|
|
|
|
for (i = 0; i < 4; i++) {
|
|
for (j = 0; j < 4; j++) {
|
|
mf[i][j] *= scale;
|
|
}
|
|
}
|
|
}
|
|
#else
|
|
INCLUDE_ASM(void, "guOrtho", guOrthoF, float mf[4][4], float l, float r, float b, float t, float n, float f,
|
|
float scale);
|
|
#endif
|
|
|
|
#ifdef NON_MATCHING
|
|
void guOrtho(Mtx* m, float l, float r, float b, float t,
|
|
float n, float f, float scale) {
|
|
float mf[4][4];
|
|
|
|
guOrthoF(mf, l, r, b, t, n, f, scale);
|
|
|
|
guMtxF2L(mf, m);
|
|
}
|
|
#else
|
|
INCLUDE_ASM(void, "guOrtho", guOrtho, Mtx* m, float l, float r, float b, float t,
|
|
float n, float f, float scale);
|
|
#endif
|