]> granicus.if.org Git - php/commitdiff
MFH:
authorIlia Alshanetsky <iliaa@php.net>
Sun, 9 May 2004 17:34:02 +0000 (17:34 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Sun, 9 May 2004 17:34:02 +0000 (17:34 +0000)
Upgrade bundled GD library to 2.0.23.
Fixed bug #28175 (build problem for people using FreeType 2.1.0-2.1.2).

NEWS
ext/gd/gd.c
ext/gd/libgd/gdft.c

diff --git a/NEWS b/NEWS
index 8ff58d43cb02b52195bcb4a4a88d9dfb7a8f0014..54d70f6623e8be5ed934ee6589674421a8d954a2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP 4                                                                      NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2004, Version 4.3.7
+- Upgraded bundled GD library to 2.0.23. (Ilia)
 - Fixed possible crash inside pg_copy_(to|from) function if delimiter is more
   then 1 character long. (Ilia)
 - Fixed handling of return values from storred procedures in mssql_execute()
@@ -12,6 +13,8 @@ PHP 4                                                                      NEWS
   (Ilia)
 - Fixed bug #28196 (missing error constants in cURL extension). (Ilia)
 - Fixed bug #28187 (parse_url() not handling embedded IPv6 in URLs). (Sara)
+- Fixed bug #28175 (build problem for people using FreeType 2.1.0-2.1.2).
+  (Ilia)
 - Fixed bug #28147 (Crash with drawing anti-aliased lines). (Derick)
 - Fixed bug #28112 (sqlite_query() crashing apache on malformed query). (Ilia,
   Marcus)
index f37dc86eab6b843d4f84f6907d9150cdd6440212..8903d4935f2b871d87880faeda0135c2eec694d4 100644 (file)
@@ -390,7 +390,7 @@ PHP_RSHUTDOWN_FUNCTION(gd)
 /* }}} */
 
 #if HAVE_GD_BUNDLED
-#define PHP_GD_VERSION_STRING "bundled (2.0.22 compatible)"
+#define PHP_GD_VERSION_STRING "bundled (2.0.23 compatible)"
 #elif HAVE_LIBGD20
 #define PHP_GD_VERSION_STRING "2.0 or higher"
 #elif HAVE_GDIMAGECOLORRESOLVE
index 844e92ff2e8b6ba5c7d77a4dbcf8642aff0a4a20..307b92204f902f9c2d0d0e3792b522095bf4d92c 100644 (file)
@@ -473,7 +473,7 @@ static void *fontFetch (char **error, void *key)
                encoding = charmap->encoding_id;
 
 /* EAM DEBUG - Newer versions of libfree2 make it easier by defining encodings */
-#if (defined(FREETYPE_MAJOR) && (FREETYPE_MAJOR >=2 ) && (FREETYPE_MINOR >= 1))
+#if (defined(FREETYPE_MAJOR) && ((FREETYPE_MAJOR == 2 && ((FREETYPE_MINOR == 1 && FREETYPE_PATCH >= 3) || FREETYPE_MINOR > 1) || FREETYPE_MAJOR > 2)))
        if (charmap->encoding == FT_ENCODING_MS_SYMBOL
                || charmap->encoding == FT_ENCODING_ADOBE_CUSTOM
                || charmap->encoding == FT_ENCODING_ADOBE_STANDARD) {
@@ -482,7 +482,7 @@ static void *fontFetch (char **error, void *key)
                a->face->charmap = charmap;
                return (void *)a;
        }
-#endif /* Freetype 2.1 or better */
+#endif /* Freetype 2.1.3 or better */
 /* EAM DEBUG */
 
                if ((platform == 3 && encoding == 1)            /* Windows Unicode */
@@ -843,6 +843,8 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi
        *   colorindexes.          -- 27.06.2001 <krisku@arrak.fi>
        */
        gdCache_head_t  *tc_cache;
+       /* Tuneable horizontal and vertical resolution in dots per inch */
+       int hdpi, vdpi;
 
        if (strex && ((strex->flags & gdFTEX_LINESPACE) == gdFTEX_LINESPACE)) {
                linespace = strex->linespacing;
@@ -872,7 +874,19 @@ gdImageStringFTEx (gdImage * im, int *brect, int fg, char *fontlist, double ptsi
        face = font->face;              /* shortcut */
        slot = face->glyph;             /* shortcut */
 
-       if (FT_Set_Char_Size (face, 0, (FT_F26Dot6) (ptsize * 64), GD_RESOLUTION, GD_RESOLUTION)) {
+       /*
+        * Added hdpi and vdpi to support images at non-screen resolutions, i.e. 300 dpi TIFF,
+        * or 100h x 50v dpi FAX format. 2.0.23.
+        * 2004/02/27 Mark Shackelford, mark.shackelford@acs-inc.com
+        */
+       hdpi = GD_RESOLUTION;
+       vdpi = GD_RESOLUTION;
+       if (strex && (strex->flags & gdFTEX_RESOLUTION)) {
+               hdpi = strex->hdpi;
+               vdpi = strex->vdpi;
+       }
+
+       if (FT_Set_Char_Size(face, 0, (FT_F26Dot6) (ptsize * 64), hdpi, vdpi)) {
                gdCacheDelete(tc_cache);
                gdMutexUnlock(gdFontCacheMutex);
                return "Could not set character size";