summaryrefslogtreecommitdiff
path: root/src/cairo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo.h')
-rw-r--r--src/cairo.h452
1 files changed, 295 insertions, 157 deletions
diff --git a/src/cairo.h b/src/cairo.h
index 6df5f8cf4..ab3c80e82 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -30,52 +30,48 @@
#include <cairo-features.h>
-#include <ic.h>
+#include <pixman.h>
#include <stdio.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;
+typedef struct cairo_pattern cairo_pattern_t;
#ifdef __cplusplus
extern "C" {
#endif
/* Functions for manipulating state objects */
-extern cairo_t * __external_linkage
+cairo_t *
cairo_create (void);
-extern void __external_linkage
+void
cairo_reference (cairo_t *cr);
-extern void __external_linkage
+void
cairo_destroy (cairo_t *cr);
-extern void __external_linkage
+void
cairo_save (cairo_t *cr);
-extern void __external_linkage
+void
cairo_restore (cairo_t *cr);
-extern void __external_linkage
+/* XXX: Replace with cairo_current_gstate/cairo_set_gstate */
+void
cairo_copy (cairo_t *dest, cairo_t *src);
/* XXX: I want to rethink this API
-extern void __external_linkage
+void
cairo_push_group (cairo_t *cr);
-extern void __external_linkage
+void
cairo_pop_group (cairo_t *cr);
*/
/* Modify state */
-extern void __external_linkage
+void
cairo_set_target_surface (cairo_t *cr, cairo_surface_t *surface);
typedef enum cairo_format {
@@ -85,7 +81,7 @@ typedef enum cairo_format {
CAIRO_FORMAT_A1
} cairo_format_t;
-extern void __external_linkage
+void
cairo_set_target_image (cairo_t *cr,
char *data,
cairo_format_t format,
@@ -93,7 +89,11 @@ cairo_set_target_image (cairo_t *cr,
int height,
int stride);
-extern void __external_linkage
+#ifdef CAIRO_HAS_PS_SURFACE
+
+#include <stdio.h>
+
+void
cairo_set_target_ps (cairo_t *cr,
FILE *file,
double width_inches,
@@ -101,18 +101,46 @@ cairo_set_target_ps (cairo_t *cr,
double x_pixels_per_inch,
double y_pixels_per_inch);
+#endif /* CAIRO_HAS_PS_SURFACE */
+
+#ifdef CAIRO_HAS_PNG_SURFACE
+
+#include <stdio.h>
+
+void
+cairo_set_target_png (cairo_t *cr,
+ FILE *file,
+ cairo_format_t format,
+ int width,
+ int height);
+
+#endif /* CAIRO_HAS_PNG_SURFACE */
+
#ifdef CAIRO_HAS_XLIB_SURFACE
#include <X11/extensions/Xrender.h>
/* XXX: This shold be renamed to cairo_set_target_xlib to match the
* other backends */
-extern void __external_linkage
+void
cairo_set_target_drawable (cairo_t *cr,
Display *dpy,
Drawable drawable);
#endif /* CAIRO_HAS_XLIB_SURFACE */
+#ifdef CAIRO_HAS_XCB_SURFACE
+
+#include <X11/XCB/xcb.h>
+#include <X11/XCB/render.h>
+
+void
+cairo_set_target_xcb (cairo_t *cr,
+ XCBConnection *dpy,
+ XCBDRAWABLE drawable,
+ XCBVISUALTYPE *visual,
+ cairo_format_t format);
+#endif /* CAIRO_HAS_XCB_SURFACE */
+
typedef enum cairo_operator {
CAIRO_OPERATOR_CLEAR,
CAIRO_OPERATOR_SRC,
@@ -127,10 +155,10 @@ typedef enum cairo_operator {
CAIRO_OPERATOR_ATOP_REVERSE,
CAIRO_OPERATOR_XOR,
CAIRO_OPERATOR_ADD,
- CAIRO_OPERATOR_SATURATE,
+ CAIRO_OPERATOR_SATURATE
} cairo_operator_t;
-extern void __external_linkage
+void
cairo_set_operator (cairo_t *cr, cairo_operator_t op);
/* XXX: Probably want to bite the bullet and expose a cairo_color_t object */
@@ -150,16 +178,20 @@ cairo_set_operator (cairo_t *cr, cairo_operator_t op);
the behavior of cairo_show_surface.
*/
-extern void __external_linkage
+void
cairo_set_rgb_color (cairo_t *cr, double red, double green, double blue);
-extern void __external_linkage
-cairo_set_alpha (cairo_t *cr, double alpha);
+void
+cairo_set_pattern (cairo_t *cr, cairo_pattern_t *pattern);
-extern void __external_linkage
-cairo_set_pattern (cairo_t *cr, cairo_surface_t *pattern);
+void
+cairo_set_alpha (cairo_t *cr, double alpha);
-extern void __external_linkage
+/* XXX: Currently, the tolerance value is specified by the user in
+ terms of device-space units. If I'm not mistaken, this is the only
+ value in this API that is not expressed in user-space units. I
+ should think whether this value should be user-space instead. */
+void
cairo_set_tolerance (cairo_t *cr, double tolerance);
typedef enum cairo_fill_rule {
@@ -167,10 +199,10 @@ typedef enum cairo_fill_rule {
CAIRO_FILL_RULE_EVEN_ODD
} cairo_fill_rule_t;
-extern void __external_linkage
+void
cairo_set_fill_rule (cairo_t *cr, cairo_fill_rule_t fill_rule);
-extern void __external_linkage
+void
cairo_set_line_width (cairo_t *cr, double width);
typedef enum cairo_line_cap {
@@ -179,7 +211,7 @@ typedef enum cairo_line_cap {
CAIRO_LINE_CAP_SQUARE
} cairo_line_cap_t;
-extern void __external_linkage
+void
cairo_set_line_cap (cairo_t *cr, cairo_line_cap_t line_cap);
typedef enum cairo_line_join {
@@ -188,101 +220,101 @@ typedef enum cairo_line_join {
CAIRO_LINE_JOIN_BEVEL
} cairo_line_join_t;
-extern void __external_linkage
+void
cairo_set_line_join (cairo_t *cr, cairo_line_join_t line_join);
-extern void __external_linkage
+void
cairo_set_dash (cairo_t *cr, double *dashes, int ndash, double offset);
-extern void __external_linkage
+void
cairo_set_miter_limit (cairo_t *cr, double limit);
-extern void __external_linkage
+void
cairo_translate (cairo_t *cr, double tx, double ty);
-extern void __external_linkage
+void
cairo_scale (cairo_t *cr, double sx, double sy);
-extern void __external_linkage
+void
cairo_rotate (cairo_t *cr, double angle);
-extern void __external_linkage
+void
cairo_concat_matrix (cairo_t *cr,
- cairo_matrix_t *matrix);
+ cairo_matrix_t *matrix);
-extern void __external_linkage
+void
cairo_set_matrix (cairo_t *cr,
- cairo_matrix_t *matrix);
+ cairo_matrix_t *matrix);
-extern void __external_linkage
+void
cairo_default_matrix (cairo_t *cr);
/* XXX: There's been a proposal to add cairo_default_matrix_exact */
-extern void __external_linkage
+void
cairo_identity_matrix (cairo_t *cr);
-extern void __external_linkage
+void
cairo_transform_point (cairo_t *cr, double *x, double *y);
-extern void __external_linkage
+void
cairo_transform_distance (cairo_t *cr, double *dx, double *dy);
-extern void __external_linkage
+void
cairo_inverse_transform_point (cairo_t *cr, double *x, double *y);
-extern void __external_linkage
+void
cairo_inverse_transform_distance (cairo_t *cr, double *dx, double *dy);
/* Path creation functions */
-extern void __external_linkage
+void
cairo_new_path (cairo_t *cr);
-extern void __external_linkage
+void
cairo_move_to (cairo_t *cr, double x, double y);
-extern void __external_linkage
+void
cairo_line_to (cairo_t *cr, double x, double y);
-extern void __external_linkage
+void
cairo_curve_to (cairo_t *cr,
- double x1, double y1,
- double x2, double y2,
- double x3, double y3);
+ double x1, double y1,
+ double x2, double y2,
+ double x3, double y3);
-extern void __external_linkage
+void
cairo_arc (cairo_t *cr,
double xc, double yc,
double radius,
double angle1, double angle2);
-extern void __external_linkage
+void
cairo_arc_negative (cairo_t *cr,
double xc, double yc,
double radius,
double angle1, double angle2);
/* XXX: NYI
-extern void __external_linkage
+void
cairo_arc_to (cairo_t *cr,
double x1, double y1,
double x2, double y2,
double radius);
*/
-extern void __external_linkage
+void
cairo_rel_move_to (cairo_t *cr, double dx, double dy);
-extern void __external_linkage
+void
cairo_rel_line_to (cairo_t *cr, double dx, double dy);
-extern void __external_linkage
+void
cairo_rel_curve_to (cairo_t *cr,
double dx1, double dy1,
double dx2, double dy2,
double dx3, double dy3);
-extern void __external_linkage
+void
cairo_rectangle (cairo_t *cr,
double x, double y,
double width, double height);
@@ -295,35 +327,49 @@ cairo_rectangle (cairo_t *cr,
Maybe we could use something like "cairo_outline_path (cairo_t *)"?
*/
/* XXX: NYI
-extern void __external_linkage
+void
cairo_stroke_path (cairo_t *cr);
*/
-extern void __external_linkage
+void
cairo_close_path (cairo_t *cr);
/* Painting functions */
-extern void __external_linkage
+void
cairo_stroke (cairo_t *cr);
-extern void __external_linkage
+void
cairo_fill (cairo_t *cr);
-extern void __external_linkage
+void
cairo_copy_page (cairo_t *cr);
-extern void __external_linkage
+void
cairo_show_page (cairo_t *cr);
/* Insideness testing */
-extern int __external_linkage
+int
cairo_in_stroke (cairo_t *cr, double x, double y);
-extern int __external_linkage
+int
cairo_in_fill (cairo_t *cr, double x, double y);
+/* Rectangular extents */
+void
+cairo_stroke_extents (cairo_t *cr,
+ double *x1, double *y1,
+ double *x2, double *y2);
+
+void
+cairo_fill_extents (cairo_t *cr,
+ double *x1, double *y1,
+ double *x2, double *y2);
+
/* Clipping */
-extern void __external_linkage
+void
+cairo_init_clip (cairo_t *cr);
+
+void
cairo_clip (cairo_t *cr);
/* Font/Text functions */
@@ -337,10 +383,10 @@ typedef struct {
} cairo_glyph_t;
typedef struct {
- double left_side_bearing;
- double right_side_bearing;
- double ascent;
- double descent;
+ double x_bearing;
+ double y_bearing;
+ double width;
+ double height;
double x_advance;
double y_advance;
} cairo_text_extents_t;
@@ -353,115 +399,106 @@ typedef struct {
double max_y_advance;
} cairo_font_extents_t;
-typedef enum cairo_font_weight {
- CAIRO_FONT_WEIGHT_NORMAL,
- CAIRO_FONT_WEIGHT_BOLD
-} cairo_font_weight_t;
-
typedef enum cairo_font_slant {
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_SLANT_ITALIC,
CAIRO_FONT_SLANT_OBLIQUE
} cairo_font_slant_t;
-
+typedef enum cairo_font_weight {
+ CAIRO_FONT_WEIGHT_NORMAL,
+ CAIRO_FONT_WEIGHT_BOLD
+} cairo_font_weight_t;
+
/* This interface is for dealing with text as text, not caring about the
font object inside the the cairo_t. */
-extern void __external_linkage
+void
cairo_select_font (cairo_t *ct,
- char *family,
+ const char *family,
cairo_font_slant_t slant,
cairo_font_weight_t weight);
-extern void __external_linkage
+void
cairo_scale_font (cairo_t *cr, double scale);
-extern void __external_linkage
+void
cairo_transform_font (cairo_t *cr, cairo_matrix_t *matrix);
-extern void __external_linkage
+void
cairo_show_text (cairo_t *ct, const unsigned char *utf8);
-extern void __external_linkage
+void
cairo_show_glyphs (cairo_t *ct, cairo_glyph_t *glyphs, int num_glyphs);
-extern cairo_font_t * __external_linkage
+cairo_font_t *
cairo_current_font (cairo_t *ct);
-extern void __external_linkage
+void
cairo_current_font_extents (cairo_t *ct,
cairo_font_extents_t *extents);
-extern void __external_linkage
+void
cairo_set_font (cairo_t *ct, cairo_font_t *font);
-
-/* XXX: NYI
-
-extern void __external_linkage
+void
cairo_text_extents (cairo_t *ct,
const unsigned char *utf8,
cairo_text_extents_t *extents);
-extern void __external_linkage
+void
cairo_glyph_extents (cairo_t *ct,
cairo_glyph_t *glyphs,
int num_glyphs,
cairo_text_extents_t *extents);
-extern void __external_linkage
+void
cairo_text_path (cairo_t *ct, const unsigned char *utf8);
-extern void __external_linkage
+void
cairo_glyph_path (cairo_t *ct, cairo_glyph_t *glyphs, int num_glyphs);
-*/
-
-
/* Portable interface to general font features. */
-extern void __external_linkage
+void
cairo_font_reference (cairo_font_t *font);
-extern void __external_linkage
+void
cairo_font_destroy (cairo_font_t *font);
-extern void __external_linkage
+void
cairo_font_set_transform (cairo_font_t *font,
cairo_matrix_t *matrix);
-extern void __external_linkage
+void
cairo_font_current_transform (cairo_font_t *font,
cairo_matrix_t *matrix);
-
/* Fontconfig/Freetype platform-specific font interface */
#include <fontconfig/fontconfig.h>
#include <ft2build.h>
#include FT_FREETYPE_H
-extern cairo_font_t * __external_linkage
+cairo_font_t *
cairo_ft_font_create (FT_Library ft_library, FcPattern *pattern);
-extern cairo_font_t * __external_linkage
+cairo_font_t *
cairo_ft_font_create_for_ft_face (FT_Face face);
-extern void __external_linkage
+void
cairo_ft_font_destroy (cairo_font_t *ft_font);
-extern FT_Face __external_linkage
+FT_Face
cairo_ft_font_face (cairo_font_t *ft_font);
-extern FcPattern * __external_linkage
+FcPattern *
cairo_ft_font_pattern (cairo_font_t *ft_font);
-
-
/* Image functions */
-extern void __external_linkage
+/* XXX: Eliminate width/height here */
+void
cairo_show_surface (cairo_t *cr,
cairo_surface_t *surface,
int width,
@@ -475,48 +512,78 @@ cairo_show_surface (cairo_t *cr,
into one file and be done with it. For now, I've got a little more
typing than that. */
-extern cairo_operator_t __external_linkage
+cairo_operator_t
cairo_current_operator (cairo_t *cr);
-extern void __external_linkage
+void
cairo_current_rgb_color (cairo_t *cr, double *red, double *green, double *blue);
+cairo_pattern_t *
+cairo_current_pattern (cairo_t *cr);
-extern double __external_linkage
+double
cairo_current_alpha (cairo_t *cr);
/* XXX: Do we want cairo_current_pattern as well? */
-extern double __external_linkage
+double
cairo_current_tolerance (cairo_t *cr);
-extern void __external_linkage
+void
cairo_current_point (cairo_t *cr, double *x, double *y);
-extern cairo_fill_rule_t __external_linkage
+cairo_fill_rule_t
cairo_current_fill_rule (cairo_t *cr);
-extern double __external_linkage
+double
cairo_current_line_width (cairo_t *cr);
-extern cairo_line_cap_t __external_linkage
+cairo_line_cap_t
cairo_current_line_cap (cairo_t *cr);
-extern cairo_line_join_t __external_linkage
+cairo_line_join_t
cairo_current_line_join (cairo_t *cr);
-extern double __external_linkage
+double
cairo_current_miter_limit (cairo_t *cr);
/* XXX: How to do cairo_current_dash??? Do we want to switch to a cairo_dash object? */
-extern void __external_linkage
+void
cairo_current_matrix (cairo_t *cr, cairo_matrix_t *matrix);
/* XXX: Need to decide the memory mangement semantics of this
function. Should it reference the surface again? */
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_current_target_surface (cairo_t *cr);
+typedef void (cairo_move_to_func_t) (void *closure,
+ double x, double y);
+
+typedef void (cairo_line_to_func_t) (void *closure,
+ double x, double y);
+
+typedef void (cairo_curve_to_func_t) (void *closure,
+ double x1, double y1,
+ double x2, double y2,
+ double x3, double y3);
+
+typedef void (cairo_close_path_func_t) (void *closure);
+
+extern void
+cairo_current_path (cairo_t *cr,
+ cairo_move_to_func_t *move_to,
+ cairo_line_to_func_t *line_to,
+ cairo_curve_to_func_t *curve_to,
+ cairo_close_path_func_t *close_path,
+ void *closure);
+
+extern void
+cairo_current_path_flat (cairo_t *cr,
+ cairo_move_to_func_t *move_to,
+ cairo_line_to_func_t *line_to,
+ cairo_close_path_func_t *close_path,
+ void *closure);
+
/* Error status queries */
typedef enum cairo_status {
@@ -530,16 +597,16 @@ typedef enum cairo_status {
CAIRO_STATUS_NULL_POINTER
} cairo_status_t;
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_status (cairo_t *cr);
-extern const char * __external_linkage
+const char *
cairo_status_string (cairo_t *cr);
/* Surface manipulation */
/* XXX: We may want to rename this function in light of the new
virtualized surface backends... */
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_surface_create_for_image (char *data,
cairo_format_t format,
int width,
@@ -548,26 +615,26 @@ cairo_surface_create_for_image (char *data,
/* XXX: I want to remove this function, (replace with
cairo_set_target_scratch or similar). */
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_surface_create_similar (cairo_surface_t *other,
cairo_format_t format,
int width,
int height);
-extern void __external_linkage
+void
cairo_surface_reference (cairo_surface_t *surface);
-extern void __external_linkage
+void
cairo_surface_destroy (cairo_surface_t *surface);
/* XXX: NYI
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_clip_restore (cairo_surface_t *surface);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_clip_begin (cairo_surface_t *surface);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_clip_rectangle (cairo_surface_t *surface,
int x, int y,
int width, int height);
@@ -576,52 +643,120 @@ cairo_surface_clip_rectangle (cairo_surface_t *surface,
/* XXX: Note: The current Render/Ic implementations don't do the right
thing with repeat when the surface has a non-identity matrix. */
/* XXX: Rework this as a cairo function with an enum: cairo_set_pattern_extend */
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_set_repeat (cairo_surface_t *surface, int repeat);
/* XXX: Rework this as a cairo function: cairo_set_pattern_transform */
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_set_matrix (cairo_surface_t *surface, cairo_matrix_t *matrix);
/* XXX: Rework this as a cairo function: cairo_current_pattern_transform */
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_get_matrix (cairo_surface_t *surface, cairo_matrix_t *matrix);
-typedef enum cairo_filter {
+typedef enum {
CAIRO_FILTER_FAST,
CAIRO_FILTER_GOOD,
CAIRO_FILTER_BEST,
CAIRO_FILTER_NEAREST,
CAIRO_FILTER_BILINEAR,
+ CAIRO_FILTER_GAUSSIAN
} cairo_filter_t;
-
+
/* XXX: Rework this as a cairo function: cairo_set_pattern_filter */
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_surface_set_filter (cairo_surface_t *surface, cairo_filter_t filter);
+cairo_filter_t
+cairo_surface_get_filter (cairo_surface_t *surface);
+
/* Image-surface functions */
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_image_surface_create (cairo_format_t format,
int width,
int height);
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_image_surface_create_for_data (char *data,
cairo_format_t format,
int width,
int height,
int stride);
+/* Pattern creation functions */
+cairo_pattern_t *
+cairo_pattern_create_for_surface (cairo_surface_t *surface);
+
+cairo_pattern_t *
+cairo_pattern_create_linear (double x0, double y0,
+ double x1, double y1);
+
+cairo_pattern_t *
+cairo_pattern_create_radial (double cx0, double cy0, double radius0,
+ double cx1, double cy1, double radius1);
+
+void
+cairo_pattern_reference (cairo_pattern_t *pattern);
+
+void
+cairo_pattern_destroy (cairo_pattern_t *pattern);
+
+cairo_status_t
+cairo_pattern_add_color_stop (cairo_pattern_t *pattern,
+ double offset,
+ double red, double green, double blue,
+ double alpha);
+
+cairo_status_t
+cairo_pattern_set_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix);
+
+cairo_status_t
+cairo_pattern_get_matrix (cairo_pattern_t *pattern, cairo_matrix_t *matrix);
+
+typedef enum {
+ CAIRO_EXTEND_NONE,
+ CAIRO_EXTEND_REPEAT,
+ CAIRO_EXTEND_REFLECT
+} cairo_extend_t;
+
+cairo_status_t
+cairo_pattern_set_extend (cairo_pattern_t *pattern, cairo_extend_t extend);
+
+cairo_extend_t
+cairo_pattern_get_extend (cairo_pattern_t *pattern);
+
+cairo_status_t
+cairo_pattern_set_filter (cairo_pattern_t *pattern, cairo_filter_t filter);
+
+cairo_filter_t
+cairo_pattern_get_filter (cairo_pattern_t *pattern);
+
+#ifdef CAIRO_HAS_PS_SURFACE
+
/* PS-surface functions */
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_ps_surface_create (FILE *file,
double width_inches,
double height_inches,
double x_pixels_per_inch,
double y_pixels_per_inch);
+#endif /* CAIRO_HAS_PS_SURFACE */
+
+#ifdef CAIRO_HAS_PNG_SURFACE
+
+/* PNG-surface functions */
+
+cairo_surface_t *
+cairo_png_surface_create (FILE *file,
+ cairo_format_t format,
+ int width,
+ int height);
+
+#endif /* CAIRO_HAS_PNG_SURFACE */
+
#ifdef CAIRO_HAS_XLIB_SURFACE
/* XXX: This is a mess from the user's POV. Should the Visual or the
@@ -629,12 +764,17 @@ cairo_ps_surface_create (FILE *file,
cairo_surface_create_for_window with a visual, and
cairo_surface_create_for_pixmap with a cairo_format_t. Would that work?
*/
-extern cairo_surface_t * __external_linkage
+cairo_surface_t *
cairo_xlib_surface_create (Display *dpy,
Drawable drawable,
Visual *visual,
cairo_format_t format,
Colormap colormap);
+
+/* XXX: This has been proposed
+cairo_status_t
+cairo_xlib_surface_set_size (cairo_surface_t *surface, int width, int height);
+*/
#endif /* CAIRO_HAS_XLIB_SURFACE */
@@ -642,49 +782,49 @@ cairo_xlib_surface_create (Display *dpy,
/* XXX: Rename all of these to cairo_transform_t */
-extern cairo_matrix_t * __external_linkage
+cairo_matrix_t *
cairo_matrix_create (void);
-extern void __external_linkage
+void
cairo_matrix_destroy (cairo_matrix_t *matrix);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_copy (cairo_matrix_t *matrix, const cairo_matrix_t *other);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_set_identity (cairo_matrix_t *matrix);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_set_affine (cairo_matrix_t *cr,
double a, double b,
double c, double d,
double tx, double ty);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_get_affine (cairo_matrix_t *matrix,
double *a, double *b,
double *c, double *d,
double *tx, double *ty);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_translate (cairo_matrix_t *matrix, double tx, double ty);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_scale (cairo_matrix_t *matrix, double sx, double sy);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_rotate (cairo_matrix_t *matrix, double radians);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_invert (cairo_matrix_t *matrix);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_multiply (cairo_matrix_t *result, const cairo_matrix_t *a, const cairo_matrix_t *b);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_transform_distance (cairo_matrix_t *matrix, double *dx, double *dy);
-extern cairo_status_t __external_linkage
+cairo_status_t
cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y);
/* Deprecated functions. We've made some effort to allow the
@@ -712,6 +852,4 @@ cairo_matrix_transform_point (cairo_matrix_t *matrix, double *x, double *y);
}
#endif
-#undef __external_linkage
-
#endif