diff options
author | Eric Anholt <eric@anholt.net> | 2008-12-18 18:23:51 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2008-12-18 18:32:07 -0800 |
commit | aa09e0a1d532d0de2e094957d0509a7f60ebeafa (patch) | |
tree | 4785a9d930d19af316f2fe730763b232aa352b78 /src | |
parent | d9b92b112fb64005c71edf1158f7dffabc4659bb (diff) |
mesa: Correct _mesa_clip_to_region() off-by-one.
Note how if:
x + width == xmax + 0: width -= 0
x + width == xmax + 1: width -= 0
x + width == xmax + 2: width -= 1
So, the function was clipping to [xmin, xmax+1), not [xmin, xmax) like it was
supposed to. Same for ymax.
Diffstat (limited to 'src')
-rw-r--r-- | src/mesa/main/image.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/main/image.c b/src/mesa/main/image.c index 4551b4a3b5b..6b19fc8454c 100644 --- a/src/mesa/main/image.c +++ b/src/mesa/main/image.c @@ -5152,7 +5152,7 @@ _mesa_clip_to_region(GLint xmin, GLint ymin, /* right clipping */ if (*x + *width > xmax) - *width -= (*x + *width - xmax - 1); + *width -= (*x + *width - xmax); if (*width <= 0) return GL_FALSE; @@ -5165,7 +5165,7 @@ _mesa_clip_to_region(GLint xmin, GLint ymin, /* top (or bottom) clipping */ if (*y + *height > ymax) - *height -= (*y + *height - ymax - 1); + *height -= (*y + *height - ymax); if (*height <= 0) return GL_FALSE; |