[mutter/wip/wayland-display: 35/55] MonitorManager: remove Cogl backend
- From: Giovanni Campagna <gcampagna src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/wayland-display: 35/55] MonitorManager: remove Cogl backend
- Date: Tue, 30 Jul 2013 16:18:46 +0000 (UTC)
commit fc7589395826a7703035dd53b7bcd0deb372d5d6
Author: Giovanni Campagna <gcampagn redhat com>
Date: Wed Jul 24 12:03:13 2013 +0200
MonitorManager: remove Cogl backend
It was useful initially to evaluate the Cogl API, which might
be what we will use to wrap the low-level KMS API, but it's
incomplete and just getting in the way.
src/core/monitor.c | 158 +---------------------------------------------------
1 files changed, 3 insertions(+), 155 deletions(-)
---
diff --git a/src/core/monitor.c b/src/core/monitor.c
index c98d402..f8978ff 100644
--- a/src/core/monitor.c
+++ b/src/core/monitor.c
@@ -58,9 +58,9 @@ typedef enum {
META_BACKEND_UNSPECIFIED,
META_BACKEND_DUMMY,
META_BACKEND_XRANDR,
- META_BACKEND_COGL
} MetaMonitorBackend;
+
struct _MetaMonitorManager
{
MetaDBusDisplayConfigSkeleton parent_instance;
@@ -572,142 +572,6 @@ read_monitor_infos_from_xrandr (MetaMonitorManager *manager)
#endif
-static MetaMonitorMode *
-find_or_create_monitor_mode (GArray *modes,
- int width,
- int height,
- float refresh)
-{
- unsigned int i;
- MetaMonitorMode new;
-
- for (i = 0; i < modes->len; i++)
- {
- MetaMonitorMode *existing;
-
- existing = &g_array_index (modes, MetaMonitorMode, i);
- if (existing->width == width &&
- existing->height == height &&
- existing->refresh_rate == refresh)
- return existing;
- }
-
- new.mode_id = 1 + modes->len;
- new.width = width;
- new.height = height;
- new.refresh_rate = refresh;
-
- g_array_append_val (modes, new);
- return &g_array_index (modes, MetaMonitorMode, modes->len - 1);
-}
-
-static void
-read_monitor_from_cogl_helper (CoglOutput *output,
- void *user_data)
-{
- GList **closure = user_data;
-
- *closure = g_list_prepend (*closure, cogl_object_ref (output));
-}
-
-static void
-read_monitor_infos_from_cogl (MetaMonitorManager *manager)
-{
- GList *iter, *output_list;
- GArray *modes;
- GArray *crtcs;
- GArray *outputs;
- ClutterBackend *backend;
- CoglContext *cogl_context;
- CoglRenderer *cogl_renderer;
- int n;
-
- backend = clutter_get_default_backend ();
- cogl_context = clutter_backend_get_cogl_context (backend);
- cogl_renderer = cogl_display_get_renderer (cogl_context_get_display (cogl_context));
-
- output_list = NULL;
- cogl_renderer_foreach_output (cogl_renderer,
- read_monitor_from_cogl_helper, &output_list);
-
- if (output_list == NULL)
- return make_dummy_monitor_config (manager);
-
- n = g_list_length (output_list);
- modes = g_array_new (FALSE, TRUE, sizeof (MetaMonitorMode));
- crtcs = g_array_sized_new (FALSE, TRUE, sizeof (MetaCRTC), n);
- outputs = g_array_sized_new (FALSE, TRUE, sizeof (MetaOutput), n);
-
- for (iter = output_list; iter; iter = iter->next)
- {
- /* First create all modes, so that we can reference them later
- without the risk to resize the array
- */
- find_or_create_monitor_mode (modes,
- cogl_output_get_width (iter->data),
- cogl_output_get_height (iter->data),
- cogl_output_get_refresh_rate (iter->data));
- }
-
- for (iter = output_list; iter; iter = iter->next)
- {
- CoglOutput *output;
- MetaCRTC meta_crtc;
- MetaOutput meta_output;
-
- output = iter->data;
-
- meta_crtc.crtc_id = 1 + crtcs->len;
- meta_crtc.rect.x = cogl_output_get_x (output);
- meta_crtc.rect.y = cogl_output_get_y (output);
- meta_crtc.rect.width = cogl_output_get_width (output);
- meta_crtc.rect.height = cogl_output_get_height (output);
- meta_crtc.current_mode = find_or_create_monitor_mode (modes,
- cogl_output_get_width (output),
- cogl_output_get_height (output),
- cogl_output_get_refresh_rate (output));
- meta_crtc.transform = WL_OUTPUT_TRANSFORM_NORMAL;
- meta_crtc.all_transforms = 1 << WL_OUTPUT_TRANSFORM_NORMAL;
- meta_crtc.logical_monitor = NULL;
- meta_crtc.dirty = FALSE;
-
- /* This will never resize the array because we preallocated with g_array_sized_new() */
- g_array_append_val (crtcs, meta_crtc);
-
- meta_output.output_id = 1 + n + crtcs->len;
- meta_output.crtc = &g_array_index (crtcs, MetaCRTC, crtcs->len - 1);
- meta_output.name = g_strdup ("unknown");
- meta_output.vendor = g_strdup ("unknown");
- meta_output.product = g_strdup ("unknown");
- meta_output.serial = g_strdup ("");
- meta_output.width_mm = cogl_output_get_mm_width (output);
- meta_output.height_mm = cogl_output_get_mm_height (output);
- meta_output.subpixel_order = cogl_output_get_subpixel_order (output);
- meta_output.preferred_mode = meta_crtc.current_mode;
- meta_output.n_modes = 1;
- meta_output.modes = g_new (MetaMonitorMode *, 1);
- meta_output.modes[0] = meta_output.preferred_mode;
- meta_output.n_possible_crtcs = 1;
- meta_output.possible_crtcs = g_new (MetaCRTC *, 1);
- meta_output.possible_crtcs[0] = meta_output.crtc;
- meta_output.n_possible_clones = 0;
- meta_output.possible_clones = g_new (MetaOutput *, 0);
- meta_output.is_primary = (iter == output_list);
- meta_output.is_presentation = FALSE;
-
- g_array_append_val (outputs, meta_output);
- }
-
- manager->n_modes = modes->len;
- manager->modes = (void*)g_array_free (modes, FALSE);
- manager->n_crtcs = crtcs->len;
- manager->crtcs = (void*)g_array_free (crtcs, FALSE);
- manager->n_outputs = outputs->len;
- manager->outputs = (void*)g_array_free (outputs, FALSE);
-
- g_list_free_full (output_list, cogl_object_unref);
-}
-
/*
* meta_has_dummy_output:
*
@@ -752,10 +616,7 @@ make_debug_config (MetaMonitorManager *manager)
return META_BACKEND_XRANDR;
else
#endif
- if (strcmp (env, "cogl") == 0)
- return META_BACKEND_COGL;
- else
- return META_BACKEND_DUMMY;
+ return META_BACKEND_DUMMY;
return TRUE;
}
@@ -768,10 +629,7 @@ read_current_config (MetaMonitorManager *manager)
return read_monitor_infos_from_xrandr (manager);
#endif
- if (manager->backend == META_BACKEND_COGL)
- return read_monitor_infos_from_cogl (manager);
- else
- return make_dummy_monitor_config (manager);
+ return make_dummy_monitor_config (manager);
}
/*
@@ -889,8 +747,6 @@ meta_monitor_manager_new (Display *display)
#endif
if (has_dummy_output ())
manager->backend = META_BACKEND_DUMMY;
- else
- manager->backend = META_BACKEND_COGL;
}
#ifdef HAVE_XRANDR
@@ -1591,14 +1447,6 @@ meta_monitor_manager_handle_apply_configuration (MetaDBusDisplayConfig *skeleto
g_variant_iter_init (&crtc_iter, crtcs);
g_variant_iter_init (&output_iter, outputs);
- if (manager->backend == META_BACKEND_COGL)
- {
- g_dbus_method_invocation_return_error (invocation, G_DBUS_ERROR,
- G_DBUS_ERROR_NOT_SUPPORTED,
- "Changing configuration is not supported by the backend");
- return TRUE;
- }
-
if (manager->backend == META_BACKEND_XRANDR)
apply_config_xrandr (manager, &crtc_iter, &output_iter);
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]