Add EGL abstraction class MetaEgl

Add a MetaEgl meant to deal with EGL. It is intended to be use by EGL
based renderers and handle extension symbols loading, handle errors etc.

https://bugzilla.gnome.org/show_bug.cgi?id=773629
This commit is contained in:
Jonas Ådahl
2016-08-18 10:18:28 +08:00
parent 7fa3f41df2
commit 22f019826c
6 changed files with 193 additions and 0 deletions

View File

@ -65,6 +65,7 @@ struct _MetaBackendPrivate
MetaCursorRenderer *cursor_renderer;
MetaInputSettings *input_settings;
MetaRenderer *renderer;
MetaEgl *egl;
ClutterBackend *clutter_backend;
ClutterActor *stage;
@ -411,6 +412,8 @@ meta_backend_initable_init (GInitable *initable,
MetaBackend *backend = META_BACKEND (initable);
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
priv->egl = g_object_new (META_TYPE_EGL, NULL);
priv->renderer = META_BACKEND_GET_CLASS (backend)->create_renderer (backend);
if (!priv->renderer)
{
@ -483,6 +486,16 @@ MetaRenderer * meta_backend_get_renderer (MetaBackend *backend)
return priv->renderer;
}
/**
* meta_backend_get_egl: (skip)
*/
MetaEgl * meta_backend_get_egl (MetaBackend *backend)
{
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
return priv->egl;
}
/**
* meta_backend_grab_device: (skip)
*/