(define-cairo-func int cairo-version () "cairo_version")
(define-cairo-func string cairo-version-string () "cairo_version_string")
(define-cairo-func (* cairo-t) cairo-create ((target (* cairo-surface-t))) "cairo_create")
(define-cairo-func (* cairo-t) cairo-reference ((cr (* cairo-t))) "cairo_reference")
(define-cairo-func void cairo-destroy ((cr (* cairo-t))) "cairo_destroy")
(define-cairo-func unsigned-int cairo-get-reference-count ((cr (* cairo-t))) "cairo_get_reference_count")
(define-cairo-func void* cairo-get-user-data ((cr (* cairo-t)) (key (* cairo-user-data-key-t))) "cairo_get_user_data")
(define-cairo-func cairo-status-t cairo-set-user-data ((cr (* cairo-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_set_user_data")
(define-cairo-func void cairo-save ((cr (* cairo-t))) "cairo_save")
(define-cairo-func void cairo-restore ((cr (* cairo-t))) "cairo_restore")
(define-cairo-func void cairo-push-group ((cr (* cairo-t))) "cairo_push_group")
(define-cairo-func void cairo-push-group-with-content ((cr (* cairo-t)) (content cairo-content-t)) "cairo_push_group_with_content")
(define-cairo-func (* cairo-pattern-t) cairo-pop-group ((cr (* cairo-t))) "cairo_pop_group")
(define-cairo-func void cairo-pop-group-to-source ((cr (* cairo-t))) "cairo_pop_group_to_source")
(define-cairo-func void cairo-set-operator ((cr (* cairo-t)) (op cairo-operator-t)) "cairo_set_operator")
(define-cairo-func void cairo-set-source ((cr (* cairo-t)) (source (* cairo-pattern-t))) "cairo_set_source")
(define-cairo-func void cairo-set-source-rgb ((cr (* cairo-t)) (red double) (green double) (blue double)) "cairo_set_source_rgb")
(define-cairo-func void cairo-set-source-rgba ((cr (* cairo-t)) (red double) (green double) (blue double) (alpha double)) "cairo_set_source_rgba")
(define-cairo-func void cairo-set-source-surface ((cr (* cairo-t)) (surface (* cairo-surface-t)) (x double) (y double)) "cairo_set_source_surface")
(define-cairo-func void cairo-set-tolerance ((cr (* cairo-t)) (tolerance double)) "cairo_set_tolerance")
(define-cairo-func void cairo-set-antialias ((cr (* cairo-t)) (antialias cairo-antialias-t)) "cairo_set_antialias")
(define-cairo-func void cairo-set-fill-rule ((cr (* cairo-t)) (fill_rule cairo-fill-rule-t)) "cairo_set_fill_rule")
(define-cairo-func void cairo-set-line-width ((cr (* cairo-t)) (width double)) "cairo_set_line_width")
(define-cairo-func void cairo-set-line-cap ((cr (* cairo-t)) (line_cap cairo-line-cap-t)) "cairo_set_line_cap")
(define-cairo-func void cairo-set-line-join ((cr (* cairo-t)) (line_join cairo-line-join-t)) "cairo_set_line_join")
(define-cairo-func void cairo-set-dash ((cr (* cairo-t)) (dashes (* double)) (num_dashes int) (offset double)) "cairo_set_dash")
(define-cairo-func void cairo-set-miter-limit ((cr (* cairo-t)) (limit double)) "cairo_set_miter_limit")
(define-cairo-func void cairo-translate ((cr (* cairo-t)) (tx double) (ty double)) "cairo_translate")
(define-cairo-func void cairo-scale ((cr (* cairo-t)) (sx double) (sy double)) "cairo_scale")
(define-cairo-func void cairo-rotate ((cr (* cairo-t)) (angle double)) "cairo_rotate")
(define-cairo-func void cairo-transform ((cr (* cairo-t)) (matrix (* cairo-matrix-t))) "cairo_transform")
(define-cairo-func void cairo-set-matrix ((cr (* cairo-t)) (matrix (* cairo-matrix-t))) "cairo_set_matrix")
(define-cairo-func void cairo-identity-matrix ((cr (* cairo-t))) "cairo_identity_matrix")
(define-cairo-func void cairo-user-to-device ((cr (* cairo-t)) (x (* double)) (y (* double))) "cairo_user_to_device")
(define-cairo-func void cairo-user-to-device-distance ((cr (* cairo-t)) (dx (* double)) (dy (* double))) "cairo_user_to_device_distance")
(define-cairo-func void cairo-device-to-user ((cr (* cairo-t)) (x (* double)) (y (* double))) "cairo_device_to_user")
(define-cairo-func void cairo-device-to-user-distance ((cr (* cairo-t)) (dx (* double)) (dy (* double))) "cairo_device_to_user_distance")
(define-cairo-func void cairo-new-path ((cr (* cairo-t))) "cairo_new_path")
(define-cairo-func void cairo-move-to ((cr (* cairo-t)) (x double) (y double)) "cairo_move_to")
(define-cairo-func void cairo-new-sub-path ((cr (* cairo-t))) "cairo_new_sub_path")
(define-cairo-func void cairo-line-to ((cr (* cairo-t)) (x double) (y double)) "cairo_line_to")
(define-cairo-func void cairo-curve-to ((cr (* cairo-t)) (x1 double) (y1 double) (x2 double) (y2 double) (x3 double) (y3 double)) "cairo_curve_to")
(define-cairo-func void cairo-arc ((cr (* cairo-t)) (xc double) (yc double) (radius double) (angle1 double) (angle2 double)) "cairo_arc")
(define-cairo-func void cairo-arc-negative ((cr (* cairo-t)) (xc double) (yc double) (radius double) (angle1 double) (angle2 double)) "cairo_arc_negative")
(define-cairo-func void cairo-rel-move-to ((cr (* cairo-t)) (dx double) (dy double)) "cairo_rel_move_to")
(define-cairo-func void cairo-rel-line-to ((cr (* cairo-t)) (dx double) (dy double)) "cairo_rel_line_to")
(define-cairo-func void cairo-rel-curve-to ((cr (* cairo-t)) (dx1 double) (dy1 double) (dx2 double) (dy2 double) (dx3 double) (dy3 double)) "cairo_rel_curve_to")
(define-cairo-func void cairo-rectangle ((cr (* cairo-t)) (x double) (y double) (width double) (height double)) "cairo_rectangle")
(define-cairo-func void cairo-close-path ((cr (* cairo-t))) "cairo_close_path")
(define-cairo-func void cairo-path-extents ((cr (* cairo-t)) (x1 (* double)) (y1 (* double)) (x2 (* double)) (y2 (* double))) "cairo_path_extents")
(define-cairo-func void cairo-paint ((cr (* cairo-t))) "cairo_paint")
(define-cairo-func void cairo-paint-with-alpha ((cr (* cairo-t)) (alpha double)) "cairo_paint_with_alpha")
(define-cairo-func void cairo-mask ((cr (* cairo-t)) (pattern (* cairo-pattern-t))) "cairo_mask")
(define-cairo-func void cairo-mask-surface ((cr (* cairo-t)) (surface (* cairo-surface-t)) (surface_x double) (surface_y double)) "cairo_mask_surface")
(define-cairo-func void cairo-stroke ((cr (* cairo-t))) "cairo_stroke")
(define-cairo-func void cairo-stroke-preserve ((cr (* cairo-t))) "cairo_stroke_preserve")
(define-cairo-func void cairo-fill ((cr (* cairo-t))) "cairo_fill")
(define-cairo-func void cairo-fill-preserve ((cr (* cairo-t))) "cairo_fill_preserve")
(define-cairo-func void cairo-copy-page ((cr (* cairo-t))) "cairo_copy_page")
(define-cairo-func void cairo-show-page ((cr (* cairo-t))) "cairo_show_page")
(define-cairo-func cairo-bool-t cairo-in-stroke ((cr (* cairo-t)) (x double) (y double)) "cairo_in_stroke")
(define-cairo-func cairo-bool-t cairo-in-fill ((cr (* cairo-t)) (x double) (y double)) "cairo_in_fill")
(define-cairo-func cairo-bool-t cairo-in-clip ((cr (* cairo-t)) (x double) (y double)) "cairo_in_clip")
(define-cairo-func void cairo-stroke-extents ((cr (* cairo-t)) (x1 (* double)) (y1 (* double)) (x2 (* double)) (y2 (* double))) "cairo_stroke_extents")
(define-cairo-func void cairo-fill-extents ((cr (* cairo-t)) (x1 (* double)) (y1 (* double)) (x2 (* double)) (y2 (* double))) "cairo_fill_extents")
(define-cairo-func void cairo-reset-clip ((cr (* cairo-t))) "cairo_reset_clip")
(define-cairo-func void cairo-clip ((cr (* cairo-t))) "cairo_clip")
(define-cairo-func void cairo-clip-preserve ((cr (* cairo-t))) "cairo_clip_preserve")
(define-cairo-func void cairo-clip-extents ((cr (* cairo-t)) (x1 (* double)) (y1 (* double)) (x2 (* double)) (y2 (* double))) "cairo_clip_extents")
(define-cairo-func (* cairo-rectangle-list-t) cairo-copy-clip-rectangle-list ((cr (* cairo-t))) "cairo_copy_clip_rectangle_list")
(define-cairo-func void cairo-rectangle-list-destroy ((rectangle_list (* cairo-rectangle-list-t))) "cairo_rectangle_list_destroy")
(define-cairo-func (* cairo-glyph-t) cairo-glyph-allocate ((num_glyphs int)) "cairo_glyph_allocate")
(define-cairo-func void cairo-glyph-free ((glyphs (* cairo-glyph-t))) "cairo_glyph_free")
(define-cairo-func (* cairo-text-cluster-t) cairo-text-cluster-allocate ((num_clusters int)) "cairo_text_cluster_allocate")
(define-cairo-func void cairo-text-cluster-free ((clusters (* cairo-text-cluster-t))) "cairo_text_cluster_free")
(define-cairo-func (* cairo-font-options-t) cairo-font-options-create () "cairo_font_options_create")
(define-cairo-func (* cairo-font-options-t) cairo-font-options-copy ((original (* cairo-font-options-t))) "cairo_font_options_copy")
(define-cairo-func void cairo-font-options-destroy ((options (* cairo-font-options-t))) "cairo_font_options_destroy")
(define-cairo-func cairo-status-t cairo-font-options-status ((options (* cairo-font-options-t))) "cairo_font_options_status")
(define-cairo-func void cairo-font-options-merge ((options (* cairo-font-options-t)) (other (* cairo-font-options-t))) "cairo_font_options_merge")
(define-cairo-func cairo-bool-t cairo-font-options-equal ((options (* cairo-font-options-t)) (other (* cairo-font-options-t))) "cairo_font_options_equal")
(define-cairo-func unsigned-long cairo-font-options-hash ((options (* cairo-font-options-t))) "cairo_font_options_hash")
(define-cairo-func void cairo-font-options-set-antialias ((options (* cairo-font-options-t)) (antialias cairo-antialias-t)) "cairo_font_options_set_antialias")
(define-cairo-func cairo-antialias-t cairo-font-options-get-antialias ((options (* cairo-font-options-t))) "cairo_font_options_get_antialias")
(define-cairo-func void cairo-font-options-set-subpixel-order ((options (* cairo-font-options-t)) (subpixel_order cairo-subpixel-order-t)) "cairo_font_options_set_subpixel_order")
(define-cairo-func cairo-subpixel-order-t cairo-font-options-get-subpixel-order ((options (* cairo-font-options-t))) "cairo_font_options_get_subpixel_order")
(define-cairo-func void cairo-font-options-set-hint-style ((options (* cairo-font-options-t)) (hint_style cairo-hint-style-t)) "cairo_font_options_set_hint_style")
(define-cairo-func cairo-hint-style-t cairo-font-options-get-hint-style ((options (* cairo-font-options-t))) "cairo_font_options_get_hint_style")
(define-cairo-func void cairo-font-options-set-hint-metrics ((options (* cairo-font-options-t)) (hint_metrics cairo-hint-metrics-t)) "cairo_font_options_set_hint_metrics")
(define-cairo-func cairo-hint-metrics-t cairo-font-options-get-hint-metrics ((options (* cairo-font-options-t))) "cairo_font_options_get_hint_metrics")
(define-cairo-func void cairo-select-font-face ((cr (* cairo-t)) (family string) (slant cairo-font-slant-t) (weight cairo-font-weight-t)) "cairo_select_font_face")
(define-cairo-func void cairo-set-font-size ((cr (* cairo-t)) (size double)) "cairo_set_font_size")
(define-cairo-func void cairo-set-font-matrix ((cr (* cairo-t)) (matrix (* cairo-matrix-t))) "cairo_set_font_matrix")
(define-cairo-func void cairo-get-font-matrix ((cr (* cairo-t)) (matrix (* cairo-matrix-t))) "cairo_get_font_matrix")
(define-cairo-func void cairo-set-font-options ((cr (* cairo-t)) (options (* cairo-font-options-t))) "cairo_set_font_options")
(define-cairo-func void cairo-get-font-options ((cr (* cairo-t)) (options (* cairo-font-options-t))) "cairo_get_font_options")
(define-cairo-func void cairo-set-font-face ((cr (* cairo-t)) (font_face (* cairo-font-face-t))) "cairo_set_font_face")
(define-cairo-func (* cairo-font-face-t) cairo-get-font-face ((cr (* cairo-t))) "cairo_get_font_face")
(define-cairo-func void cairo-set-scaled-font ((cr (* cairo-t)) (scaled_font (* cairo-scaled-font-t))) "cairo_set_scaled_font")
(define-cairo-func (* cairo-scaled-font-t) cairo-get-scaled-font ((cr (* cairo-t))) "cairo_get_scaled_font")
(define-cairo-func void cairo-show-text ((cr (* cairo-t)) (utf8 string)) "cairo_show_text")
(define-cairo-func void cairo-show-glyphs ((cr (* cairo-t)) (glyphs (* cairo-glyph-t)) (num_glyphs int)) "cairo_show_glyphs")
(define-cairo-func void cairo-show-text-glyphs ((cr (* cairo-t)) (utf8 string) (utf8_len int) (glyphs (* cairo-glyph-t)) (num_glyphs int) (clusters (* cairo-text-cluster-t)) (num_clusters int) (cluster_flags cairo-text-cluster-flags-t)) "cairo_show_text_glyphs")
(define-cairo-func void cairo-text-path ((cr (* cairo-t)) (utf8 string)) "cairo_text_path")
(define-cairo-func void cairo-glyph-path ((cr (* cairo-t)) (glyphs (* cairo-glyph-t)) (num_glyphs int)) "cairo_glyph_path")
(define-cairo-func void cairo-text-extents ((cr (* cairo-t)) (utf8 string) (extents (* cairo-text-extents-t))) "cairo_text_extents")
(define-cairo-func void cairo-glyph-extents ((cr (* cairo-t)) (glyphs (* cairo-glyph-t)) (num_glyphs int) (extents (* cairo-text-extents-t))) "cairo_glyph_extents")
(define-cairo-func void cairo-font-extents ((cr (* cairo-t)) (extents (* cairo-font-extents-t))) "cairo_font_extents")
(define-cairo-func (* cairo-font-face-t) cairo-font-face-reference ((font_face (* cairo-font-face-t))) "cairo_font_face_reference")
(define-cairo-func void cairo-font-face-destroy ((font_face (* cairo-font-face-t))) "cairo_font_face_destroy")
(define-cairo-func unsigned-int cairo-font-face-get-reference-count ((font_face (* cairo-font-face-t))) "cairo_font_face_get_reference_count")
(define-cairo-func cairo-status-t cairo-font-face-status ((font_face (* cairo-font-face-t))) "cairo_font_face_status")
(define-cairo-func cairo-font-type-t cairo-font-face-get-type ((font_face (* cairo-font-face-t))) "cairo_font_face_get_type")
(define-cairo-func void* cairo-font-face-get-user-data ((font_face (* cairo-font-face-t)) (key (* cairo-user-data-key-t))) "cairo_font_face_get_user_data")
(define-cairo-func cairo-status-t cairo-font-face-set-user-data ((font_face (* cairo-font-face-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_font_face_set_user_data")
(define-cairo-func (* cairo-scaled-font-t) cairo-scaled-font-create ((font_face (* cairo-font-face-t)) (font_matrix (* cairo-matrix-t)) (ctm (* cairo-matrix-t)) (options (* cairo-font-options-t))) "cairo_scaled_font_create")
(define-cairo-func (* cairo-scaled-font-t) cairo-scaled-font-reference ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_reference")
(define-cairo-func void cairo-scaled-font-destroy ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_destroy")
(define-cairo-func unsigned-int cairo-scaled-font-get-reference-count ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_get_reference_count")
(define-cairo-func cairo-status-t cairo-scaled-font-status ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_status")
(define-cairo-func cairo-font-type-t cairo-scaled-font-get-type ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_get_type")
(define-cairo-func void* cairo-scaled-font-get-user-data ((scaled_font (* cairo-scaled-font-t)) (key (* cairo-user-data-key-t))) "cairo_scaled_font_get_user_data")
(define-cairo-func cairo-status-t cairo-scaled-font-set-user-data ((scaled_font (* cairo-scaled-font-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_scaled_font_set_user_data")
(define-cairo-func void cairo-scaled-font-extents ((scaled_font (* cairo-scaled-font-t)) (extents (* cairo-font-extents-t))) "cairo_scaled_font_extents")
(define-cairo-func void cairo-scaled-font-text-extents ((scaled_font (* cairo-scaled-font-t)) (utf8 string) (extents (* cairo-text-extents-t))) "cairo_scaled_font_text_extents")
(define-cairo-func void cairo-scaled-font-glyph-extents ((scaled_font (* cairo-scaled-font-t)) (glyphs (* cairo-glyph-t)) (num_glyphs int) (extents (* cairo-text-extents-t))) "cairo_scaled_font_glyph_extents")
(define-cairo-func cairo-status-t cairo-scaled-font-text-to-glyphs ((scaled_font (* cairo-scaled-font-t)) (x double) (y double) (utf8 string) (utf8_len int) (glyphs (* cairo-glyph-t*)) (num_glyphs (* int)) (clusters (* cairo-text-cluster-t*)) (num_clusters (* int)) (cluster_flags (* cairo-text-cluster-flags-t))) "cairo_scaled_font_text_to_glyphs")
(define-cairo-func (* cairo-font-face-t) cairo-scaled-font-get-font-face ((scaled_font (* cairo-scaled-font-t))) "cairo_scaled_font_get_font_face")
(define-cairo-func void cairo-scaled-font-get-font-matrix ((scaled_font (* cairo-scaled-font-t)) (font_matrix (* cairo-matrix-t))) "cairo_scaled_font_get_font_matrix")
(define-cairo-func void cairo-scaled-font-get-ctm ((scaled_font (* cairo-scaled-font-t)) (ctm (* cairo-matrix-t))) "cairo_scaled_font_get_ctm")
(define-cairo-func void cairo-scaled-font-get-scale-matrix ((scaled_font (* cairo-scaled-font-t)) (scale_matrix (* cairo-matrix-t))) "cairo_scaled_font_get_scale_matrix")
(define-cairo-func void cairo-scaled-font-get-font-options ((scaled_font (* cairo-scaled-font-t)) (options (* cairo-font-options-t))) "cairo_scaled_font_get_font_options")
(define-cairo-func (* cairo-font-face-t) cairo-toy-font-face-create ((family string) (slant cairo-font-slant-t) (weight cairo-font-weight-t)) "cairo_toy_font_face_create")
(define-cairo-func string cairo-toy-font-face-get-family ((font_face (* cairo-font-face-t))) "cairo_toy_font_face_get_family")
(define-cairo-func cairo-font-slant-t cairo-toy-font-face-get-slant ((font_face (* cairo-font-face-t))) "cairo_toy_font_face_get_slant")
(define-cairo-func cairo-font-weight-t cairo-toy-font-face-get-weight ((font_face (* cairo-font-face-t))) "cairo_toy_font_face_get_weight")
(define-cairo-func (* cairo-font-face-t) cairo-user-font-face-create () "cairo_user_font_face_create")
(define-cairo-func void cairo-user-font-face-set-init-func ((font_face (* cairo-font-face-t)) (init_func (* cairo-user-scaled-font-init-func-t))) "cairo_user_font_face_set_init_func")
(define-cairo-func void cairo-user-font-face-set-render-glyph-func ((font_face (* cairo-font-face-t)) (render_glyph_func (* cairo-user-scaled-font-render-glyph-func-t))) "cairo_user_font_face_set_render_glyph_func")
(define-cairo-func void cairo-user-font-face-set-text-to-glyphs-func ((font_face (* cairo-font-face-t)) (text_to_glyphs_func (* cairo-user-scaled-font-text-to-glyphs-func-t))) "cairo_user_font_face_set_text_to_glyphs_func")
(define-cairo-func void cairo-user-font-face-set-unicode-to-glyph-func ((font_face (* cairo-font-face-t)) (unicode_to_glyph_func (* cairo-user-scaled-font-unicode-to-glyph-func-t))) "cairo_user_font_face_set_unicode_to_glyph_func")
(define-cairo-func (* cairo-user-scaled-font-init-func-t) cairo-user-font-face-get-init-func ((font_face (* cairo-font-face-t))) "cairo_user_font_face_get_init_func")
(define-cairo-func (* cairo-user-scaled-font-render-glyph-func-t) cairo-user-font-face-get-render-glyph-func ((font_face (* cairo-font-face-t))) "cairo_user_font_face_get_render_glyph_func")
(define-cairo-func (* cairo-user-scaled-font-text-to-glyphs-func-t) cairo-user-font-face-get-text-to-glyphs-func ((font_face (* cairo-font-face-t))) "cairo_user_font_face_get_text_to_glyphs_func")
(define-cairo-func (* cairo-user-scaled-font-unicode-to-glyph-func-t) cairo-user-font-face-get-unicode-to-glyph-func ((font_face (* cairo-font-face-t))) "cairo_user_font_face_get_unicode_to_glyph_func")
(define-cairo-func cairo-operator-t cairo-get-operator ((cr (* cairo-t))) "cairo_get_operator")
(define-cairo-func (* cairo-pattern-t) cairo-get-source ((cr (* cairo-t))) "cairo_get_source")
(define-cairo-func double cairo-get-tolerance ((cr (* cairo-t))) "cairo_get_tolerance")
(define-cairo-func cairo-antialias-t cairo-get-antialias ((cr (* cairo-t))) "cairo_get_antialias")
(define-cairo-func cairo-bool-t cairo-has-current-point ((cr (* cairo-t))) "cairo_has_current_point")
(define-cairo-func void cairo-get-current-point ((cr (* cairo-t)) (x (* double)) (y (* double))) "cairo_get_current_point")
(define-cairo-func cairo-fill-rule-t cairo-get-fill-rule ((cr (* cairo-t))) "cairo_get_fill_rule")
(define-cairo-func double cairo-get-line-width ((cr (* cairo-t))) "cairo_get_line_width")
(define-cairo-func cairo-line-cap-t cairo-get-line-cap ((cr (* cairo-t))) "cairo_get_line_cap")
(define-cairo-func cairo-line-join-t cairo-get-line-join ((cr (* cairo-t))) "cairo_get_line_join")
(define-cairo-func double cairo-get-miter-limit ((cr (* cairo-t))) "cairo_get_miter_limit")
(define-cairo-func int cairo-get-dash-count ((cr (* cairo-t))) "cairo_get_dash_count")
(define-cairo-func void cairo-get-dash ((cr (* cairo-t)) (dashes (* double)) (offset (* double))) "cairo_get_dash")
(define-cairo-func void cairo-get-matrix ((cr (* cairo-t)) (matrix (* cairo-matrix-t))) "cairo_get_matrix")
(define-cairo-func (* cairo-surface-t) cairo-get-target ((cr (* cairo-t))) "cairo_get_target")
(define-cairo-func (* cairo-surface-t) cairo-get-group-target ((cr (* cairo-t))) "cairo_get_group_target")
(define-cairo-func (* cairo-path-t) cairo-copy-path ((cr (* cairo-t))) "cairo_copy_path")
(define-cairo-func (* cairo-path-t) cairo-copy-path-flat ((cr (* cairo-t))) "cairo_copy_path_flat")
(define-cairo-func void cairo-append-path ((cr (* cairo-t)) (path (* cairo-path-t))) "cairo_append_path")
(define-cairo-func void cairo-path-destroy ((path (* cairo-path-t))) "cairo_path_destroy")
(define-cairo-func cairo-status-t cairo-status ((cr (* cairo-t))) "cairo_status")
(define-cairo-func string cairo-status-to-string ((status cairo-status-t)) "cairo_status_to_string")
(define-cairo-func (* cairo-device-t) cairo-device-reference ((device (* cairo-device-t))) "cairo_device_reference")
(define-cairo-func cairo-device-type-t cairo-device-get-type ((device (* cairo-device-t))) "cairo_device_get_type")
(define-cairo-func cairo-status-t cairo-device-status ((device (* cairo-device-t))) "cairo_device_status")
(define-cairo-func cairo-status-t cairo-device-acquire ((device (* cairo-device-t))) "cairo_device_acquire")
(define-cairo-func void cairo-device-release ((device (* cairo-device-t))) "cairo_device_release")
(define-cairo-func void cairo-device-flush ((device (* cairo-device-t))) "cairo_device_flush")
(define-cairo-func void cairo-device-finish ((device (* cairo-device-t))) "cairo_device_finish")
(define-cairo-func void cairo-device-destroy ((device (* cairo-device-t))) "cairo_device_destroy")
(define-cairo-func unsigned-int cairo-device-get-reference-count ((device (* cairo-device-t))) "cairo_device_get_reference_count")
(define-cairo-func void* cairo-device-get-user-data ((device (* cairo-device-t)) (key (* cairo-user-data-key-t))) "cairo_device_get_user_data")
(define-cairo-func cairo-status-t cairo-device-set-user-data ((device (* cairo-device-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_device_set_user_data")
(define-cairo-func (* cairo-surface-t) cairo-surface-create-similar ((other (* cairo-surface-t)) (content cairo-content-t) (width int) (height int)) "cairo_surface_create_similar")
(define-cairo-func (* cairo-surface-t) cairo-surface-create-similar-image ((other (* cairo-surface-t)) (format cairo-format-t) (width int) (height int)) "cairo_surface_create_similar_image")
(define-cairo-func (* cairo-surface-t) cairo-surface-map-to-image ((surface (* cairo-surface-t)) (extents (* cairo-rectangle-int-t))) "cairo_surface_map_to_image")
(define-cairo-func void cairo-surface-unmap-image ((surface (* cairo-surface-t)) (image (* cairo-surface-t))) "cairo_surface_unmap_image")
(define-cairo-func (* cairo-surface-t) cairo-surface-create-for-rectangle ((target (* cairo-surface-t)) (x double) (y double) (width double) (height double)) "cairo_surface_create_for_rectangle")
(define-cairo-func (* cairo-surface-t) cairo-surface-create-observer ((target (* cairo-surface-t)) (mode cairo-surface-observer-mode-t)) "cairo_surface_create_observer")
(define-cairo-func cairo-status-t cairo-surface-observer-add-paint-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_paint_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-mask-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_mask_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-fill-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_fill_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-stroke-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_stroke_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-glyphs-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_glyphs_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-flush-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_flush_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-add-finish-callback ((abstract_surface (* cairo-surface-t)) (func (* cairo-surface-observer-callback-t)) (data void*)) "cairo_surface_observer_add_finish_callback")
(define-cairo-func cairo-status-t cairo-surface-observer-print ((surface (* cairo-surface-t)) (write_func (* cairo-write-func-t)) (closure void*)) "cairo_surface_observer_print")
(define-cairo-func double cairo-surface-observer-elapsed ((surface (* cairo-surface-t))) "cairo_surface_observer_elapsed")
(define-cairo-func cairo-status-t cairo-device-observer-print ((device (* cairo-device-t)) (write_func (* cairo-write-func-t)) (closure void*)) "cairo_device_observer_print")
(define-cairo-func double cairo-device-observer-elapsed ((device (* cairo-device-t))) "cairo_device_observer_elapsed")
(define-cairo-func double cairo-device-observer-paint-elapsed ((device (* cairo-device-t))) "cairo_device_observer_paint_elapsed")
(define-cairo-func double cairo-device-observer-mask-elapsed ((device (* cairo-device-t))) "cairo_device_observer_mask_elapsed")
(define-cairo-func double cairo-device-observer-fill-elapsed ((device (* cairo-device-t))) "cairo_device_observer_fill_elapsed")
(define-cairo-func double cairo-device-observer-stroke-elapsed ((device (* cairo-device-t))) "cairo_device_observer_stroke_elapsed")
(define-cairo-func double cairo-device-observer-glyphs-elapsed ((device (* cairo-device-t))) "cairo_device_observer_glyphs_elapsed")
(define-cairo-func (* cairo-surface-t) cairo-surface-reference ((surface (* cairo-surface-t))) "cairo_surface_reference")
(define-cairo-func void cairo-surface-finish ((surface (* cairo-surface-t))) "cairo_surface_finish")
(define-cairo-func void cairo-surface-destroy ((surface (* cairo-surface-t))) "cairo_surface_destroy")
(define-cairo-func (* cairo-device-t) cairo-surface-get-device ((surface (* cairo-surface-t))) "cairo_surface_get_device")
(define-cairo-func unsigned-int cairo-surface-get-reference-count ((surface (* cairo-surface-t))) "cairo_surface_get_reference_count")
(define-cairo-func cairo-status-t cairo-surface-status ((surface (* cairo-surface-t))) "cairo_surface_status")
(define-cairo-func cairo-surface-type-t cairo-surface-get-type ((surface (* cairo-surface-t))) "cairo_surface_get_type")
(define-cairo-func cairo-content-t cairo-surface-get-content ((surface (* cairo-surface-t))) "cairo_surface_get_content")
(define-cairo-func cairo-status-t cairo-surface-write-to-png ((surface (* cairo-surface-t)) (filename string)) "cairo_surface_write_to_png")
(define-cairo-func cairo-status-t cairo-surface-write-to-png-stream ((surface (* cairo-surface-t)) (write_func (* cairo-write-func-t)) (closure void*)) "cairo_surface_write_to_png_stream")
(define-cairo-func void* cairo-surface-get-user-data ((surface (* cairo-surface-t)) (key (* cairo-user-data-key-t))) "cairo_surface_get_user_data")
(define-cairo-func cairo-status-t cairo-surface-set-user-data ((surface (* cairo-surface-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_surface_set_user_data")
(define-cairo-func void cairo-surface-get-mime-data ((surface (* cairo-surface-t)) (mime_type string) (data (* unsigned-8*)) (length (* unsigned-long))) "cairo_surface_get_mime_data")
(define-cairo-func cairo-status-t cairo-surface-set-mime-data ((surface (* cairo-surface-t)) (mime_type string) (data (* unsigned-8)) (length unsigned-long) (destroy cairo-destroy-func-t) (closure void*)) "cairo_surface_set_mime_data")
(define-cairo-func cairo-bool-t cairo-surface-supports-mime-type ((surface (* cairo-surface-t)) (mime_type string)) "cairo_surface_supports_mime_type")
(define-cairo-func void cairo-surface-get-font-options ((surface (* cairo-surface-t)) (options (* cairo-font-options-t))) "cairo_surface_get_font_options")
(define-cairo-func void cairo-surface-flush ((surface (* cairo-surface-t))) "cairo_surface_flush")
(define-cairo-func void cairo-surface-mark-dirty ((surface (* cairo-surface-t))) "cairo_surface_mark_dirty")
(define-cairo-func void cairo-surface-mark-dirty-rectangle ((surface (* cairo-surface-t)) (x int) (y int) (width int) (height int)) "cairo_surface_mark_dirty_rectangle")
(define-cairo-func void cairo-surface-set-device-scale ((surface (* cairo-surface-t)) (x_scale double) (y_scale double)) "cairo_surface_set_device_scale")
(define-cairo-func void cairo-surface-get-device-scale ((surface (* cairo-surface-t)) (x_scale (* double)) (y_scale (* double))) "cairo_surface_get_device_scale")
(define-cairo-func void cairo-surface-set-device-offset ((surface (* cairo-surface-t)) (x_offset double) (y_offset double)) "cairo_surface_set_device_offset")
(define-cairo-func void cairo-surface-get-device-offset ((surface (* cairo-surface-t)) (x_offset (* double)) (y_offset (* double))) "cairo_surface_get_device_offset")
(define-cairo-func void cairo-surface-set-fallback-resolution ((surface (* cairo-surface-t)) (x_pixels_per_inch double) (y_pixels_per_inch double)) "cairo_surface_set_fallback_resolution")
(define-cairo-func void cairo-surface-get-fallback-resolution ((surface (* cairo-surface-t)) (x_pixels_per_inch (* double)) (y_pixels_per_inch (* double))) "cairo_surface_get_fallback_resolution")
(define-cairo-func void cairo-surface-copy-page ((surface (* cairo-surface-t))) "cairo_surface_copy_page")
(define-cairo-func void cairo-surface-show-page ((surface (* cairo-surface-t))) "cairo_surface_show_page")
(define-cairo-func cairo-bool-t cairo-surface-has-show-text-glyphs ((surface (* cairo-surface-t))) "cairo_surface_has_show_text_glyphs")
(define-cairo-func (* cairo-surface-t) cairo-image-surface-create ((format cairo-format-t) (width int) (height int)) "cairo_image_surface_create")
(define-cairo-func int cairo-format-stride-for-width ((format cairo-format-t) (width int)) "cairo_format_stride_for_width")
(define-cairo-func (* cairo-surface-t) cairo-image-surface-create-for-data ((data (* unsigned-8)) (format cairo-format-t) (width int) (height int) (stride int)) "cairo_image_surface_create_for_data")
(define-cairo-func (* unsigned-8) cairo-image-surface-get-data ((surface (* cairo-surface-t))) "cairo_image_surface_get_data")
(define-cairo-func cairo-format-t cairo-image-surface-get-format ((surface (* cairo-surface-t))) "cairo_image_surface_get_format")
(define-cairo-func int cairo-image-surface-get-width ((surface (* cairo-surface-t))) "cairo_image_surface_get_width")
(define-cairo-func int cairo-image-surface-get-height ((surface (* cairo-surface-t))) "cairo_image_surface_get_height")
(define-cairo-func int cairo-image-surface-get-stride ((surface (* cairo-surface-t))) "cairo_image_surface_get_stride")
(define-cairo-func (* cairo-surface-t) cairo-image-surface-create-from-png ((filename string)) "cairo_image_surface_create_from_png")
(define-cairo-func (* cairo-surface-t) cairo-image-surface-create-from-png-stream ((read_func (* cairo-read-func-t)) (closure void*)) "cairo_image_surface_create_from_png_stream")
(define-cairo-func (* cairo-surface-t) cairo-recording-surface-create ((content cairo-content-t) (extents (* cairo-rectangle-t))) "cairo_recording_surface_create")
(define-cairo-func void cairo-recording-surface-ink-extents ((surface (* cairo-surface-t)) (x0 (* double)) (y0 (* double)) (width (* double)) (height (* double))) "cairo_recording_surface_ink_extents")
(define-cairo-func cairo-bool-t cairo-recording-surface-get-extents ((surface (* cairo-surface-t)) (extents (* cairo-rectangle-t))) "cairo_recording_surface_get_extents")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-raster-source ((user_data void*) (content cairo-content-t) (width int) (height int)) "cairo_pattern_create_raster_source")
(define-cairo-func void cairo-raster-source-pattern-set-callback-data ((pattern (* cairo-pattern-t)) (data void*)) "cairo_raster_source_pattern_set_callback_data")
(define-cairo-func void* cairo-raster-source-pattern-get-callback-data ((pattern (* cairo-pattern-t))) "cairo_raster_source_pattern_get_callback_data")
(define-cairo-func void cairo-raster-source-pattern-set-acquire ((pattern (* cairo-pattern-t)) (acquire (* cairo-raster-source-acquire-func-t)) (release (* cairo-raster-source-release-func-t))) "cairo_raster_source_pattern_set_acquire")
(define-cairo-func void cairo-raster-source-pattern-get-acquire ((pattern (* cairo-pattern-t)) (acquire (* cairo-raster-source-acquire-func-t*)) (release (* cairo-raster-source-release-func-t*))) "cairo_raster_source_pattern_get_acquire")
(define-cairo-func void cairo-raster-source-pattern-set-snapshot ((pattern (* cairo-pattern-t)) (snapshot (* cairo-raster-source-snapshot-func-t))) "cairo_raster_source_pattern_set_snapshot")
(define-cairo-func (* cairo-raster-source-snapshot-func-t) cairo-raster-source-pattern-get-snapshot ((pattern (* cairo-pattern-t))) "cairo_raster_source_pattern_get_snapshot")
(define-cairo-func void cairo-raster-source-pattern-set-copy ((pattern (* cairo-pattern-t)) (copy (* cairo-raster-source-copy-func-t))) "cairo_raster_source_pattern_set_copy")
(define-cairo-func (* cairo-raster-source-copy-func-t) cairo-raster-source-pattern-get-copy ((pattern (* cairo-pattern-t))) "cairo_raster_source_pattern_get_copy")
(define-cairo-func void cairo-raster-source-pattern-set-finish ((pattern (* cairo-pattern-t)) (finish (* cairo-raster-source-finish-func-t))) "cairo_raster_source_pattern_set_finish")
(define-cairo-func (* cairo-raster-source-finish-func-t) cairo-raster-source-pattern-get-finish ((pattern (* cairo-pattern-t))) "cairo_raster_source_pattern_get_finish")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-rgb ((red double) (green double) (blue double)) "cairo_pattern_create_rgb")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-rgba ((red double) (green double) (blue double) (alpha double)) "cairo_pattern_create_rgba")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-for-surface ((surface (* cairo-surface-t))) "cairo_pattern_create_for_surface")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-linear ((x0 double) (y0 double) (x1 double) (y1 double)) "cairo_pattern_create_linear")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-radial ((cx0 double) (cy0 double) (radius0 double) (cx1 double) (cy1 double) (radius1 double)) "cairo_pattern_create_radial")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-create-mesh () "cairo_pattern_create_mesh")
(define-cairo-func (* cairo-pattern-t) cairo-pattern-reference ((pattern (* cairo-pattern-t))) "cairo_pattern_reference")
(define-cairo-func void cairo-pattern-destroy ((pattern (* cairo-pattern-t))) "cairo_pattern_destroy")
(define-cairo-func unsigned-int cairo-pattern-get-reference-count ((pattern (* cairo-pattern-t))) "cairo_pattern_get_reference_count")
(define-cairo-func cairo-status-t cairo-pattern-status ((pattern (* cairo-pattern-t))) "cairo_pattern_status")
(define-cairo-func void* cairo-pattern-get-user-data ((pattern (* cairo-pattern-t)) (key (* cairo-user-data-key-t))) "cairo_pattern_get_user_data")
(define-cairo-func cairo-status-t cairo-pattern-set-user-data ((pattern (* cairo-pattern-t)) (key (* cairo-user-data-key-t)) (user_data void*) (destroy cairo-destroy-func-t)) "cairo_pattern_set_user_data")
(define-cairo-func cairo-pattern-type-t cairo-pattern-get-type ((pattern (* cairo-pattern-t))) "cairo_pattern_get_type")
(define-cairo-func void cairo-pattern-add-color-stop-rgb ((pattern (* cairo-pattern-t)) (offset double) (red double) (green double) (blue double)) "cairo_pattern_add_color_stop_rgb")
(define-cairo-func void cairo-pattern-add-color-stop-rgba ((pattern (* cairo-pattern-t)) (offset double) (red double) (green double) (blue double) (alpha double)) "cairo_pattern_add_color_stop_rgba")
(define-cairo-func void cairo-mesh-pattern-begin-patch ((pattern (* cairo-pattern-t))) "cairo_mesh_pattern_begin_patch")
(define-cairo-func void cairo-mesh-pattern-end-patch ((pattern (* cairo-pattern-t))) "cairo_mesh_pattern_end_patch")
(define-cairo-func void cairo-mesh-pattern-curve-to ((pattern (* cairo-pattern-t)) (x1 double) (y1 double) (x2 double) (y2 double) (x3 double) (y3 double)) "cairo_mesh_pattern_curve_to")
(define-cairo-func void cairo-mesh-pattern-line-to ((pattern (* cairo-pattern-t)) (x double) (y double)) "cairo_mesh_pattern_line_to")
(define-cairo-func void cairo-mesh-pattern-move-to ((pattern (* cairo-pattern-t)) (x double) (y double)) "cairo_mesh_pattern_move_to")
(define-cairo-func void cairo-mesh-pattern-set-control-point ((pattern (* cairo-pattern-t)) (point_num unsigned-int) (x double) (y double)) "cairo_mesh_pattern_set_control_point")
(define-cairo-func void cairo-mesh-pattern-set-corner-color-rgb ((pattern (* cairo-pattern-t)) (corner_num unsigned-int) (red double) (green double) (blue double)) "cairo_mesh_pattern_set_corner_color_rgb")
(define-cairo-func void cairo-mesh-pattern-set-corner-color-rgba ((pattern (* cairo-pattern-t)) (corner_num unsigned-int) (red double) (green double) (blue double) (alpha double)) "cairo_mesh_pattern_set_corner_color_rgba")
(define-cairo-func void cairo-pattern-set-matrix ((pattern (* cairo-pattern-t)) (matrix (* cairo-matrix-t))) "cairo_pattern_set_matrix")
(define-cairo-func void cairo-pattern-get-matrix ((pattern (* cairo-pattern-t)) (matrix (* cairo-matrix-t))) "cairo_pattern_get_matrix")
(define-cairo-func void cairo-pattern-set-extend ((pattern (* cairo-pattern-t)) (extend cairo-extend-t)) "cairo_pattern_set_extend")
(define-cairo-func cairo-extend-t cairo-pattern-get-extend ((pattern (* cairo-pattern-t))) "cairo_pattern_get_extend")
(define-cairo-func void cairo-pattern-set-filter ((pattern (* cairo-pattern-t)) (filter cairo-filter-t)) "cairo_pattern_set_filter")
(define-cairo-func cairo-filter-t cairo-pattern-get-filter ((pattern (* cairo-pattern-t))) "cairo_pattern_get_filter")
(define-cairo-func cairo-status-t cairo-pattern-get-rgba ((pattern (* cairo-pattern-t)) (red (* double)) (green (* double)) (blue (* double)) (alpha (* double))) "cairo_pattern_get_rgba")
(define-cairo-func cairo-status-t cairo-pattern-get-surface ((pattern (* cairo-pattern-t)) (surface (* cairo-surface-t*))) "cairo_pattern_get_surface")
(define-cairo-func cairo-status-t cairo-pattern-get-color-stop-rgba ((pattern (* cairo-pattern-t)) (index int) (offset (* double)) (red (* double)) (green (* double)) (blue (* double)) (alpha (* double))) "cairo_pattern_get_color_stop_rgba")
(define-cairo-func cairo-status-t cairo-pattern-get-color-stop-count ((pattern (* cairo-pattern-t)) (count (* int))) "cairo_pattern_get_color_stop_count")
(define-cairo-func cairo-status-t cairo-pattern-get-linear-points ((pattern (* cairo-pattern-t)) (x0 (* double)) (y0 (* double)) (x1 (* double)) (y1 (* double))) "cairo_pattern_get_linear_points")
(define-cairo-func cairo-status-t cairo-pattern-get-radial-circles ((pattern (* cairo-pattern-t)) (x0 (* double)) (y0 (* double)) (r0 (* double)) (x1 (* double)) (y1 (* double)) (r1 (* double))) "cairo_pattern_get_radial_circles")
(define-cairo-func cairo-status-t cairo-mesh-pattern-get-patch-count ((pattern (* cairo-pattern-t)) (count (* unsigned-int))) "cairo_mesh_pattern_get_patch_count")
(define-cairo-func (* cairo-path-t) cairo-mesh-pattern-get-path ((pattern (* cairo-pattern-t)) (patch_num unsigned-int)) "cairo_mesh_pattern_get_path")
(define-cairo-func cairo-status-t cairo-mesh-pattern-get-corner-color-rgba ((pattern (* cairo-pattern-t)) (patch_num unsigned-int) (corner_num unsigned-int) (red (* double)) (green (* double)) (blue (* double)) (alpha (* double))) "cairo_mesh_pattern_get_corner_color_rgba")
(define-cairo-func cairo-status-t cairo-mesh-pattern-get-control-point ((pattern (* cairo-pattern-t)) (patch_num unsigned-int) (point_num unsigned-int) (x (* double)) (y (* double))) "cairo_mesh_pattern_get_control_point")
(define-cairo-func void cairo-matrix-init ((matrix (* cairo-matrix-t)) (xx double) (yx double) (xy double) (yy double) (x0 double) (y0 double)) "cairo_matrix_init")
(define-cairo-func void cairo-matrix-init-identity ((matrix (* cairo-matrix-t))) "cairo_matrix_init_identity")
(define-cairo-func void cairo-matrix-init-translate ((matrix (* cairo-matrix-t)) (tx double) (ty double)) "cairo_matrix_init_translate")
(define-cairo-func void cairo-matrix-init-scale ((matrix (* cairo-matrix-t)) (sx double) (sy double)) "cairo_matrix_init_scale")
(define-cairo-func void cairo-matrix-init-rotate ((matrix (* cairo-matrix-t)) (radians double)) "cairo_matrix_init_rotate")
(define-cairo-func void cairo-matrix-translate ((matrix (* cairo-matrix-t)) (tx double) (ty double)) "cairo_matrix_translate")
(define-cairo-func void cairo-matrix-scale ((matrix (* cairo-matrix-t)) (sx double) (sy double)) "cairo_matrix_scale")
(define-cairo-func void cairo-matrix-rotate ((matrix (* cairo-matrix-t)) (radians double)) "cairo_matrix_rotate")
(define-cairo-func cairo-status-t cairo-matrix-invert ((matrix (* cairo-matrix-t))) "cairo_matrix_invert")
(define-cairo-func void cairo-matrix-multiply ((result (* cairo-matrix-t)) (a (* cairo-matrix-t)) (b (* cairo-matrix-t))) "cairo_matrix_multiply")
(define-cairo-func void cairo-matrix-transform-distance ((matrix (* cairo-matrix-t)) (dx (* double)) (dy (* double))) "cairo_matrix_transform_distance")
(define-cairo-func void cairo-matrix-transform-point ((matrix (* cairo-matrix-t)) (x (* double)) (y (* double))) "cairo_matrix_transform_point")
(define-cairo-func (* cairo-region-t) cairo-region-create () "cairo_region_create")
(define-cairo-func (* cairo-region-t) cairo-region-create-rectangle ((rectangle (* cairo-rectangle-int-t))) "cairo_region_create_rectangle")
(define-cairo-func (* cairo-region-t) cairo-region-create-rectangles ((rects (* cairo-rectangle-int-t)) (count int)) "cairo_region_create_rectangles")
(define-cairo-func (* cairo-region-t) cairo-region-copy ((original (* cairo-region-t))) "cairo_region_copy")
(define-cairo-func (* cairo-region-t) cairo-region-reference ((region (* cairo-region-t))) "cairo_region_reference")
(define-cairo-func void cairo-region-destroy ((region (* cairo-region-t))) "cairo_region_destroy")
(define-cairo-func cairo-bool-t cairo-region-equal ((a (* cairo-region-t)) (b (* cairo-region-t))) "cairo_region_equal")
(define-cairo-func cairo-status-t cairo-region-status ((region (* cairo-region-t))) "cairo_region_status")
(define-cairo-func void cairo-region-get-extents ((region (* cairo-region-t)) (extents (* cairo-rectangle-int-t))) "cairo_region_get_extents")
(define-cairo-func int cairo-region-num-rectangles ((region (* cairo-region-t))) "cairo_region_num_rectangles")
(define-cairo-func void cairo-region-get-rectangle ((region (* cairo-region-t)) (nth int) (rectangle (* cairo-rectangle-int-t))) "cairo_region_get_rectangle")
(define-cairo-func cairo-bool-t cairo-region-is-empty ((region (* cairo-region-t))) "cairo_region_is_empty")
(define-cairo-func cairo-region-overlap-t cairo-region-contains-rectangle ((region (* cairo-region-t)) (rectangle (* cairo-rectangle-int-t))) "cairo_region_contains_rectangle")
(define-cairo-func cairo-bool-t cairo-region-contains-point ((region (* cairo-region-t)) (x int) (y int)) "cairo_region_contains_point")
(define-cairo-func void cairo-region-translate ((region (* cairo-region-t)) (dx int) (dy int)) "cairo_region_translate")
(define-cairo-func cairo-status-t cairo-region-subtract ((dst (* cairo-region-t)) (other (* cairo-region-t))) "cairo_region_subtract")
(define-cairo-func cairo-status-t cairo-region-subtract-rectangle ((dst (* cairo-region-t)) (rectangle (* cairo-rectangle-int-t))) "cairo_region_subtract_rectangle")
(define-cairo-func cairo-status-t cairo-region-intersect ((dst (* cairo-region-t)) (other (* cairo-region-t))) "cairo_region_intersect")
(define-cairo-func cairo-status-t cairo-region-intersect-rectangle ((dst (* cairo-region-t)) (rectangle (* cairo-rectangle-int-t))) "cairo_region_intersect_rectangle")
(define-cairo-func cairo-status-t cairo-region-union ((dst (* cairo-region-t)) (other (* cairo-region-t))) "cairo_region_union")
(define-cairo-func cairo-status-t cairo-region-union-rectangle ((dst (* cairo-region-t)) (rectangle (* cairo-rectangle-int-t))) "cairo_region_union_rectangle")
(define-cairo-func cairo-status-t cairo-region-xor ((dst (* cairo-region-t)) (other (* cairo-region-t))) "cairo_region_xor")
(define-cairo-func cairo-status-t cairo-region-xor-rectangle ((dst (* cairo-region-t)) (rectangle (* cairo-rectangle-int-t))) "cairo_region_xor_rectangle")
(define-cairo-func void cairo-debug-reset-static-data () "cairo_debug_reset_static_data")
