### ----------------------------------------------------
### -- Gnome::Cairo
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman
### -- File: lib/Gnome/Cairo/Enums.rakumod
### ----------------------------------------------------
### -- Chunk 3 of 3
_GLITZ',
  'CAIRO_SURFACE_TYPE_QUARTZ',
  'CAIRO_SURFACE_TYPE_WIN32',
  'CAIRO_SURFACE_TYPE_BEOS',
  'CAIRO_SURFACE_TYPE_DIRECTFB',
  'CAIRO_SURFACE_TYPE_SVG',
  'CAIRO_SURFACE_TYPE_OS2',
  'CAIRO_SURFACE_TYPE_WIN32_PRINTING',
  'CAIRO_SURFACE_TYPE_QUARTZ_IMAGE',
  'CAIRO_SURFACE_TYPE_SCRIPT',
  'CAIRO_SURFACE_TYPE_QT',
  'CAIRO_SURFACE_TYPE_RECORDING',
  'CAIRO_SURFACE_TYPE_VG',
  'CAIRO_SURFACE_TYPE_GL',
  'CAIRO_SURFACE_TYPE_DRM',
  'CAIRO_SURFACE_TYPE_TEE',
  'CAIRO_SURFACE_TYPE_XML',
  'CAIRO_SURFACE_TYPE_SKIA',
  'CAIRO_SURFACE_TYPE_SUBSURFACE',
  'CAIRO_SURFACE_TYPE_COGL'
);

#-------------------------------------------------------------------------------
=begin pod
=head2 enum cairo_pattern_type_t

B<cairo_pattern_type_t> is used to describe the type of a given pattern. The type of a pattern is determined by the function used to create it. The C<cairo_pattern_create_rgb()> and C<cairo_pattern_create_rgba()> functions create SOLID patterns. The remaining cairo_pattern_create functions map to pattern types in obvious ways. The pattern type can be queried with C<cairo_pattern_get_type()> Most B<cairo_pattern_type_t> functions can be called with a pattern of any type, (though trying to change the extend or filter for a solid pattern will have no effect). A notable exception is C<cairo_pattern_add_color_stop_rgb()> and C<cairo_pattern_add_color_stop_rgba()> which must only be called with gradient patterns (either LINEAR or RADIAL). Otherwise the pattern will be shutdown and put into an error state. New entries may be added in future versions.


=item CAIRO_PATTERN_TYPE_SOLID: The pattern is a solid (uniform) color. It may be opaque or translucent.
=item CAIRO_PATTERN_TYPE_SURFACE: The pattern is a based on a surface (an image).
=item CAIRO_PATTERN_TYPE_LINEAR: The pattern is a linear gradient.
=item CAIRO_PATTERN_TYPE_RADIAL: The pattern is a radial gradient.
=item CAIRO_PATTERN_TYPE_MESH: The pattern is a mesh.
=item CAIRO_PATTERN_TYPE_RASTER_SOURCE: The pattern is a user pattern providing raster data.


=end pod

#TE:1:cairo_pattern_type_t:
enum cairo_pattern_type_t is export (
  'CAIRO_PATTERN_TYPE_SOLID',
  'CAIRO_PATTERN_TYPE_SURFACE',
  'CAIRO_PATTERN_TYPE_LINEAR',
  'CAIRO_PATTERN_TYPE_RADIAL',
  'CAIRO_PATTERN_TYPE_MESH',
  'CAIRO_PATTERN_TYPE_RASTER_SOURCE'
);

#-------------------------------------------------------------------------------
=begin pod
=head2 enum cairo_extend_t

B<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). Mesh patterns are not affected by the extend mode. The default extend mode is C<CAIRO_EXTEND_NONE> for surface patterns and C<CAIRO_EXTEND_PAD> for gradient patterns. New entries may be added in future versions.


=item CAIRO_EXTEND_NONE: pixels outside of the source pattern are fully transparent
=item CAIRO_EXTEND_REPEAT: the pattern is tiled by repeating
=item CAIRO_EXTEND_REFLECT: the pattern is tiled by reflecting at the edges
=item CAIRO_EXTEND_PAD: pixels outside of the pattern copy the closest pixel from the source


=end pod

#TE:0:cairo_extend_t:
enum cairo_extend_t is export (
  'CAIRO_EXTEND_NONE',
  'CAIRO_EXTEND_REPEAT',
  'CAIRO_EXTEND_REFLECT',
  'CAIRO_EXTEND_PAD'
);

#-------------------------------------------------------------------------------
=begin pod
=head2 enum cairo_filter_t

B<cairo_filter_t> is used to indicate what filtering should be applied when reading pixel values from patterns. See C<cairo_pattern_set_filter()> for indicating the desired filter to be used with a particular pattern.


=item CAIRO_FILTER_FAST: A high-performance filter, with quality similar to C<CAIRO_FILTER_NEAREST>
=item CAIRO_FILTER_GOOD: A reasonable-performance filter, with quality similar to C<CAIRO_FILTER_BILINEAR>
=item CAIRO_FILTER_BEST: The highest-quality available, performance may not be suitable for interactive use.
=item CAIRO_FILTER_NEAREST: Nearest-neighbor filtering
=item CAIRO_FILTER_BILINEAR: Linear interpolation in two dimensions
=item CAIRO_FILTER_GAUSSIAN: This filter value is currently unimplemented, and should not be used in current code.


=end pod

#TE:0:cairo_filter_t:
enum cairo_filter_t is export (
  'CAIRO_FILTER_FAST',
  'CAIRO_FILTER_GOOD',
  'CAIRO_FILTER_BEST',
  'CAIRO_FILTER_NEAREST',
  'CAIRO_FILTER_BILINEAR',
  'CAIRO_FILTER_GAUSSIAN'
);

#-------------------------------------------------------------------------------
=begin pod
=head2 enum cairo_region_overlap_t

Used as the return value for C<cairo_region_contains_rectangle()>.


=item CAIRO_REGION_OVERLAP_IN: The contents are entirely inside the region.
=item CAIRO_REGION_OVERLAP_OUT: The contents are entirely outside the region.
=item CAIRO_REGION_OVERLAP_PART: The contents are partially inside and partially outside the region.


=end pod

#TE:0:cairo_region_overlap_t:
enum cairo_region_overlap_t is export (
  'CAIRO_REGION_OVERLAP_IN', 'CAIRO_REGION_OVERLAP_OUT',
  'CAIRO_REGION_OVERLAP_PART'
);


