<!-- ##### 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: