cairo_image_surface_t *dst = abstract_dst; cairo_image_surface_t *src = (cairo_image_surface_t *) generic_src; cairo_image_surface_t *mask = (cairo_image_surface_t *) generic_mask;
cairo_surface_attributes_t	src_attr, mask_attr; cairo_image_surface_t	*dst = abstract_dst; cairo_image_surface_t	*src; cairo_image_surface_t	*mask; cairo_int_status_t		status;
_cairo_image_surface_composite (cairo_operator_t	operator,				cairo_surface_t		*generic_src,				cairo_surface_t		*generic_mask,				void			*abstract_dst,				int			src_x,				int			src_y,				int			mask_x,				int			mask_y,				int			dst_x,				int			dst_y,				unsigned int		width,				unsigned int		height){    cairo_image_surface_t *dst = abstract_dst;    cairo_image_surface_t *src = (cairo_image_surface_t *) generic_src;    cairo_image_surface_t *mask = (cairo_image_surface_t *) generic_mask;    if (generic_src->backend != dst->base.backend ||	(generic_mask && (generic_mask->backend != dst->base.backend)))    {	return CAIRO_INT_STATUS_UNSUPPORTED;    }    pixman_composite (_pixman_operator (operator),		      src->pixman_image,		      mask ? mask->pixman_image : NULL,		      dst->pixman_image,		      src_x, src_y,		      mask_x, mask_y,		      dst_x, dst_y,		      width, height);    return CAIRO_STATUS_SUCCESS;}