Commit:    aa4b0af20f61f8d1642168258c37a78b5adf1329
Author:    Remi Collet <r...@php.net>         Wed, 24 Apr 2013 14:32:03 +0200
Parents:   ee65e6953f10c6e4d0e6e118ba53aebfe836302b
Branches:  PHP-5.5 master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=aa4b0af20f61f8d1642168258c37a78b5adf1329

Log:
gd: provide imageflip with system libgd when available

Changed paths:
  M  ext/gd/config.m4
  M  ext/gd/gd.c


Diff:
diff --git a/ext/gd/config.m4 b/ext/gd/config.m4
index c7a253c..e27411d 100644
--- a/ext/gd/config.m4
+++ b/ext/gd/config.m4
@@ -286,6 +286,7 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
   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 ])
+  PHP_CHECK_LIBRARY(gd, gdImageFlipBoth,        [AC_DEFINE(HAVE_GD_IMAGE_FLIP, 
      1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
 ])
 
 dnl
@@ -342,6 +343,7 @@ dnl These are always available with bundled library
   AC_DEFINE(HAVE_GD_FONTMUTEX,        1, [ ])
   AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX,   1, [ ])
   AC_DEFINE(HAVE_GD_GIF_CTX,          1, [ ])
+  AC_DEFINE(HAVE_GD_IMAGE_FLIP,       1, [ ])
 
 dnl Make sure the libgd/ is first in the include path
   GDLIB_CFLAGS="-DHAVE_LIBPNG"
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index b60891b..ea289e7 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -883,15 +883,17 @@ ZEND_BEGIN_ARG_INFO(arginfo_imageconvolution, 0)
        ZEND_ARG_INFO(0, offset)
 ZEND_END_ARG_INFO()
 
-#ifdef HAVE_GD_BUNDLED
-ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
+#ifdef HAVE_GD_IMAGE_FLIP
+ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
        ZEND_ARG_INFO(0, im)
-       ZEND_ARG_INFO(0, on)
+       ZEND_ARG_INFO(0, mode)
 ZEND_END_ARG_INFO()
+#endif
 
-ZEND_BEGIN_ARG_INFO(arginfo_imageflip, 0)
+#ifdef HAVE_GD_BUNDLED
+ZEND_BEGIN_ARG_INFO(arginfo_imageantialias, 0)
        ZEND_ARG_INFO(0, im)
-       ZEND_ARG_INFO(0, mode)
+       ZEND_ARG_INFO(0, on)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO(arginfo_imagecrop, 0)
@@ -992,9 +994,12 @@ const zend_function_entry gd_functions[] = {
 
        PHP_FE(imagerotate,                                                     
arginfo_imagerotate)
 
+#ifdef HAVE_GD_IMAGE_FLIP
+       PHP_FE(imageflip,                                                       
        arginfo_imageflip)
+#endif
+
 #ifdef HAVE_GD_BUNDLED
        PHP_FE(imageantialias,                                                  
arginfo_imageantialias)
-       PHP_FE(imageflip,                                                       
        arginfo_imageflip)
        PHP_FE(imagecrop,                                                       
        arginfo_imagecrop)
        PHP_FE(imagecropauto,                                                   
arginfo_imagecropauto)
        PHP_FE(imagescale,                                                      
        arginfo_imagescale)
@@ -1246,6 +1251,11 @@ PHP_MINIT_FUNCTION(gd)
 #ifdef GD2_FMT_COMPRESSED
        REGISTER_LONG_CONSTANT("IMG_GD2_COMPRESSED", GD2_FMT_COMPRESSED, 
CONST_CS | CONST_PERSISTENT);
 #endif
+#ifdef HAVE_GD_IMAGE_FLIP
+       REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, 
CONST_CS | CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS 
| CONST_PERSISTENT);
+       REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | 
CONST_PERSISTENT);
+#endif
 #if HAVE_GD_BUNDLED
        REGISTER_LONG_CONSTANT("IMG_EFFECT_REPLACE", gdEffectReplace, CONST_CS 
| CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_EFFECT_ALPHABLEND", gdEffectAlphaBlend, 
CONST_CS | CONST_PERSISTENT);
@@ -1253,10 +1263,6 @@ PHP_MINIT_FUNCTION(gd)
        REGISTER_LONG_CONSTANT("IMG_EFFECT_OVERLAY", gdEffectOverlay, CONST_CS 
| CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("GD_BUNDLED", 1, CONST_CS | CONST_PERSISTENT);
 
-       REGISTER_LONG_CONSTANT("IMG_FLIP_HORIZONTAL", GD_FLIP_HORINZONTAL, 
CONST_CS | CONST_PERSISTENT);
-       REGISTER_LONG_CONSTANT("IMG_FLIP_VERTICAL", GD_FLIP_VERTICAL, CONST_CS 
| CONST_PERSISTENT);
-       REGISTER_LONG_CONSTANT("IMG_FLIP_BOTH", GD_FLIP_BOTH, CONST_CS | 
CONST_PERSISTENT);
-
        REGISTER_LONG_CONSTANT("IMG_CROP_DEFAULT", GD_CROP_DEFAULT, CONST_CS | 
CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_TRANSPARENT", GD_CROP_TRANSPARENT, 
CONST_CS | CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("IMG_CROP_BLACK", GD_CROP_BLACK, CONST_CS | 
CONST_PERSISTENT);
@@ -5189,26 +5195,7 @@ PHP_FUNCTION(imageconvolution)
 /* }}} */
 /* End section: Filters */
 
-#ifdef HAVE_GD_BUNDLED
-/* {{{ proto bool imageantialias(resource im, bool on)
-   Should antialiased functions used or not*/
-PHP_FUNCTION(imageantialias)
-{
-       zval *IM;
-       zend_bool alias;
-       gdImagePtr im;
-
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &IM, &alias) 
== FAILURE) {
-               return;
-       }
-
-       ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
-       gdImageAntialias(im, alias);
-       RETURN_TRUE;
-}
-/* }}} */
-
-
+#ifdef HAVE_GD_IMAGE_FLIP
 /* {{{ proto void imageflip(resource im, int mode)
    Flip an image (in place) horizontally, vertically or both directions. */
 PHP_FUNCTION(imageflip)
@@ -5244,6 +5231,27 @@ PHP_FUNCTION(imageflip)
        RETURN_TRUE;
 }
 /* }}} */
+#endif
+
+#ifdef HAVE_GD_BUNDLED
+/* {{{ proto bool imageantialias(resource im, bool on)
+   Should antialiased functions used or not*/
+PHP_FUNCTION(imageantialias)
+{
+       zval *IM;
+       zend_bool alias;
+       gdImagePtr im;
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rb", &IM, &alias) 
== FAILURE) {
+               return;
+       }
+
+       ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
+       gdImageAntialias(im, alias);
+       RETURN_TRUE;
+}
+/* }}} */
+
 
 /* {{{ proto void imagecrop(resource im, array rect)
    Crop an image using the given coordinates and size, x, y, width and height. 
*/


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to