Simplify util_clip_triangle()
authorArkadiy Illarionov <qarkai@gmail.com>
Sat, 9 Mar 2024 16:45:19 +0000 (19:45 +0300)
committerColin Clark <colin.clark@cclark.uk>
Sat, 9 Mar 2024 17:00:44 +0000 (17:00 +0000)
src/pan-view/pan-calendar.cc
src/pan-view/pan-view.cc
src/pixbuf-util.cc
src/pixbuf-util.h

index c376b9c..746bb70 100644 (file)
@@ -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,
index b866b13..077c3e2 100644 (file)
@@ -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,
index 1171568..feef6a9 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "pixbuf-util.h"
 
+#include <algorithm>
 #include <cmath>
 #include <cstdlib>
 #include <cstring>
@@ -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,
index 325a840..8f8f419 100644 (file)
@@ -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