From 2b39cd0722ccb4614121f7f16b1b5c75afd06137 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 6 Mar 2023 13:15:03 -0500 Subject: [PATCH] util/box: make u_box_test_intersection_2d() consistent with other funcs cc: mesa-stable Reviewed-by: Ian Romanick Part-of: --- src/util/box.h | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/util/box.h b/src/util/box.h index 2fb0be6fd23..9671cf069c1 100644 --- a/src/util/box.h +++ b/src/util/box.h @@ -253,24 +253,20 @@ static inline bool u_box_test_intersection_2d(const struct pipe_box *a, const struct pipe_box *b) { - unsigned i; - int a_l[2], a_r[2], b_l[2], b_r[2]; + int ax[2], ay[2], bx[2], by[2]; - a_l[0] = MIN2(a->x, a->x + a->width); - a_r[0] = MAX2(a->x, a->x + a->width); - a_l[1] = MIN2(a->y, a->y + a->height); - a_r[1] = MAX2(a->y, a->y + a->height); + ax[0] = MIN2(a->x, a->x + a->width); + ax[1] = MAX2(a->x, a->x + a->width - 1); + ay[0] = MIN2(a->y, a->y + a->height); + ay[1] = MAX2(a->y, a->y + a->height - 1); - b_l[0] = MIN2(b->x, b->x + b->width); - b_r[0] = MAX2(b->x, b->x + b->width); - b_l[1] = MIN2(b->y, b->y + b->height); - b_r[1] = MAX2(b->y, b->y + b->height); + bx[0] = MIN2(b->x, b->x + b->width); + bx[1] = MAX2(b->x, b->x + b->width - 1); + by[0] = MIN2(b->y, b->y + b->height); + by[1] = MAX2(b->y, b->y + b->height - 1); - for (i = 0; i < 2; ++i) { - if (a_l[i] > b_r[i] || a_r[i] < b_l[i]) - return false; - } - return true; + return ax[1] >= bx[0] && bx[1] >= ax[0] && + ay[1] >= by[0] && by[1] >= ay[0]; } static inline bool