diff options
Diffstat (limited to 'Build/source/libs/gd/TLpatches/patch-01-win32')
-rw-r--r-- | Build/source/libs/gd/TLpatches/patch-01-win32 | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Build/source/libs/gd/TLpatches/patch-01-win32 b/Build/source/libs/gd/TLpatches/patch-01-win32 new file mode 100644 index 00000000000..b2a276c4e67 --- /dev/null +++ b/Build/source/libs/gd/TLpatches/patch-01-win32 @@ -0,0 +1,78 @@ +diff -ur libgd-2.3.1/src/gd_interpolation.c libgd-src/src/gd_interpolation.c +--- libgd-2.3.1/src/gd_interpolation.c Sat Jan 30 18:30:01 2021 ++++ libgd-src/src/gd_interpolation.c Wed Feb 03 14:56:52 2021 +@@ -1992,9 +1992,9 @@ + int i; + + b = (unsigned char)tcolor; +- g = (unsigned char)tcolor >> 8; +- r = (unsigned char)tcolor >> 16; +- a = (unsigned char)tcolor >> 24; ++ g = (unsigned char)(tcolor >> 8); ++ r = (unsigned char)(tcolor >> 16); ++ a = (unsigned char)(tcolor >> 24); + + b = CLAMP(b, 0, 255); + g = CLAMP(g, 0, 255); +diff -ur libgd-2.3.1/src/gdft.c libgd-src/src/gdft.c +--- libgd-2.3.1/src/gdft.c Sat Jan 30 18:30:01 2021 ++++ libgd-src/src/gdft.c Wed Feb 03 15:26:58 2021 +@@ -446,6 +446,11 @@ + FT_Face face, gdFTStringExtraPtr strex, + glyphInfo **glyph_info) + { ++#ifndef HAVE_LIBRAQM ++ FT_UInt glyph_index = 0, previous = 0; ++ FT_Vector delta; ++ FT_Error err; ++#endif + size_t count; + glyphInfo *info; + +@@ -488,9 +493,6 @@ + + raqm_destroy (rq); + #else +- FT_UInt glyph_index = 0, previous = 0; +- FT_Vector delta; +- FT_Error err; + info = (glyphInfo*) gdMalloc (sizeof (glyphInfo) * len); + if (!info) { + return -1; +@@ -1523,6 +1525,8 @@ + } + + if (render) { ++ FT_Pos pen_x; ++ FT_Pos pen_y; + FT_Activate_Size (platform_specific); + + /* load glyph again into the slot (erase previous one) - this time with scaling */ +@@ -1556,8 +1560,8 @@ + bm = (FT_BitmapGlyph) image; + /* position rounded down to nearest pixel at current dpi + (the estimate was rounded up to next 1/METRIC_RES, so this should fit) */ +- FT_Pos pen_x = penf.x + info[i].x_offset; +- FT_Pos pen_y = penf.y - info[i].y_offset; ++ pen_x = penf.x + info[i].x_offset; ++ pen_y = penf.y - info[i].y_offset; + gdft_draw_bitmap (tc_cache, im, fg, bm->bitmap, + (int)(x + (pen_x * cos_a + pen_y * sin_a)*hdpi/(METRIC_RES*64) + bm->left), + (int)(y - (pen_x * sin_a - pen_y * cos_a)*vdpi/(METRIC_RES*64) - bm->top)); +@@ -1793,6 +1797,16 @@ + */ + *fontpath = NULL; + fontsearchpath = getenv ("GDFONTPATH"); ++#ifdef _WIN32 ++ if (!fontsearchpath) { ++ char *ffptr = getenv ("WINDIR"); ++ if (ffptr) { ++ fontsearchpath = malloc (strlen(ffptr) + strlen("\\Fonts") + 1); ++ strcpy(fontsearchpath, ffptr); ++ strcat(fontsearchpath, "\\Fonts"); ++ } ++ } ++#endif + if (!fontsearchpath) + fontsearchpath = DEFAULT_FONTPATH; + path = (char *) gdMalloc(sizeof(char) * strlen(fontsearchpath) + 1); |