From d84deeb17343ac726a1d769a2413eed6626e5865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20Krezovi=C4=87?= Date: Thu, 23 Jun 2016 11:59:29 +0200 Subject: [PATCH] compositor-headless: Support starting with zero outputs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Pekka Paalanen Signed-off-by: Armin Krezović --- compositor/main.c | 5 ++++- libweston/compositor-headless.c | 7 +++++-- libweston/compositor-headless.h | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/compositor/main.c b/compositor/main.c index 6f713c3e..86732f9d 100644 --- a/compositor/main.c +++ b/compositor/main.c @@ -526,7 +526,9 @@ usage(int error_code) " --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 @@ load_headless_backend(struct weston_compositor *c, { 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 b78c3210..6c22ee30 100644 --- a/libweston/compositor-headless.c +++ b/libweston/compositor-headless.c @@ -212,8 +212,11 @@ headless_backend_create(struct weston_compositor *compositor, 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 79f39c89..1432f700 100644 --- a/libweston/compositor-headless.h +++ b/libweston/compositor-headless.h @@ -44,6 +44,7 @@ struct weston_headless_backend_config { int use_pixman; uint32_t transform; + bool no_outputs; }; #ifdef __cplusplus