Create a new surface that is as compatible as possible with the given window. For example the new surface will have the same fallback resolution and font options as window. Generally, the new surface will also use the same backend as window, unless that is not possible for some reason. The type of the returned surface may be examined with Surface.getType.

Initially the surface contents are all 0 (transparent if contents have transparency, black otherwise.)

class Window


content cairo_content_t

the content for the new surface

width int

width of the new surface

height int

height of the new surface

Return Value

Type: Surface

a pointer to the newly allocated surface. The caller owns the surface and should call 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.