Enum cairo_operator_t
cairo_operator_t
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 http://cairographics.org/operators/.
The enum base type is
int
.
Enum members
Name | Description |
---|---|
CAIRO_OPERATOR_ADD
|
source and destination layers are accumulated |
CAIRO_OPERATOR_ATOP
|
draw source on top of destination content and only there |
CAIRO_OPERATOR_CLEAR
|
clear destination layer (bounded) |
CAIRO_OPERATOR_COLOR_BURN
|
darkens the destination color to reflect the source color. |
CAIRO_OPERATOR_COLOR_DODGE
|
brightens the destination color to reflect the source color. |
CAIRO_OPERATOR_DARKEN
|
replaces the destination with the source if it is darker, otherwise keeps the source. |
CAIRO_OPERATOR_DEST
|
ignore the source |
CAIRO_OPERATOR_DEST_ATOP
|
leave destination on top of source content and only there (unbounded) |
CAIRO_OPERATOR_DEST_IN
|
leave destination only where there was source content (unbounded) |
CAIRO_OPERATOR_DEST_OUT
|
leave destination only where there was no source content |
CAIRO_OPERATOR_DEST_OVER
|
draw destination on top of source |
CAIRO_OPERATOR_DIFFERENCE
|
Takes the difference of the source and destination color. |
CAIRO_OPERATOR_EXCLUSION
|
Produces an effect similar to difference, but with lower contrast. |
CAIRO_OPERATOR_HARD_LIGHT
|
Multiplies or screens, dependant on source color. |
CAIRO_OPERATOR_HSL_COLOR
|
Creates a color with the hue and saturation of the source and the luminosity of the target. This preserves the gray levels of the target and is useful for coloring monochrome images or tinting color images. |
CAIRO_OPERATOR_HSL_HUE
|
Creates a color with the hue of the source and the saturation and luminosity of the target. |
CAIRO_OPERATOR_HSL_LUMINOSITY
|
Creates a color with the luminosity of
the source and the hue and saturation of the target. This produces an
inverse effect to CAIRO_OPERATOR_HSL_COLOR .
|
CAIRO_OPERATOR_HSL_SATURATION
|
Creates a color with the saturation of the source and the hue and luminosity of the target. Painting with this mode onto a gray area prduces no change. |
CAIRO_OPERATOR_IN
|
draw source where there was destination content (unbounded) |
CAIRO_OPERATOR_LIGHTEN
|
replaces the destination with the source if it is lighter, otherwise keeps the source. |
CAIRO_OPERATOR_MULTIPLY
|
source and destination layers are multiplied. This causes the result to be at least as dark as the darker inputs. |
CAIRO_OPERATOR_OUT
|
draw source where there was no destination content (unbounded) |
CAIRO_OPERATOR_OVER
|
draw source layer on top of destination layer (bounded) |
CAIRO_OPERATOR_OVERLAY
|
multiplies or screens, depending on the lightness of the destination color. |
CAIRO_OPERATOR_SATURATE
|
like over, but assuming source and dest are disjoint geometries |
CAIRO_OPERATOR_SCREEN
|
source and destination are complemented and multiplied. This causes the result to be at least as light as the lighter inputs. |
CAIRO_OPERATOR_SOFT_LIGHT
|
Darkens or lightens, dependant on source color. |
CAIRO_OPERATOR_SOURCE
|
replace destination layer (bounded) |
CAIRO_OPERATOR_XOR
|
source and destination are shown where there is only one of them |
Authors
Johannes Pfau | cairoD |
cairo team | cairo |
Copyright
License
cairoD wrapper/bindings | Boost License 1.0 |
cairo | LGPL 2.1 / MPL 1.1 |