compositor-headless: Support starting with zero outputs
This patch adds a new command line option which can be
used to tell headless backend not to create any
virtual outputs.
This will be used for output hotplug emulation, where
weston will start with no outputs available, and the
virtual output will be created at runtime.
v2:
- Use bool instead of int for the indicator flag
- Move final newspace to a separate line in command
line options
Reviewed-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Armin Krezović <krezovic.armin@gmail.com>
diff --git a/compositor/main.c b/compositor/main.c
index 6f713c3..86732f9 100644
--- a/compositor/main.c
+++ b/compositor/main.c
@@ -526,7 +526,9 @@
" --height=HEIGHT\tHeight of memory surface\n"
" --transform=TR\tThe output transformation, TR is one of:\n"
"\tnormal 90 180 270 flipped flipped-90 flipped-180 flipped-270\n"
- " --use-pixman\t\tUse the pixman (CPU) renderer (default: no rendering)\n\n");
+ " --use-pixman\t\tUse the pixman (CPU) renderer (default: no rendering)\n"
+ " --no-outputs\t\tDo not create any virtual outputs\n"
+ "\n");
#endif
#if defined(BUILD_RDP_COMPOSITOR)
@@ -1037,6 +1039,7 @@
{ WESTON_OPTION_INTEGER, "height", 0, &config.height },
{ WESTON_OPTION_BOOLEAN, "use-pixman", 0, &config.use_pixman },
{ WESTON_OPTION_STRING, "transform", 0, &transform },
+ { WESTON_OPTION_BOOLEAN, "no-outputs", 0, &config.no_outputs },
};
parse_options(options, ARRAY_LENGTH(options), argc, argv);
diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c
index b78c321..6c22ee3 100644
--- a/libweston/compositor-headless.c
+++ b/libweston/compositor-headless.c
@@ -212,8 +212,11 @@
if (b->use_pixman) {
pixman_renderer_init(compositor);
}
- if (headless_backend_create_output(b, config) < 0)
- goto err_input;
+
+ if (!config->no_outputs) {
+ if (headless_backend_create_output(b, config) < 0)
+ goto err_input;
+ }
if (!b->use_pixman && noop_renderer_init(compositor) < 0)
goto err_input;
diff --git a/libweston/compositor-headless.h b/libweston/compositor-headless.h
index 79f39c8..1432f70 100644
--- a/libweston/compositor-headless.h
+++ b/libweston/compositor-headless.h
@@ -44,6 +44,7 @@
int use_pixman;
uint32_t transform;
+ bool no_outputs;
};
#ifdef __cplusplus