# Cairo Namespace Reference

## Classes

class | Context
| Context is the main class used to draw in cairomm. More...
class | Device
| Devices are the abstraction Cairo employs for the rendering system used by a cairo_surface_t. More...
class | logic_error
class | FontFace
| A FontFace represents a particular font at a particular weight, slant, and other characteristic but no size, transformation, or size. More...
class | ToyFontFace
| A simple font face used for the cairo 'toy' font API. More...
class | UserFontFace
| Font support with font data provided by the user. More...
class | FtFontFace
class | FontOptions
| How a font should be rendered. More...
class | Matrix
| A Transformation matrix. More...
class | Path
| A data structure for holding a path. More...
struct | ColorStop
class | Pattern
| This is a reference-counted object that should be used via Cairo::RefPtr. More...
class | SolidPattern
class | SurfacePattern
class | Gradient
class | LinearGradient
class | RadialGradient
class | QuartzFontFace
| Font support for Quartz (CGFont) fonts on OS X. More...
class | QuartzSurface
| A QuartzSurface provides a way to render within Apple Mac OS X. More...
class | RefPtr
| RefPtr<> is a reference-counting shared smartpointer. More...
class | Region
| A simple graphical data type representing an area of integer-aligned rectangles. More...
class | ScaledFont
| A ScaledFont is a font scaled to a particular size and device resolution. More...
class | FtScaledFont
class | Surface
| A cairo surface represents an image, either as the destination of a drawing operation or as source when drawing onto another surface. More...
class | ImageSurface
| Image surfaces provide the ability to render to memory buffers either allocated by cairo or by the calling code. More...
class | PdfSurface
| A PdfSurface provides a way to render PDF documents from cairo. More...
class | PsSurface
| A PsSurface provides a way to render PostScript documents from cairo. More...
class | SvgSurface
| A SvgSurface provides a way to render Scalable Vector Graphics (SVG) images from cairo. More...
class | GlitzSurface
| A GlitzSurface provides a way to render to the X Window System using Glitz. More...
class | Win32FontFace
| Font support for Microsoft Windows. More...
class | Win32ScaledFont
| Scaled Font implementation for Microsoft Windows fonts. More...
class | Win32Surface
| A Win32Surface provides a way to render within Microsoft Windows. More...
class | Win32PrintingSurface
| A multi-page vector surface type for printing on Microsoft Windows. More...
class | XlibSurface
| An XlibSurface provides a way to render to the X Window System using XLib. More...

## Typedefs

typedef cairo_rectangle_t | Rectangle
| See the cairo_rectangle_t reference in the cairo manual for more information.
typedef cairo_rectangle_int_t | RectangleInt
| See the cairo_rectangle_int_t reference in the cairo manual for more information.
typedef cairo_font_extents_t | FontExtents
| See the cairo_font_extents_t reference in the cairo manual for more information.
typedef cairo_text_extents_t | TextExtents
| See the cairo_text_extents_t reference in the cairo manual for more information.
typedef cairo_text_cluster_t | TextCluster
| See the cairo_text_cluster_t reference in the cairo manual for more information.
typedef cairo_glyph_t | Glyph
| See the cairo_glyph_t reference in the cairo manual for more information.

## Enumerations

enum

Operator {
OPERATOR_CLEAR = CAIRO_OPERATOR_CLEAR,
OPERATOR_SOURCE = CAIRO_OPERATOR_SOURCE,
OPERATOR_OVER = CAIRO_OPERATOR_OVER,
OPERATOR_IN = CAIRO_OPERATOR_IN,
OPERATOR_OUT = CAIRO_OPERATOR_OUT,
OPERATOR_ATOP = CAIRO_OPERATOR_ATOP,
OPERATOR_DEST = CAIRO_OPERATOR_DEST,
OPERATOR_DEST_OVER = CAIRO_OPERATOR_DEST_OVER,
OPERATOR_DEST_IN = CAIRO_OPERATOR_DEST_IN,
OPERATOR_DEST_OUT = CAIRO_OPERATOR_DEST_OUT,
OPERATOR_DEST_ATOP = CAIRO_OPERATOR_DEST_ATOP,
OPERATOR_XOR = CAIRO_OPERATOR_XOR,
OPERATOR_ADD = CAIRO_OPERATOR_ADD,
OPERATOR_SATURATE = CAIRO_OPERATOR_SATURATE
}

enum | Antialias { ANTIALIAS_DEFAULT = CAIRO_ANTIALIAS_DEFAULT, ANTIALIAS_NONE = CAIRO_ANTIALIAS_NONE, ANTIALIAS_GRAY = CAIRO_ANTIALIAS_GRAY, ANTIALIAS_SUBPIXEL = CAIRO_ANTIALIAS_SUBPIXEL }
enum | FillRule { FILL_RULE_WINDING = CAIRO_FILL_RULE_WINDING, FILL_RULE_EVEN_ODD = CAIRO_FILL_RULE_EVEN_ODD }
enum | LineCap { LINE_CAP_BUTT = CAIRO_LINE_CAP_BUTT, LINE_CAP_ROUND = CAIRO_LINE_CAP_ROUND, LINE_CAP_SQUARE = CAIRO_LINE_CAP_SQUARE }
enum | LineJoin { LINE_JOIN_MITER = CAIRO_LINE_JOIN_MITER, LINE_JOIN_ROUND = CAIRO_LINE_JOIN_ROUND, LINE_JOIN_BEVEL = CAIRO_LINE_JOIN_BEVEL }
enum | FontSlant { FONT_SLANT_NORMAL = CAIRO_FONT_SLANT_NORMAL, FONT_SLANT_ITALIC = CAIRO_FONT_SLANT_ITALIC, FONT_SLANT_OBLIQUE = CAIRO_FONT_SLANT_OBLIQUE }
enum | FontWeight { FONT_WEIGHT_NORMAL = CAIRO_FONT_WEIGHT_NORMAL, FONT_WEIGHT_BOLD = CAIRO_FONT_WEIGHT_BOLD }
enum | Content { CONTENT_COLOR = CAIRO_CONTENT_COLOR, CONTENT_ALPHA = CAIRO_CONTENT_ALPHA, CONTENT_COLOR_ALPHA = CAIRO_CONTENT_COLOR_ALPHA }
enum | DeviceType { DEVICE_TYPE_DRM = CAIRO_DEVICE_TYPE_DRM, DEVICE_TYPE_GL = CAIRO_DEVICE_TYPE_GL, DEVICE_TYPE_SCRIPT = CAIRO_DEVICE_TYPE_SCRIPT, DEVICE_TYPE_XCB = CAIRO_DEVICE_TYPE_XCB, DEVICE_TYPE_XLIB = CAIRO_DEVICE_TYPE_XLIB, DEVICE_TYPE_XML = CAIRO_DEVICE_TYPE_XML }
enum | Format { FORMAT_ARGB32 = CAIRO_FORMAT_ARGB32, FORMAT_RGB24 = CAIRO_FORMAT_RGB24, FORMAT_A8 = CAIRO_FORMAT_A8, FORMAT_A1 = CAIRO_FORMAT_A1, FORMAT_RGB16_565 = CAIRO_FORMAT_RGB16_565 }
enum | Extend { EXTEND_NONE = CAIRO_EXTEND_NONE, EXTEND_REPEAT = CAIRO_EXTEND_REPEAT, EXTEND_REFLECT = CAIRO_EXTEND_REFLECT, EXTEND_PAD = CAIRO_EXTEND_PAD }
enum | Filter { FILTER_FAST = CAIRO_FILTER_FAST, FILTER_GOOD = CAIRO_FILTER_GOOD, FILTER_BEST = CAIRO_FILTER_BEST, FILTER_NEAREST = CAIRO_FILTER_NEAREST, FILTER_BILINEAR = CAIRO_FILTER_BILINEAR, FILTER_GAUSSIAN = CAIRO_FILTER_GAUSSIAN }
enum | SubpixelOrder { SUBPIXEL_ORDER_DEFAULT = CAIRO_SUBPIXEL_ORDER_DEFAULT, SUBPIXEL_ORDER_RGB = CAIRO_SUBPIXEL_ORDER_RGB, SUBPIXEL_ORDER_BGR = CAIRO_SUBPIXEL_ORDER_BGR, SUBPIXEL_ORDER_VRGB = CAIRO_SUBPIXEL_ORDER_VRGB, SUBPIXEL_ORDER_VBGR = CAIRO_SUBPIXEL_ORDER_VBGR }
| The subpixel order specifies the order of color elements within each pixel on the display device when rendering with an antialiasing mode of ANTIALIAS_SUBPIXEL. More...
enum | HintStyle { HINT_STYLE_DEFAULT = CAIRO_HINT_STYLE_DEFAULT, HINT_STYLE_NONE = CAIRO_HINT_STYLE_NONE, HINT_STYLE_SLIGHT = CAIRO_HINT_STYLE_SLIGHT, HINT_STYLE_MEDIUM = CAIRO_HINT_STYLE_MEDIUM, HINT_STYLE_FULL = CAIRO_HINT_STYLE_FULL }
| Specifies the type of hinting to do on font outlines. More...
enum | HintMetrics { HINT_METRICS_DEFAULT = CAIRO_HINT_METRICS_DEFAULT, HINT_METRICS_OFF = CAIRO_HINT_METRICS_OFF, HINT_METRICS_ON = CAIRO_HINT_METRICS_ON }
| Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. More...

enum

SurfaceType {
SURFACE_TYPE_IMAGE = CAIRO_SURFACE_TYPE_IMAGE,
SURFACE_TYPE_PDF = CAIRO_SURFACE_TYPE_PDF,
SURFACE_TYPE_PS = CAIRO_SURFACE_TYPE_PS,
SURFACE_TYPE_XLIB = CAIRO_SURFACE_TYPE_XLIB,
SURFACE_TYPE_XCB = CAIRO_SURFACE_TYPE_XCB,
SURFACE_TYPE_GLITZ = CAIRO_SURFACE_TYPE_GLITZ,
SURFACE_TYPE_QUARTZ = CAIRO_SURFACE_TYPE_QUARTZ,
SURFACE_TYPE_WIN32 = CAIRO_SURFACE_TYPE_WIN32,
SURFACE_TYPE_BEOS = CAIRO_SURFACE_TYPE_BEOS,
SURFACE_TYPE_DIRECTFB = CAIRO_SURFACE_TYPE_DIRECTFB,
SURFACE_TYPE_SVG = CAIRO_SURFACE_TYPE_SVG,
SURFACE_TYPE_OS2 = CAIRO_SURFACE_TYPE_OS2,
SURFACE_TYPE_WIN32_PRINTING = CAIRO_SURFACE_TYPE_WIN32_PRINTING,
SURFACE_TYPE_QUARTZ_IMAGE = CAIRO_SURFACE_TYPE_QUARTZ_IMAGE,
SURFACE_TYPE_SCRIPT = CAIRO_SURFACE_TYPE_SCRIPT,
SURFACE_TYPE_QT = CAIRO_SURFACE_TYPE_QT,
SURFACE_TYPE_RECORDING = CAIRO_SURFACE_TYPE_RECORDING,
SURFACE_TYPE_VG = CAIRO_SURFACE_TYPE_VG,
SURFACE_TYPE_GL = CAIRO_SURFACE_TYPE_GL,
SURFACE_TYPE_DRM = CAIRO_SURFACE_TYPE_DRM,
SURFACE_TYPE_TEE = CAIRO_SURFACE_TYPE_TEE,
SURFACE_TYPE_XML = CAIRO_SURFACE_TYPE_XML,
SURFACE_TYPE_SKIA = CAIRO_SURFACE_TYPE_SKIA,
SURFACE_TYPE_SUBSURFACE = CAIRO_SURFACE_TYPE_SUBSURFACE
}

enum | PatternType { PATTERN_TYPE_SOLID = CAIRO_PATTERN_TYPE_SOLID, PATTERN_TYPE_SURFACE = CAIRO_PATTERN_TYPE_SURFACE, PATTERN_TYPE_LINEAR = CAIRO_PATTERN_TYPE_LINEAR, PATTERN_TYPE_RADIAL = CAIRO_PATTERN_TYPE_RADIAL }
enum | FontType { FONT_TYPE_TOY = CAIRO_FONT_TYPE_TOY, FONT_TYPE_FT = CAIRO_FONT_TYPE_FT, FONT_TYPE_WIN32 = CAIRO_FONT_TYPE_WIN32, FONT_TYPE_ATSUI = CAIRO_FONT_TYPE_QUARTZ, FONT_TYPE_QUARTZ = CAIRO_FONT_TYPE_QUARTZ, FONT_TYPE_USER = CAIRO_FONT_TYPE_USER }
enum | TextClusterFlags { TEXT_CLUSTER_FLAG_BACKWARD = CAIRO_TEXT_CLUSTER_FLAG_BACKWARD }
| Specifies properties of a text cluster mapping. More...
enum | RegionOverlap { REGION_OVERLAP_IN = CAIRO_REGION_OVERLAP_IN, REGION_OVERLAP_OUT = CAIRO_REGION_OVERLAP_OUT, REGION_OVERLAP_PART = CAIRO_REGION_OVERLAP_PART }
enum | PdfVersion { PDF_VERSION_1_4 = CAIRO_PDF_VERSION_1_4, PDF_VERSION_1_5 = CAIRO_PDF_VERSION_1_5 }
enum | PsLevel { PS_LEVEL_2 = CAIRO_PS_LEVEL_2, PS_LEVEL_3 = CAIRO_PS_LEVEL_3 }
| describes the language level of the PostScript Language Reference that a generated PostScript file will conform to. More...
enum | SvgVersion { SVG_VERSION_1_1 = CAIRO_SVG_VERSION_1_1, SVG_VERSION_1_2 = CAIRO_SVG_VERSION_1_2 }

## Typedef Documentation

typedef cairo_font_extents_t Cairo::FontExtents

See the cairo_font_extents_t reference in the cairo manual for more information.

typedef cairo_glyph_t Cairo::Glyph

See the cairo_glyph_t reference in the cairo manual for more information.

typedef cairo_rectangle_t Cairo::Rectangle

See the cairo_rectangle_t reference in the cairo manual for more information.

typedef cairo_rectangle_int_t Cairo::RectangleInt

See the cairo_rectangle_int_t reference in the cairo manual for more information.

typedef cairo_text_cluster_t Cairo::TextCluster

See the cairo_text_cluster_t reference in the cairo manual for more information.

typedef cairo_text_extents_t Cairo::TextExtents

See the cairo_text_extents_t reference in the cairo manual for more information.

## Enumeration Type Documentation

enum Cairo::Antialias

Enumerator:

  ANTIALIAS_DEFAULT |
  ANTIALIAS_NONE |
  ANTIALIAS_GRAY |
  ANTIALIAS_SUBPIXEL |

enum Cairo::Content

Enumerator:

  CONTENT_COLOR |
  CONTENT_ALPHA |
  CONTENT_COLOR_ALPHA |

enum Cairo::DeviceType

Enumerator:

  DEVICE_TYPE_DRM |
  DEVICE_TYPE_GL |
  DEVICE_TYPE_SCRIPT |
  DEVICE_TYPE_XCB |
  DEVICE_TYPE_XLIB |
  DEVICE_TYPE_XML |

enum Cairo::Extend

Enumerator:

  EXTEND_NONE |
  EXTEND_REPEAT |
  EXTEND_REFLECT |
  EXTEND_PAD |

enum Cairo::FillRule

Enumerator:

  FILL_RULE_WINDING |
  FILL_RULE_EVEN_ODD |

enum Cairo::Filter

Enumerator:

  FILTER_FAST |
  FILTER_GOOD |
  FILTER_BEST |
  FILTER_NEAREST |
  FILTER_BILINEAR |
  FILTER_GAUSSIAN |

enum Cairo::FontSlant

Enumerator:

  FONT_SLANT_NORMAL |
  FONT_SLANT_ITALIC |
  FONT_SLANT_OBLIQUE |

enum Cairo::FontType

Enumerator:

  FONT_TYPE_TOY |
  FONT_TYPE_FT |
  FONT_TYPE_WIN32 |

  FONT_TYPE_ATSUI

  Deprecated:
    Use FONT_TYPE_QUARTZ instead.

  FONT_TYPE_QUARTZ |
  FONT_TYPE_USER |

enum Cairo::FontWeight

Enumerator:

  FONT_WEIGHT_NORMAL |
  FONT_WEIGHT_BOLD |

enum Cairo::Format

Enumerator:

  FORMAT_ARGB32 |
  FORMAT_RGB24 |
  FORMAT_A8 |
  FORMAT_A1 |
  FORMAT_RGB16_565 |

enum Cairo::HintMetrics

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.

Enumerator:

  HINT_METRICS_DEFAULT | Hint metrics in the default manner for the font backend and target device.
  HINT_METRICS_OFF | Do not hint font metrics.
  HINT_METRICS_ON | Hint font metrics.

enum Cairo::HintStyle

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.

New entries may be added in future versions.

Enumerator:

  HINT_STYLE_DEFAULT | Use the default hint style for font backend and target device.
  HINT_STYLE_NONE | Do not hint outlines.
  HINT_STYLE_SLIGHT | Hint outlines slightly to improve contrast while retaining good fidelity to the original shapes.
  HINT_STYLE_MEDIUM | Hint outlines with medium strength giving a compromise between fidelity to the original shapes and contrast.
  HINT_STYLE_FULL | Hint outlines to maximize contrast.

enum Cairo::LineCap

Enumerator:

  LINE_CAP_BUTT |
  LINE_CAP_ROUND |
  LINE_CAP_SQUARE |

enum Cairo::LineJoin

Enumerator:

  LINE_JOIN_MITER |
  LINE_JOIN_ROUND |
  LINE_JOIN_BEVEL |

enum Cairo::Operator

Enumerator:

  OPERATOR_CLEAR |
  OPERATOR_SOURCE |
  OPERATOR_OVER |
  OPERATOR_IN |
  OPERATOR_OUT |
  OPERATOR_ATOP |
  OPERATOR_DEST |
  OPERATOR_DEST_OVER |
  OPERATOR_DEST_IN |
  OPERATOR_DEST_OUT |
  OPERATOR_DEST_ATOP |
  OPERATOR_XOR |
  OPERATOR_ADD |
  OPERATOR_SATURATE |

enum Cairo::PatternType

Enumerator:

  PATTERN_TYPE_SOLID |
  PATTERN_TYPE_SURFACE |
  PATTERN_TYPE_LINEAR |
  PATTERN_TYPE_RADIAL |

enum Cairo::PdfVersion

Enumerator:

  PDF_VERSION_1_4 |
  PDF_VERSION_1_5 |

enum Cairo::PsLevel

describes the language level of the PostScript Language Reference that a generated PostScript file will conform to.

Enumerator:

  PS_LEVEL_2 |
  PS_LEVEL_3 |

enum Cairo::RegionOverlap

Enumerator:

  REGION_OVERLAP_IN | completely inside region
  REGION_OVERLAP_OUT | completely outside region
  REGION_OVERLAP_PART | partly inside region

enum Cairo::SubpixelOrder

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

Enumerator:

  SUBPIXEL_ORDER_DEFAULT | Use the default subpixel order for for the target device.
  SUBPIXEL_ORDER_RGB | Subpixel elements are arranged horizontally with red at the left.
  SUBPIXEL_ORDER_BGR | Subpixel elements are arranged horizontally with blue at the left.
  SUBPIXEL_ORDER_VRGB | Subpixel elements are arranged vertically with red at the top.
  SUBPIXEL_ORDER_VBGR | Subpixel elements are arranged vertically with blue at the top.

enum Cairo::SurfaceType

Enumerator:

  SURFACE_TYPE_IMAGE |
  SURFACE_TYPE_PDF |
  SURFACE_TYPE_PS |
  SURFACE_TYPE_XLIB |
  SURFACE_TYPE_XCB |
  SURFACE_TYPE_GLITZ |
  SURFACE_TYPE_QUARTZ |
  SURFACE_TYPE_WIN32 |
  SURFACE_TYPE_BEOS |
  SURFACE_TYPE_DIRECTFB |
  SURFACE_TYPE_SVG |
  SURFACE_TYPE_OS2 |
  SURFACE_TYPE_WIN32_PRINTING |
  SURFACE_TYPE_QUARTZ_IMAGE |

  SURFACE_TYPE_SCRIPT

  Since:
    : 1.10

  SURFACE_TYPE_QT

  Since:
    : 1.10

  SURFACE_TYPE_RECORDING

  Since:
    : 1.10

  SURFACE_TYPE_VG

  Since:
    : 1.10

  SURFACE_TYPE_GL

  Since:
    : 1.10

  SURFACE_TYPE_DRM

  Since:
    : 1.10

  SURFACE_TYPE_TEE

  Since:
    : 1.10

  SURFACE_TYPE_XML

  Since:
    : 1.10

  SURFACE_TYPE_SKIA

  Since:
    : 1.10

  SURFACE_TYPE_SUBSURFACE

  Since:
    : 1.10

enum Cairo::SvgVersion

Enumerator:

  SVG_VERSION_1_1 |
  SVG_VERSION_1_2 |

enum Cairo::TextClusterFlags

Specifies properties of a text cluster mapping.

Since:
  1.8

Enumerator:

  TEXT_CLUSTER_FLAG_BACKWARD | The clusters in the cluster array map to glyphs in the glyph array from end to start.