64 lines
2.5 KiB
Diff
64 lines
2.5 KiB
Diff
|
Revert upstream commit 04bb9a08b3c25f8e3c0c235f9cefc0f94df59a5a because it
|
||
|
causes a test failure on i686 and possibly other architectures.
|
||
|
|
||
|
See <https://github.com/libgd/libgd/issues/613>.
|
||
|
|
||
|
diff --git a/src/gdft.c b/src/gdft.c
|
||
|
--- a/src/gdft.c
|
||
|
+++ b/src/gdft.c
|
||
|
@@ -1579,6 +1579,12 @@ BGD_DECLARE(char *) gdImageStringFTEx (gdImage * im, int *brect, int fg, const c
|
||
|
double scalex = (double)hdpi / (64 * METRIC_RES);
|
||
|
double scaley = (double)vdpi / (64 * METRIC_RES);
|
||
|
|
||
|
+ /* increase by 1 pixel to allow for rounding */
|
||
|
+ total_min.x -= METRIC_RES;
|
||
|
+ total_min.y -= METRIC_RES;
|
||
|
+ total_max.x += METRIC_RES;
|
||
|
+ total_max.y += METRIC_RES;
|
||
|
+
|
||
|
/* rotate bounding rectangle, scale and round to int pixels, and translate */
|
||
|
brect[0] = x + (total_min.x * cos_a + total_max.y * sin_a)*scalex;
|
||
|
brect[1] = y - (total_min.x * sin_a - total_max.y * cos_a)*scaley;
|
||
|
diff --git a/tests/gdimagestringft/gdimagestringft_bbox.c b/tests/gdimagestringft/gdimagestringft_bbox.c
|
||
|
--- a/tests/gdimagestringft/gdimagestringft_bbox.c
|
||
|
+++ b/tests/gdimagestringft/gdimagestringft_bbox.c
|
||
|
@@ -8,22 +8,22 @@
|
||
|
#define DELTA (PI/8)
|
||
|
|
||
|
static int EXPECT[16][8] = {
|
||
|
- {500, 400, 628, 400, 628, 376, 500, 376},
|
||
|
- {492, 362, 611, 312, 601, 290, 483, 339},
|
||
|
- {470, 330, 561, 239, 544, 221, 453, 312},
|
||
|
- {437, 308, 486, 189, 464, 180, 414, 299},
|
||
|
- {400, 301, 400, 173, 376, 173, 376, 301},
|
||
|
- {363, 309, 313, 190, 291, 200, 340, 318},
|
||
|
- {332, 331, 241, 240, 223, 257, 314, 348},
|
||
|
- {311, 363, 192, 314, 183, 336, 302, 386},
|
||
|
- {304, 399, 176, 399, 176, 423, 304, 423},
|
||
|
- {312, 435, 193, 485, 203, 507, 321, 458},
|
||
|
- {333, 465, 242, 556, 259, 574, 350, 483},
|
||
|
- {364, 486, 315, 605, 337, 614, 387, 495},
|
||
|
- {399, 492, 399, 620, 423, 620, 423, 492},
|
||
|
- {434, 484, 484, 603, 506, 593, 457, 475},
|
||
|
- {463, 464, 554, 555, 572, 538, 481, 447},
|
||
|
- {483, 434, 602, 483, 611, 461, 492, 411},
|
||
|
+ {498, 401, 630, 401, 630, 374, 498, 374},
|
||
|
+ {491, 364, 613, 313, 602, 288, 481, 338},
|
||
|
+ {470, 332, 563, 239, 544, 219, 451, 312},
|
||
|
+ {438, 310, 488, 189, 463, 178, 412, 300},
|
||
|
+ {401, 303, 401, 171, 374, 171, 374, 303},
|
||
|
+ {365, 310, 314, 188, 289, 199, 339, 320},
|
||
|
+ {334, 331, 241, 238, 221, 257, 314, 350},
|
||
|
+ {313, 362, 192, 312, 181, 337, 303, 388},
|
||
|
+ {306, 398, 174, 398, 174, 425, 306, 425},
|
||
|
+ {313, 433, 191, 484, 202, 509, 323, 459},
|
||
|
+ {333, 463, 240, 556, 259, 576, 352, 483},
|
||
|
+ {363, 484, 313, 605, 338, 616, 389, 494},
|
||
|
+ {398, 490, 398, 622, 425, 622, 425, 490},
|
||
|
+ {432, 483, 483, 605, 508, 594, 458, 473},
|
||
|
+ {461, 464, 554, 557, 574, 538, 481, 445},
|
||
|
+ {481, 435, 602, 485, 613, 460, 491, 409},
|
||
|
};
|
||
|
|
||
|
int main()
|