## EGL Specific Support

EGL Specific Support — EGL specific API

## Functions

EGLDisplay | clutter_egl_display ()
EGLDisplay | clutter_eglx_display ()
EGLDisplay | clutter_egl_get_egl_display ()
void | clutter_egl_set_kms_fd ()
void | clutter_egl_freeze_master_clock ()
void | clutter_egl_thaw_master_clock ()

## Description

The EGL backend for Clutter provides some EGL specific API

You need to include `clutter-egl.h` to have access to the functions documented here.

## Functions

### clutter_egl_display ()

    EGLDisplay
    clutter_egl_display (void);

`clutter_egl_display` has been deprecated since version 1.6 and should not be used in newly-written code.

Use `clutter_egl_get_egl_display()` instead

Retrieves the EGLDisplay used by Clutter

#### Returns

the EGL display

Since: 0.6

### clutter_eglx_display ()

    EGLDisplay
    clutter_eglx_display (void);

`clutter_eglx_display` has been deprecated since version 1.6 and should not be used in newly-written code.

Use `clutter_egl_get_egl_display()` instead

Retrieves the EGLDisplay used by Clutter, if Clutter has been compiled with EGL and X11 support.

#### Returns

the EGL display

Since: 0.4

### clutter_egl_get_egl_display ()

    EGLDisplay
    clutter_egl_get_egl_display (void);

Retrieves the EGLDisplay used by Clutter.

#### Returns

the EGL display

Since: 1.6

### clutter_egl_set_kms_fd ()

    void
    clutter_egl_set_kms_fd (int fd);

Sets the fd that Cogl should use to talk to the kms driver. Setting this to a negative value effectively reverts this call, making Cogl open the device itself.

This can only be called before `clutter_init()` is called.

#### Parameters

fd | The fd to talk to the kms driver with |

Since: 1.18

### clutter_egl_freeze_master_clock ()

    void
    clutter_egl_freeze_master_clock (void);

Freezing the master clock makes Clutter stop processing events, redrawing, and advancing timelines. This is necessary when implementing a display server, to ensure that Clutter doesn't keep trying to page flip when DRM master has been dropped, e.g. when VT switched away.

The master clock starts out running, so if you are VT switched away on startup, you need to call this immediately.

If you're also using the evdev backend, make sure to also use `clutter_evdev_release_devices()` to make sure that Clutter doesn't also access revoked evdev devices when VT switched away.

To unthaw a frozen master clock, use `clutter_egl_thaw_master_clock()`.

Since: 1.20

### clutter_egl_thaw_master_clock ()

    void
    clutter_egl_thaw_master_clock (void);

Thaws a master clock that has previously been frozen with `clutter_egl_freeze_master_clock()`, and start pumping the master clock again at the next iteration. Note that if you're switching back to your own VT, you should probably also queue a stage redraw with `clutter_stage_ensure_redraw()`.

Since: 1.20

## Types and Values