window to make new surface similar to, or NULL if none
the format for the new surface. [type int]
width of the new surface
height of the new surface
the scale of the new surface, or 0 to use same as window
a pointer to the newly allocated surface. The caller owns the surface and should call cairo_surface_destroy() when done with it. This function always returns a valid pointer, but it will return a pointer to a "nil" surface if other is already in an error state or any other error occurs. Since 3.10
Create a new image surface that is efficient to draw on the given window. Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)