cairomm
1.16.1

Cairo::Pattern is the paint with which cairo draws. More...
#include <cairomm/pattern.h>
Public Types  
enum  Type { Type::SOLID = CAIRO_PATTERN_TYPE_SOLID, Type::SURFACE = CAIRO_PATTERN_TYPE_SURFACE, Type::LINEAR = CAIRO_PATTERN_TYPE_LINEAR, Type::RADIAL = CAIRO_PATTERN_TYPE_RADIAL } 
Type is used to describe the type of a given pattern. 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...  
typedef cairo_pattern_t  cobject 
Public Member Functions  
Pattern (cairo_pattern_t*cobject, bool has_reference=false)  
Create a C++ wrapper for the C instance. More...  
Pattern (const Pattern&)=delete  
Pattern&  operator= (const Pattern&)=delete 
virtual  ~Pattern () 
void  set_matrix (const Matrix& matrix) 
Sets the pattern's transformation matrix to . More...  
void  get_matrix (Matrix& matrix) const 
Returns the pattern's transformation matrix. More...  
Matrix  get_matrix () const 
Returns the pattern's transformation matrix. More...  
Type  get_type () const 
Returns the type of the pattern. More...  
void  set_extend (Extend extend) 
Sets the mode to be used for drawing outside the area of a pattern. More...  
Extend  get_extend () const 
Gets the current extend mode See Cairo::Extend for details on the semantics of each extend strategy. More...  
cobject*  cobj () 
const cobject*  cobj () const 
void  reference () const 
void  unreference () const 
Protected Member Functions  
Pattern ()  
Protected Attributes  
cobject*  m_cobject 
Cairo::Pattern is the paint with which cairo draws.
The primary use of patterns is as the source for all cairo drawing operations, although they can also be used as masks, that is, as the brush too.
This is a referencecounted object that should be used via Cairo::RefPtr.
typedef cairo_pattern_t Cairo::Pattern::cobject 

strong 
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::Pattern::Extend::NONE for surface patterns and Cairo::Pattern::Extend::PAD for gradient patterns.
New entries may be added in future versions.

strong 
Type 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.

explicit 
Create a C++ wrapper for the C instance.
This C++ instance should then be given to a RefPtr.
cobject  The C instance. 
has_reference  Whether we already have a reference. Otherwise, the constructor will take an extra reference. 

delete 

virtual 

protected 

inline 

inline 
Extend Cairo::Pattern::get_extend  (  )  const 
Gets the current extend mode See Cairo::Extend for details on the semantics of each extend strategy.
void Cairo::Pattern::get_matrix  (  Matrix&  matrix  )  const 
Returns the pattern's transformation matrix.
Matrix Cairo::Pattern::get_matrix  (  )  const 
Returns the pattern's transformation matrix.
Type Cairo::Pattern::get_type  (  )  const 
Returns the type of the pattern.
void Cairo::Pattern::reference  (  )  const 
void Cairo::Pattern::set_extend  (  Extend  extend  ) 
Sets the mode to be used for drawing outside the area of a pattern.
See Cairo::Extend for details on the semantics of each extend strategy.
The default extend mode is Cairo::Pattern::Extend::NONE for surface patterns and Cairo::Pattern::Extend::PAD for gradient patterns.
Cairo::Extend  describing how the area outsize of the pattern will be drawn 
void Cairo::Pattern::set_matrix  (  const Matrix&  matrix  ) 
Sets the pattern's transformation matrix to .
This matrix is a transformation from user space to pattern space.
When a pattern is first created it always has the identity matrix for its transformation matrix, which means that pattern space is initially identical to user space.
Important: Please note that the direction of this transformation matrix is from user space to pattern space. This means that if you imagine the flow from a pattern to user space (and on to device space), then coordinates in that flow will be transformed by the inverse of the pattern matrix.
For example, if you want to make a pattern appear twice as large as it does by default the correct code to use is:
Meanwhile, using values of 2.0 rather than 0.5 in the code above would cause the pattern to appear at half of its default size.
Also, please note the discussion of the userspace locking semantics of set_source().
void Cairo::Pattern::unreference  (  )  const 

protected 