Gdk.Surface.create_similar_surface

### Method

# Gdk Surfacecreate_similar_surface

#### Declaration [src]

    cairo_surface_t*
    gdk_surface_create_similar_surface (
      GdkSurface* surface,
      cairo_content_t content,
      int width,
      int height
    )

#### Description [src]

Create a new Cairo surface that is as compatible as possible with the given `surface`.

For example the new surface will have the same fallback resolution and font options as `surface`. Generally, the new surface will also use the same backend as `surface`, unless that is not possible for some reason. The type of the returned surface may be examined with cairo_surface_get_type().

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

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.

#### Parameters

`content`

  Type: `cairo_content_t`

  The content for the new surface.

`width`

  Type: `int`

  Width of the new surface.

`height`

  Type: `int`

  Height of the new surface.

#### Return value

Type: `cairo_surface_t`

A pointer to the newly allocated surface. The caller owns the surface and should call `cairo_surface_destroy()` when done with it.

The caller of the method takes ownership of the data, and is responsible for freeing it.