summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnuj Phogat <[email protected]>2015-12-11 14:41:31 -0800
committerAnuj Phogat <[email protected]>2016-06-10 14:35:21 -0700
commit466b3201633a61bc9adfb38397a6fe776cb1cfe3 (patch)
tree7082dd4c70d03356c21ea1f68e4f63b73bdacb43
parentf8679badd423b61b3a49e1138445f9f3d740fdde (diff)
gallium: Fix region overlap conditions for rectangles with a shared edge
>From OpenGL 4.0 spec, section 4.3.2 "Copying Pixels": "The pixels corresponding to these buffers are copied from the source rectangle bounded by the locations (srcX0, srcY 0) and (srcX1, srcY 1) to the destination rectangle bounded by the locations (dstX0, dstY 0) and (dstX1, dstY 1). The lower bounds of the rectangle are inclusive, while the upper bounds are exclusive." So, the rectangles sharing just an edge shouldn't overlap. ----------- | | ------- --- | | | | | | ------- --- Cc: "12.0" <[email protected]> Signed-off-by: Anuj Phogat <[email protected]> Reviewed-by: Nicolai Hähnle <[email protected]>
-rw-r--r--src/gallium/auxiliary/util/u_blit.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/gallium/auxiliary/util/u_blit.c b/src/gallium/auxiliary/util/u_blit.c
index 5bcd8bbceef..fbc9c77dfcc 100644
--- a/src/gallium/auxiliary/util/u_blit.c
+++ b/src/gallium/auxiliary/util/u_blit.c
@@ -314,16 +314,16 @@ regions_overlap(int srcX0, int srcY0,
int dstX0, int dstY0,
int dstX1, int dstY1)
{
- if (MAX2(srcX0, srcX1) < MIN2(dstX0, dstX1))
+ if (MAX2(srcX0, srcX1) <= MIN2(dstX0, dstX1))
return FALSE; /* src completely left of dst */
- if (MAX2(dstX0, dstX1) < MIN2(srcX0, srcX1))
+ if (MAX2(dstX0, dstX1) <= MIN2(srcX0, srcX1))
return FALSE; /* dst completely left of src */
- if (MAX2(srcY0, srcY1) < MIN2(dstY0, dstY1))
+ if (MAX2(srcY0, srcY1) <= MIN2(dstY0, dstY1))
return FALSE; /* src completely above dst */
- if (MAX2(dstY0, dstY1) < MIN2(srcY0, srcY1))
+ if (MAX2(dstY0, dstY1) <= MIN2(srcY0, srcY1))
return FALSE; /* dst completely above src */
return TRUE; /* some overlap */