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,
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,
#include "pixbuf-util.h"
+#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <cstring>
*/
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,
&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,
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