third_party/cairo/src/cairo-raster-source-pattern.c
cairo_surface_t *
_cairo_raster_source_pattern_acquire (const cairo_pattern_t *abstract_pattern,
				      cairo_surface_t *target,
				      const cairo_rectangle_int_t *extents)
{
    cairo_raster_source_pattern_t *pattern =
	(cairo_raster_source_pattern_t *) abstract_pattern;

    if (pattern->acquire == NULL)
	return NULL;

    if (extents == NULL)
	extents = &pattern->extents;

    return pattern->acquire (&pattern->base, pattern->user_data,
			     target, extents);
}
/**
 * SECTION:cairo-raster-source
 * @Title: Raster Sources
 * @Short_Description: Supplying arbitrary image data
 * @See_Also: #cairo_pattern_t
 *
 * The raster source provides the ability to supply arbitrary pixel data
 * whilst rendering. The pixels are queried at the time of rasterisation
 * by means of user callback functions, allowing for the ultimate
 * flexibility. For example, in handling compressed image sources, you
 * may keep a MRU cache of decompressed images and decompress sources on the
 * fly and discard old ones to conserve memory.
 *
 * For the raster source to be effective, you must at least specify
 * the acquire and release callbacks which are used to retrieve the pixel
 * data for the region of interest and demark when it can be freed afterwards.
 * Other callbacks are provided for when the pattern is copied temporarily
 * during rasterisation, or more permanently as a snapshot in order to keep
 * the pixel data available for printing.
 **/
cairo-raster-source
@Title: Raster Sources
@Short_Description: Supplying arbitrary image data
@See_Also: #cairo_pattern_t

The raster source provides the ability to supply arbitrary pixel data
whilst rendering. The pixels are queried at the time of rasterisation
by means of user callback functions, allowing for the ultimate
flexibility. For example, in handling compressed image sources, you
may keep a MRU cache of decompressed images and decompress sources on the
fly and discard old ones to conserve memory.

For the raster source to be effective, you must at least specify
the acquire and release callbacks which are used to retrieve the pixel
data for the region of interest and demark when it can be freed afterwards.
Other callbacks are provided for when the pattern is copied temporarily
during rasterisation, or more permanently as a snapshot in order to keep
the pixel data available for printing.
cairo - raster - source @Title : Raster Sources @Short_Description : Supplying arbitrary image data @See_Also : #cairo_pattern_t The raster source provides the ability to supply arbitrary pixel data whilst rendering . The pixels are queried at the time of rasterisation by means of user callback functions allowing for the ultimate flexibility . For example in handling compressed image sources you may keep a MRU cache of decompressed images and decompress sources on the fly and discard old ones to conserve memory . For the raster source to be effective you must at least specify the acquire and release callbacks which are used to retrieve the pixel data for the region of interest and demark when it can be freed afterwards . Other callbacks are provided for when the pattern is copied temporarily during rasterisation or more permanently as a snapshot in order to keep the pixel data available for printing .
cairo_surface_t *
_cairo_raster_source_pattern_acquire (const cairo_pattern_t *abstract_pattern,
				      cairo_surface_t *target,
				      const cairo_rectangle_int_t *extents)
{
    cairo_raster_source_pattern_t *pattern =
	(cairo_raster_source_pattern_t *) abstract_pattern;
    if (pattern->acquire == NULL)
	return NULL;
    if (extents == NULL)
	extents = &pattern->extents;
    return pattern->acquire (&pattern->base, pattern->user_data,
			     target, extents);
}
cairo_surface_t * _cairo_raster_source_pattern_acquire ( const cairo_pattern_t * abstract_pattern , cairo_surface_t * target , const cairo_rectangle_int_t * extents ) { cairo_raster_source_pattern_t * pattern = ( cairo_raster_source_pattern_t * ) abstract_pattern ; if ( pattern -> acquire == NULL ) return NULL ; if ( extents == NULL ) extents = & pattern -> extents ; return pattern -> acquire ( & pattern -> base , pattern -> user_data , target , extents ) ; }
SECTION:cairo-raster-source
 @Title: Raster Sources
 @Short_Description: Supplying arbitrary image data
 @See_Also: #cairo_pattern_t
SECTION : cairo - raster - source @Title : Raster Sources @Short_Description : Supplying arbitrary image data @See_Also : #cairo_pattern_t