Exemplo n.º 1
0
static cairo_bool_t
recording_pattern_contains_sample (const cairo_pattern_t *pattern,
				   const cairo_rectangle_int_t *sample)
{
    cairo_recording_surface_t *surface;

    if (! is_recording_pattern (pattern))
	return FALSE;

    if (pattern->extend == CAIRO_EXTEND_NONE)
	return TRUE;

    surface = (cairo_recording_surface_t *) unwrap_surface (pattern);
    if (surface->unbounded)
	return TRUE;

    if (sample->x >= surface->extents.x &&
	sample->y >= surface->extents.y &&
	sample->x + sample->width <= surface->extents.x + surface->extents.width &&
	sample->y + sample->height <= surface->extents.y + surface->extents.height)
    {
	return TRUE;
    }

    return FALSE;
}
Exemplo n.º 2
0
static cairo_bool_t
recording_pattern_contains_sample (const cairo_pattern_t *pattern,
				   const cairo_rectangle_int_t *sample)
{
    cairo_recording_surface_t *surface;

    if (! is_recording_pattern (pattern))
	return FALSE;

    if (pattern->extend == CAIRO_EXTEND_NONE)
	return TRUE;

    surface = (cairo_recording_surface_t *) unwrap_source (pattern);
    if (surface->unbounded)
	return TRUE;

    return _cairo_rectangle_contains_rectangle (&surface->extents, sample);
}