From ad476671c167f5529233d6a8bfffd58faf0282b4 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 25 Jul 2005 20:25:43 +0000 Subject: [PATCH] Pad out the full width, in an attempt to work around bug #311225. 2005-07-25 Matthias Clasen * gtk/gtkhsv.c (paint_triangle): Pad out the full width, in an attempt to work around bug #311225. --- ChangeLog | 3 +++ ChangeLog.pre-2-10 | 3 +++ ChangeLog.pre-2-8 | 3 +++ gtk/gtkhsv.c | 12 ++++++++++-- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 03ed26a9e1..5786d2fe71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2005-07-25 Matthias Clasen + * gtk/gtkhsv.c (paint_triangle): Pad out the full width, in + an attempt to work around bug #311225. + * gtk/gtktreemodelsort.c: Trivial doc fixes. * gtk/gtktreesortable.c: Talk about comparison functions, not diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 03ed26a9e1..5786d2fe71 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,5 +1,8 @@ 2005-07-25 Matthias Clasen + * gtk/gtkhsv.c (paint_triangle): Pad out the full width, in + an attempt to work around bug #311225. + * gtk/gtktreemodelsort.c: Trivial doc fixes. * gtk/gtktreesortable.c: Talk about comparison functions, not diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 03ed26a9e1..5786d2fe71 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,5 +1,8 @@ 2005-07-25 Matthias Clasen + * gtk/gtkhsv.c (paint_triangle): Pad out the full width, in + an attempt to work around bug #311225. + * gtk/gtktreemodelsort.c: Trivial doc fixes. * gtk/gtktreesortable.c: Talk about comparison functions, not diff --git a/gtk/gtkhsv.c b/gtk/gtkhsv.c index e8dbc19c59..e3ea349662 100644 --- a/gtk/gtkhsv.c +++ b/gtk/gtkhsv.c @@ -1097,7 +1097,7 @@ paint_triangle (GtkHSV *hsv, gint x2, y2, r2, g2, b2; /* Second vertex */ gint x3, y3, r3, g3, b3; /* Third vertex */ gint t; - guint32 *buf, *p; + guint32 *buf, *p, c; gint xl, xr, rl, rr, gl, gr, bl, br; /* Scanline data */ gint xx, yy; gint x_interp, y_interp; @@ -1196,8 +1196,11 @@ paint_triangle (GtkHSV *hsv, x_start = MAX (xl - PAD, x); x_end = MIN (xr + PAD, x + width); - p += (x_start - x); + c = (rl << 16) | (gl << 8) | bl; + for (xx = x; xx < x_start; xx++) + *p++ = c; + for (xx = x_start; xx < x_end; xx++) { x_interp = CLAMP (xx, xl, xr); @@ -1206,6 +1209,11 @@ paint_triangle (GtkHSV *hsv, (LERP (gl, gr, xl, xr, x_interp) << 8) | LERP (bl, br, xl, xr, x_interp)); } + + c = (rr << 16) | (gr << 8) | br; + + for (xx = x_end; xx < x + width; xx++) + *p++ = c; } }