other. Generally, the new
surface will also use the same backend as other, unless that is
not possible for some reason. The type of the returned surface may
be examined with cairoSurfaceGetType.cairoSurfaceCreateSimilar(other, content, width, height)otherCairoSurface] an existing surface used to select the backend of the new surfacecontentCairoContent] the content for the new surfacewidthheightCairoSurface] a pointer to the newly allocated surface. The caller
owns the surface and should call cairoSurfaceDestroy 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.