Clutter Wiki

Views
From ClutterProject
Jump to: navigation, search

Support for multiple backends

Proposal

Clutter currently compiles a single backend, and uses different shared object names for each different backend.

In theory, it should be possible to compile multiple backends in the same shared object, e.g.:

* X11 with EGLX and GLX (using Mesa)
* EGL native for PowerVR, Intel CE, AMD and Mesa

The backend to be used should be selectable once, at execution time; possibly, using an environment variable, e.g.:

  CLUTTER_BACKEND=egl-x11 ./test-actors
  CLUTTER_BACKEND=glx-x11 ./test-actors

Side effects

A new shared object name should be devised; also, it should be possible to have shared objects still available with a specific default backend, e.g.:

  libclutter-glx-1.0.so.0  → libclutter-gl-1.0.so.0 + CLUTTER_BACKEND=glx
  libclutter-eglx-1.0.so.0 → libclutter-gles-1.0.so.0 + CLUTTER_BACKEND=eglx

to avoid breaking existing applications.

Personal tools