### Constructor

# Gsk.Renderer.new_for_surface

#### Declaration [src]

    GskRenderer*
    gsk_renderer_new_for_surface (
      GdkSurface* surface
    )

#### Description [src]

Creates an appropriate `GskRenderer` instance for the given `surface`.

If the `GSK_RENDERER` environment variable is set, GSK will try that renderer first, before trying the backend-specific default. The ultimate fallback is the cairo renderer.

The renderer will be realized before it is returned.

#### Parameters

`surface` | `GdkSurface*`
| a `GdkSurface`
| Ownership is not transferred to the callee

#### Return value

Returns: `GskRenderer`
a `GskRenderer`
Ownership of the data is transferred to the caller
Can be `NULL`