if (generic_src->backend == &cairo_pdf_surface_backend) { src = (cairo_pdf_surface_t *) generic_src; return _cairo_pdf_surface_composite_pdf (dst, src, width, height); } else { image = _cairo_surface_get_image (generic_src); return _cairo_pdf_surface_composite_image (dst, image); }
if (mask_pattern) return CAIRO_STATUS_SUCCESS;  if (src_pattern->type != CAIRO_PATTERN_SURFACE) return CAIRO_STATUS_SUCCESS;  if (src->surface->backend == &cairo_pdf_surface_backend) return _cairo_pdf_surface_composite_pdf (dst, src); else return _cairo_pdf_surface_composite_image (dst, src);
_cairo_pdf_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_pdf_surface_t *dst = abstract_dst;    cairo_pdf_surface_t *src;    cairo_image_surface_t *image;    if (generic_src->backend == &cairo_pdf_surface_backend) {	src = (cairo_pdf_surface_t *) generic_src;	return _cairo_pdf_surface_composite_pdf (dst, src, width, height);    }    else {	image = _cairo_surface_get_image (generic_src);	return _cairo_pdf_surface_composite_image (dst, image);    }}