From b5b7b21e1511b70f07ac93b6f87d2a835e99164d Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 21 Apr 2013 10:14:58 +0200 Subject: gd: import from rawhide --- gd-2.0.35-AALineThick.patch | 66 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 gd-2.0.35-AALineThick.patch (limited to 'gd-2.0.35-AALineThick.patch') diff --git a/gd-2.0.35-AALineThick.patch b/gd-2.0.35-AALineThick.patch new file mode 100644 index 0000000..4349ada --- /dev/null +++ b/gd-2.0.35-AALineThick.patch @@ -0,0 +1,66 @@ +diff -up gd-2.0.35/gd.c.AALineThick gd-2.0.35/gd.c +--- gd-2.0.35/gd.c.AALineThick 2007-06-19 22:25:51.000000000 +0200 ++++ gd-2.0.35/gd.c 2012-02-28 11:02:09.708015922 +0100 +@@ -3474,6 +3474,8 @@ static void gdImageAALine (gdImagePtr im + /* keep them as 32bits */ + long x, y, inc; + long dx, dy,tmp; ++ int w, wid, wstart; ++ int thick = im->thick; + + if (!im->trueColor) { + /* TBB: don't crash when the image is of the wrong type */ +@@ -3502,6 +3504,25 @@ static void gdImageAALine (gdImagePtr im + gdImageSetAAPixelColor(im, x1, y1, col, 0xFF); + return; + } ++ else { ++ double ag; ++ if (abs(dy) < abs(dx)) ++ ag = cos (atan2 (dy, dx)); ++ else ++ ag = sin (atan2 (dy, dx)); ++ if (ag != 0) ++ { ++ wid = abs(thick / ag); ++ } ++ else ++ { ++ wid = 1; ++ } ++ if (wid == 0) ++ { ++ wid = 1; ++ } ++ } + if (abs(dx) > abs(dy)) { + if (dx < 0) { + tmp = x1; +@@ -3518,8 +3539,11 @@ static void gdImageAALine (gdImagePtr im + inc = (dy * 65536) / dx; + /* TBB: set the last pixel for consistency (<=) */ + while ((x >> 16) <= x2) { +- gdImageSetAAPixelColor(im, x >> 16, y >> 16, col, (y >> 8) & 0xFF); +- gdImageSetAAPixelColor(im, x >> 16, (y >> 16) + 1,col, (~y >> 8) & 0xFF); ++ wstart = (y >> 16) - wid / 2; ++ for (w = wstart; w < wstart + wid; w++) { ++ gdImageSetAAPixelColor(im, (x >> 16) , w , col , (y >> 8) & 0xFF); ++ gdImageSetAAPixelColor(im, (x >> 16) , w + 1 , col, (~y >> 8) & 0xFF); ++ } + x += (1 << 16); + y += inc; + } +@@ -3539,8 +3563,11 @@ static void gdImageAALine (gdImagePtr im + inc = (dx * 65536) / dy; + /* TBB: set the last pixel for consistency (<=) */ + while ((y>>16) <= y2) { +- gdImageSetAAPixelColor(im, x >> 16, y >> 16, col, (x >> 8) & 0xFF); +- gdImageSetAAPixelColor(im, (x >> 16) + 1, (y >> 16),col, (~x >> 8) & 0xFF); ++ wstart = (x >> 16) - wid / 2; ++ for (w = wstart; w < wstart + wid; w++) { ++ gdImageSetAAPixelColor(im, w , y >> 16 , col, (x >> 8) & 0xFF); ++ gdImageSetAAPixelColor(im, w + 1, y >> 16, col, (~x >> 8) & 0xFF); ++ } + x += inc; + y += (1<<16); + } -- cgit