Ejemplo n.º 1
0
cairo_surface_t *
cairo_skia_surface_get_image (cairo_surface_t *surface)
{
    if (surface->type != CAIRO_SURFACE_TYPE_SKIA)
	return NULL;

    cairo_skia_surface_t *esurf = (cairo_skia_surface_t *) surface;
    return &_get_image_surface (esurf)->base;
}
Ejemplo n.º 2
0
static cairo_status_t
_cairo_skia_surface_acquire_source_image (void *asurface,
					  cairo_image_surface_t **image_out,
					  void **image_extra)
{
    cairo_skia_surface_t *surface = (cairo_skia_surface_t *) asurface;
    cairo_image_surface_t *image = _get_image_surface (surface);

    if (unlikely (image->base.status))
	return image->base.status;

    surface->bitmap->lockPixels ();

    *image_out = image;
    *image_extra = NULL;
    return CAIRO_STATUS_SUCCESS;
}
Ejemplo n.º 3
0
static cairo_status_t
_cairo_xcb_surface_acquire_source_image (void                    *abstract_surface,
					 cairo_image_surface_t  **image_out,
					 void                   **image_extra)
{
    cairo_xcb_surface_t *surface = abstract_surface;
    cairo_image_surface_t *image;
    cairo_status_t status;

    status = _get_image_surface (surface, NULL, &image, NULL);
    if (status)
	return status;

    *image_out = image;
    *image_extra = NULL;

    return CAIRO_STATUS_SUCCESS;
}
Ejemplo n.º 4
0
static cairo_status_t
_cairo_xcb_surface_acquire_dest_image (void                    *abstract_surface,
				       cairo_rectangle_int16_t *interest_rect,
				       cairo_image_surface_t  **image_out,
				       cairo_rectangle_int16_t *image_rect_out,
				       void                   **image_extra)
{
    cairo_xcb_surface_t *surface = abstract_surface;
    cairo_image_surface_t *image;
    cairo_status_t status;

    status = _get_image_surface (surface, interest_rect, &image, image_rect_out);
    if (status)
	return status;

    *image_out = image;
    *image_extra = NULL;

    return CAIRO_STATUS_SUCCESS;
}
Ejemplo n.º 5
0
static cairo_status_t
_cairo_skia_surface_acquire_dest_image (void *asurface,
					cairo_rectangle_int_t *interest_rect,
					cairo_image_surface_t **image_out,
					cairo_rectangle_int_t *image_rect,
					void **image_extra)
{
    cairo_skia_surface_t *surface = (cairo_skia_surface_t *) asurface;
    cairo_image_surface_t *image = _get_image_surface (surface);

    if (unlikely (image->base.status))
	return image->base.status;

    image_rect->x = 0;
    image_rect->y = 0;
    image_rect->width  = image->width;
    image_rect->height = image->height;

    surface->bitmap->lockPixels ();

    *image_out = image;
    *image_extra = NULL;
    return CAIRO_STATUS_SUCCESS;
}