mirror of
https://github.com/libretro/RetroArch
synced 2025-02-26 06:40:39 +00:00
Correctly initialize matrices.
This commit is contained in:
parent
435a7dc467
commit
c2822ded51
@ -95,44 +95,31 @@ void matrix_ortho(math_matrix *mat,
|
||||
void matrix_scale(math_matrix *out, float x, float y,
|
||||
float z)
|
||||
{
|
||||
math_matrix mat;
|
||||
|
||||
MAT_ELEM(mat, 0, 0) = x;
|
||||
MAT_ELEM(mat, 1, 1) = y;
|
||||
MAT_ELEM(mat, 2, 2) = z;
|
||||
MAT_ELEM(mat, 3, 3) = 1.0;
|
||||
|
||||
*out = mat;
|
||||
memset(out, 0, sizeof(*out));
|
||||
MAT_ELEM(*out, 0, 0) = x;
|
||||
MAT_ELEM(*out, 1, 1) = y;
|
||||
MAT_ELEM(*out, 2, 2) = z;
|
||||
MAT_ELEM(*out, 3, 3) = 1.0f;
|
||||
}
|
||||
|
||||
void matrix_translate(math_matrix *out, float x,
|
||||
float y, float z)
|
||||
{
|
||||
math_matrix mat;
|
||||
|
||||
MAT_ELEM(mat, 0, 0) = 1.0;
|
||||
MAT_ELEM(mat, 1, 1) = 1.0;
|
||||
MAT_ELEM(mat, 2, 2) = 1.0;
|
||||
MAT_ELEM(mat, 3, 3) = 1.0;
|
||||
MAT_ELEM(mat, 0, 3) = x;
|
||||
MAT_ELEM(mat, 1, 3) = y;
|
||||
MAT_ELEM(mat, 2, 3) = z;
|
||||
|
||||
*out = mat;
|
||||
matrix_identity(out);
|
||||
MAT_ELEM(*out, 0, 3) = x;
|
||||
MAT_ELEM(*out, 1, 3) = y;
|
||||
MAT_ELEM(*out, 2, 3) = z;
|
||||
}
|
||||
|
||||
void matrix_projection(math_matrix *out, float znear,
|
||||
float zfar)
|
||||
{
|
||||
math_matrix mat;
|
||||
|
||||
MAT_ELEM(mat, 0, 0) = znear;
|
||||
MAT_ELEM(mat, 1, 1) = zfar;
|
||||
MAT_ELEM(mat, 2, 2) = (zfar + znear) / (zfar - znear);
|
||||
MAT_ELEM(mat, 2, 3) = -2.0f * zfar * znear / (zfar - znear);
|
||||
MAT_ELEM(mat, 3, 2) = -1.0f;
|
||||
|
||||
*out = mat;
|
||||
matrix_identity(out);
|
||||
MAT_ELEM(*out, 0, 0) = znear;
|
||||
MAT_ELEM(*out, 1, 1) = zfar;
|
||||
MAT_ELEM(*out, 2, 2) = (zfar + znear) / (zfar - znear);
|
||||
MAT_ELEM(*out, 2, 3) = -2.0f * zfar * znear / (zfar - znear);
|
||||
MAT_ELEM(*out, 3, 2) = -1.0f;
|
||||
}
|
||||
|
||||
void matrix_multiply(math_matrix *out,
|
||||
@ -153,3 +140,4 @@ void matrix_multiply(math_matrix *out,
|
||||
|
||||
*out = mat;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user