From 2153fc467151613e25cfe907f73c3bf73c418f4e Mon Sep 17 00:00:00 2001 From: SmileTheory Date: Tue, 5 Mar 2013 01:41:51 -0800 Subject: [PATCH] Calculate viewport and screen texture coordinates correctly for sun shadows. This fixes part of #5889. --- code/renderergl2/tr_backend.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/renderergl2/tr_backend.c b/code/renderergl2/tr_backend.c index fd61ee76..be5fe61b 100644 --- a/code/renderergl2/tr_backend.c +++ b/code/renderergl2/tr_backend.c @@ -1186,7 +1186,7 @@ const void *RB_DrawSurfs( const void *data ) { FBO_Bind(tr.screenShadowFbo); box[0] = (backEnd.refdef.x ) * tr.screenShadowFbo->width / (float)glConfig.vidWidth; - box[1] = (backEnd.refdef.y ) * tr.screenShadowFbo->height / (float)glConfig.vidHeight; + box[1] = (glConfig.vidHeight - ( backEnd.refdef.y + backEnd.refdef.height )) * tr.screenShadowFbo->height / (float)glConfig.vidHeight; box[2] = (backEnd.refdef.width ) * tr.screenShadowFbo->width / (float)glConfig.vidWidth; box[3] = (backEnd.refdef.height) * tr.screenShadowFbo->height / (float)glConfig.vidHeight; @@ -1194,9 +1194,9 @@ const void *RB_DrawSurfs( const void *data ) { qglScissor(box[0], box[1], box[2], box[3]); box[0] = (backEnd.refdef.x ) / (float)glConfig.vidWidth; - box[1] = (backEnd.refdef.y ) / (float)glConfig.vidHeight; + box[1] = 1.0 - (backEnd.refdef.y + backEnd.refdef.height) / (float)glConfig.vidHeight; box[2] = (backEnd.refdef.x + backEnd.refdef.width ) / (float)glConfig.vidWidth; - box[3] = (backEnd.refdef.y + backEnd.refdef.height) / (float)glConfig.vidHeight; + box[3] = 1.0 - (backEnd.refdef.y ) / (float)glConfig.vidHeight; texCoords[0][0] = box[0]; texCoords[0][1] = box[3]; texCoords[1][0] = box[2]; texCoords[1][1] = box[3];