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