pixman: Branch 'master'

Søren Sandmann Pedersen sandmann at kemper.freedesktop.org
Mon Dec 3 10:22:19 PST 2007


 configure.ac         |   18 +++++++++++++
 pixman/pixman-pict.c |   16 ++++++------
 pixman/pixman.h      |   67 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 93 insertions(+), 8 deletions(-)

New commits:
commit bb056d4e02ff8ff27f4d2a14f630f5dc01b85d28
Author: Søren Sandmann <sandmann at redhat.com>
Date:   Mon Dec 3 13:14:42 2007 -0500

    Use -fvisibility=hidden by default.
    
    Add a PIXMAN_EXPORT macro that expands to the appropriate GCC magic.
    Various formatting fixes.

diff --git a/configure.ac b/configure.ac
index 22a91ef..b1c2015 100644
--- a/configure.ac
+++ b/configure.ac
@@ -83,6 +83,24 @@ if test "x$GCC" = "xyes"; then
   *) CFLAGS="$CFLAGS -Wall" ;;
   esac fi changequote([,])dnl
 
+dnl =========================================================================
+dnl -fvisibility stuff
+
+have_gcc4=no
+AC_MSG_CHECKING(for -fvisibility)
+AC_COMPILE_IFELSE([
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+#else
+#error Need GCC 4.0 for visibility
+#endif
+int main () { return 0; } 
+], have_gcc4=yes)
+
+if test "x$have_gcc4" = "xyes"; then
+   CFLAGS="$CFLAGS -fvisibility=hidden"
+fi
+AC_MSG_RESULT($have_gcc4)
+
 dnl ===========================================================================
 dnl Check for MMX
 
diff --git a/pixman/pixman-pict.c b/pixman/pixman-pict.c
index b913f28..1cb4a9e 100644
--- a/pixman/pixman-pict.c
+++ b/pixman/pixman-pict.c
@@ -1387,7 +1387,9 @@ pixman_image_composite_rect  (pixman_op_t                   op,
 	free (scanline_buffer);
 }
 
-/* These "formats" all have depth 0, so they will never clash with any real ones */
+/* These "formats" both have depth 0, so they
+ * will never clash with any real ones
+ */
 #define PIXMAN_null		PIXMAN_FORMAT(0,0,0,0,0,0)
 #define PIXMAN_solid		PIXMAN_FORMAT(0,1,0,0,0,0)
 
@@ -1583,11 +1585,11 @@ mask_is_solid (pixman_image_t *mask)
 
 static const FastPathInfo *
 get_fast_path (const FastPathInfo *fast_paths,
-	       pixman_op_t   op,
-	       pixman_image_t *pSrc,
-	       pixman_image_t *pMask,
-	       pixman_image_t *pDst,
-	       pixman_bool_t   pixbuf)
+	       pixman_op_t         op,
+	       pixman_image_t     *pSrc,
+	       pixman_image_t     *pMask,
+	       pixman_image_t     *pDst,
+	       pixman_bool_t       is_pixbuf)
 {
     const FastPathInfo *info;
 
@@ -1632,7 +1634,7 @@ get_fast_path (const FastPathInfo *fast_paths,
 	if (info->dest_format != pDst->bits.format)
 	    continue;
 
-	if ((info->flags & NEED_PIXBUF) && !pixbuf)
+	if ((info->flags & NEED_PIXBUF) && !is_pixbuf)
 	    continue;
 
 	return info;
diff --git a/pixman/pixman.h b/pixman/pixman.h
index 2f22525..7248f86 100644
--- a/pixman/pixman.h
+++ b/pixman/pixman.h
@@ -90,6 +90,13 @@ typedef unsigned __int64 uint64_t;
 #  include <stdint.h>
 #endif
 
+/* GCC visibility */
+#if defined(__GNUC__) && __GNUC__ >= 4
+#define PIXMAN_EXPORT __attribute__ ((visibility("default")))
+#else
+#define PIXMAN_EXPORT
+#endif
+
 /*
  * Boolean
  */
@@ -267,62 +274,85 @@ typedef enum
 /* This function exists only to make it possible to preserve the X ABI - it should
  * go away at first opportunity.
  */
+PIXMAN_EXPORT
 void		        pixman_region_set_static_pointers (pixman_box16_t *empty_box,
 							   pixman_region16_data_t *empty_data,
 							   pixman_region16_data_t *broken_data);
 
 /* creation/destruction */
+PIXMAN_EXPORT
 void                    pixman_region_init              (pixman_region16_t *region);
+PIXMAN_EXPORT
 void                    pixman_region_init_rect         (pixman_region16_t *region,
 							 int                x,
 							 int                y,
 							 unsigned int       width,
 							 unsigned int       height);
+PIXMAN_EXPORT
 void                    pixman_region_init_with_extents (pixman_region16_t *region,
 							 pixman_box16_t    *extents);
+PIXMAN_EXPORT
 void                    pixman_region_fini              (pixman_region16_t *region);
 
 /* manipulation */
+PIXMAN_EXPORT
 void                    pixman_region_translate  (pixman_region16_t *region,
 						  int                x,
 						  int                y);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_copy       (pixman_region16_t *dest,
 						  pixman_region16_t *source);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_intersect  (pixman_region16_t *newReg,
 						  pixman_region16_t *reg1,
 						  pixman_region16_t *reg2);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_union      (pixman_region16_t *newReg,
 						  pixman_region16_t *reg1,
 						  pixman_region16_t *reg2);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_union_rect (pixman_region16_t *dest,
 						  pixman_region16_t *source,
 						  int                x,
 						  int                y,
 						  unsigned int       width,
 						  unsigned int       height);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_subtract   (pixman_region16_t *regD,
 						  pixman_region16_t *regM,
 						  pixman_region16_t *regS);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_inverse    (pixman_region16_t *newReg,
 						  pixman_region16_t *reg1,
 						  pixman_box16_t    *invRect);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_contains_point (pixman_region16_t *region,
 						      int x, int y, pixman_box16_t *box);
+PIXMAN_EXPORT
 pixman_region_overlap_t pixman_region_contains_rectangle (pixman_region16_t *pixman_region16_t,
 							  pixman_box16_t *prect);
+PIXMAN_EXPORT
 pixman_bool_t           pixman_region_not_empty (pixman_region16_t *region);
+PIXMAN_EXPORT
 pixman_box16_t *        pixman_region_extents (pixman_region16_t *region);
+PIXMAN_EXPORT
 int                     pixman_region_n_rects (pixman_region16_t *region);
+PIXMAN_EXPORT
 pixman_box16_t *        pixman_region_rectangles (pixman_region16_t *region,
 						  int		    *n_rects);
+PIXMAN_EXPORT
 pixman_bool_t		pixman_region_equal (pixman_region16_t *region1,
 					     pixman_region16_t *region2);
+PIXMAN_EXPORT
 pixman_bool_t		pixman_region_selfcheck (pixman_region16_t *region);
+PIXMAN_EXPORT
 void			pixman_region_reset (pixman_region16_t *region, pixman_box16_t *box);
+PIXMAN_EXPORT
 pixman_bool_t		pixman_region_init_rects (pixman_region16_t *region,
 						  pixman_box16_t *boxes, int count);
 
 /* Copy / Fill */
+PIXMAN_EXPORT
 pixman_bool_t pixman_blt (uint32_t *src_bits,
 			  uint32_t *dst_bits,
 			  int src_stride,
@@ -332,6 +362,7 @@ pixman_bool_t pixman_blt (uint32_t *src_bits,
 			  int src_x, int src_y,
 			  int dst_x, int dst_y,
 			  int width, int height);
+PIXMAN_EXPORT
 pixman_bool_t pixman_fill (uint32_t *bits,
 			   int stride,
 			   int bpp,
@@ -464,21 +495,26 @@ typedef enum {
 } pixman_format_code_t;
 
 /* Constructors */
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_create_solid_fill       (pixman_color_t               *color);
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_create_linear_gradient  (pixman_point_fixed_t         *p1,
 						      pixman_point_fixed_t         *p2,
 						      const pixman_gradient_stop_t *stops,
 						      int                           n_stops);
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_create_radial_gradient  (pixman_point_fixed_t         *inner,
 						      pixman_point_fixed_t         *outer,
 						      pixman_fixed_t                inner_radius,
 						      pixman_fixed_t                outer_radius,
 						      const pixman_gradient_stop_t *stops,
 						      int                           n_stops);
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_create_conical_gradient (pixman_point_fixed_t         *center,
 						      pixman_fixed_t                angle,
 						      const pixman_gradient_stop_t *stops,
 						      int                           n_stops);
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_create_bits             (pixman_format_code_t          format,
 						      int                           width,
 						      int                           height,
@@ -486,44 +522,63 @@ pixman_image_t *pixman_image_create_bits             (pixman_format_code_t
 						      int                           rowstride_bytes);
 
 /* Destructor */
+PIXMAN_EXPORT
 pixman_image_t *pixman_image_ref                     (pixman_image_t               *image);
+PIXMAN_EXPORT
 pixman_bool_t   pixman_image_unref                   (pixman_image_t               *image);
 
 
 /* Set properties */
+PIXMAN_EXPORT
 pixman_bool_t   pixman_image_set_clip_region         (pixman_image_t               *image,
 						      pixman_region16_t            *region);
+PIXMAN_EXPORT
 void		pixman_image_set_has_client_clip     (pixman_image_t               *image,
 						      pixman_bool_t		    clien_clip);
+PIXMAN_EXPORT
 pixman_bool_t   pixman_image_set_transform           (pixman_image_t               *image,
 						      const pixman_transform_t     *transform);
+PIXMAN_EXPORT
 void            pixman_image_set_repeat              (pixman_image_t               *image,
 						      pixman_repeat_t               repeat);
+PIXMAN_EXPORT
 pixman_bool_t   pixman_image_set_filter              (pixman_image_t               *image,
 						      pixman_filter_t               filter,
 						      const pixman_fixed_t         *filter_params,
 						      int                           n_filter_params);
+PIXMAN_EXPORT
 void            pixman_image_set_filter_params       (pixman_image_t               *image,
 						      pixman_fixed_t               *params,
 						      int                           n_params);
+PIXMAN_EXPORT
 void		pixman_image_set_source_clipping     (pixman_image_t		   *image,
 						      pixman_bool_t                 source_clipping);
+PIXMAN_EXPORT
 void            pixman_image_set_alpha_map           (pixman_image_t               *image,
 						      pixman_image_t               *alpha_map,
 						      int16_t                       x,
 						      int16_t                       y);
+PIXMAN_EXPORT
 void            pixman_image_set_component_alpha     (pixman_image_t               *image,
 						      pixman_bool_t                 component_alpha);
+PIXMAN_EXPORT
 void		pixman_image_set_accessors	     (pixman_image_t		   *image,
 						      pixman_read_memory_func_t	    read_func,
 						      pixman_write_memory_func_t    write_func);
+PIXMAN_EXPORT
 void		pixman_image_set_indexed	     (pixman_image_t		   *image,
 						      const pixman_indexed_t	   *indexed);
+PIXMAN_EXPORT
 uint32_t       *pixman_image_get_data                (pixman_image_t               *image);
+PIXMAN_EXPORT
 int		pixman_image_get_width               (pixman_image_t               *image);
+PIXMAN_EXPORT
 int             pixman_image_get_height              (pixman_image_t               *image);
+PIXMAN_EXPORT
 int		pixman_image_get_stride              (pixman_image_t               *image);
+PIXMAN_EXPORT
 int		pixman_image_get_depth               (pixman_image_t		   *image);
+PIXMAN_EXPORT
 pixman_bool_t	pixman_image_fill_rectangles	     (pixman_op_t		    op,
 						      pixman_image_t		   *image,
 						      pixman_color_t		   *color,
@@ -531,6 +586,7 @@ pixman_bool_t	pixman_image_fill_rectangles	     (pixman_op_t		    op,
 						      const pixman_rectangle16_t	   *rects);
 
 /* Composite */
+PIXMAN_EXPORT
 pixman_bool_t   pixman_compute_composite_region (pixman_region16_t *	pRegion,
 						 pixman_image_t *	pSrc,
 						 pixman_image_t *	pMask,
@@ -543,6 +599,7 @@ pixman_bool_t   pixman_compute_composite_region (pixman_region16_t *	pRegion,
 						 int16_t		yDst,
 						 uint16_t		width,
 						 uint16_t		height);
+PIXMAN_EXPORT
 void		pixman_image_composite          (pixman_op_t		    op,
 						 pixman_image_t		   *src,
 						 pixman_image_t               *mask,
@@ -607,12 +664,16 @@ struct pixman_trap
     pixman_span_fix_t	top, bot;
 };
 
+PIXMAN_EXPORT
 pixman_fixed_t pixman_sample_ceil_y        (pixman_fixed_t       y,
 					    int                  bpp);
+PIXMAN_EXPORT
 pixman_fixed_t pixman_sample_floor_y       (pixman_fixed_t       y,
 					    int                  bpp);
+PIXMAN_EXPORT
 void           pixman_edge_step            (pixman_edge_t       *e,
 					    int                  n);
+PIXMAN_EXPORT
 void           pixman_edge_init            (pixman_edge_t       *e,
 					    int                  bpp,
 					    pixman_fixed_t       y_start,
@@ -620,31 +681,35 @@ void           pixman_edge_init            (pixman_edge_t       *e,
 					    pixman_fixed_t       y_top,
 					    pixman_fixed_t       x_bot,
 					    pixman_fixed_t       y_bot);
+PIXMAN_EXPORT
 void           pixman_line_fixed_edge_init (pixman_edge_t       *e,
 					    int                  bpp,
 					    pixman_fixed_t       y,
 					    const pixman_line_fixed_t *line,
 					    int                  x_off,
 					    int                  y_off);
+PIXMAN_EXPORT
 void           pixman_rasterize_edges      (pixman_image_t      *image,
 					    pixman_edge_t       *l,
 					    pixman_edge_t       *r,
 					    pixman_fixed_t       t,
 					    pixman_fixed_t       b);
+PIXMAN_EXPORT
 void           pixman_add_traps            (pixman_image_t      *image,
 					    int16_t              x_off,
 					    int16_t              y_off,
 					    int                  ntrap,
 					    pixman_trap_t       *traps);
+PIXMAN_EXPORT
 void	       pixman_add_trapezoids       (pixman_image_t      *image,
 					    int16_t              x_off,
 					    int                  y_off,
 					    int                  ntraps,
 					    const pixman_trapezoid_t  *traps);
+PIXMAN_EXPORT
 void           pixman_rasterize_trapezoid  (pixman_image_t      *image,
 					    const pixman_trapezoid_t  *trap,
 					    int                  x_off,
 					    int                  y_off);
 
-
 #endif /* PIXMAN_H__ */


More information about the xorg-commit mailing list