#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.
Specifies the type of antialiasing to do when rendering text or shapes.
Specifies if color fonts are to be rendered using the color glyphs or outline glyphs. Glyphs that do not have a color presentation, and non-color fonts are not affected by this font option.
#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 is used to describe the type of a given device. The devices types are also known as "backends" within cairo.
Dither is an intentionally applied form of noise used to randomize quantization error, preventing large-scale patterns such as color banding in images (e.g. for gradients). Ordered dithering applies a precomputed threshold matrix to spread the errors smoothly.
#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 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 is used to indicate what filtering should be applied when reading pixel values from patterns. See cairo.pattern.Pattern.setFilter for indicating the desired filter to be used with a particular pattern.
Specifies variants of a font face based on their slant.
#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.
Specifies variants of a font face based on their weight.
#cairo_format_t is used to identify the memory format of image data.
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.
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.
Specifies how to render the endpoints of the path when stroking.
Specifies how to render the junction of two lines when stroking.
#cairo_operator_t is used to set the compositing operator for all cairo drawing operations.
#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 is used to describe the type of a given pattern.
#cairo_pdf_metadata_t is used by the cairo.global.pdfSurfaceSetMetadata function specify the metadata to set.
#cairo_pdf_outline_flags_t is used by the cairo.global.pdfSurfaceAddOutline function specify the attributes of an outline item. These flags may be bitwise-or'd to produce any combination of flags.
#cairo_pdf_version_t is used to describe the version number of the PDF specification that a generated PDF file will conform to.
#cairo_ps_level_t is used to describe the language level of the PostScript Language Reference that a generated PostScript file will conform to.
Used as the return value for cairo.region.Region.containsRectangle.
A set of script output variants.
#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.context.Context.status.
The subpixel order specifies the order of color elements within each pixel on the display device when rendering with an antialiasing mode of cairo.types.Antialias.Subpixel.
Whether operations should be recorded.
#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_svg_unit_t is used to describe the units valid for coordinates and lengths in the SVG specification.
#cairo_svg_version_t is used to describe the version number of the SVG specification that a generated SVG file will conform to.
Specifies properties of a text cluster mapping.
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.
The #cairo_font_extents_t structure stores metric information for a font. Values are given in the current user-space coordinate system.
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 shearing it or scaling it unequally in the two directions) . A font face can be set on a #cairo_t by using cairo.context.Context.setFontFace; the size and font matrix are set with cairo.context.Context.setFontSize and cairo.context.Context.setFontMatrix.
An opaque structure holding all options that are used when rendering fonts.
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 <firstterm>ligature</firstterm> 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.
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: <programlisting> x_new = xx * x + xy * y + x0; y_new = yx * x + yy * y + y0; </programlisting>
A data structure for holding a path. This data structure serves as the return value for cairo.context.Context.copyPath and cairo.context.Context.copyPathFlat as well the input value for cairo.context.Context.appendPath.
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.global.patternCreateRgb creates a pattern for a solid opaque color.
A data structure for holding a rectangle with integer coordinates.
A data structure for holding a dynamically allocated array of rectangles.
A data structure for holding a rectangle.
A #cairo_region_t represents a set of integer-aligned rectangles.
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.
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.global.create.
A #cairo_t contains the current state of the rendering device, including coordinates of yet to be drawn shapes.
The #cairo_text_cluster_t structure holds information about a single <firstterm>text cluster</firstterm>. A text cluster is a minimal mapping of some glyphs corresponding to some UTF-8 text.
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 <literal>cairo_scale(cr, 2.0, 2.0)</literal>, 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 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.
#cairo_path_data_t is used to represent the path data inside a #cairo_path_t.