From: eihrul Date: Tue, 25 Jan 2011 13:00:25 +0000 (+0000) Subject: fix overrun test for optimized texture routines X-Git-Tag: xonotic-v0.5.0~438^2~99 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=4bb8e45e9eb4e7d39b704215cdfc48877ffb5a8c;p=xonotic%2Fdarkplaces.git fix overrun test for optimized texture routines git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10742 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/dpsoftrast.c b/dpsoftrast.c index 1a4c241f..a752a07f 100644 --- a/dpsoftrast.c +++ b/dpsoftrast.c @@ -1605,11 +1605,11 @@ void DPSOFTRAST_Draw_Span_Texture2DVarying(const DPSOFTRAST_State_Draw_Span * RE } if(filter) { - tci[0] = (subtc[0]>>12) - tcimin[0] + 1; - tci[1] = (subtc[1]>>12) - tcimin[1] + 1; - tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12) + 1; - tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12) + 1; - if (tci[0] <= tcimax[0] && tci[1] <= tcimax[1] && tci1[0] <= tcimax[0] && tci1[1] <= tcimax[1]) + tci[0] = (subtc[0]>>12) - tcimin[0]; + tci[1] = (subtc[1]>>12) - tcimin[1]; + tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12); + tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12); + if (tci[0] <= tcimax[0]-1 && tci[1] <= tcimax[1]-1 && tci1[0] <= tcimax[0]-1 && tci1[1] <= tcimax[1]-1) { for (; x <= endsub; x++, subtc[0] += substep[0], subtc[1] += substep[1]) { @@ -1820,11 +1820,11 @@ void DPSOFTRAST_Draw_Span_Texture2DVaryingBGRA8(const DPSOFTRAST_State_Draw_Span if (filter && dpsoftrast_test) { const unsigned int * RESTRICT pixeli[4]; - tci[0] = (subtc[0]>>12) - tcimin[0] + 1; - tci[1] = (subtc[1]>>12) - tcimin[1] + 1; - tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12) + 1; - tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12) + 1; - if (tci[0] <= tcimax[0] && tci[1] <= tcimax[1] && tci1[0] <= tcimax[0] && tci1[1] <= tcimax[1]) + tci[0] = (subtc[0]>>12) - tcimin[0]; + tci[1] = (subtc[1]>>12) - tcimin[1]; + tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12); + tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12); + if (tci[0] <= tcimax[0]-1 && tci[1] <= tcimax[1]-1 && tci1[0] <= tcimax[0]-1 && tci1[1] <= tcimax[1]-1) { for (; x <= endsub; x++, subtc[0] += substep[0], subtc[1] += substep[1]) { @@ -1890,11 +1890,11 @@ void DPSOFTRAST_Draw_Span_Texture2DVaryingBGRA8(const DPSOFTRAST_State_Draw_Span #endif if (filter) { - tci[0] = (subtc[0]>>12) - tcimin[0] + 1; - tci[1] = (subtc[1]>>12) - tcimin[1] + 1; - tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12) + 1; - tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12) + 1; - if (tci[0] <= tcimax[0] && tci[1] <= tcimax[1] && tci1[0] <= tcimax[0] && tci1[1] <= tcimax[1]) + tci[0] = (subtc[0]>>12) - tcimin[0]; + tci[1] = (subtc[1]>>12) - tcimin[1]; + tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12); + tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12); + if (tci[0] <= tcimax[0]-1 && tci[1] <= tcimax[1]-1 && tci1[0] <= tcimax[0]-1 && tci1[1] <= tcimax[1]-1) { for (; x <= endsub; x++, subtc[0] += substep[0], subtc[1] += substep[1]) { @@ -1964,11 +1964,11 @@ void DPSOFTRAST_Draw_Span_Texture2DVaryingBGRA8(const DPSOFTRAST_State_Draw_Span } else { - tci[0] = (subtc[0]>>12) - tcimin[0] + 1; - tci[1] = (subtc[1]>>12) - tcimin[1] + 1; + tci[0] = (subtc[0]>>12) - tcimin[0]; + tci[1] = (subtc[1]>>12) - tcimin[1]; tci1[0] = ((subtc[0] + (endsub - x)*substep[0])>>12); - tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12); - if (tci[0] <= tcimax[0] && tci[1] <= tcimax[1] && tci1[0] <= tcimax[0] && tci1[1] <= tcimax[1]) + tci1[1] = ((subtc[1] + (endsub - x)*substep[1])>>12); + if (tci[0] <= tcimax[0]-1 && tci[1] <= tcimax[1]-1 && tci1[0] <= tcimax[0]-1 && tci1[1] <= tcimax[1]-1) { for (; x <= endsub; x++, subtc[0] += substep[0], subtc[1] += substep[1]) {