cairo.c.cairo

Cairo C API. Contains stuff from cairo.h and cairo-version.h

This module only contains basic documentation. For more information see http://cairographics.org/manual/

Public Imports

cairo.c.config
public import cairo.c.config;
Undocumented in source.

Members

Aliases

cairo_bool_t
alias cairo_bool_t = int

cairo_bool_t is used for boolean values. Returns of type cairo_bool_t will always be either 0 or 1, but testing against these values explicitly is not encouraged; just use the value as a boolean condition.

cairo_destroy_func_t
alias cairo_destroy_func_t = void function(void* data)

cairo_destroy_func_t the type of function which is called when a data element is destroyed. It is passed the pointer to the data element and should free any memory and resources allocated for it.

cairo_read_func_t
alias cairo_read_func_t = cairo_status_t function(void* closure, ubyte* data, uint length)

cairo_read_func_t is the type of function which is called when a backend needs to read data from an input stream. It is passed the closure which was specified by the user at the time the read function was registered, the buffer to read the data into and the length of the data in bytes. The read function should return CAIRO_STATUS_SUCCESS if all the data was successfully read, CAIRO_STATUS_READ_ERROR otherwise.

cairo_user_scaled_font_init_func_t
alias cairo_user_scaled_font_init_func_t = cairo_status_t function(cairo_scaled_font_t* scaled_font, cairo_t* cr, cairo_font_extents_t* extents)

cairo_user_scaled_font_init_func_t is the type of function which is called when a scaled-font needs to be created for a user font-face.

cairo_user_scaled_font_render_glyph_func_t
alias cairo_user_scaled_font_render_glyph_func_t = cairo_status_t function(cairo_scaled_font_t* scaled_font, ulong glyph, cairo_t* cr, cairo_text_extents_t* extents)

cairo_user_scaled_font_render_glyph_func_t is the type of function which is called when a user scaled-font needs to render a glyph.

cairo_user_scaled_font_text_to_glyphs_func_t
alias cairo_user_scaled_font_text_to_glyphs_func_t = cairo_status_t function(cairo_scaled_font_t* scaled_font, const char* utf8, int utf8_len, cairo_glyph_t** glyphs, int* num_glyphs, cairo_text_cluster_t** clusters, int* num_clusters, cairo_text_cluster_flags_t* cluster_flags)

cairo_user_scaled_font_text_to_glyphs_func_t is the type of function which is called to convert input text to an array of glyphs. This is used by the cairo_show_text() operation.

cairo_user_scaled_font_unicode_to_glyph_func_t
alias cairo_user_scaled_font_unicode_to_glyph_func_t = cairo_status_t function(cairo_scaled_font_t* scaled_font, ulong unicode, ulong* glyph_index)

cairo_user_scaled_font_unicode_to_glyph_func_t is the type of function which is called to convert an input Unicode character to a single glyph. This is used by the cairo_show_text() operation.

cairo_write_func_t
alias cairo_write_func_t = cairo_status_t function(void* closure, const ubyte* data, uint length)

cairo_write_func_t is the type of function which is called when a backend needs to write data to an output stream. It is passed the closure which was specified by the user at the time the write function was registered, the data to write and the length of the data in bytes. The write function should return CAIRO_STATUS_SUCCESS if all the data was successfully written, CAIRO_STATUS_WRITE_ERROR otherwise.

Enums

cairo_antialias_t
enum cairo_antialias_t

Specifies the type of antialiasing to do when rendering text or shapes.

cairo_content_t
enum cairo_content_t

cairo_content_t is used to describe the content that a surface will contain, whether color information, alpha information (translucence vs. opacity), or both.

cairo_device_type_t
enum cairo_device_type_t

cairo_device_type_t is used to describe the type of a given device. The devices types are also known as "backends" within cairo.

cairo_extend_t
enum cairo_extend_t

cairo_extend_t is used to describe how pattern color/alpha will be determined for areas "outside" the pattern's natural area, (for example, outside the surface bounds or outside the gradient geometry).

cairo_fill_rule_t
enum cairo_fill_rule_t

cairo_fill_rule_t is used to select how paths are filled. For both fill rules, whether or not a point is included in the fill is determined by taking a ray from that point to infinity and looking at intersections with the path. The ray can be in any direction, as long as it doesn't pass through the end point of a segment or have a tricky intersection such as intersecting tangent to the path. (Note that filling is not actually implemented in this way. This is just a description of the rule that is applied.)

cairo_filter_t
enum cairo_filter_t

cairo_filter_t is used to indicate what filtering should be applied when reading pixel values from patterns. See cairo_pattern_set_source() for indicating the desired filter to be used with a particular pattern.

cairo_font_slant_t
enum cairo_font_slant_t

Specifies variants of a font face based on their slant.

cairo_font_type_t
enum cairo_font_type_t

cairo_font_type_t is used to describe the type of a given font face or scaled font. The font types are also known as "font backends" within cairo.

cairo_font_weight_t
enum cairo_font_weight_t

Specifies variants of a font face based on their weight.

cairo_format_t
enum cairo_format_t

cairo_format_t is used to identify the memory format of image data.

cairo_hint_metrics_t
enum cairo_hint_metrics_t

Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. Doing this improves the consistency of letter and line spacing, however it also means that text will be laid out differently at different zoom factors.

cairo_hint_style_t
enum cairo_hint_style_t

Specifies the type of hinting to do on font outlines. Hinting is the process of fitting outlines to the pixel grid in order to improve the appearance of the result. Since hinting outlines involves distorting them, it also reduces the faithfulness to the original outline shapes. Not all of the outline hinting styles are supported by all font backends.

cairo_line_cap_t
enum cairo_line_cap_t

Specifies how to render the endpoints of the path when stroking.

cairo_line_join_t
enum cairo_line_join_t

Specifies how to render the junction of two lines when stroking.

cairo_operator_t
enum cairo_operator_t

cairo_operator_t is used to set the compositing operator for all cairo drawing operations.

cairo_path_data_type_t
enum cairo_path_data_type_t

cairo_path_data_t is used to describe the type of one portion of a path when represented as a cairo_path_t. See cairo_path_data_t for details.

cairo_pattern_type_t
enum cairo_pattern_type_t

cairo_pattern_type_t is used to describe the type of a given pattern.

cairo_region_overlap_t
enum cairo_region_overlap_t
cairo_status_t
enum cairo_status_t

cairo_status_t is used to indicate errors that can occur when using Cairo. In some cases it is returned directly by functions. but when using cairo_t, the last error, if any, is stored in the context and can be retrieved with cairo_status().

cairo_subpixel_order_t
enum cairo_subpixel_order_t

The subpixel order specifies the order of color elements within each pixel on the display device when rendering with an antialiasing mode of CAIRO_ANTIALIAS_SUBPIXEL.

cairo_surface_type_t
enum cairo_surface_type_t

cairo_surface_type_t is used to describe the type of a given surface. The surface types are also known as "backends" or "surface backends" within cairo.

cairo_text_cluster_flags_t
enum cairo_text_cluster_flags_t

Specifies properties of a text cluster mapping.

Functions

CAIRO_VERSION_ENCODE
ulong CAIRO_VERSION_ENCODE(uint major, uint minor, uint micro)
CAIRO_VERSION_STRINGIZE
string CAIRO_VERSION_STRINGIZE(uint major, uint minor, uint micro)
cairo_append_path
void cairo_append_path(cairo_t* cr, cairo_path_t* path)
cairo_arc
void cairo_arc(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)
cairo_arc_negative
void cairo_arc_negative(cairo_t* cr, double xc, double yc, double radius, double angle1, double angle2)

Path creation functions

cairo_clip
void cairo_clip(cairo_t* cr)
cairo_clip_extents
void cairo_clip_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)
cairo_clip_preserve
void cairo_clip_preserve(cairo_t* cr)

Clipping

cairo_close_path
void cairo_close_path(cairo_t* cr)

Path creation functions

cairo_copy_clip_rectangle_list
cairo_rectangle_list_t* cairo_copy_clip_rectangle_list(cairo_t* cr)
cairo_copy_page
void cairo_copy_page(cairo_t* cr)

Painting functions

cairo_copy_path
cairo_path_t* cairo_copy_path(cairo_t* cr)
cairo_copy_path_flat
cairo_path_t* cairo_copy_path_flat(cairo_t* cr)
cairo_create
cairo_t* cairo_create(cairo_surface_t* target)

Functions for manipulating state objects

cairo_curve_to
void cairo_curve_to(cairo_t* cr, double x1, double y1, double x2, double y2, double x3, double y3)

Path creation functions

cairo_debug_reset_static_data
void cairo_debug_reset_static_data()

Functions to be used while debugging (not intended for use in production code)

cairo_destroy
void cairo_destroy(cairo_t* cr)

Functions for manipulating state objects

cairo_device_acquire
cairo_status_t cairo_device_acquire(cairo_device_t* device)
cairo_device_destroy
void cairo_device_destroy(cairo_device_t* device)
cairo_device_finish
void cairo_device_finish(cairo_device_t* device)
cairo_device_flush
void cairo_device_flush(cairo_device_t* device)
cairo_device_get_reference_count
uint cairo_device_get_reference_count(cairo_device_t* device)
cairo_device_get_type
cairo_device_type_t cairo_device_get_type(cairo_device_t* device)
cairo_device_get_user_data
void* cairo_device_get_user_data(cairo_device_t* device, cairo_user_data_key_t* key)
cairo_device_reference
cairo_device_t* cairo_device_reference(cairo_device_t* device)

Backend device manipulation

cairo_device_release
void cairo_device_release(cairo_device_t* device)
cairo_device_set_user_data
cairo_status_t cairo_device_set_user_data(cairo_device_t* device, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)
cairo_device_status
cairo_status_t cairo_device_status(cairo_device_t* device)
cairo_device_to_user
void cairo_device_to_user(cairo_t* cr, double* x, double* y)
cairo_device_to_user_distance
void cairo_device_to_user_distance(cairo_t* cr, double* dx, double* dy)
cairo_fill
void cairo_fill(cairo_t* cr)

Painting functions

cairo_fill_extents
void cairo_fill_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)

Rectangular extents

cairo_fill_preserve
void cairo_fill_preserve(cairo_t* cr)

Painting functions

cairo_font_extents
void cairo_font_extents(cairo_t* cr, cairo_font_extents_t* extents)
cairo_font_face_destroy
void cairo_font_face_destroy(cairo_font_face_t* font_face)
cairo_font_face_get_reference_count
uint cairo_font_face_get_reference_count(cairo_font_face_t* font_face)
cairo_font_face_get_type
cairo_font_type_t cairo_font_face_get_type(cairo_font_face_t* font_face)
cairo_font_face_get_user_data
void* cairo_font_face_get_user_data(cairo_font_face_t* font_face, cairo_user_data_key_t* key)
cairo_font_face_reference
cairo_font_face_t* cairo_font_face_reference(cairo_font_face_t* font_face)
cairo_font_face_set_user_data
cairo_status_t cairo_font_face_set_user_data(cairo_font_face_t* font_face, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)
cairo_font_face_status
cairo_status_t cairo_font_face_status(cairo_font_face_t* font_face)
cairo_font_options_copy
cairo_font_options_t* cairo_font_options_copy(cairo_font_options_t* original)
cairo_font_options_create
cairo_font_options_t* cairo_font_options_create()
cairo_font_options_destroy
void cairo_font_options_destroy(cairo_font_options_t* options)
cairo_font_options_equal
cairo_bool_t cairo_font_options_equal(cairo_font_options_t* options, cairo_font_options_t* other)
cairo_font_options_get_antialias
cairo_antialias_t cairo_font_options_get_antialias(cairo_font_options_t* options)
cairo_font_options_get_hint_metrics
cairo_hint_metrics_t cairo_font_options_get_hint_metrics(cairo_font_options_t* options)
cairo_font_options_get_hint_style
cairo_hint_style_t cairo_font_options_get_hint_style(cairo_font_options_t* options)
cairo_font_options_get_subpixel_order
cairo_subpixel_order_t cairo_font_options_get_subpixel_order(cairo_font_options_t* options)
cairo_font_options_hash
ulong cairo_font_options_hash(cairo_font_options_t* options)
cairo_font_options_merge
void cairo_font_options_merge(cairo_font_options_t* options, cairo_font_options_t* other)
cairo_font_options_set_antialias
void cairo_font_options_set_antialias(cairo_font_options_t* options, cairo_antialias_t antialias)
cairo_font_options_set_hint_metrics
void cairo_font_options_set_hint_metrics(cairo_font_options_t* options, cairo_hint_metrics_t hint_metrics)
cairo_font_options_set_hint_style
void cairo_font_options_set_hint_style(cairo_font_options_t* options, cairo_hint_style_t hint_style)
cairo_font_options_set_subpixel_order
void cairo_font_options_set_subpixel_order(cairo_font_options_t* options, cairo_subpixel_order_t subpixel_order)
cairo_font_options_status
cairo_status_t cairo_font_options_status(cairo_font_options_t* options)
cairo_format_stride_for_width
int cairo_format_stride_for_width(cairo_format_t format, int width)
cairo_get_antialias
cairo_antialias_t cairo_get_antialias(cairo_t* cr)
cairo_get_current_point
void cairo_get_current_point(cairo_t* cr, double* x, double* y)
cairo_get_dash
void cairo_get_dash(cairo_t* cr, double* dashes, double* offset)
cairo_get_dash_count
int cairo_get_dash_count(cairo_t* cr)
cairo_get_fill_rule
cairo_fill_rule_t cairo_get_fill_rule(cairo_t* cr)

Query functions

cairo_get_font_face
cairo_font_face_t* cairo_get_font_face(cairo_t* cr)
cairo_get_font_matrix
void cairo_get_font_matrix(cairo_t* cr, cairo_matrix_t* matrix)
cairo_get_font_options
void cairo_get_font_options(cairo_t* cr, cairo_font_options_t* options)
cairo_get_group_target
cairo_surface_t* cairo_get_group_target(cairo_t* cr)
cairo_get_line_cap
cairo_line_cap_t cairo_get_line_cap(cairo_t* cr)
cairo_get_line_join
cairo_line_join_t cairo_get_line_join(cairo_t* cr)
cairo_get_line_width
double cairo_get_line_width(cairo_t* cr)
cairo_get_matrix
void cairo_get_matrix(cairo_t* cr, cairo_matrix_t* matrix)
cairo_get_miter_limit
double cairo_get_miter_limit(cairo_t* cr)

Query functions

cairo_get_operator
cairo_operator_t cairo_get_operator(cairo_t* cr)

Query functions

cairo_get_reference_count
uint cairo_get_reference_count(cairo_t* cr)

Functions for manipulating state objects

cairo_get_scaled_font
cairo_scaled_font_t* cairo_get_scaled_font(cairo_t* cr)
cairo_get_source
cairo_pattern_t* cairo_get_source(cairo_t* cr)
cairo_get_target
cairo_surface_t* cairo_get_target(cairo_t* cr)
cairo_get_tolerance
double cairo_get_tolerance(cairo_t* cr)

Query functions

cairo_get_user_data
void* cairo_get_user_data(cairo_t* cr, cairo_user_data_key_t* key)

Functions for manipulating state objects

cairo_glyph_allocate
cairo_glyph_t* cairo_glyph_allocate(int num_glyphs)
cairo_glyph_extents
void cairo_glyph_extents(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents)
cairo_glyph_free
void cairo_glyph_free(cairo_glyph_t* glyphs)
cairo_glyph_path
void cairo_glyph_path(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs)
cairo_has_current_point
cairo_bool_t cairo_has_current_point(cairo_t* cr)

Query functions

cairo_identity_matrix
void cairo_identity_matrix(cairo_t* cr)
cairo_image_surface_create
cairo_surface_t* cairo_image_surface_create(cairo_format_t format, int width, int height)
cairo_image_surface_create_for_data
cairo_surface_t* cairo_image_surface_create_for_data(ubyte* data, cairo_format_t format, int width, int height, int stride)
cairo_image_surface_create_from_png
cairo_surface_t* cairo_image_surface_create_from_png(char* filename)
cairo_image_surface_create_from_png_stream
cairo_surface_t* cairo_image_surface_create_from_png_stream(cairo_read_func_t read_func, void* closure)

requires -version=CAIRO_HAS_PNG_FUNCTIONS

cairo_image_surface_get_data
ubyte* cairo_image_surface_get_data(cairo_surface_t* surface)
cairo_image_surface_get_format
cairo_format_t cairo_image_surface_get_format(cairo_surface_t* surface)
cairo_image_surface_get_height
int cairo_image_surface_get_height(cairo_surface_t* surface)
cairo_image_surface_get_stride
int cairo_image_surface_get_stride(cairo_surface_t* surface)
cairo_image_surface_get_width
int cairo_image_surface_get_width(cairo_surface_t* surface)
cairo_in_clip
cairo_bool_t cairo_in_clip(cairo_t* cr, double x, double y)
cairo_in_fill
cairo_bool_t cairo_in_fill(cairo_t* cr, double x, double y)

Insideness testing

cairo_in_stroke
cairo_bool_t cairo_in_stroke(cairo_t* cr, double x, double y)

Insideness testing

cairo_line_to
void cairo_line_to(cairo_t* cr, double x, double y)

Path creation functions

cairo_mask
void cairo_mask(cairo_t* cr, cairo_pattern_t* pattern)
cairo_mask_surface
void cairo_mask_surface(cairo_t* cr, cairo_surface_t* surface, double surface_x, double surface_y)

Painting functions

cairo_matrix_init
void cairo_matrix_init(cairo_matrix_t* matrix, double xx, double yx, double xy, double yy, double x0, double y0)
cairo_matrix_init_identity
void cairo_matrix_init_identity(cairo_matrix_t* matrix)
cairo_matrix_init_rotate
void cairo_matrix_init_rotate(cairo_matrix_t* matrix, double radians)
cairo_matrix_init_scale
void cairo_matrix_init_scale(cairo_matrix_t* matrix, double sx, double sy)
cairo_matrix_init_translate
void cairo_matrix_init_translate(cairo_matrix_t* matrix, double tx, double ty)
cairo_matrix_invert
cairo_status_t cairo_matrix_invert(cairo_matrix_t* matrix)
cairo_matrix_multiply
void cairo_matrix_multiply(cairo_matrix_t* result, cairo_matrix_t* a, cairo_matrix_t* b)
cairo_matrix_rotate
void cairo_matrix_rotate(cairo_matrix_t* matrix, double radians)
cairo_matrix_scale
void cairo_matrix_scale(cairo_matrix_t* matrix, double sx, double sy)
cairo_matrix_transform_distance
void cairo_matrix_transform_distance(cairo_matrix_t* matrix, double* dx, double* dy)
cairo_matrix_transform_point
void cairo_matrix_transform_point(cairo_matrix_t* matrix, double* x, double* y)
cairo_matrix_translate
void cairo_matrix_translate(cairo_matrix_t* matrix, double tx, double ty)

Matrix functions

cairo_move_to
void cairo_move_to(cairo_t* cr, double x, double y)

Path creation functions

cairo_new_path
void cairo_new_path(cairo_t* cr)
cairo_new_sub_path
void cairo_new_sub_path(cairo_t* cr)

Path creation functions

cairo_paint
void cairo_paint(cairo_t* cr)
cairo_paint_with_alpha
void cairo_paint_with_alpha(cairo_t* cr, double alpha)

Painting functions

cairo_path_destroy
void cairo_path_destroy(cairo_path_t* path)
cairo_path_extents
void cairo_path_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)

Path creation functions

cairo_pattern_add_color_stop_rgb
void cairo_pattern_add_color_stop_rgb(cairo_pattern_t* pattern, double offset, double red, double green, double blue)
cairo_pattern_add_color_stop_rgba
void cairo_pattern_add_color_stop_rgba(cairo_pattern_t* pattern, double offset, double red, double green, double blue, double alpha)
cairo_pattern_create_for_surface
cairo_pattern_t* cairo_pattern_create_for_surface(cairo_surface_t* surface)
cairo_pattern_create_linear
cairo_pattern_t* cairo_pattern_create_linear(double x0, double y0, double x1, double y1)
cairo_pattern_create_radial
cairo_pattern_t* cairo_pattern_create_radial(double cx0, double cy0, double radius0, double cx1, double cy1, double radius1)

Pattern creation functions

cairo_pattern_create_rgb
cairo_pattern_t* cairo_pattern_create_rgb(double red, double green, double blue)
cairo_pattern_create_rgba
cairo_pattern_t* cairo_pattern_create_rgba(double red, double green, double blue, double alpha)
cairo_pattern_destroy
void cairo_pattern_destroy(cairo_pattern_t* pattern)

Pattern creation functions

cairo_pattern_get_color_stop_count
cairo_status_t cairo_pattern_get_color_stop_count(cairo_pattern_t* pattern, int* count)
cairo_pattern_get_color_stop_rgba
cairo_status_t cairo_pattern_get_color_stop_rgba(cairo_pattern_t* pattern, int index, double* offset, double* red, double* green, double* blue, double* alpha)
cairo_pattern_get_extend
cairo_extend_t cairo_pattern_get_extend(cairo_pattern_t* pattern)
cairo_pattern_get_filter
cairo_filter_t cairo_pattern_get_filter(cairo_pattern_t* pattern)
cairo_pattern_get_linear_points
cairo_status_t cairo_pattern_get_linear_points(cairo_pattern_t* pattern, double* x0, double* y0, double* x1, double* y1)
cairo_pattern_get_matrix
void cairo_pattern_get_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix)
cairo_pattern_get_radial_circles
cairo_status_t cairo_pattern_get_radial_circles(cairo_pattern_t* pattern, double* x0, double* y0, double* r0, double* x1, double* y1, double* r1)
cairo_pattern_get_reference_count
uint cairo_pattern_get_reference_count(cairo_pattern_t* pattern)

Pattern creation functions

cairo_pattern_get_rgba
cairo_status_t cairo_pattern_get_rgba(cairo_pattern_t* pattern, double* red, double* green, double* blue, double* alpha)
cairo_pattern_get_surface
cairo_status_t cairo_pattern_get_surface(cairo_pattern_t* pattern, cairo_surface_t** surface)
cairo_pattern_get_type
cairo_pattern_type_t cairo_pattern_get_type(cairo_pattern_t* pattern)
cairo_pattern_get_user_data
void* cairo_pattern_get_user_data(cairo_pattern_t* pattern, cairo_user_data_key_t* key)
cairo_pattern_reference
cairo_pattern_t* cairo_pattern_reference(cairo_pattern_t* pattern)

Pattern creation functions

cairo_pattern_set_extend
void cairo_pattern_set_extend(cairo_pattern_t* pattern, cairo_extend_t extend)
cairo_pattern_set_filter
void cairo_pattern_set_filter(cairo_pattern_t* pattern, cairo_filter_t filter)
cairo_pattern_set_matrix
void cairo_pattern_set_matrix(cairo_pattern_t* pattern, cairo_matrix_t* matrix)
cairo_pattern_set_user_data
cairo_status_t cairo_pattern_set_user_data(cairo_pattern_t* pattern, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)
cairo_pattern_status
cairo_status_t cairo_pattern_status(cairo_pattern_t* pattern)

Pattern creation functions

cairo_pop_group
cairo_pattern_t* cairo_pop_group(cairo_t* cr)
cairo_pop_group_to_source
void cairo_pop_group_to_source(cairo_t* cr)
cairo_push_group
void cairo_push_group(cairo_t* cr)
cairo_push_group_with_content
void cairo_push_group_with_content(cairo_t* cr, cairo_content_t content)

Functions for manipulating state objects

cairo_recording_surface_create
cairo_surface_t* cairo_recording_surface_create(cairo_content_t content, cairo_rectangle_t* extents)
cairo_recording_surface_ink_extents
void cairo_recording_surface_ink_extents(cairo_surface_t* surface, double* x0, double* y0, double* width, double* height)

Recording-surface functions

cairo_rectangle
void cairo_rectangle(cairo_t* cr, double x, double y, double width, double height)

Path creation functions

cairo_rectangle_list_destroy
void cairo_rectangle_list_destroy(cairo_rectangle_list_t* rectangle_list)
cairo_reference
cairo_t* cairo_reference(cairo_t* cr)

Functions for manipulating state objects

cairo_region_contains_point
cairo_bool_t cairo_region_contains_point(cairo_region_t* region, int x, int y)
cairo_region_contains_rectangle
cairo_region_overlap_t cairo_region_contains_rectangle(cairo_region_t* region, cairo_rectangle_int_t* rectangle)
cairo_region_copy
cairo_region_t* cairo_region_copy(cairo_region_t* original)
cairo_region_create
cairo_region_t* cairo_region_create()
cairo_region_create_rectangle
cairo_region_t* cairo_region_create_rectangle(cairo_rectangle_int_t* rectangle)
cairo_region_create_rectangles
cairo_region_t* cairo_region_create_rectangles(cairo_rectangle_int_t* rects, int count)
cairo_region_destroy
void cairo_region_destroy(cairo_region_t* region)
cairo_region_equal
cairo_bool_t cairo_region_equal(cairo_region_t* a, cairo_region_t* b)
cairo_region_get_extents
void cairo_region_get_extents(cairo_region_t* region, cairo_rectangle_int_t* extents)
cairo_region_get_rectangle
void cairo_region_get_rectangle(cairo_region_t* region, int nth, cairo_rectangle_int_t* rectangle)
cairo_region_intersect
cairo_status_t cairo_region_intersect(cairo_region_t* dst, cairo_region_t* other)
cairo_region_intersect_rectangle
cairo_status_t cairo_region_intersect_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle)
cairo_region_is_empty
cairo_bool_t cairo_region_is_empty(cairo_region_t* region)
cairo_region_num_rectangles
int cairo_region_num_rectangles(cairo_region_t* region)
cairo_region_reference
cairo_region_t* cairo_region_reference(cairo_region_t* region)
cairo_region_status
cairo_status_t cairo_region_status(cairo_region_t* region)
cairo_region_subtract
cairo_status_t cairo_region_subtract(cairo_region_t* dst, cairo_region_t* other)
cairo_region_subtract_rectangle
cairo_status_t cairo_region_subtract_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle)
cairo_region_translate
void cairo_region_translate(cairo_region_t* region, int dx, int dy)
cairo_region_union
cairo_status_t cairo_region_union(cairo_region_t* dst, cairo_region_t* other)
cairo_region_union_rectangle
cairo_status_t cairo_region_union_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle)
cairo_region_xor
cairo_status_t cairo_region_xor(cairo_region_t* dst, cairo_region_t* other)
cairo_region_xor_rectangle
cairo_status_t cairo_region_xor_rectangle(cairo_region_t* dst, cairo_rectangle_int_t* rectangle)
cairo_rel_curve_to
void cairo_rel_curve_to(cairo_t* cr, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3)
cairo_rel_line_to
void cairo_rel_line_to(cairo_t* cr, double dx, double dy)
cairo_rel_move_to
void cairo_rel_move_to(cairo_t* cr, double dx, double dy)

Path creation functions

cairo_reset_clip
void cairo_reset_clip(cairo_t* cr)

Clipping

cairo_restore
void cairo_restore(cairo_t* cr)

Functions for manipulating state objects

cairo_rotate
void cairo_rotate(cairo_t* cr, double angle)
cairo_save
void cairo_save(cairo_t* cr)

Functions for manipulating state objects

cairo_scale
void cairo_scale(cairo_t* cr, double sx, double sy)
cairo_scaled_font_create
cairo_scaled_font_t* cairo_scaled_font_create(cairo_font_face_t* font_face, cairo_matrix_t* font_matrix, cairo_matrix_t* ctm, cairo_font_options_t* options)
cairo_scaled_font_destroy
void cairo_scaled_font_destroy(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_extents
void cairo_scaled_font_extents(cairo_scaled_font_t* scaled_font, cairo_font_extents_t* extents)
cairo_scaled_font_get_ctm
void cairo_scaled_font_get_ctm(cairo_scaled_font_t* scaled_font, cairo_matrix_t* ctm)
cairo_scaled_font_get_font_face
cairo_font_face_t* cairo_scaled_font_get_font_face(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_get_font_matrix
void cairo_scaled_font_get_font_matrix(cairo_scaled_font_t* scaled_font, cairo_matrix_t* font_matrix)
cairo_scaled_font_get_font_options
void cairo_scaled_font_get_font_options(cairo_scaled_font_t* scaled_font, cairo_font_options_t* options)
cairo_scaled_font_get_reference_count
uint cairo_scaled_font_get_reference_count(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_get_scale_matrix
void cairo_scaled_font_get_scale_matrix(cairo_scaled_font_t* scaled_font, cairo_matrix_t* scale_matrix)
cairo_scaled_font_get_type
cairo_font_type_t cairo_scaled_font_get_type(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_get_user_data
void* cairo_scaled_font_get_user_data(cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key)
cairo_scaled_font_glyph_extents
void cairo_scaled_font_glyph_extents(cairo_scaled_font_t* scaled_font, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_extents_t* extents)
cairo_scaled_font_reference
cairo_scaled_font_t* cairo_scaled_font_reference(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_set_user_data
cairo_status_t cairo_scaled_font_set_user_data(cairo_scaled_font_t* scaled_font, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)
cairo_scaled_font_status
cairo_status_t cairo_scaled_font_status(cairo_scaled_font_t* scaled_font)
cairo_scaled_font_text_extents
void cairo_scaled_font_text_extents(cairo_scaled_font_t* scaled_font, char* utf8, cairo_text_extents_t* extents)
cairo_scaled_font_text_to_glyphs
cairo_status_t cairo_scaled_font_text_to_glyphs(cairo_scaled_font_t* scaled_font, double x, double y, char* utf8, int utf8_len, cairo_glyph_t** glyphs, int* num_glyphs, cairo_text_cluster_t** clusters, int* num_clusters, cairo_text_cluster_flags_t* cluster_flags)

Portable interface to general font features.

cairo_select_font_face
void cairo_select_font_face(cairo_t* cr, char* family, cairo_font_slant_t slant, cairo_font_weight_t weight)
cairo_set_antialias
void cairo_set_antialias(cairo_t* cr, cairo_antialias_t antialias)
cairo_set_dash
void cairo_set_dash(cairo_t* cr, double* dashes, int num_dashes, double offset)
cairo_set_fill_rule
void cairo_set_fill_rule(cairo_t* cr, cairo_fill_rule_t fill_rule)
cairo_set_font_face
void cairo_set_font_face(cairo_t* cr, cairo_font_face_t* font_face)
cairo_set_font_matrix
void cairo_set_font_matrix(cairo_t* cr, cairo_matrix_t* matrix)
cairo_set_font_options
void cairo_set_font_options(cairo_t* cr, cairo_font_options_t* options)
cairo_set_font_size
void cairo_set_font_size(cairo_t* cr, double size)
cairo_set_line_cap
void cairo_set_line_cap(cairo_t* cr, cairo_line_cap_t line_cap)
cairo_set_line_join
void cairo_set_line_join(cairo_t* cr, cairo_line_join_t line_join)
cairo_set_line_width
void cairo_set_line_width(cairo_t* cr, double width)
cairo_set_matrix
void cairo_set_matrix(cairo_t* cr, cairo_matrix_t* matrix)
cairo_set_miter_limit
void cairo_set_miter_limit(cairo_t* cr, double limit)
cairo_set_operator
void cairo_set_operator(cairo_t* cr, cairo_operator_t op)

Modify state

cairo_set_scaled_font
void cairo_set_scaled_font(cairo_t* cr, cairo_scaled_font_t* scaled_font)
cairo_set_source
void cairo_set_source(cairo_t* cr, cairo_pattern_t* source)
cairo_set_source_rgb
void cairo_set_source_rgb(cairo_t* cr, double red, double green, double blue)
cairo_set_source_rgba
void cairo_set_source_rgba(cairo_t* cr, double red, double green, double blue, double alpha)
cairo_set_source_surface
void cairo_set_source_surface(cairo_t* cr, cairo_surface_t* surface, double x, double y)
cairo_set_tolerance
void cairo_set_tolerance(cairo_t* cr, double tolerance)

Modify state

cairo_set_user_data
cairo_status_t cairo_set_user_data(cairo_t* cr, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)

Functions for manipulating state objects

cairo_show_glyphs
void cairo_show_glyphs(cairo_t* cr, cairo_glyph_t* glyphs, int num_glyphs)
cairo_show_page
void cairo_show_page(cairo_t* cr)

Painting functions

cairo_show_text
void cairo_show_text(cairo_t* cr, char* utf8)
cairo_show_text_glyphs
void cairo_show_text_glyphs(cairo_t* cr, char* utf8, int utf8_len, cairo_glyph_t* glyphs, int num_glyphs, cairo_text_cluster_t* clusters, int num_clusters, cairo_text_cluster_flags_t cluster_flags)
cairo_status
cairo_status_t cairo_status(cairo_t* cr)
cairo_status_to_string
immutable(char)* cairo_status_to_string(cairo_status_t status)

Error status queries

cairo_stroke
void cairo_stroke(cairo_t* cr)

Painting functions

cairo_stroke_extents
void cairo_stroke_extents(cairo_t* cr, double* x1, double* y1, double* x2, double* y2)

Rectangular extents

cairo_stroke_preserve
void cairo_stroke_preserve(cairo_t* cr)

Painting functions

cairo_surface_copy_page
void cairo_surface_copy_page(cairo_surface_t* surface)
cairo_surface_create_for_rectangle
cairo_surface_t* cairo_surface_create_for_rectangle(cairo_surface_t* target, double x, double y, double width, double height)

Surface manipulation

cairo_surface_create_similar
cairo_surface_t* cairo_surface_create_similar(cairo_surface_t* other, cairo_content_t content, int width, int height)
cairo_surface_destroy
void cairo_surface_destroy(cairo_surface_t* surface)
cairo_surface_finish
void cairo_surface_finish(cairo_surface_t* surface)

Surface manipulation

cairo_surface_flush
void cairo_surface_flush(cairo_surface_t* surface)
cairo_surface_get_content
cairo_content_t cairo_surface_get_content(cairo_surface_t* surface)
cairo_surface_get_device
cairo_device_t* cairo_surface_get_device(cairo_surface_t* surface)

Surface manipulation

cairo_surface_get_device_offset
void cairo_surface_get_device_offset(cairo_surface_t* surface, double* x_offset, double* y_offset)
cairo_surface_get_fallback_resolution
void cairo_surface_get_fallback_resolution(cairo_surface_t* surface, double* x_pixels_per_inch, double* y_pixels_per_inch)
cairo_surface_get_font_options
void cairo_surface_get_font_options(cairo_surface_t* surface, cairo_font_options_t* options)
cairo_surface_get_mime_data
void cairo_surface_get_mime_data(cairo_surface_t* surface, char* mime_type, ubyte** data, ulong* length)
cairo_surface_get_reference_count
uint cairo_surface_get_reference_count(cairo_surface_t* surface)

Surface manipulation

cairo_surface_get_type
cairo_surface_type_t cairo_surface_get_type(cairo_surface_t* surface)
cairo_surface_get_user_data
void* cairo_surface_get_user_data(cairo_surface_t* surface, cairo_user_data_key_t* key)
cairo_surface_has_show_text_glyphs
cairo_bool_t cairo_surface_has_show_text_glyphs(cairo_surface_t* surface)
cairo_surface_mark_dirty
void cairo_surface_mark_dirty(cairo_surface_t* surface)
cairo_surface_mark_dirty_rectangle
void cairo_surface_mark_dirty_rectangle(cairo_surface_t* surface, int x, int y, int width, int height)
cairo_surface_reference
cairo_surface_t* cairo_surface_reference(cairo_surface_t* surface)

Surface manipulation

cairo_surface_set_device_offset
void cairo_surface_set_device_offset(cairo_surface_t* surface, double x_offset, double y_offset)
cairo_surface_set_fallback_resolution
void cairo_surface_set_fallback_resolution(cairo_surface_t* surface, double x_pixels_per_inch, double y_pixels_per_inch)
cairo_surface_set_mime_data
cairo_status_t cairo_surface_set_mime_data(cairo_surface_t* surface, char* mime_type, ubyte* data, ulong length, cairo_destroy_func_t destroy, void* closure)
cairo_surface_set_user_data
cairo_status_t cairo_surface_set_user_data(cairo_surface_t* surface, cairo_user_data_key_t* key, void* user_data, cairo_destroy_func_t destroy)
cairo_surface_show_page
void cairo_surface_show_page(cairo_surface_t* surface)
cairo_surface_status
cairo_status_t cairo_surface_status(cairo_surface_t* surface)

Surface manipulation

cairo_surface_write_to_png
cairo_status_t cairo_surface_write_to_png(cairo_surface_t* surface, char* filename)
cairo_surface_write_to_png_stream
cairo_status_t cairo_surface_write_to_png_stream(cairo_surface_t* surface, cairo_write_func_t write_func, void* closure)

requires -version=CAIRO_HAS_PNG_FUNCTIONS

cairo_text_cluster_allocate
cairo_text_cluster_t* cairo_text_cluster_allocate(int num_clusters)
cairo_text_cluster_free
void cairo_text_cluster_free(cairo_text_cluster_t* clusters)
cairo_text_extents
void cairo_text_extents(cairo_t* cr, char* utf8, cairo_text_extents_t* extents)
cairo_text_path
void cairo_text_path(cairo_t* cr, char* utf8)
cairo_toy_font_face_create
cairo_font_face_t* cairo_toy_font_face_create(char* family, cairo_font_slant_t slant, cairo_font_weight_t weight)
cairo_toy_font_face_get_family
const(char)* cairo_toy_font_face_get_family(cairo_font_face_t* font_face)
cairo_toy_font_face_get_slant
cairo_font_slant_t cairo_toy_font_face_get_slant(cairo_font_face_t* font_face)
cairo_toy_font_face_get_weight
cairo_font_weight_t cairo_toy_font_face_get_weight(cairo_font_face_t* font_face)

Toy fonts

cairo_transform
void cairo_transform(cairo_t* cr, cairo_matrix_t* matrix)
cairo_translate
void cairo_translate(cairo_t* cr, double tx, double ty)
cairo_user_font_face_create
cairo_font_face_t* cairo_user_font_face_create()

User fonts

cairo_user_font_face_get_init_func
cairo_user_scaled_font_init_func_t cairo_user_font_face_get_init_func(cairo_font_face_t* font_face)
cairo_user_font_face_get_render_glyph_func
cairo_user_scaled_font_render_glyph_func_t cairo_user_font_face_get_render_glyph_func(cairo_font_face_t* font_face)
cairo_user_font_face_get_text_to_glyphs_func
cairo_user_scaled_font_text_to_glyphs_func_t cairo_user_font_face_get_text_to_glyphs_func(cairo_font_face_t* font_face)
cairo_user_font_face_get_unicode_to_glyph_func
cairo_user_scaled_font_unicode_to_glyph_func_t cairo_user_font_face_get_unicode_to_glyph_func(cairo_font_face_t* font_face)

User-font method getters

cairo_user_font_face_set_init_func
void cairo_user_font_face_set_init_func(cairo_font_face_t* font_face, cairo_user_scaled_font_init_func_t init_func)
cairo_user_font_face_set_render_glyph_func
void cairo_user_font_face_set_render_glyph_func(cairo_font_face_t* font_face, cairo_user_scaled_font_render_glyph_func_t render_glyph_func)
cairo_user_font_face_set_text_to_glyphs_func
void cairo_user_font_face_set_text_to_glyphs_func(cairo_font_face_t* font_face, cairo_user_scaled_font_text_to_glyphs_func_t text_to_glyphs_func)
cairo_user_font_face_set_unicode_to_glyph_func
void cairo_user_font_face_set_unicode_to_glyph_func(cairo_font_face_t* font_face, cairo_user_scaled_font_unicode_to_glyph_func_t unicode_to_glyph_func)

User-font method setters

cairo_user_to_device
void cairo_user_to_device(cairo_t* cr, double* x, double* y)
cairo_user_to_device_distance
void cairo_user_to_device_distance(cairo_t* cr, double* dx, double* dy)
cairo_version
int cairo_version()

Encoded library version

cairo_version_string
immutable(char)* cairo_version_string()

Library version string

Manifest constants

CAIRO_VERSION_MAJOR
enum CAIRO_VERSION_MAJOR;
CAIRO_VERSION_MICRO
enum CAIRO_VERSION_MICRO;
CAIRO_VERSION_MINOR
enum CAIRO_VERSION_MINOR;

Cairo binding version. Use the cairo_version() function to get version information about the cairo library.

Structs

PathDataHeader
struct PathDataHeader
PathDataPoint
struct PathDataPoint
cairo_device_t
struct cairo_device_t

A cairo_device_t represents the driver interface for drawing operations to a cairo_surface_t. There are different subtypes of cairo_device_t for different drawing backends; for example, cairo_xcb_device_create() creates a device that wraps the connection to an X Windows System using the XCB library.

cairo_font_extents_t
struct cairo_font_extents_t

The cairo_font_extents_t structure stores metric information for a font. Values are given in the current user-space coordinate system.

cairo_font_face_t
struct cairo_font_face_t

A cairo_font_face_t specifies all aspects of a font other than the size or font matrix (a font matrix is used to distort a font by sheering it or scaling it unequally in the two directions) . A font face can be set on a cairo_t by using cairo_set_font_face(); the size and font matrix are set with cairo_set_font_size() and cairo_set_font_matrix().

cairo_font_options_t
struct cairo_font_options_t

An opaque structure holding all options that are used when rendering fonts.

cairo_glyph_t
struct cairo_glyph_t

The cairo_glyph_t structure holds information about a single glyph when drawing or measuring text. A font is (in simple terms) a collection of shapes used to draw text. A glyph is one of these shapes. There can be multiple glyphs for a single character (alternates to be used in different contexts, for example), or a glyph can be a ligature of multiple characters. Cairo doesn't expose any way of converting input text into glyphs, so in order to use the Cairo interfaces that take arrays of glyphs, you must directly access the appropriate underlying font system.

cairo_matrix_t
struct cairo_matrix_t

A cairo_matrix_t holds an affine transformation, such as a scale, rotation, shear, or a combination of those. The transformation of a point (x, y) is given by:

cairo_path_data_t
struct cairo_path_data_t

cairo_path_data_t is used to represent the path data inside a cairo_path_t.

cairo_path_t
struct cairo_path_t

A data structure for holding a path. This data structure serves as the return value for cairo_copy_path() and cairo_copy_path_flat() as well the input value for cairo_append_path().

cairo_pattern_t
struct cairo_pattern_t

A cairo_pattern_t represents a source when drawing onto a surface. There are different subtypes of cairo_pattern_t, for different types of sources; for example, cairo_pattern_create_rgb() creates a pattern for a solid opaque color.

cairo_rectangle_int_t
struct cairo_rectangle_int_t

A data structure for holding a rectangle with integer coordinates.

cairo_rectangle_list_t
struct cairo_rectangle_list_t

A data structure for holding a dynamically allocated array of rectangles.

cairo_rectangle_t
struct cairo_rectangle_t

A data structure for holding a rectangle.

cairo_region_t
struct cairo_region_t

A cairo_region_t represents a set of integer-aligned rectangles.

cairo_scaled_font_t
struct cairo_scaled_font_t

A cairo_scaled_font_t is a font scaled to a particular size and device resolution. A cairo_scaled_font_t is most useful for low-level font usage where a library or application wants to cache a reference to a scaled font to speed up the computation of metrics.

cairo_surface_t
struct cairo_surface_t

A cairo_surface_t represents an image, either as the destination of a drawing operation or as source when drawing onto another surface. To draw to a cairo_surface_t, create a cairo context with the surface as the target, using cairo_create().

cairo_t
struct cairo_t

A cairo_t contains the current state of the rendering device, including coordinates of yet to be drawn shapes.

cairo_text_cluster_t
struct cairo_text_cluster_t

The cairo_text_cluster_t structure holds information about a single text cluster. A text cluster is a minimal mapping of some glyphs corresponding to some UTF-8 text.

cairo_text_extents_t
struct cairo_text_extents_t

The cairo_text_extents_t structure stores the extents of a single glyph or a string of glyphs in user-space coordinates. Because text extents are in user-space coordinates, they are mostly, but not entirely, independent of the current transformation matrix. If you call cairo_scale(cr, 2.0, 2.0), text will be drawn twice as big, but the reported text extents will not be doubled. They will change slightly due to hinting (so you can't assume that metrics are independent of the transformation matrix), but otherwise will remain unchanged.

cairo_user_data_key_t
struct cairo_user_data_key_t

cairo_user_data_key_t is used for attaching user data to cairo data structures. The actual contents of the struct is never used, and there is no need to initialize the object; only the unique address of a cairo_data_key_t object is used. Typically, you would just use the address of a static cairo_data_key_t object.

Variables

CAIRO_MIME_TYPE_JP2
enum string CAIRO_MIME_TYPE_JP2;
CAIRO_MIME_TYPE_JPEG
enum string CAIRO_MIME_TYPE_JPEG;
CAIRO_MIME_TYPE_PNG
enum string CAIRO_MIME_TYPE_PNG;
CAIRO_MIME_TYPE_URI
enum string CAIRO_MIME_TYPE_URI;
CAIRO_VERSION
enum ulong CAIRO_VERSION;

Encoded cairo binding version

CAIRO_VERSION_STRING
string CAIRO_VERSION_STRING;

Cairo binding version string

Meta

Authors

Johannes PfaucairoD
_cairo team_cairo