|  |  |  |  | 
      The cairo C API allows for creating a number of different types
      of patterns. All of these different types of patterns map to
      cairo_pattern_t
      in C, but in an object oriented language, there should instead
      be a hierarchy of types. (The functions that should map to
      constructors or static methods for the various types are listed
      after the type, methods on that type are listed below. Note that
      cairo_pattern_create_rgb() and cairo_pattern_create_rgba()
      should not be overloaded with each other as a SolidPattern()
      constructor, but should appear as static methods instead.  This
      is to maintain code clarity by making it clear how the arguments
      relate to color components.)
    
cairo_pattern_t
      cairo_pattern_set_matrix()
      cairo_pattern_get_matrix()
   cairo_solid_pattern_t (cairo_pattern_create_rgb() and cairo_pattern_create_rgba())
   cairo_surface_pattern_t (cairo_pattern_create_for_surface())
         cairo_pattern_set_extend()
         cairo_pattern_get_extend()
         cairo_pattern_set_filter()
         cairo_pattern_get_filter()
   cairo_gradient_t
         cairo_pattern_add_color_stop_rgb()
         cairo_pattern_add_color_stop_rgba()
      cairo_linear_gradient_t (cairo_pattern_create_linear())
      cairo_radial_gradient_t (cairo_pattern_create_radial())
   cairo_mesh_t (cairo_pattern_create_mesh())
         cairo_mesh_pattern_begin_patch()
         cairo_mesh_pattern_end_patch()
         cairo_mesh_pattern_move_to()
         cairo_mesh_pattern_line_to()
         cairo_mesh_pattern_curve_to()
         cairo_mesh_pattern_set_control_point()
         cairo_mesh_pattern_set_corner_color_rgb()
         cairo_mesh_pattern_set_corner_color_rgba()
         cairo_mesh_pattern_get_patch_count()
         cairo_mesh_pattern_get_path()
         cairo_mesh_pattern_get_control_point()
         cairo_mesh_pattern_get_corner_color_rgba()