Cairo Namespace Reference

## Classes

struct | ColorStop
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 | FontFace
| A FontFace represents a particular font at a particular weight, slant, and other characteristic but no size, transformation, or size. More...
class | FontOptions
| The font options specify how fonts should be rendered. More...
class | FtFontFace
class | FtScaledFont
class | GlitzSurface
| A GlitzSurface provides a way to render to the X Window System using Glitz. More...
class | Gradient
class | ImageSurface
| Image surfaces provide the ability to render to memory buffers either allocated by cairo or by the calling code. More...
class | LinearGradient
class | logic_error
class | Matrix
| A Transformation matrix. More...
class | Path
| A data structure for holding a path. More...
class | Pattern
| Cairo::Pattern is the paint with which cairo draws. 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 | QuartzFontFace
| The Quartz font backend is primarily used to render text on Apple MacOS X systems. More...
class | QuartzSurface
| A QuartzSurface provides a way to render within Apple Mac OS X. More...
class | RadialGradient
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 | SolidPattern
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 | SurfacePattern
class | SvgSurface
| A SvgSurface provides a way to render Scalable Vector Graphics (SVG) images from cairo. 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 | Win32FontFace
| Font support for Microsoft Windows. More...
class | Win32PrintingSurface
| A multi-page vector surface type for printing on 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 | 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. More...
typedef cairo_rectangle_int_t | RectangleInt
| See the cairo_rectangle_int_t reference in the cairo manual for more information. More...
typedef cairo_font_extents_t | FontExtents
| See the cairo_font_extents_t reference in the cairo manual for more information. More...
typedef cairo_text_extents_t | TextExtents
| See the cairo_text_extents_t reference in the cairo manual for more information. More...
typedef cairo_text_cluster_t | TextCluster
| See the cairo_text_cluster_t reference in the cairo manual for more information. More...
typedef cairo_glyph_t | Glyph
| See the cairo_glyph_t reference in the cairo manual for more information. More...

## 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
}

| Cairo::Operator is used to set the compositing operator for all cairo drawing operations. More...
enum | Antialias { ANTIALIAS_DEFAULT = CAIRO_ANTIALIAS_DEFAULT, ANTIALIAS_NONE = CAIRO_ANTIALIAS_NONE, ANTIALIAS_GRAY = CAIRO_ANTIALIAS_GRAY, ANTIALIAS_SUBPIXEL = CAIRO_ANTIALIAS_SUBPIXEL }
| Specifies the type of antialiasing to do when rendering text or shapes. More...
enum | FillRule { FILL_RULE_WINDING = CAIRO_FILL_RULE_WINDING, FILL_RULE_EVEN_ODD = CAIRO_FILL_RULE_EVEN_ODD }
| Cairo::FillRule is used to select how paths are filled. More...
enum | LineCap { LINE_CAP_BUTT = CAIRO_LINE_CAP_BUTT, LINE_CAP_ROUND = CAIRO_LINE_CAP_ROUND, LINE_CAP_SQUARE = CAIRO_LINE_CAP_SQUARE }
| Specifies how to render the endpoints of the path when stroking. More...
enum | LineJoin { LINE_JOIN_MITER = CAIRO_LINE_JOIN_MITER, LINE_JOIN_ROUND = CAIRO_LINE_JOIN_ROUND, LINE_JOIN_BEVEL = CAIRO_LINE_JOIN_BEVEL }
| Specifies how to render the junction of two lines when stroking. More...
enum | FontSlant { FONT_SLANT_NORMAL = CAIRO_FONT_SLANT_NORMAL, FONT_SLANT_ITALIC = CAIRO_FONT_SLANT_ITALIC, FONT_SLANT_OBLIQUE = CAIRO_FONT_SLANT_OBLIQUE }
| Specifies variants of a font face based on their slant. More...
enum | FontWeight { FONT_WEIGHT_NORMAL = CAIRO_FONT_WEIGHT_NORMAL, FONT_WEIGHT_BOLD = CAIRO_FONT_WEIGHT_BOLD }
| Specifies variants of a font face based on their weight. More...
enum | Content { CONTENT_COLOR = CAIRO_CONTENT_COLOR, CONTENT_ALPHA = CAIRO_CONTENT_ALPHA, CONTENT_COLOR_ALPHA = CAIRO_CONTENT_COLOR_ALPHA }
| Cairo::Content is used to describe the content that a surface will contain, whether color information, alpha information (translucence vs. More...
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 }
| Cairo::Format is used to identify the memory format of image data. More...
enum | Extend { EXTEND_NONE = CAIRO_EXTEND_NONE, EXTEND_REPEAT = CAIRO_EXTEND_REPEAT, EXTEND_REFLECT = CAIRO_EXTEND_REFLECT, EXTEND_PAD = CAIRO_EXTEND_PAD }
| Cairo::Extend 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). More...
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 }
| Cairo::Filter is used to indicate what filtering should be applied when reading pixel values from patterns. More...
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 Cairo::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
}

| Cairo::SurfaceType is used to describe the type of a given surface. More...
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 }
| Cairo::PatternType is used to describe the type of a given pattern. More...
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 }
| Cairo::FontType is used to describe the type of a given font face or scaled font. More...
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 | FtSynthesize { FT_SYNTHESIZE_BOLT = CAIRO_FT_SYNTHESIZE_BOLD, FT_SYNTHESIZE_OBLIQUE = CAIRO_FT_SYNTHESIZE_OBLIQUE }
| A set of synthesis options to control how FreeType renders the glyphs for a particular font face. More...
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 }

## Functions

FtSynthesize | operator| (FtSynthesize a, FtSynthesize b)
FtSynthesize | operator& (FtSynthesize a, FtSynthesize b)

## 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

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

The interpretation of Cairo::ANTIALIAS_DEFAULT is left entirely up to the backend.

Enumerator
ANTIALIAS_DEFAULT | Use the default antialiasing for the subsystem and target device.
ANTIALIAS_NONE | Use bilevel alpha mask.
ANTIALIAS_GRAY | Perform single-color antialiasing (using shades of gray for black text on white background, for example).
ANTIALIAS_SUBPIXEL | Perform antialiasing by taing advantage of the order of subpixel elements on devices such as LCD panels.

enum Cairo::Content

Cairo::Content is used to describe the content that a surface will contain, whether color information, alpha information (translucence vs.

opacity), or both.

Enumerator
CONTENT_COLOR | The surface will hold color content only.
CONTENT_ALPHA | The surface will hold alpha content only.
CONTENT_COLOR_ALPHA | The surface will hold color and alpha content.

enum Cairo::DeviceType

Since
  1.10

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

enum Cairo::Extend

Cairo::Extend 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).

Mesh patterns are not affected by the extend mode.

The default extend mode is Cairo::EXTEND_NONE for surface patterns and Cairo::EXTEND_PAD for gradient patterns.

New entries may be added in future versions.

Enumerator
EXTEND_NONE | Pixels outside of the source pattern are fully transparent.
EXTEND_REPEAT | The pattern is tiled by repeating.
EXTEND_REFLECT | The pattern is tiled by reflecting at the edges (Implemented for surface patterns since 1.6)
EXTEND_PAD | Pixels outside of the pattern copy the closest pixel from the source (Since 1.2; but only implemented for surface patterns since 1.6)

enum Cairo::FillRule

Cairo::FillRule 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.)

The default fill rule is Cairo::FILL_RULE_WINDING.

New entries may be added in future versions.

Enumerator
FILL_RULE_WINDING | If the path crosses the ray from left-to-right, counts +1. If the path crosses the ray from right to left, counts -1. (Left and right are determined from the perspective of looking along the ray from the starting point.) If the total count is non-zero, the point will be filled.
FILL_RULE_EVEN_ODD | Counts the total number of intersections, without regard to the orientation of the contour. If the total number of intersections is odd, the point will be filled.

enum Cairo::Filter

Cairo::Filter is used to indicate what filtering should be applied when reading pixel values from patterns.

See Cairo::SurfacePattern::set_filter() for indicating the desired filter to be used with a particular pattern.

Enumerator
FILTER_FAST | A high-performance filter, with quality similar to Cairo::FILTER_NEAREST.
FILTER_GOOD | A reasonable-performance filter, with quality similar to Cairo::FILTER_BILINEAR.
FILTER_BEST | The highest-quality available, performance may not be suitable for interactive use.
FILTER_NEAREST | Nearest-neighbor filtering.
FILTER_BILINEAR | Linear interpolation in two dimensions.
FILTER_GAUSSIAN | This filter value is currently unimplemented, and should not be used in current code.

enum Cairo::FontSlant

Specifies variants of a font face based on their slant.

Enumerator
FONT_SLANT_NORMAL | Upright font style.
FONT_SLANT_ITALIC | Italic font style.
FONT_SLANT_OBLIQUE | Oblique font style.

enum Cairo::FontType

Cairo::FontType 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.

New entries may be added in future versions.

Since
  1.2

Enumerator
FONT_TYPE_TOY | The font was created using cairo's toy font api.
FONT_TYPE_FT | The font is of type FreeType.
FONT_TYPE_WIN32 | The font is of type Win32.

FONT_TYPE_ATSUI

Deprecated:
  Use FONT_TYPE_QUARTZ instead.

FONT_TYPE_QUARTZ

The font is of type Quartz.

Since
  1.6

FONT_TYPE_USER

The font was created using cairo's user font api.

Since
  1.8

enum Cairo::FontWeight

Specifies variants of a font face based on their weight.

Enumerator
FONT_WEIGHT_NORMAL | Normal font weight.
FONT_WEIGHT_BOLD | Bold font weight.

enum Cairo::Format

Cairo::Format is used to identify the memory format of image data.

New entries may be added in future versions.

Enumerator
FORMAT_ARGB32 | Each pixel is a 32-bit quantity, with alpha in the upper 8 bits, then red, then green, then blue. The 32-bit quantities are stored native-endian. Pre-multiplied alpha is used. (That is, 50% transparent red is 0x80800000,
FORMAT_RGB24 | Each pixel is a 32-bit quantity, with the upper 8 bits unused. Red, Green, and Blue are stored in the remaining 24 bits in that order.
FORMAT_A8 | Each pixel is a 8-bit quantity holding an alpha value.
FORMAT_A1 | Each pikel is a 1-bit quentity holding an alpha value. Pixels are packed together into 32-bit quantities. The ordering of the bits matches the endianess of the platform. On a big-endian machine, the first pixel is in the uppermost bit, on a little endian machine the first pixel is in the least-significant bit.
FORMAT_RGB16_565 | Each fixel is a 16-bit quantity with red in the upper 5 bits, then green in the middle 6 bits, and blue in the lower 5 bits.

enum Cairo::FtSynthesize

A set of synthesis options to control how FreeType renders the glyphs for a particular font face.

FreeType provides the ability to synthesize different glyphs from a base font, which is useful if you lack those glyphs from a true bold or oblique font.

Individual synthesis features of a `FtFontFace` can be set using `FtFontFace::set_synthesize()`, or disabled using `FtFontFace::unset_synthesize()`. The currently enabled set of synthesis options can be queried with `FtFontFace::get_synthesize()`.

Note: that when synthesizing glyphs, the font metrics returned will only be estimates.

Since
  1.12

Enumerator
FT_SYNTHESIZE_BOLT | Embolden the glyphs (redraw with a pixel offset)
FT_SYNTHESIZE_OBLIQUE | Slant the glyph outline by 12 degrees to the right.

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 food 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

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

The default line cap style is Cairo::LINE_CAP_BUTT.

Enumerator
LINE_CAP_BUTT | Start(stop) the line exactly at the start(end) point.
LINE_CAP_ROUND | Use a round ending, the center of teh circle is teh end point.
LINE_CAP_SQUARE | Use squared ending, the center of teh square is the end point.

enum Cairo::LineJoin

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

The default line join style is Cairo::LINE_JOIN_MITER.

Enumerator
LINE_JOIN_MITER | Use a sharp (angled) corner, see Context::set_miter_limit()
LINE_JOIN_ROUND | Use a rounded join, the center of teh circle is the joint point.
LINE_JOIN_BEVEL | Use cut-off join, the join is cut off at half the line width from the join point.

enum Cairo::Operator

Cairo::Operator is used to set the compositing operator for all cairo drawing operations.

The default operator is Cairo::OPERATOR_OVER.

The operators marked as unbounded modify their destination even outside of the mask layer (that is, their effect is not bound by the mask layer). However, their effect can still be limited by way of clipping.

To keep things simple, the operator descriptions here document the behavior for when both source and destination are either fully transparent or fully opaque. The actual implementation works for translucent layers too. For a more detailed explanation of the effects of each operator, including the mathematical definitions, see this

Enumerator
OPERATOR_CLEAR | Clear destination layer (bounded)
OPERATOR_SOURCE | Replace destination layer (bounded)
OPERATOR_OVER | Draw source layer on top of destination layer (bounded)
OPERATOR_IN | Draw source where there was destination content (unbounded)
OPERATOR_OUT | Draw source where there was no destination content (unbounded)
OPERATOR_ATOP | Draw source on top of destination content and only there.
OPERATOR_DEST | Ignore the source.
OPERATOR_DEST_OVER | Draw destination on top of source.
OPERATOR_DEST_IN | Leave destination only where there was source content (unbounded)
OPERATOR_DEST_OUT | Leave destination only where there was no source content.
OPERATOR_DEST_ATOP | Leave destination on top of source content and only there (unbounded)
OPERATOR_XOR | Source and destination are shown where there is only one of them.
OPERATOR_ADD | Source and destination layers are accumulated.
OPERATOR_SATURATE | Like over, but assuming source and dest are disjoint geometries.

enum Cairo::PatternType

Cairo::PatternType is used to describe the type of a given pattern.

The pattern type can be queried with Pattern::get_type().

New entries may be added in future versions.

Since
  1.2

Enumerator
PATTERN_TYPE_SOLID | The pattern is a solid (uniform) color. It may be opaque or translucent.
PATTERN_TYPE_SURFACE | The pattern is a based on a surface (an image)
PATTERN_TYPE_LINEAR | The pattern is a linear gradient.
PATTERN_TYPE_RADIAL | The pattern is a radial gradient.

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 Cairo::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

Cairo::SurfaceType is used to describe the type of a given surface.

The surface types are also known as "backends" or "surface backends" within cairo.

The surface type can be queried with Surface::get_type()

The various Cairo::Surface functions can be used with surfaces of any type, but some backends also provide type-specific functions that must only be called with a surface of the appropriate type.

New entries may be added in future versions.

Since
  1.2

Enumerator
SURFACE_TYPE_IMAGE | The surface is of type image.
SURFACE_TYPE_PDF | The surface is of type pdf.
SURFACE_TYPE_PS | The surface is of type ps.
SURFACE_TYPE_XLIB | The surface is of type xlim.
SURFACE_TYPE_XCB | The surface is of type xcb.
SURFACE_TYPE_GLITZ | The surface is of type glitz.
SURFACE_TYPE_QUARTZ | The surface is of type quartz.
SURFACE_TYPE_WIN32 | The surface is of type win32.
SURFACE_TYPE_BEOS | The surface is of type beos.
SURFACE_TYPE_DIRECTFB | The surface is of type directfb.
SURFACE_TYPE_SVG | The surface is of type svg.
SURFACE_TYPE_OS2 | The surface is of type os2.
SURFACE_TYPE_WIN32_PRINTING | The surface is a win32 printing surface.
SURFACE_TYPE_QUARTZ_IMAGE | The surface is of type quartz_image.

SURFACE_TYPE_SCRIPT

The surface is of type script.

Since
  1.10

SURFACE_TYPE_QT

The surface is of type Qt.

Since
  1.10

SURFACE_TYPE_RECORDING

The surface is of type recording.

Since
  1.10

SURFACE_TYPE_VG

The surface is a OpenVg surface.

Since
  1.10

SURFACE_TYPE_GL

The surface is of type OpenGl.

Since
  1.10

SURFACE_TYPE_DRM

The surface is of type Direct Render Manager.

Since
  1.10

SURFACE_TYPE_TEE

The surface is of type script 'tee' (a multiplexing surface)

Since
  1.10

SURFACE_TYPE_XML

The surface is of type XML (for debugging)

Since
  1.10

SURFACE_TYPE_SKIA

The surface is of type Skia.

Since
  1.10

SURFACE_TYPE_SUBSURFACE

The surface is of type The surface is a subsurface created with Surface::create()

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.

## Function Documentation

FtSynthesize Cairo::operator& | ( | FtSynthesize | a,
|  | FtSynthesize | b
| ) |  |

inline

FtSynthesize Cairo::operator| | ( | FtSynthesize | a,
|  | FtSynthesize | b
| ) |  |

inline