# Module Cairo.Pattern

    module Pattern: sig .. end

Patterns functions

    val get_type : [> `Any ] Cairo.pattern -> [ `Any | `Linear | `Radial | `Solid | `Surface ]

    val downcast_to_solid : [> `Any ] Cairo.pattern -> Cairo.solid_pattern

    val downcast_to_surface : [> `Any ] Cairo.pattern -> Cairo.surface_pattern

    val downcast_to_gradient : [> `Any ] Cairo.pattern -> Cairo.gradient_pattern

    val create_rgb : red:float -> green:float -> blue:float -> Cairo.solid_pattern

    val create_rgba : red:float -> green:float -> blue:float -> alpha:float -> Cairo.solid_pattern

    val create_for_surface : [> `Any ] Cairo.surface -> Cairo.surface_pattern

    val create_linear : x0:float -> y0:float -> x1:float -> y1:float -> Cairo.gradient_pattern

    val create_radial : cx0:float ->
           cy0:float ->
           radius0:float ->
           cx1:float -> cy1:float -> radius1:float -> Cairo.gradient_pattern

    val add_color_stop_rgb : [> `Gradient ] Cairo.pattern ->
           off:float -> red:float -> green:float -> blue:float -> unit

    val add_color_stop_rgba : [> `Gradient ] Cairo.pattern ->
           off:float -> red:float -> green:float -> blue:float -> alpha:float -> unit

    val set_matrix : [> `Any ] Cairo.pattern -> Cairo.matrix -> unit

    val get_matrix : [> `Any ] Cairo.pattern -> Cairo.matrix

    val set_extend : [> `Surface ] Cairo.pattern -> Cairo.extend -> unit

    val get_extend : [> `Surface ] Cairo.pattern -> Cairo.extend

    val set_filter : [> `Surface ] Cairo.pattern -> Cairo.filter -> unit

    val get_filter : [> `Surface ] Cairo.pattern -> Cairo.filter