From 3fbe3d38d3b5ba1d982788e7ed96ab71c7de2bb9 Mon Sep 17 00:00:00 2001 From: Sryder13 Date: Mon, 24 Mar 2014 20:06:13 +0000 Subject: [PATCH] OpenGL Patch Fill Fix Patch Fill Drawing for intermission has been fixed to loop properly in non aspect correct resolutions. --- src/screen.c | 4 ++-- src/v_video.c | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/screen.c b/src/screen.c index 085056065..56528a20a 100644 --- a/src/screen.c +++ b/src/screen.c @@ -229,7 +229,7 @@ void SCR_Startup(void) vid.fdupy = FixedDiv(vid.height*FRACUNIT, BASEVIDHEIGHT*FRACUNIT); #ifdef HWRENDER - if (rendermode != render_opengl && rendermode != render_none) // This was just placing it incorrectly at non aspect correct resolutions, not sure if it does anything in software + if (rendermode != render_opengl && rendermode != render_none) // This was just placing it incorrectly at non aspect correct resolutions in opengl #endif vid.fdupx = vid.fdupy = (vid.fdupx < vid.fdupy ? vid.fdupx : vid.fdupy); @@ -275,7 +275,7 @@ void SCR_Recalc(void) vid.fdupy = FixedDiv(vid.height*FRACUNIT, BASEVIDHEIGHT*FRACUNIT); #ifdef HWRENDER - if (rendermode != render_opengl && rendermode != render_none) // This was just placing it incorrectly at non aspect correct resolutions, not sure if it does anything in software + if (rendermode != render_opengl && rendermode != render_none) // This was just placing it incorrectly at non aspect correct resolutions in opengl #endif vid.fdupx = vid.fdupy = (vid.fdupx < vid.fdupy ? vid.fdupx : vid.fdupy); diff --git a/src/v_video.c b/src/v_video.c index 032a4ec94..9ba099f1f 100644 --- a/src/v_video.c +++ b/src/v_video.c @@ -905,6 +905,14 @@ void V_DrawPatchFill(patch_t *pat) INT32 dupz = (vid.dupx < vid.dupy ? vid.dupx : vid.dupy); INT32 x, y, pw = SHORT(pat->width) * dupz, ph = SHORT(pat->height) * dupz; +#ifdef HWRENDER + if (rendermode == render_opengl) + { + pw = FixedMul(SHORT(pat->width)*FRACUNIT, vid.fdupx)>>FRACBITS; + ph = FixedMul(SHORT(pat->height)*FRACUNIT, vid.fdupy)>>FRACBITS; + } +#endif + for (x = 0; x < vid.width; x += pw) { for (y = 0; y < vid.height; y += ph)