[Commit] cairo/src cairo.c, 1.4, 1.5 cairo.h, 1.3, 1.4 cairo_matrix.c, 1.1, 1.2 cairo_surface.c, 1.2, 1.3 cairo_traps.c, 1.7, 1.8 cairoint.h, 1.7, 1.8

Richard Henderson commit at keithp.com
Thu Jul 31 23:41:47 PDT 2003


Committed by: rth

Update of /local/src/CVS/cairo/src
In directory home.keithp.com:/tmp/cvs-serv4890/src

Modified Files:
	cairo.c cairo.h cairo_matrix.c cairo_surface.c cairo_traps.c 
	cairoint.h 
Log Message:
        * cairo.pc.in: Depend on slim.
        * configure.in: Check for slim.

        * src/cairo.h: Include slim_{export,import}.h as needed; mark all
        symbols __external_linkage.
        * src/cairoint.h: Include slim_internal.h; mark all symbols
        __internal_linkage.  Provide slim_hidden_proto symbols as needed.
        * src/cairo.c, src/cairo_matrix.c, src/cairo_surface.c,
        Provide slim_hidden_def symbols as needed.
        * src/cairo_traps.c (cairo_traps_add_trap): Mark static.
        (cairo_traps_add_trap_from_points): Likewise.


Index: cairo.c
===================================================================
RCS file: /local/src/CVS/cairo/src/cairo.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- cairo.c	30 Jul 2003 17:48:28 -0000	1.4
+++ cairo.c	1 Aug 2003 05:41:44 -0000	1.5
@@ -103,6 +103,7 @@
     top->next = cr->gstate;
     cr->gstate = top;
 }
+slim_hidden_def(cairo_save)
 
 void
 cairo_restore (cairo_t *cr)
@@ -122,6 +123,7 @@
 
     _cairo_gstate_destroy (top);
 }
+slim_hidden_def(cairo_restore)
 
 /* XXX: I want to rethink this API
 void
@@ -159,6 +161,7 @@
 
     cr->status = _cairo_gstate_set_target_surface (cr->gstate, surface);
 }
+slim_hidden_def(cairo_set_target_surface)
 
 void
 cairo_set_target_drawable (cairo_t	*cr,
@@ -435,6 +438,7 @@
 
     cr->status = _cairo_gstate_move_to (cr->gstate, x, y);
 }
+slim_hidden_def(cairo_move_to)
 
 void
 cairo_line_to (cairo_t *cr, double x, double y)
@@ -477,6 +481,7 @@
 
     cr->status = _cairo_gstate_rel_line_to (cr->gstate, dx, dy);
 }
+slim_hidden_def(cairo_rel_line_to)
 
 void
 cairo_rel_curve_to (cairo_t *cr,
@@ -527,6 +532,7 @@
 
     cr->status = _cairo_gstate_close_path (cr->gstate);
 }
+slim_hidden_def(cairo_close_path)
 
 void
 cairo_stroke (cairo_t *cr)

Index: cairo.h
===================================================================
RCS file: /local/src/CVS/cairo/src/cairo.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- cairo.h	30 Jul 2003 15:30:51 -0000	1.3
+++ cairo.h	1 Aug 2003 05:41:44 -0000	1.4
@@ -32,6 +32,12 @@
 #include <fontconfig/fontconfig.h>
 #include <ic.h>
 
+#ifdef _CAIROINT_H_
+#include <slim_export.h>
+#else
+#include <slim_import.h>
+#endif
+
 typedef struct cairo cairo_t;
 typedef struct cairo_surface cairo_surface_t;
 typedef struct cairo_matrix cairo_matrix_t;
@@ -41,28 +47,28 @@
 #endif
 
 /* Functions for manipulating state objects */
-cairo_t *
+extern cairo_t * __external_linkage
 cairo_create (void);
 
-void
+extern void __external_linkage
 cairo_destroy (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_save (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_restore (cairo_t *cr);
 
 /* XXX: I want to rethink this API
-void
+extern void __external_linkage
 cairo_push_group (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_pop_group (cairo_t *cr);
 */
 
 /* Modify state */
-void
+extern void __external_linkage
 cairo_set_target_surface (cairo_t *cr, cairo_surface_t *surface);
 
 typedef enum cairo_format {
@@ -72,12 +78,12 @@
     CAIRO_FORMAT_A1 = PictStandardA1
 } cairo_format_t;
 
-void
+extern void __external_linkage
 cairo_set_target_drawable (cairo_t	*cr,
 		     Display	*dpy,
 		     Drawable	drawable);
 
-void
+extern void __external_linkage
 cairo_set_target_image (cairo_t	*cr,
 		  char		*data,
 		  cairo_format_t	format,
@@ -128,7 +134,7 @@
     CAIRO_OPERATOR_CONJOINT_XOR = PictOpConjointXor
 } cairo_operator_t;
 
-void
+extern void __external_linkage
 cairo_set_operator (cairo_t *cr, cairo_operator_t op);
 
 /* XXX: Probably want to bite the bullet and expose a cairo_color_t object */
@@ -148,16 +154,16 @@
    the behavior of cairo_show_surface.
 */
 
-void
+extern void __external_linkage
 cairo_set_rgb_color (cairo_t *cr, double red, double green, double blue);
 
-void
+extern void __external_linkage
 cairo_set_alpha (cairo_t *cr, double alpha);
 
-void
+extern void __external_linkage
 cairo_set_pattern (cairo_t *cr, cairo_surface_t *pattern);
 
-void
+extern void __external_linkage
 cairo_set_tolerance (cairo_t *cr, double tolerance);
 
 typedef enum cairo_fill_rule {
@@ -165,10 +171,10 @@
     CAIRO_FILL_RULE_EVEN_ODD
 } cairo_fill_rule_t;
 
-void
+extern void __external_linkage
 cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule);
 
-void
+extern void __external_linkage
 cairo_set_line_width (cairo_t *cr, double width);
 
 typedef enum cairo_line_cap {
@@ -177,7 +183,7 @@
     CAIRO_LINE_CAP_SQUARE
 } cairo_line_cap_t;
 
-void
+extern void __external_linkage
 cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap);
 
 typedef enum cairo_line_join {
@@ -186,81 +192,81 @@
     CAIRO_LINE_JOIN_BEVEL
 } cairo_line_join_t;
 
-void
+extern void __external_linkage
 cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join);
 
-void
+extern void __external_linkage
 cairo_set_dash (cairo_t *cr, double *dashes, int ndash, double offset);
 
-void
+extern void __external_linkage
 cairo_set_miter_limit (cairo_t *cr, double limit);
 
-void
+extern void __external_linkage
 cairo_translate (cairo_t *cr, double tx, double ty);
 
-void
+extern void __external_linkage
 cairo_scale (cairo_t *cr, double sx, double sy);
 
-void
+extern void __external_linkage
 cairo_rotate (cairo_t *cr, double angle);
 
-void
+extern void __external_linkage
 cairo_concat_matrix (cairo_t *cr,
 	       cairo_matrix_t *matrix);
 
-void
+extern void __external_linkage
 cairo_set_matrix (cairo_t *cr,
 	    cairo_matrix_t *matrix);
 
-void
+extern void __external_linkage
 cairo_default_matrix (cairo_t *cr);
 
 /* XXX: There's been a proposal to add cairo_default_matrix_exact */
 
-void
+extern void __external_linkage
 cairo_identity_matrix (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_transform_point (cairo_t *cr, double *x, double *y);
 
-void
+extern void __external_linkage
 cairo_transform_distance (cairo_t *cr, double *dx, double *dy);
 
-void
+extern void __external_linkage
 cairo_inverse_transform_point (cairo_t *cr, double *x, double *y);
 
-void
+extern void __external_linkage
 cairo_inverse_transform_distance (cairo_t *cr, double *dx, double *dy);
 
 /* Path creation functions */
-void
+extern void __external_linkage
 cairo_new_path (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_move_to (cairo_t *cr, double x, double y);
 
-void
+extern void __external_linkage
 cairo_line_to (cairo_t *cr, double x, double y);
 
-void
+extern void __external_linkage
 cairo_curve_to (cairo_t *cr,
 	  double x1, double y1,
 	  double x2, double y2,
 	  double x3, double y3);
 
-void
+extern void __external_linkage
 cairo_rel_move_to (cairo_t *cr, double dx, double dy);
 
-void
+extern void __external_linkage
 cairo_rel_line_to (cairo_t *cr, double dx, double dy);
 
-void
+extern void __external_linkage
 cairo_rel_curve_to (cairo_t *cr,
 		    double dx1, double dy1,
 		    double dx2, double dy2,
 		    double dx3, double dy3);
 
-void
+extern void __external_linkage
 cairo_rectangle (cairo_t *cr,
 		 double x, double y,
 		 double width, double height);
@@ -273,22 +279,22 @@
    Maybe we could use something like "cairo_outline_path (cairo_t *)"? 
 */
 /* XXX: NYI
-void
+extern void __external_linkage
 cairo_stroke_path (cairo_t *cr);
 */
 
-void
+extern void __external_linkage
 cairo_close_path (cairo_t *cr);
 
 /* Painting functions */
-void
+extern void __external_linkage
 cairo_stroke (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_fill (cairo_t *cr);
 
 /* Clipping */
-void
+extern void __external_linkage
 cairo_clip (cairo_t *cr);
 
 /* Font/Text functions */
@@ -296,32 +302,32 @@
 /* XXX: The font support should probably expose a cairo_font_t object with
    several functions, (cairo_font_transform, etc.) in a parallel manner as
    cairo_matrix_t and (eventually) cairo_color_t */
-void
+extern void __external_linkage
 cairo_select_font (cairo_t *cr, const char *key);
 
-void
+extern void __external_linkage
 cairo_scale_font (cairo_t *cr, double scale);
 
 /* XXX: Probably want to use a cairo_matrix_t here, (to fix as part of the
    big text support rewrite) */
-void
+extern void __external_linkage
 cairo_transform_font (cairo_t *cr,
 		double a, double b,
 		double c, double d);
 
-void
+extern void __external_linkage
 cairo_text_extents (cairo_t *cr,
 	      const unsigned char *utf8,
 	      double *x, double *y,
 	      double *width, double *height,
 	      double *dx, double *dy);
 
-void
+extern void __external_linkage
 cairo_show_text (cairo_t *cr, const unsigned char *utf8);
 
 /* Image functions */
 
-void
+extern void __external_linkage
 cairo_show_surface (cairo_t		*cr,
 	       cairo_surface_t	*surface,
 	       int		width,
@@ -329,47 +335,47 @@
 
 /* Query functions */
 
-cairo_operator_t
+extern cairo_operator_t __external_linkage
 cairo_get_operator (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_get_rgb_color (cairo_t *cr, double *red, double *green, double *blue);
 
-double
+extern double __external_linkage
 cairo_get_alpha (cairo_t *cr);
 
 /* XXX: Do we want cairo_get_pattern as well? */
 
-double
+extern double __external_linkage
 cairo_get_tolerance (cairo_t *cr);
 
-void
+extern void __external_linkage
 cairo_get_current_point (cairo_t *cr, double *x, double *y);
 
-cairo_fill_rule_t
+extern cairo_fill_rule_t __external_linkage
 cairo_get_fill_rule (cairo_t *cr);
 
-double
+extern double __external_linkage
 cairo_get_line_width (cairo_t *cr);
 
-cairo_line_cap_t
+extern cairo_line_cap_t __external_linkage
 cairo_get_line_cap (cairo_t *cr);
 
-cairo_line_join_t
+extern cairo_line_join_t __external_linkage
 cairo_get_line_join (cairo_t *cr);
 
-double
+extern double __external_linkage
 cairo_get_miter_limit (cairo_t *cr);
 
 /* XXX: How to do cairo_get_dash??? Do we want to switch to a cairo_dash object? */
 
-void
+extern void __external_linkage
 cairo_get_matrix (cairo_t *cr,
 	    double *a, double *b,
 	    double *c, double *d,
 	    double *tx, double *ty);
 
-cairo_surface_t *
+extern cairo_surface_t * __external_linkage
 cairo_get_target_surface (cairo_t *cr);
 
 /* Error status queries */
@@ -383,10 +389,10 @@
     CAIRO_STATUS_INVALID_MATRIX
 } cairo_status_t;
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_get_status (cairo_t *cr);
 
-const char *
+extern const char * __external_linkage
 cairo_get_status_string (cairo_t *cr);
 
 /* Surface mainpulation */
@@ -396,21 +402,21 @@
    cairo_surface_create_for_window with a visual, and
    cairo_surface_create_for_pixmap with a cairo_format_t. Would that work?
 */
-cairo_surface_t *
+extern cairo_surface_t * __external_linkage
 cairo_surface_create_for_drawable (Display	*dpy,
 				   Drawable	drawable,
 				   Visual	*visual,
 				   cairo_format_t	format,
 				   Colormap	colormap);
 
-cairo_surface_t *
+extern cairo_surface_t * __external_linkage
 cairo_surface_create_for_image (char		*data,
 				cairo_format_t	format,
 				int		width,
 				int		height,
 				int		stride);
 
-cairo_surface_t *
+extern cairo_surface_t * __external_linkage
 cairo_surface_create_similar (cairo_surface_t	*other,
 			      cairo_format_t		format,
 			      int		width,
@@ -420,7 +426,7 @@
    it introduces the question of pre-multiplied vs. non-pre-multiplied
    alpha. Do I want to export a cairo_color_t structure instead? So far, no
    other public functions need it. */
-cairo_surface_t *
+extern cairo_surface_t * __external_linkage
 cairo_surface_create_similar_solid (cairo_surface_t	*other,
 				    cairo_format_t	format,
 				    int		width,
@@ -430,10 +436,10 @@
 				    double	blue,
 				    double	alpha);
 
-void
+extern void __external_linkage
 cairo_surface_destroy (cairo_surface_t *surface);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_put_image (cairo_surface_t	*surface,
 			 char		*data,
 			 int		width,
@@ -441,9 +447,10 @@
 			 int		stride);
 
 /* XXX: NYI
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_clip_restore (cairo_surface_t *surface);
-cairo_status_t
+
+extern cairo_status_t __external_linkage
 cairo_surface_clip_rectangle (cairo_surface_t *surface,
 			      int x, int y,
 			      int width, int height);
@@ -451,13 +458,13 @@
 
 /* XXX: Note: The current Render/Ic implementations don't do the right
    thing with repeat when the surface has a non-identity matrix. */
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_set_repeat (cairo_surface_t *surface, int repeat);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_set_matrix (cairo_surface_t *surface, cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_get_matrix (cairo_surface_t *surface, cairo_matrix_t *matrix);
 
 typedef enum cairo_filter {
@@ -468,59 +475,60 @@
     CAIRO_FILTER_BILINEAR = IcFilterBilinear
 } cairo_filter_t;
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_surface_set_filter (cairo_surface_t *surface, cairo_filter_t filter);
 
 /* Matrix functions */
 
-cairo_matrix_t *
+extern cairo_matrix_t * __external_linkage
 cairo_matrix_create (void);
 
-void
+extern void __external_linkage
 cairo_matrix_destroy (cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_copy (cairo_matrix_t *matrix, const cairo_matrix_t *other);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_set_identity (cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_set_affine (cairo_matrix_t *cr,
 		   double a, double b,
 		   double c, double d,
 		   double tx, double ty);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_get_affine (cairo_matrix_t *matrix,
 		   double *a, double *b,
  		   double *c, double *d,
  		   double *tx, double *ty);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_translate (cairo_matrix_t *matrix, double tx, double ty);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_scale (cairo_matrix_t *matrix, double sx, double sy);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_rotate (cairo_matrix_t *matrix, double radians);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_invert (cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_multiply (cairo_matrix_t *result, const cairo_matrix_t *a, const cairo_matrix_t *b);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_transform_distance (cairo_matrix_t *matrix, double *dx, double *dy);
 
-cairo_status_t
+extern cairo_status_t __external_linkage
 cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#undef __external_linkage
 
+#endif

Index: cairo_matrix.c
===================================================================
RCS file: /local/src/CVS/cairo/src/cairo_matrix.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- cairo_matrix.c	18 Jul 2003 18:34:19 -0000	1.1
+++ cairo_matrix.c	1 Aug 2003 05:41:44 -0000	1.2
@@ -84,6 +84,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_copy)
 
 cairo_status_t
 cairo_matrix_set_identity (cairo_matrix_t *matrix)
@@ -92,6 +93,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_set_identity)
 
 cairo_status_t
 cairo_matrix_set_affine (cairo_matrix_t *matrix,
@@ -105,6 +107,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_set_affine)
 
 cairo_status_t
 cairo_matrix_get_affine (cairo_matrix_t *matrix,
@@ -158,6 +161,7 @@
 
     return cairo_matrix_multiply (matrix, &tmp, matrix);
 }
+slim_hidden_def(cairo_matrix_scale)
 
 cairo_status_t
 _cairo_matrix_set_rotate (cairo_matrix_t *matrix,
@@ -203,6 +207,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_multiply)
 
 cairo_status_t
 cairo_matrix_transform_distance (cairo_matrix_t *matrix, double *dx, double *dy)
@@ -219,6 +224,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_transform_distance)
 
 cairo_status_t
 cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y)
@@ -230,6 +236,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_transform_point)
 
 cairo_status_t
 cairo_matrix_transform_bounding_box (cairo_matrix_t *matrix,
@@ -331,6 +338,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_matrix_invert)
 
 cairo_status_t
 _cairo_matrix_compute_determinant (cairo_matrix_t *matrix, double *det)

Index: cairo_surface.c
===================================================================
RCS file: /local/src/CVS/cairo/src/cairo_surface.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- cairo_surface.c	30 Jul 2003 15:30:51 -0000	1.2
+++ cairo_surface.c	1 Aug 2003 05:41:44 -0000	1.3
@@ -101,6 +101,7 @@
 
     return surface;
 }
+slim_hidden_def(cairo_surface_create_for_drawable)
 
 /* XXX: These definitions are 100% bogus. The problem that needs to be
    fixed is that Ic needs to export a real API for passing in
@@ -215,6 +216,7 @@
 
     return surface;
 }
+slim_hidden_def(cairo_surface_create_for_image)
 
 cairo_surface_t *
 cairo_surface_create_similar (cairo_surface_t	*other,
@@ -297,6 +299,7 @@
     _cairo_surface_fill_rectangle (surface, CAIRO_OPERATOR_SRC, &color, 0, 0, width, height);
     return surface;
 }
+slim_hidden_def(cairo_surface_create_similar_solid)
 
 void
 _cairo_surface_reference (cairo_surface_t *surface)
@@ -331,6 +334,7 @@
 
     free (surface);
 }
+slim_hidden_def(cairo_surface_destroy)
 
 static void
 _cairo_surface_ensure_gc (cairo_surface_t *surface)
@@ -476,6 +480,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_surface_set_matrix)
 
 cairo_status_t
 cairo_surface_get_matrix (cairo_surface_t *surface, cairo_matrix_t *matrix)
@@ -492,6 +497,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_surface_get_matrix)
 
 /* XXX: The Render specification has capitalized versions of these
    strings. However, the current implementation is case-sensitive and
@@ -564,6 +570,7 @@
 
     return CAIRO_STATUS_SUCCESS;
 }
+slim_hidden_def(cairo_surface_set_repeat)
 
 void
 _cairo_surface_composite (cairo_operator_t	operator,

Index: cairo_traps.c
===================================================================
RCS file: /local/src/CVS/cairo/src/cairo_traps.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- cairo_traps.c	30 Jul 2003 15:30:51 -0000	1.7
+++ cairo_traps.c	1 Aug 2003 05:41:44 -0000	1.8
@@ -31,11 +31,11 @@
 static cairo_status_t
 cairo_traps_grow_by (cairo_traps_t *traps, int additional);
 
-cairo_status_t
+static cairo_status_t
 cairo_traps_add_trap (cairo_traps_t *traps, cairo_fixed_t top, cairo_fixed_t bottom,
 		      cairo_line_t *left, cairo_line_t *right);
 
-cairo_status_t
+static cairo_status_t
 cairo_traps_add_trap_from_points (cairo_traps_t *traps, cairo_fixed_t top, cairo_fixed_t bottom,
 				  cairo_point_t left_p1, cairo_point_t left_p2,
 				  cairo_point_t right_p1, cairo_point_t right_p2);
@@ -81,7 +81,7 @@
     }
 }
 
-cairo_status_t
+static cairo_status_t
 cairo_traps_add_trap (cairo_traps_t *traps, cairo_fixed_t top, cairo_fixed_t bottom,
 		      cairo_line_t *left, cairo_line_t *right)
 {
@@ -109,7 +109,7 @@
     return CAIRO_STATUS_SUCCESS;
 }
 
-cairo_status_t
+static cairo_status_t
 cairo_traps_add_trap_from_points (cairo_traps_t *traps, cairo_fixed_t top, cairo_fixed_t bottom,
 				  cairo_point_t left_p1, cairo_point_t left_p2,
 				  cairo_point_t right_p1, cairo_point_t right_p2)

Index: cairoint.h
===================================================================
RCS file: /local/src/CVS/cairo/src/cairoint.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- cairoint.h	30 Jul 2003 17:48:28 -0000	1.7
+++ cairoint.h	1 Aug 2003 05:41:44 -0000	1.8
@@ -44,7 +44,9 @@
 
 #include "cairo.h"
 
-#ifndef __GCC__
+#include <slim_internal.h>
+
+#ifndef __GNUC__
 #define __attribute__(x)
 #endif
 
@@ -355,305 +357,305 @@
 } cairo_stroke_face_t;
 
 /* cairo_gstate_t.c */
-cairo_gstate_t *
+extern cairo_gstate_t * __internal_linkage
 _cairo_gstate_create (void);
 
-void
+extern void __internal_linkage
 _cairo_gstate_init (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_init_copy (cairo_gstate_t *gstate, cairo_gstate_t *other);
 
-void
+extern void __internal_linkage
 _cairo_gstate_fini (cairo_gstate_t *gstate);
 
-void
+extern void __internal_linkage
 _cairo_gstate_destroy (cairo_gstate_t *gstate);
 
-cairo_gstate_t *
+extern cairo_gstate_t * __internal_linkage
 _cairo_gstate_clone (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_begin_group (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_end_group (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_drawable (cairo_gstate_t *gstate, Drawable drawable);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_visual (cairo_gstate_t *gstate, Visual *visual);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_format (cairo_gstate_t *gstate, cairo_format_t format);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_target_surface (cairo_gstate_t *gstate, cairo_surface_t *surface);
 
-cairo_surface_t *
+extern cairo_surface_t * __internal_linkage
 _cairo_gstate_get_target_surface (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_pattern (cairo_gstate_t *gstate, cairo_surface_t *pattern);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_operator (cairo_gstate_t *gstate, cairo_operator_t operator);
 
-cairo_operator_t
+extern cairo_operator_t __internal_linkage
 _cairo_gstate_get_operator (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_rgb_color (cairo_gstate_t *gstate, double red, double green, double blue);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_get_rgb_color (cairo_gstate_t *gstate, double *red, double *green, double *blue);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_tolerance (cairo_gstate_t *gstate, double tolerance);
 
-double
+extern double __internal_linkage
 _cairo_gstate_get_tolerance (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_alpha (cairo_gstate_t *gstate, double alpha);
 
-double
+extern double __internal_linkage
 _cairo_gstate_get_alpha (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_fill_rule (cairo_gstate_t *gstate, cairo_fill_rule_t fill_rule);
 
-cairo_fill_rule_t
+extern cairo_fill_rule_t __internal_linkage
 _cairo_gstate_get_fill_rule (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_line_width (cairo_gstate_t *gstate, double width);
 
-double
+extern double __internal_linkage
 _cairo_gstate_get_line_width (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_line_cap (cairo_gstate_t *gstate, cairo_line_cap_t line_cap);
 
-cairo_line_cap_t
+extern cairo_line_cap_t __internal_linkage
 _cairo_gstate_get_line_cap (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_line_join (cairo_gstate_t *gstate, cairo_line_join_t line_join);
 
-cairo_line_join_t
+extern cairo_line_join_t __internal_linkage
 _cairo_gstate_get_line_join (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_dash (cairo_gstate_t *gstate, double *dash, int num_dashes, double offset);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_miter_limit (cairo_gstate_t *gstate, double limit);
 
-double
+extern double __internal_linkage
 _cairo_gstate_get_miter_limit (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_translate (cairo_gstate_t *gstate, double tx, double ty);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_scale (cairo_gstate_t *gstate, double sx, double sy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_rotate (cairo_gstate_t *gstate, double angle);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_concat_matrix (cairo_gstate_t *gstate,
 			     cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_set_matrix (cairo_gstate_t *gstate,
 			  cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_default_matrix (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_identity_matrix (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_transform_point (cairo_gstate_t *gstate, double *x, double *y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_transform_distance (cairo_gstate_t *gstate, double *dx, double *dy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_inverse_transform_point (cairo_gstate_t *gstate, double *x, double *y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_inverse_transform_distance (cairo_gstate_t *gstate, double *dx, double *dy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_new_path (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_move_to (cairo_gstate_t *gstate, double x, double y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_line_to (cairo_gstate_t *gstate, double x, double y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_curve_to (cairo_gstate_t *gstate,
 			double x1, double y1,
 			double x2, double y2,
 			double x3, double y3);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_rel_move_to (cairo_gstate_t *gstate, double dx, double dy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_rel_line_to (cairo_gstate_t *gstate, double dx, double dy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_rel_curve_to (cairo_gstate_t *gstate,
 			    double dx1, double dy1,
 			    double dx2, double dy2,
 			    double dx3, double dy3);
 
 /* XXX: NYI
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_stroke_path (cairo_gstate_t *gstate);
 */
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_close_path (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_get_current_point (cairo_gstate_t *gstate, double *x, double *y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_stroke (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_fill (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_clip (cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_select_font (cairo_gstate_t *gstate, const char *key);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_scale_font (cairo_gstate_t *gstate, double scale);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_transform_font (cairo_gstate_t *gstate,
 			      double a, double b,
 			      double c, double d);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_text_extents (cairo_gstate_t *gstate,
 			    const unsigned char *utf8,
 			    double *x, double *y,
 			    double *width, double *height,
 			    double *dx, double *dy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_show_text (cairo_gstate_t *gstate, const unsigned char *utf8);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_gstate_show_surface (cairo_gstate_t	*gstate,
 			    cairo_surface_t	*surface,
 			    int			width,
 			    int			height);
 
 /* cairo_color_t.c */
-void
+extern void __internal_linkage
 _cairo_color_init (cairo_color_t *color);
 
-void
+extern void __internal_linkage
 _cairo_color_fini (cairo_color_t *color);
 
-void
+extern void __internal_linkage
 _cairo_color_set_rgb (cairo_color_t *color, double red, double green, double blue);
 
-void
+extern void __internal_linkage
 _cairo_color_get_rgb (cairo_color_t *color, double *red, double *green, double *blue);
 
-void
+extern void __internal_linkage
 _cairo_color_set_alpha (cairo_color_t *color, double alpha);
 
 /* cairo_font_t.c */
 
-void
+extern void __internal_linkage
 _cairo_font_init (cairo_font_t *font);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_font_init_copy (cairo_font_t *font, cairo_font_t *other);
 
-void
+extern void __internal_linkage
 _cairo_font_fini (cairo_font_t *font);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_font_select (cairo_font_t *font, const char *key);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_font_scale (cairo_font_t *font, double scale);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 cairo_font_transform (cairo_font_t *font,
 		      double a, double b,
 		      double c, double d);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_font_resolve_xft_font (cairo_font_t *font, cairo_gstate_t *gstate, XftFont **xft_font);
 
 /* cairo_path_t.c */
-void
+extern void __internal_linkage
 _cairo_path_init (cairo_path_t *path);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_init_copy (cairo_path_t *path, cairo_path_t *other);
 
-void
+extern void __internal_linkage
 _cairo_path_fini (cairo_path_t *path);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_move_to (cairo_path_t *path, double x, double y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_line_to (cairo_path_t *path, double x, double y);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_curve_to (cairo_path_t *path,
 		      double x1, double y1,
 		      double x2, double y2,
 		      double x3, double y3);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_close_path (cairo_path_t *path);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_interpret (cairo_path_t *path,
 		       cairo_path_direction_t dir,
 		       const cairo_path_callbacks_t *cb,
 		       void *closure);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_bounds (cairo_path_t *path, double *x1, double *y1, double *x2, double *y2);
 
 /* cairo_path_tfill.c */
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_fill_to_traps (cairo_path_t *path, cairo_gstate_t *gstate, cairo_traps_t *traps);
 
 /* cairo_path_tstroke.c */
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_path_stroke_to_traps (cairo_path_t *path, cairo_gstate_t *gstate, cairo_traps_t *traps);
 
 /* cairo_surface_t.c */
 
-void
+extern void __internal_linkage
 _cairo_surface_reference (cairo_surface_t *surface);
 
-void
+extern void __internal_linkage
 _cairo_surface_fill_rectangle (cairo_surface_t	*surface,
 			       cairo_operator_t	operator,
 			       cairo_color_t	*color,
@@ -662,7 +664,7 @@
 			       int		width,
 			       int		height);
 
-void
+extern void __internal_linkage
 _cairo_surface_composite (cairo_operator_t	operator,
 			  cairo_surface_t	*src,
 			  cairo_surface_t	*mask,
@@ -676,14 +678,14 @@
 			  unsigned int		width,
 			  unsigned int		height);
 
-void
+extern void __internal_linkage
 _cairo_surface_fill_rectangles (cairo_surface_t		*surface,
 				cairo_operator_t	operator,
 				const cairo_color_t	*color,
 				cairo_rectangle_t	*rects,
 				int			num_rects);
 
-void
+extern void __internal_linkage
 _cairo_surface_composite_trapezoids (cairo_operator_t		operator,
 				     cairo_surface_t		*src,
 				     cairo_surface_t		*dst,
@@ -692,138 +694,162 @@
 				     const cairo_trapezoid_t	*traps,
 				     int			ntraps);
 
-void
+extern void __internal_linkage
 _cairo_surface_pull_image (cairo_surface_t *surface);
 
-void
+extern void __internal_linkage
 _cairo_surface_push_image (cairo_surface_t *surface);
 
 /* cairo_pen_t.c */
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_init (cairo_pen_t *pen, double radius, cairo_gstate_t *gstate);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_init_empty (cairo_pen_t *pen);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_init_copy (cairo_pen_t *pen, cairo_pen_t *other);
 
-void
+extern void __internal_linkage
 _cairo_pen_fini (cairo_pen_t *pen);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_add_points (cairo_pen_t *pen, cairo_point_t *pt, int num_pts);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_add_points_for_slopes (cairo_pen_t *pen,
 				  cairo_point_t *a,
 				  cairo_point_t *b,
 				  cairo_point_t *c,
 				  cairo_point_t *d);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_find_active_cw_vertex_index (cairo_pen_t *pen,
 					cairo_slope_t *slope,
 					int *active);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_find_active_ccw_vertex_index (cairo_pen_t *pen,
 					 cairo_slope_t *slope,
 					 int *active);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_pen_stroke_spline (cairo_pen_t *pen,
 			  cairo_spline_t *spline,
 			  double tolerance,
 			  cairo_traps_t *traps);
 
 /* cairo_polygon_t.c */
-void
+extern void __internal_linkage
 _cairo_polygon_init (cairo_polygon_t *polygon);
 
-void
+extern void __internal_linkage
 _cairo_polygon_fini (cairo_polygon_t *polygon);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_polygon_add_edge (cairo_polygon_t *polygon, cairo_point_t *p1, cairo_point_t *p2);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_polygon_add_point (cairo_polygon_t *polygon, cairo_point_t *pt);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_polygon_close (cairo_polygon_t *polygon);
 
 /* cairo_spline_t.c */
-cairo_int_status_t
+extern cairo_int_status_t __internal_linkage
 _cairo_spline_init (cairo_spline_t *spline,
 		    cairo_point_t *a,
 		    cairo_point_t *b,
 		    cairo_point_t *c,
 		    cairo_point_t *d);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_spline_decompose (cairo_spline_t *spline, double tolerance);
 
-void
+extern void __internal_linkage
 _cairo_spline_fini (cairo_spline_t *spline);
 
 /* cairo_matrix_t.c */
-void
+extern void __internal_linkage
 _cairo_matrix_init (cairo_matrix_t *matrix);
 
-void
+extern void __internal_linkage
 _cairo_matrix_fini (cairo_matrix_t *matrix);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_matrix_set_translate (cairo_matrix_t *matrix,
 			     double tx, double ty);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_matrix_set_scale (cairo_matrix_t *matrix,
 			 double sx, double sy);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_matrix_set_rotate (cairo_matrix_t *matrix,
 			  double angle);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 cairo_matrix_transform_bounding_box (cairo_matrix_t *matrix,
 				     double *x, double *y,
 				     double *width, double *height);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_matrix_compute_determinant (cairo_matrix_t *matrix, double *det);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 _cairo_matrix_compute_eigen_values (cairo_matrix_t *matrix, double *lambda1, double *lambda2);
 
 /* cairo_traps.c */
-void
+extern void __internal_linkage
 cairo_traps_init (cairo_traps_t *traps);
 
-void
+extern void __internal_linkage
 cairo_traps_fini (cairo_traps_t *traps);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 cairo_traps_tessellate_triangle (cairo_traps_t *traps, cairo_point_t t[3]);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 cairo_traps_tessellate_rectangle (cairo_traps_t *traps, cairo_point_t q[4]);
 
-cairo_status_t
+extern cairo_status_t __internal_linkage
 cairo_traps_tessellate_polygon (cairo_traps_t *traps,
 				cairo_polygon_t *poly,
 				cairo_fill_rule_t fill_rule);
 
 /* cairo_slope.c */
 
-void
+extern void __internal_linkage
 _cairo_slope_init (cairo_slope_t *slope, cairo_point_t *a, cairo_point_t *b);
 
-int
+extern int __internal_linkage
 _cairo_slope_clockwise (cairo_slope_t *a, cairo_slope_t *b);
 
-int
+extern int __internal_linkage
 _cairo_slope_counter_clockwise (cairo_slope_t *a, cairo_slope_t *b);
+
+/* Avoid unnecessary PLT entries.  */
+
+slim_hidden_proto(cairo_close_path)
+slim_hidden_proto(cairo_matrix_copy)
+slim_hidden_proto(cairo_matrix_invert)
+slim_hidden_proto(cairo_matrix_multiply)
+slim_hidden_proto(cairo_matrix_scale)
+slim_hidden_proto(cairo_matrix_set_affine)
+slim_hidden_proto(cairo_matrix_set_identity)
+slim_hidden_proto(cairo_matrix_transform_distance)
+slim_hidden_proto(cairo_matrix_transform_point)
+slim_hidden_proto(cairo_move_to)
+slim_hidden_proto(cairo_rel_line_to)
+slim_hidden_proto(cairo_restore)
+slim_hidden_proto(cairo_save)
+slim_hidden_proto(cairo_set_target_surface)
+slim_hidden_proto(cairo_surface_create_for_drawable)
+slim_hidden_proto(cairo_surface_create_for_image)
+slim_hidden_proto(cairo_surface_create_similar_solid)
+slim_hidden_proto(cairo_surface_destroy)
+slim_hidden_proto(cairo_surface_get_matrix)
+slim_hidden_proto(cairo_surface_set_matrix)
+slim_hidden_proto(cairo_surface_set_repeat)
 
 #endif




More information about the Commit mailing list