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)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.