summaryrefslogtreecommitdiff
path: root/Build/source/libs/gd/TLpatches/patch-01-win32
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/gd/TLpatches/patch-01-win32')
-rw-r--r--Build/source/libs/gd/TLpatches/patch-01-win3278
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);