diff --git a/compositor/main.c b/compositor/main.c index 58b52d0d..58ecdb68 100644 --- a/compositor/main.c +++ b/compositor/main.c @@ -1251,6 +1251,29 @@ wet_output_set_transform(struct weston_output *output, return 0; } +static int +wet_output_set_renderer_shadow(struct weston_output *output, + struct weston_config_section *section) +{ + bool use_shadow = false; + + if (section) { + weston_config_section_get_bool(section, + "use-renderer-shadow", + &use_shadow, false); + } + + if (use_shadow) { + if (!weston_output_set_renderer_shadow_buffer(output)) { + weston_log("Output \"%s\" does not support use-renderer-shadow.\n", + output->name); + return -1; + } + } + + return 0; +} + static void allow_content_protection(struct weston_output *output, struct weston_config_section *section) @@ -1768,6 +1791,9 @@ drm_backend_output_configure(struct weston_output *output, allow_content_protection(output, section); + if (wet_output_set_renderer_shadow(output, section) < 0) + return -1; + return 0; } @@ -2578,6 +2604,12 @@ headless_backend_output_configure(struct weston_output *output) .scale = 1, .transform = WL_OUTPUT_TRANSFORM_NORMAL }; + struct weston_config *wc = wet_get_config(output->compositor); + struct weston_config_section *section; + + section = weston_config_get_section(wc, "output", "name", output->name); + if (wet_output_set_renderer_shadow(output, section) < 0) + return -1; return wet_configure_windowed_output_from_config(output, &defaults); } diff --git a/man/weston.ini.man b/man/weston.ini.man index 202d6c57..423448ad 100644 --- a/man/weston.ini.man +++ b/man/weston.ini.man @@ -551,6 +551,19 @@ A comma separated list of the IDs of applications to place on this output. These IDs should match the application IDs as set with the xdg_shell.set_app_id request. Currently, this option is supported by kiosk-shell. .RE +.TP 7 +.BI "use-renderer-shadow=" boolean +Use a shadow framebuffer enabling two-pass composition for possible color +mangling operations. This is an experimental feature that is only available +on GL-renderer combined with headless or DRM backend. Setting this to true may +turn on various composite rendering effects and/or stop composite-bypass in +DRM-backend. + +.I Only for developer testing. + +Defaults to +.BR false . +.RE .SH "INPUT-METHOD SECTION" .TP 7 .BI "path=" "@weston_libexecdir@/weston-keyboard"