[metacity] compositor: check common extensions in MetaCompositor
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [metacity] compositor: check common extensions in MetaCompositor
- Date: Thu, 16 Mar 2017 17:41:40 +0000 (UTC)
commit 546ee4a831d3b0b5284e4c3cd4e07cf41313ba8b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Thu Mar 16 17:02:34 2017 +0200
compositor: check common extensions in MetaCompositor
src/compositor/meta-compositor-private.h | 3 -
src/compositor/meta-compositor-vulkan.c | 3 -
src/compositor/meta-compositor-xrender.c | 3 -
src/compositor/meta-compositor.c | 76 ++++++++++++++++--------------
4 files changed, 41 insertions(+), 44 deletions(-)
---
diff --git a/src/compositor/meta-compositor-private.h b/src/compositor/meta-compositor-private.h
index 3212446..8f4cb09 100644
--- a/src/compositor/meta-compositor-private.h
+++ b/src/compositor/meta-compositor-private.h
@@ -71,9 +71,6 @@ struct _MetaCompositorClass
GList *stack);
};
-gboolean meta_compositor_check_extensions (MetaCompositor *compositor,
- GError **error);
-
gboolean meta_compositor_set_selection (MetaCompositor *compositor,
GError **error);
diff --git a/src/compositor/meta-compositor-vulkan.c b/src/compositor/meta-compositor-vulkan.c
index 7e78bce..1a53554 100644
--- a/src/compositor/meta-compositor-vulkan.c
+++ b/src/compositor/meta-compositor-vulkan.c
@@ -701,9 +701,6 @@ meta_compositor_vulkan_manage (MetaCompositor *compositor,
vulkan = META_COMPOSITOR_VULKAN (compositor);
- if (!meta_compositor_check_extensions (compositor, error))
- return FALSE;
-
enumerate_instance_layers (vulkan);
enumerate_instance_extensions (vulkan);
diff --git a/src/compositor/meta-compositor-xrender.c b/src/compositor/meta-compositor-xrender.c
index b944470..88935aa 100644
--- a/src/compositor/meta-compositor-xrender.c
+++ b/src/compositor/meta-compositor-xrender.c
@@ -2524,9 +2524,6 @@ meta_compositor_xrender_manage (MetaCompositor *compositor,
XRenderPictFormat *visual_format;
int screen_number = meta_screen_get_screen_number (screen);
- if (!meta_compositor_check_extensions (compositor, error))
- return FALSE;
-
if (!display->have_render)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
diff --git a/src/compositor/meta-compositor.c b/src/compositor/meta-compositor.c
index 55bf002..789ac3b 100644
--- a/src/compositor/meta-compositor.c
+++ b/src/compositor/meta-compositor.c
@@ -64,6 +64,41 @@ G_DEFINE_ABSTRACT_TYPE_WITH_CODE (MetaCompositor, meta_compositor, G_TYPE_OBJECT
initable_iface_init))
static gboolean
+check_common_extensions (MetaCompositor *compositor,
+ GError **error)
+{
+ MetaCompositorPrivate *priv;
+
+ priv = meta_compositor_get_instance_private (compositor);
+
+ if (!priv->display->have_composite)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Missing composite extension required for compositing");
+
+ return FALSE;
+ }
+
+ if (!priv->display->have_damage)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Missing damage extension required for compositing");
+
+ return FALSE;
+ }
+
+ if (!priv->display->have_xfixes)
+ {
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "Missing xfixes extension required for compositing");
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
meta_compositor_initable_init (GInitable *initable,
GCancellable *cancellable,
GError **error)
@@ -74,6 +109,12 @@ meta_compositor_initable_init (GInitable *initable,
compositor = META_COMPOSITOR (initable);
compositor_class = META_COMPOSITOR_GET_CLASS (compositor);
+ if (!META_IS_COMPOSITOR_NONE (compositor))
+ {
+ if (!check_common_extensions (compositor, error))
+ return FALSE;
+ }
+
return compositor_class->manage (compositor, error);
}
@@ -410,41 +451,6 @@ meta_compositor_is_composited (MetaCompositor *compositor)
}
gboolean
-meta_compositor_check_extensions (MetaCompositor *compositor,
- GError **error)
-{
- MetaCompositorPrivate *priv;
-
- priv = meta_compositor_get_instance_private (compositor);
-
- if (!priv->display->have_composite)
- {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- "Missing composite extension required for compositing");
-
- return FALSE;
- }
-
- if (!priv->display->have_damage)
- {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- "Missing damage extension required for compositing");
-
- return FALSE;
- }
-
- if (!priv->display->have_xfixes)
- {
- g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
- "Missing xfixes extension required for compositing");
-
- return FALSE;
- }
-
- return TRUE;
-}
-
-gboolean
meta_compositor_set_selection (MetaCompositor *compositor,
GError **error)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]