## ClutterBackend

ClutterBackend — Backend abstraction

## Synopsis

    ClutterBackend *    clutter_get_default_backend         (void);
    void                clutter_backend_set_resolution      (ClutterBackend *backend,
                                                             gdouble dpi);
    gdouble             clutter_backend_get_resolution      (ClutterBackend *backend);
    void                clutter_backend_set_double_click_time
                                                            (ClutterBackend *backend,
                                                             guint msec);
    guint               clutter_backend_get_double_click_time
                                                            (ClutterBackend *backend);
    void                clutter_backend_set_double_click_distance
                                                            (ClutterBackend *backend,
                                                             guint distance);
    guint               clutter_backend_get_double_click_distance
                                                            (ClutterBackend *backend);
    void                clutter_backend_set_font_options    (ClutterBackend *backend,
                                                             const cairo_font_options_t *options);
    const cairo_font_options_t * clutter_backend_get_font_options
                                                            (ClutterBackend *backend);
    void                clutter_backend_set_font_name       (ClutterBackend *backend,
                                                             const gchar *font_name);
    const gchar *       clutter_backend_get_font_name       (ClutterBackend *backend);

## Description

Clutter can be compiled against different backends. Each backend has to implement a set of functions, in order to be used by Clutter.

ClutterBackend is the base class abstracting the various implementation; it provides a basic API to query the backend for generic information and settings.

ClutterBackend is available since Clutter 0.4

## Details

### clutter_get_default_backend ()

    ClutterBackend *    clutter_get_default_backend         (void);

Retrieves the default ClutterBackend used by Clutter. The ClutterBackend holds backend-specific configuration options.

Returns : | transfer none. transfer none.

Since 0.4

### clutter_backend_set_resolution ()

    void                clutter_backend_set_resolution      (ClutterBackend *backend,
                                                             gdouble dpi);

Sets the resolution for font handling on the screen. This is a scale factor between points specified in a PangoFontDescription and cairo units. The default value is 96, meaning that a 10 point font will be 13 units high. (10 * 96. / 72. = 13.3).

Applications should never need to call this function.

`backend` : | a ClutterBackend
`dpi` : | the resolution in "dots per inch" (Physical inches aren't actually involved; the terminology is conventional).

Since 0.4

### clutter_backend_get_resolution ()

    gdouble             clutter_backend_get_resolution      (ClutterBackend *backend);

Gets the resolution for font handling on the screen; see `clutter_backend_set_resolution()` for full details.

`backend` : | a ClutterBackend
Returns : | the current resolution, or -1 if no resolution has been set.

Since 0.4

### clutter_backend_set_double_click_time ()

    void                clutter_backend_set_double_click_time
                                                            (ClutterBackend *backend,
                                                             guint msec);

Sets the maximum time between two button press events, used to verify whether it's a double click event or not.

`backend` : | a ClutterBackend
`msec` : | milliseconds between two button press events

Since 0.4

### clutter_backend_get_double_click_time ()

    guint               clutter_backend_get_double_click_time
                                                            (ClutterBackend *backend);

Gets the maximum time between two button press events, as set by `clutter_backend_set_double_click_time()`.

`backend` : | a ClutterBackend
Returns : | a time in milliseconds

Since 0.4

### clutter_backend_set_double_click_distance ()

    void                clutter_backend_set_double_click_distance
                                                            (ClutterBackend *backend,
                                                             guint distance);

Sets the maximum distance used to verify a double click event.

`backend` : | a ClutterBackend
`distance` : | a distance, in pixels

Since 0.4

### clutter_backend_get_double_click_distance ()

    guint               clutter_backend_get_double_click_distance
                                                            (ClutterBackend *backend);

Retrieves the distance used to verify a double click event

`backend` : | a ClutterBackend
Returns : | a distance, in pixels.

Since 0.4

### clutter_backend_set_font_options ()

    void                clutter_backend_set_font_options    (ClutterBackend *backend,
                                                             const cairo_font_options_t *options);

Sets the new font options for `backend`. The ClutterBackend will copy the cairo_font_options_t.

If `options` is `NULL`, the first following call to `clutter_backend_get_font_options()` will return the default font options for `backend`.

This function is intended for actors creating a Pango layout using the PangoCairo API.

`backend` : | a ClutterBackend
`options` : | Cairo font options for the backend, or `NULL`

Since 0.8

### clutter_backend_get_font_options ()

    const cairo_font_options_t * clutter_backend_get_font_options
                                                            (ClutterBackend *backend);

Retrieves the font options for `backend`.

`backend` : | a ClutterBackend
Returns : | transfer none. transfer none.

Since 0.8

### clutter_backend_set_font_name ()

    void                clutter_backend_set_font_name       (ClutterBackend *backend,
                                                             const gchar *font_name);

Sets the default font to be used by Clutter. The `font_name` string must either be `NULL`, which means that the font name from the default ClutterBackend will be used; or be something that can be parsed by the `pango_font_description_from_string()` function.

`backend` : | a ClutterBackend
`font_name` : | the name of the font

Since 1.0

### clutter_backend_get_font_name ()

    const gchar *       clutter_backend_get_font_name       (ClutterBackend *backend);

Retrieves the default font name as set by `clutter_backend_set_font_name()`.

`backend` : | a ClutterBackend
Returns : | the font name for the backend. The returned string is owned by the ClutterBackend and should never be modified or freed

Since 1.0