surface->context	    = context;  surface->width	    = width; surface->height	    = height;  surface->image	    = NULL;  surface->cgImage	    = NULL;    surface->image	    = _cairo_quartz_surface_get_image(surface);   return (cairo_surface_t *)surface;
surface->context = context; surface->width = width; surface->height = height; surface->image = NULL; surface->cgImage = NULL;   void *foo; _cairo_quartz_surface_acquire_source_image(surface, &surface->image, &foo);  return (cairo_surface_t *) surface;
cairo_quartz_surface_create(	CGContextRef    context,				int		width,				int		height){    cairo_quartz_surface_t *surface;            surface = malloc(sizeof(cairo_quartz_surface_t));    if (surface == NULL)        return NULL;        _cairo_surface_init(&surface->base, &cairo_quartz_surface_backend);            surface->context	    = context;        surface->width	    = width;    surface->height	    = height;        surface->image	    = NULL;        surface->cgImage	    = NULL;            // Set up the image surface which Cairo draws into and we blit to & from.     surface->image	    = _cairo_quartz_surface_get_image(surface);            return (cairo_surface_t *)surface;}