From cc77fe5527adecce90499b112f57affcf86421f8 Mon Sep 17 00:00:00 2001 From: divverent Date: Sun, 25 Jul 2010 18:42:31 +0000 Subject: [PATCH] fix v_flipped with near clip plane (water, warpzone) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10363 d7cf8633-e32d-0410-b094-e92efae38249 ::stable-branch::merge=2deb98cfc69b32025eceed117f9fd67d228e5c62 --- gl_backend.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/gl_backend.c b/gl_backend.c index 72f41165..bd2d4220 100644 --- a/gl_backend.c +++ b/gl_backend.c @@ -404,9 +404,6 @@ void R_Viewport_InitPerspective(r_viewport_t *v, const matrix4x4_t *cameramatrix float m[16]; memset(v, 0, sizeof(*v)); - if(v_flipped.integer) - frustumx = -frustumx; - v->type = R_VIEWPORTTYPE_PERSPECTIVE; v->cameramatrix = *cameramatrix; v->x = x; @@ -432,6 +429,14 @@ void R_Viewport_InitPerspective(r_viewport_t *v, const matrix4x4_t *cameramatrix if (nearplane) R_Viewport_ApplyNearClipPlaneFloatGL(v, m, nearplane[0], nearplane[1], nearplane[2], nearplane[3]); + if(v_flipped.integer) + { + m[0] = -m[0]; + m[4] = -m[4]; + m[8] = -m[8]; + m[12] = -m[12]; + } + Matrix4x4_FromArrayFloatGL(&v->projectmatrix, m); } @@ -442,9 +447,6 @@ void R_Viewport_InitPerspectiveInfinite(r_viewport_t *v, const matrix4x4_t *came float m[16]; memset(v, 0, sizeof(*v)); - if(v_flipped.integer) - frustumx = -frustumx; - v->type = R_VIEWPORTTYPE_PERSPECTIVE_INFINITEFARCLIP; v->cameramatrix = *cameramatrix; v->x = x; @@ -470,6 +472,14 @@ void R_Viewport_InitPerspectiveInfinite(r_viewport_t *v, const matrix4x4_t *came if (nearplane) R_Viewport_ApplyNearClipPlaneFloatGL(v, m, nearplane[0], nearplane[1], nearplane[2], nearplane[3]); + if(v_flipped.integer) + { + m[0] = -m[0]; + m[4] = -m[4]; + m[8] = -m[8]; + m[12] = -m[12]; + } + Matrix4x4_FromArrayFloatGL(&v->projectmatrix, m); } -- 2.39.2