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

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

index ae835a8db7e6daace25e1319ed4dffe33ce4c0ed..42e8cb7d65393acafc15d80630f2df3d54e1d586 100644 (file)
@@ -453,7 +453,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 acd5ea2bde036330f2829d1945c97b8ece8359d0..f6d9eae0041ca179303d0d3f361a2971e9cbb788 100644 (file)
@@ -434,7 +434,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) {
@@ -443,7 +443,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 */
@@ -773,6 +773,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;
@@ -802,7 +804,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";