diff options
Diffstat (limited to 'mesalib/src/mesa/math')
-rw-r--r-- | mesalib/src/mesa/math/m_matrix.c | 17 | ||||
-rw-r--r-- | mesalib/src/mesa/math/m_matrix.h | 4 |
2 files changed, 10 insertions, 11 deletions
diff --git a/mesalib/src/mesa/math/m_matrix.c b/mesalib/src/mesa/math/m_matrix.c index e512e456f..9c9310d93 100644 --- a/mesalib/src/mesa/math/m_matrix.c +++ b/mesalib/src/mesa/math/m_matrix.c @@ -1110,16 +1110,15 @@ _math_matrix_translate( GLmatrix *mat, GLfloat x, GLfloat y, GLfloat z ) * Transforms Normalized Device Coords to window/Z values. */ void -_math_matrix_viewport(GLmatrix *m, GLfloat x, GLfloat y, - GLfloat width, GLfloat height, - GLdouble zNear, GLdouble zFar, GLdouble depthMax) +_math_matrix_viewport(GLmatrix *m, const double scale[3], + const double translate[3], double depthMax) { - m->m[MAT_SX] = width / 2.0F; - m->m[MAT_TX] = m->m[MAT_SX] + x; - m->m[MAT_SY] = height / 2.0F; - m->m[MAT_TY] = m->m[MAT_SY] + y; - m->m[MAT_SZ] = (GLfloat) (depthMax * ((zFar - zNear) / 2.0)); - m->m[MAT_TZ] = (GLfloat) (depthMax * ((zFar - zNear) / 2.0 + zNear)); + m->m[MAT_SX] = scale[0]; + m->m[MAT_TX] = translate[0]; + m->m[MAT_SY] = scale[1]; + m->m[MAT_TY] = translate[1]; + m->m[MAT_SZ] = depthMax*scale[2]; + m->m[MAT_TZ] = depthMax*translate[2]; m->flags = MAT_FLAG_GENERAL_SCALE | MAT_FLAG_TRANSLATION; m->type = MATRIX_3D_NO_ROT; } diff --git a/mesalib/src/mesa/math/m_matrix.h b/mesalib/src/mesa/math/m_matrix.h index dddce7019..778d716dc 100644 --- a/mesalib/src/mesa/math/m_matrix.h +++ b/mesalib/src/mesa/math/m_matrix.h @@ -122,8 +122,8 @@ _math_matrix_frustum( GLmatrix *mat, GLfloat nearval, GLfloat farval ); extern void -_math_matrix_viewport(GLmatrix *m, GLfloat x, GLfloat y, GLfloat width, GLfloat height, - GLdouble zNear, GLdouble zFar, GLdouble depthMax); +_math_matrix_viewport( GLmatrix *m, const double scale[3], + const double translate[3], double depthMax ); extern void _math_matrix_set_identity( GLmatrix *dest ); |