<!-- ##### SECTION Title ##### -->
cairo_t

<!-- ##### SECTION Short_Description ##### -->
The cairo drawing context

<!-- ##### SECTION Long_Description ##### -->

  <para>
    #cairo_t is the main object used when drawing with cairo. To
    draw with cairo, you create a #cairo_t, set the target surface,
    and drawing options for the #cairo_t, create shapes with
    functions like cairo_move_to() and cairo_line_to(), and then
    draw shapes with cairo_stroke() or cairo_fill().
  </para>
  <para>
    #cairo_t<!-- -->'s can be pushed to a stack via cairo_save().
    They may then safely be changed, without loosing the current state.
    Use cairo_restore() to restore to the saved state.
  </para>

<!-- ##### SECTION See_Also ##### -->
<para>
<itemizedlist>
<listitem>#cairo_surface_t</listitem>
</itemizedlist>
</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### TYPEDEF cairo_t ##### -->
<para>

</para>


<!-- ##### FUNCTION cairo_create ##### -->
<para>

</para>

@target: 
@Returns: 


<!-- ##### FUNCTION cairo_reference ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_destroy ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_status ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_save ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_restore ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_get_target ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_push_group ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_push_group_with_content ##### -->
<para>

</para>

@cr: 
@content: 


<!-- ##### FUNCTION cairo_pop_group ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_pop_group_to_source ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_get_group_target ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_source_rgb ##### -->
<para>

</para>

@cr: 
@red: 
@green: 
@blue: 


<!-- ##### FUNCTION cairo_set_source_rgba ##### -->
<para>

</para>

@cr: 
@red: 
@green: 
@blue: 
@alpha: 


<!-- ##### FUNCTION cairo_set_source ##### -->
<para>

</para>

@cr: 
@source: 


<!-- ##### FUNCTION cairo_set_source_surface ##### -->
<para>

</para>

@cr: 
@surface: 
@x: 
@y: 


<!-- ##### FUNCTION cairo_get_source ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### ENUM cairo_antialias_t ##### -->
<para>

</para>

@CAIRO_ANTIALIAS_DEFAULT: 
@CAIRO_ANTIALIAS_NONE: 
@CAIRO_ANTIALIAS_GRAY: 
@CAIRO_ANTIALIAS_SUBPIXEL: 

<!-- ##### FUNCTION cairo_set_antialias ##### -->
<para>

</para>

@cr: 
@antialias: 


<!-- ##### FUNCTION cairo_get_antialias ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_dash ##### -->
<para>

</para>

@cr: 
@dashes: 
@num_dashes: 
@offset: 


<!-- ##### FUNCTION cairo_get_dash_count ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_get_dash ##### -->
<para>

</para>

@cr: 
@dashes: 
@offset: 


<!-- ##### ENUM cairo_fill_rule_t ##### -->
<para>

</para>

@CAIRO_FILL_RULE_WINDING: 
@CAIRO_FILL_RULE_EVEN_ODD: 

<!-- ##### FUNCTION cairo_set_fill_rule ##### -->
<para>

</para>

@cr: 
@fill_rule: 


<!-- ##### FUNCTION cairo_get_fill_rule ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### ENUM cairo_line_cap_t ##### -->
<para>

</para>

@CAIRO_LINE_CAP_BUTT: 
@CAIRO_LINE_CAP_ROUND: 
@CAIRO_LINE_CAP_SQUARE: 

<!-- ##### FUNCTION cairo_set_line_cap ##### -->
<para>

</para>

@cr: 
@line_cap: 


<!-- ##### FUNCTION cairo_get_line_cap ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### ENUM cairo_line_join_t ##### -->
<para>

</para>

@CAIRO_LINE_JOIN_MITER: 
@CAIRO_LINE_JOIN_ROUND: 
@CAIRO_LINE_JOIN_BEVEL: 

<!-- ##### FUNCTION cairo_set_line_join ##### -->
<para>

</para>

@cr: 
@line_join: 


<!-- ##### FUNCTION cairo_get_line_join ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_line_width ##### -->
<para>

</para>

@cr: 
@width: 


<!-- ##### FUNCTION cairo_get_line_width ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_miter_limit ##### -->
<para>

</para>

@cr: 
@limit: 


<!-- ##### FUNCTION cairo_get_miter_limit ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### ENUM cairo_operator_t ##### -->
<para>

</para>

@CAIRO_OPERATOR_CLEAR: 
@CAIRO_OPERATOR_SOURCE: 
@CAIRO_OPERATOR_OVER: 
@CAIRO_OPERATOR_IN: 
@CAIRO_OPERATOR_OUT: 
@CAIRO_OPERATOR_ATOP: 
@CAIRO_OPERATOR_DEST: 
@CAIRO_OPERATOR_DEST_OVER: 
@CAIRO_OPERATOR_DEST_IN: 
@CAIRO_OPERATOR_DEST_OUT: 
@CAIRO_OPERATOR_DEST_ATOP: 
@CAIRO_OPERATOR_XOR: 
@CAIRO_OPERATOR_ADD: 
@CAIRO_OPERATOR_SATURATE: 

<!-- ##### FUNCTION cairo_set_operator ##### -->
<para>

</para>

@cr: 
@op: 


<!-- ##### FUNCTION cairo_get_operator ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_tolerance ##### -->
<para>

</para>

@cr: 
@tolerance: 


<!-- ##### FUNCTION cairo_get_tolerance ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_clip ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_clip_preserve ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_clip_extents ##### -->
<para>

</para>

@cr: 
@x1: 
@y1: 
@x2: 
@y2: 


<!-- ##### FUNCTION cairo_reset_clip ##### -->
<para>

</para>

@cr: 


<!-- ##### STRUCT cairo_rectangle_t ##### -->
<para>

</para>

@x: 
@y: 
@width: 
@height: 

<!-- ##### STRUCT cairo_rectangle_list_t ##### -->
<para>

</para>

@status: 
@rectangles: 
@num_rectangles: 

<!-- ##### FUNCTION cairo_rectangle_list_destroy ##### -->
<para>

</para>

@rectangle_list: 


<!-- ##### FUNCTION cairo_copy_clip_rectangle_list ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_fill ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_fill_preserve ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_fill_extents ##### -->
<para>

</para>

@cr: 
@x1: 
@y1: 
@x2: 
@y2: 


<!-- ##### FUNCTION cairo_in_fill ##### -->
<para>

</para>

@cr: 
@x: 
@y: 
@Returns: 


<!-- ##### FUNCTION cairo_mask ##### -->
<para>

</para>

@cr: 
@pattern: 


<!-- ##### FUNCTION cairo_mask_surface ##### -->
<para>

</para>

@cr: 
@surface: 
@surface_x: 
@surface_y: 


<!-- ##### FUNCTION cairo_paint ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_paint_with_alpha ##### -->
<para>

</para>

@cr: 
@alpha: 


<!-- ##### FUNCTION cairo_stroke ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_stroke_preserve ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_stroke_extents ##### -->
<para>

</para>

@cr: 
@x1: 
@y1: 
@x2: 
@y2: 


<!-- ##### FUNCTION cairo_in_stroke ##### -->
<para>

</para>

@cr: 
@x: 
@y: 
@Returns: 


<!-- ##### FUNCTION cairo_copy_page ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_show_page ##### -->
<para>

</para>

@cr: 


<!-- ##### FUNCTION cairo_get_reference_count ##### -->
<para>

</para>

@cr: 
@Returns: 


<!-- ##### FUNCTION cairo_set_user_data ##### -->
<para>

</para>

@cr: 
@key: 
@user_data: 
@destroy: 
@Returns: 


<!-- ##### FUNCTION cairo_get_user_data ##### -->
<para>

</para>

@cr: 
@key: 
@Returns: 


