ClutterBackend

ClutterBackend — Backend abstraction

Signals

void font-changed Run First
void resolution-changed Run First
void settings-changed Run First

Types and Values

Object Hierarchy

    GObject
    ╰── ClutterBackend

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

Functions

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

the default backend. You should not ref or unref the returned object. Applications should rarely need to use this.

[transfer none]

Since: 0.4


clutter_backend_set_resolution ()

void
clutter_backend_set_resolution (ClutterBackend *backend,
                                gdouble dpi);

clutter_backend_set_resolution has been deprecated since version 1.4 and should not be used in newly-written code.

Use “font-dpi” instead

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.

Parameters

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.

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

Clutter will set the resolution using the current backend when initializing; the resolution is also stored in the “font-dpi” property.

Parameters

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

clutter_backend_set_double_click_time has been deprecated since version 1.4 and should not be used in newly-written code.

Use “double-click-time” instead

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

Parameters

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

clutter_backend_get_double_click_time has been deprecated since version 1.4 and should not be used in newly-written code.

Use “double-click-time” instead

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

Parameters

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

clutter_backend_set_double_click_distance has been deprecated since version 1.4 and should not be used in newly-written code.

Use “double-click-distance” instead

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

Parameters

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

clutter_backend_get_double_click_distance has been deprecated since version 1.4 and should not be used in newly-written code.

Use “double-click-distance” instead

Retrieves the distance used to verify a double click event

Parameters

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.

Parameters

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 .

Parameters

backend

a ClutterBackend

 

Returns

the font options of the ClutterBackend. The returned cairo_font_options_t is owned by the backend and should not be modified or freed.

[transfer none]

Since: 0.8


clutter_backend_set_font_name ()

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

clutter_backend_set_font_name has been deprecated since version 1.4 and should not be used in newly-written code.

Use “font-name” instead

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.

Parameters

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

clutter_backend_get_font_name has been deprecated since version 1.4 and should not be used in newly-written code.

Use “font-name” instead

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

Parameters

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


clutter_backend_get_cogl_context ()

CoglContext *
clutter_backend_get_cogl_context (ClutterBackend *backend);

Retrieves the CoglContext associated with the given clutter backend . A CoglContext is required when using some of the experimental 2.0 Cogl API.

Since CoglContext is itself experimental API this API should be considered experimental too.

This API is not yet supported on OSX because OSX still uses the stub Cogl winsys and the Clutter backend doesn't explicitly create a CoglContext.

Parameters

backend

a ClutterBackend

 

Returns

The CoglContext associated with backend .

[transfer none]

Since: 1.8

Stability Level: Unstable


clutter_check_windowing_backend ()

gboolean
clutter_check_windowing_backend (const char *backend_type);

Checks the run-time name of the Clutter windowing system backend, using the symbolic macros like CLUTTER_WINDOWING_WIN32 or CLUTTER_WINDOWING_X11.

This function should be used in conjuction with the compile-time macros inside applications and libraries that are using the platform-specific windowing system API, to ensure that they are running on the correct windowing system; for instance:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#ifdef CLUTTER_WINDOWING_X11
  if (clutter_check_windowing_backend (CLUTTER_WINDOWING_X11))
    {
      // it is safe to use the clutter_x11_* API
    }
  else
#endif
#ifdef CLUTTER_WINDOWING_WIN32
  if (clutter_check_windowing_backend (CLUTTER_WINDOWING_WIN32))
    {
      // it is safe to use the clutter_win32_* API
    }
  else
#endif
    g_error ("Unknown Clutter backend.");

Parameters

backend_type

the name of the backend to check

 

Returns

TRUE if the current Clutter windowing system backend is the one checked, and FALSE otherwise

Since: 1.10


clutter_set_windowing_backend ()

void
clutter_set_windowing_backend (const char *backend_type);

Restricts Clutter to only use the specified backend or list of backends.

You can use one of the CLUTTER_WINDOWING_* symbols, e.g.

1
clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);

Will force Clutter to use the X11 windowing and input backend, and terminate if the X11 backend could not be initialized successfully.

Since Clutter 1.26, you can also use a comma-separated list of windowing system backends to provide a fallback in case backends are not available or enabled, e.g.:

1
clutter_set_windowing_backend ("gdk,wayland,x11");

Will make Clutter test for the GDK, Wayland, and X11 backends in that order.

You can use the * special value to ask Clutter to use the internally defined list of backends. For instance:

1
clutter_set_windowing_backend ("x11,wayland,*");

Will make Clutter test the X11 and Wayland backends, and then fall back to the internal list of available backends.

This function must be called before the first API call to Clutter, including clutter_get_option_context()

Parameters

backend_type

a comma separated list of windowing backends

 

Since: 1.16

Types and Values

ClutterBackend

typedef struct _ClutterBackend ClutterBackend;

ClutterBackend is an opaque structure whose members cannot be directly accessed.

Since: 0.4

Signal Details

The “font-changed” signal

void
user_function (ClutterBackend *backend,
               gpointer        user_data)

The ::font-changed signal is emitted each time the font options have been changed through ClutterSettings.

Parameters

backend

the ClutterBackend that emitted the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First

Since: 1.0


The “resolution-changed” signal

void
user_function (ClutterBackend *backend,
               gpointer        user_data)

The ::resolution-changed signal is emitted each time the font resolutions has been changed through ClutterSettings.

Parameters

backend

the ClutterBackend that emitted the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First

Since: 1.0


The “settings-changed” signal

void
user_function (ClutterBackend *backend,
               gpointer        user_data)

The ::settings-changed signal is emitted each time the ClutterSettings properties have been changed.

Parameters

backend

the ClutterBackend that emitted the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run First

Since: 1.4