From 574939cb9e9393f531e1b8ac961917be37df9c9c Mon Sep 17 00:00:00 2001 From: Arkadiy Illarionov Date: Sat, 9 Mar 2024 19:45:19 +0300 Subject: [PATCH] Simplify util_clip_triangle() --- src/pan-view/pan-calendar.cc | 2 +- src/pan-view/pan-view.cc | 2 +- src/pixbuf-util.cc | 27 +++++++-------------------- src/pixbuf-util.h | 2 +- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/pan-view/pan-calendar.cc b/src/pan-view/pan-calendar.cc index c376b9c9..746bb70b 100644 --- a/src/pan-view/pan-calendar.cc +++ b/src/pan-view/pan-calendar.cc @@ -188,7 +188,7 @@ void pan_calendar_update(PanWindow *pw, PanItem *pi_day) x3 = pbox->x + 1; y3 = MAX(pbox->y, y2 - 30); util_clip_triangle(x1, y1, x2, y2, x3, y3, - &x, &y, &w, &h); + x, y, w, h); pi = pan_item_tri_new(pw, nullptr, x, y, w, h, x1, y1, x2, y2, x3, y3, diff --git a/src/pan-view/pan-view.cc b/src/pan-view/pan-view.cc index b866b13f..077c3e27 100644 --- a/src/pan-view/pan-view.cc +++ b/src/pan-view/pan-view.cc @@ -1481,7 +1481,7 @@ void pan_info_update(PanWindow *pw, PanItem *pi) x3 = pbox->x + 1; y3 = pbox->y + 12; util_clip_triangle(x1, y1, x2, y2, x3, y3, - &x, &y, &w, &h); + x, y, w, h); p = pan_item_tri_new(pw, nullptr, x, y, w, h, x1, y1, x2, y2, x3, y3, diff --git a/src/pixbuf-util.cc b/src/pixbuf-util.cc index 1171568d..feef6a99 100644 --- a/src/pixbuf-util.cc +++ b/src/pixbuf-util.cc @@ -21,6 +21,7 @@ #include "pixbuf-util.h" +#include #include #include #include @@ -1003,26 +1004,12 @@ void pixbuf_draw_layout(GdkPixbuf *pixbuf, PangoLayout *layout, GtkWidget *, */ void util_clip_triangle(gint x1, gint y1, gint x2, gint y2, gint x3, gint y3, - gint *rx, gint *ry, gint *rw, gint *rh) + gint &rx, gint &ry, gint &rw, gint &rh) { - gint tx; - gint ty; - gint tw; - gint th; - - tx = MIN(x1, x2); - tx = MIN(tx, x3); - ty = MIN(y1, y2); - ty = MIN(ty, y3); - tw = MAX(abs(x1 - x2), abs(x2 - x3)); - tw = MAX(tw, abs(x3 - x1)); - th = MAX(abs(y1 - y2), abs(y2 - y3)); - th = MAX(th, abs(y3 - y1)); - - *rx = tx; - *ry = ty; - *rw = tw; - *rh = th; + rx = std::min({x1, x2, x3}); + ry = std::min({y1, y2, y3}); + rw = std::max({abs(x1 - x2), abs(x2 - x3), abs(x3 - x1)}); + rh = std::max({abs(y1 - y2), abs(y2 - y3), abs(y3 - y1)}); } void pixbuf_draw_triangle(GdkPixbuf *pb, @@ -1069,7 +1056,7 @@ void pixbuf_draw_triangle(GdkPixbuf *pb, &rx, &ry, &rw, &rh)) return; util_clip_triangle(x1, y1, x2, y2, x3, y3, - &tx, &ty, &tw, &th); + tx, ty, tw, th); if (!util_clip_region(rx, ry, rw, rh, tx, ty, tw, th, diff --git a/src/pixbuf-util.h b/src/pixbuf-util.h index 325a840b..8f8f419c 100644 --- a/src/pixbuf-util.h +++ b/src/pixbuf-util.h @@ -131,7 +131,7 @@ gboolean util_clip_region(gint x, gint y, gint w, gint h, gint clip_x, gint clip_y, gint clip_w, gint clip_h, gint *rx, gint *ry, gint *rw, gint *rh); void util_clip_triangle(gint x1, gint y1, gint x2, gint y2, gint x3, gint y3, - gint *rx, gint *ry, gint *rw, gint *rh); + gint &rx, gint &ry, gint &rw, gint &rh); #endif -- 2.20.1