diff options
author | Brian Paul <[email protected]> | 2005-06-30 14:22:23 +0000 |
---|---|---|
committer | Brian Paul <[email protected]> | 2005-06-30 14:22:23 +0000 |
commit | 049e320f46f3a3daaa36ef67cc680dc504c124d5 (patch) | |
tree | 695bdf68ffa2ba7a7341c0d58e0ddbd736e78a13 /src/mesa/main/matrix.c | |
parent | f138b977d09327445a8e9c8126c493c4487c1630 (diff) |
Add a set of predicate functions for testing matrices instead of directly
testing the flags field.
Move definition of all the MAT_FLAGs into the m_matrix.c file since they're
now private.
Diffstat (limited to 'src/mesa/main/matrix.c')
-rw-r--r-- | src/mesa/main/matrix.c | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/src/mesa/main/matrix.c b/src/mesa/main/matrix.c index 2f0a1fa8c60..f4ec9735630 100644 --- a/src/mesa/main/matrix.c +++ b/src/mesa/main/matrix.c @@ -1,13 +1,3 @@ -/** - * \file matrix.c - * Matrix operations. - * - * \note - * -# 4x4 transformation matrices are stored in memory in column major order. - * -# Points/vertices are to be thought of as column vectors. - * -# Transformation of a point p by a matrix M is: p' = M * p - */ - /* * Mesa 3-D graphics library * Version: 6.3 @@ -33,6 +23,17 @@ */ +/** + * \file matrix.c + * Matrix operations. + * + * \note + * -# 4x4 transformation matrices are stored in memory in column major order. + * -# Points/vertices are to be thought of as column vectors. + * -# Transformation of a point p by a matrix M is: p' = M * p + */ + + #include "glheader.h" #include "imports.h" #include "context.h" @@ -601,18 +602,13 @@ _mesa_set_viewport( GLcontext *ctx, GLint x, GLint y, tmps = width; width = height; height = tmps; } - /* compute scale and bias values :: This is really driver-specific - * and should be maintained elsewhere if at all. NOTE: RasterPos - * uses this. + /* Compute scale and bias values. This is really driver-specific + * and should be maintained elsewhere if at all. + * NOTE: RasterPos uses this. */ - ctx->Viewport._WindowMap.m[MAT_SX] = (GLfloat) width / 2.0F; - ctx->Viewport._WindowMap.m[MAT_TX] = ctx->Viewport._WindowMap.m[MAT_SX] + x; - ctx->Viewport._WindowMap.m[MAT_SY] = (GLfloat) height / 2.0F; - ctx->Viewport._WindowMap.m[MAT_TY] = ctx->Viewport._WindowMap.m[MAT_SY] + y; - ctx->Viewport._WindowMap.m[MAT_SZ] = depthMax * ((f - n) / 2.0F); - ctx->Viewport._WindowMap.m[MAT_TZ] = depthMax * ((f - n) / 2.0F + n); - ctx->Viewport._WindowMap.flags = MAT_FLAG_GENERAL_SCALE|MAT_FLAG_TRANSLATION; - ctx->Viewport._WindowMap.type = MATRIX_3D_NO_ROT; + _math_matrix_viewport(&ctx->Viewport._WindowMap, x, y, width, height, + n, f, depthMax); + ctx->NewState |= _NEW_VIEWPORT; if (ctx->Driver.Viewport) { @@ -916,6 +912,8 @@ void _mesa_init_transform( GLcontext *ctx ) */ void _mesa_init_viewport( GLcontext *ctx ) { + GLfloat depthMax = 65535.0F; /* sorf of arbitrary */ + /* Viewport group */ ctx->Viewport.X = 0; ctx->Viewport.Y = 0; @@ -925,17 +923,8 @@ void _mesa_init_viewport( GLcontext *ctx ) ctx->Viewport.Far = 1.0; _math_matrix_ctr(&ctx->Viewport._WindowMap); -#if 0000 -#define Sz 10 -#define Tz 14 - ctx->Viewport._WindowMap.m[Sz] = 0.5F * ctx->DepthMaxF; - ctx->Viewport._WindowMap.m[Tz] = 0.5F * ctx->DepthMaxF; -#undef Sz -#undef Tz -#endif - - ctx->Viewport._WindowMap.flags = MAT_FLAG_GENERAL_SCALE|MAT_FLAG_TRANSLATION; - ctx->Viewport._WindowMap.type = MATRIX_3D_NO_ROT; + _math_matrix_viewport(&ctx->Viewport._WindowMap, 0, 0, 0, 0, + 0.0F, 1.0F, depthMax); } |