From 2ceff4ee9b3d9e94f6ad72ac4256786d0c5b62c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Mon, 9 May 2016 09:59:54 +0800 Subject: Create cogl renderer in MetaRenderer Instead of passing around the KMS file descriptor via clutter to cogl, just make our own clutter backend create the cogl renderer and set the KSM fd. https://bugzilla.gnome.org/show_bug.cgi?id=768976 --- src/backends/x11/meta-clutter-backend-x11.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/backends/x11/meta-clutter-backend-x11.c') diff --git a/src/backends/x11/meta-clutter-backend-x11.c b/src/backends/x11/meta-clutter-backend-x11.c index 3b4017778..a3b6a50ca 100644 --- a/src/backends/x11/meta-clutter-backend-x11.c +++ b/src/backends/x11/meta-clutter-backend-x11.c @@ -26,8 +26,11 @@ #include +#include "backends/meta-backend-private.h" +#include "backends/meta-renderer.h" #include "backends/x11/meta-clutter-backend-x11.h" #include "clutter/clutter.h" +#include "meta/meta-backend.h" struct _MetaClutterBackendX11 { @@ -37,6 +40,16 @@ struct _MetaClutterBackendX11 G_DEFINE_TYPE (MetaClutterBackendX11, meta_clutter_backend_x11, CLUTTER_TYPE_BACKEND_X11) +static CoglRenderer * +meta_clutter_backend_x11_get_renderer (ClutterBackend *clutter_backend, + GError **error) +{ + MetaBackend *backend = meta_get_backend (); + MetaRenderer *renderer = meta_backend_get_renderer (backend); + + return meta_renderer_create_cogl_renderer (renderer); +} + static void meta_clutter_backend_x11_init (MetaClutterBackendX11 *clutter_backend_x11) { @@ -45,4 +58,7 @@ meta_clutter_backend_x11_init (MetaClutterBackendX11 *clutter_backend_x11) static void meta_clutter_backend_x11_class_init (MetaClutterBackendX11Class *klass) { + ClutterBackendClass *clutter_backend_class = CLUTTER_BACKEND_CLASS (klass); + + clutter_backend_class->get_renderer = meta_clutter_backend_x11_get_renderer; } -- cgit v1.2.1