]> granicus.if.org Git - php/commitdiff
add external 2.1 detection and fix gd_compat for 2.1+
authorPierre Joye <pierre.php@gmail.com>
Wed, 10 Apr 2013 18:12:25 +0000 (20:12 +0200)
committerPierre Joye <pierre.php@gmail.com>
Wed, 10 Apr 2013 18:12:25 +0000 (20:12 +0200)
ext/gd/config.m4
ext/gd/gd.c
ext/gd/libgd/gd_compat.h

index ebbdb92fb91dd37d4861438a9fe1aebdc6ac3330..d85c8b985cba4d3e78615c5103796ad947faf74e 100644 (file)
@@ -252,6 +252,8 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
   PHP_CHECK_LIBRARY(gd, gdFreeFontCache,        [AC_DEFINE(HAVE_GD_FREEFONTCACHE,    1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdFontCacheMutexSetup,  [AC_DEFINE(HAVE_GD_FONTMUTEX,        1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
   PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx,      [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX,   1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+  PHP_CHECK_LIBRARY(gd, gdImageConvolution,     [AC_DEFINE(HAVE_GD_IMAGE_CONVOLUTION,      1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
+  PHP_CHECK_LIBRARY(gd, gdImagePixelate,        [AC_DEFINE(HAVE_GD_IMAGE_PIXELATE,         1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
 ])
 
 dnl
index 3bb9fa2e5f81114588aaf2d4b1b085cc1d32f2b5..25f53687c19a828d4e3ff84a6eb915ebd92f2474 100644 (file)
@@ -1241,9 +1241,13 @@ PHP_RSHUTDOWN_FUNCTION(gd)
 /* }}} */
 
 #if HAVE_GD_BUNDLED
-#define PHP_GD_VERSION_STRING "bundled (2.0.34 compatible)"
+#define PHP_GD_VERSION_STRING "bundled (2.1.0 compatible)"
 #else
-#define PHP_GD_VERSION_STRING "2.0"
+# ifdef GD_VERSION_STRING
+#  define PHP_GD_VERSION_STRING GD_VERSION_STRING
+# else
+#  define PHP_GD_VERSION_STRING "2.0"
+# endif
 #endif
 
 /* {{{ PHP_MINFO_FUNCTION
index c084a0069c39e8c6e64818a54ec1b483be0cc738..779e709a638fcbd5ded1993cfb25b170200b50f3 100644 (file)
@@ -32,6 +32,7 @@ int gdImageContrast(gdImagePtr src, double contrast);
 /* Simply adds or substracts respectively red, green or blue to a pixel */
 int gdImageColor(gdImagePtr src, const int red, const int green, const int blue, const int alpha);
 
+#if !defined(HAVE_GD_IMAGE_CONVOLUTION)
 /* Image convolution by a 3x3 custom matrix */
 int gdImageConvolution(gdImagePtr src, float ft[3][3], float filter_div, float offset);
 int gdImageEdgeDetectQuick(gdImagePtr src);
@@ -40,11 +41,17 @@ int gdImageSelectiveBlur( gdImagePtr src);
 int gdImageEmboss(gdImagePtr im);
 int gdImageMeanRemoval(gdImagePtr im);
 int gdImageSmooth(gdImagePtr im, float weight);
+#endif
+
+#if !defined(HAVE_GD_IMAGE_PIXELATE)
 enum gdPixelateMode {
        GD_PIXELATE_UPPERLEFT,
        GD_PIXELATE_AVERAGE
 };
 
+int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
+#endif
+
 int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
 
 #if !HAVE_GD_IMAGEELLIPSE