Adds a --nested option
This adds a --nested option to request that mutter no longer run as a classic X compositor with an output window mapped on the X Composite Overlay Window and also not assume it is running directly under X. The intention is that in this mode Mutter will itself launch a headless X server and display output will be handled by Clutter and Cogl. This will enable running Mutter nested as an application within an X session. This patch introduces an internal meta_is_wayland_compositor() function as a means to condition the way mutter operates when running as a traditional X compositor vs running as a wayland compositor where the compositor and display server are combined into a single process. Later we also expect to add a --kms option as another way of enabling this wayland compositor mode that will assume full control of the display hardware instead of running as a nested application.
This commit is contained in:
parent
b4d108dac6
commit
bd3c357212
@ -46,8 +46,15 @@ print_version (const gchar *option_name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static gchar *plugin = "default";
|
static gchar *plugin = "default";
|
||||||
|
static gboolean opt_nested = FALSE;
|
||||||
|
|
||||||
GOptionEntry mutter_options[] = {
|
GOptionEntry mutter_options[] = {
|
||||||
|
{
|
||||||
|
"nested", 0, 0, G_OPTION_ARG_NONE,
|
||||||
|
&opt_nested,
|
||||||
|
N_("Run nested as an application for testing"),
|
||||||
|
NULL,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
|
"version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK,
|
||||||
print_version,
|
print_version,
|
||||||
@ -77,6 +84,8 @@ main (int argc, char **argv)
|
|||||||
exit (1);
|
exit (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
meta_set_is_wayland_compositor (opt_nested);
|
||||||
|
|
||||||
if (plugin)
|
if (plugin)
|
||||||
meta_plugin_manager_load (plugin);
|
meta_plugin_manager_load (plugin);
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ static gint verbose_topics = 0;
|
|||||||
static gboolean is_debugging = FALSE;
|
static gboolean is_debugging = FALSE;
|
||||||
static gboolean replace_current = FALSE;
|
static gboolean replace_current = FALSE;
|
||||||
static int no_prefix = 0;
|
static int no_prefix = 0;
|
||||||
|
static gboolean is_wayland_compositor = FALSE;
|
||||||
|
|
||||||
#ifdef WITH_VERBOSE_MODE
|
#ifdef WITH_VERBOSE_MODE
|
||||||
static FILE* logfile = NULL;
|
static FILE* logfile = NULL;
|
||||||
@ -194,6 +195,18 @@ meta_set_replace_current_wm (gboolean setting)
|
|||||||
replace_current = setting;
|
replace_current = setting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
meta_is_wayland_compositor (void)
|
||||||
|
{
|
||||||
|
return is_wayland_compositor;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_set_is_wayland_compositor (gboolean value)
|
||||||
|
{
|
||||||
|
is_wayland_compositor = value;
|
||||||
|
}
|
||||||
|
|
||||||
char *
|
char *
|
||||||
meta_g_utf8_strndup (const gchar *src,
|
meta_g_utf8_strndup (const gchar *src,
|
||||||
gsize n)
|
gsize n)
|
||||||
|
@ -37,6 +37,8 @@ void meta_set_debugging (gboolean setting);
|
|||||||
gboolean meta_is_syncing (void);
|
gboolean meta_is_syncing (void);
|
||||||
void meta_set_syncing (gboolean setting);
|
void meta_set_syncing (gboolean setting);
|
||||||
void meta_set_replace_current_wm (gboolean setting);
|
void meta_set_replace_current_wm (gboolean setting);
|
||||||
|
gboolean meta_is_wayland_compositor (void);
|
||||||
|
void meta_set_is_wayland_compositor (gboolean setting);
|
||||||
|
|
||||||
void meta_debug_spew_real (const char *format,
|
void meta_debug_spew_real (const char *format,
|
||||||
...) G_GNUC_PRINTF (1, 2);
|
...) G_GNUC_PRINTF (1, 2);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user