From 118aa72abb846b1e17a4c280760a9178f56f1339 Mon Sep 17 00:00:00 2001 From: Jeffy Chen Date: Mon, 3 Dec 2018 10:40:16 +0800 Subject: [PATCH 19/95] compositor: Support freezing display Freeze display when the specified file(from env "WESTON_FREEZE_DISPLAY") exists. For example: export WESTON_FREEZE_DISPLAY=/tmp/.freeze touch $WESTON_FREEZE_DISPLAY weston --tty=2 -Bdrm-backend.so& Signed-off-by: Jeffy Chen --- libweston/compositor.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libweston/compositor.c b/libweston/compositor.c index 4bfa624..cf56e4d 100644 --- a/libweston/compositor.c +++ b/libweston/compositor.c @@ -3955,6 +3955,12 @@ output_repaint_timer_handler(void *data) struct timespec now; int ret = 0; + if (!access(getenv("WESTON_FREEZE_DISPLAY") ? : "", F_OK)) { + usleep(DEFAULT_REPAINT_WINDOW * 1000); + weston_compositor_build_view_list(compositor); + goto out; + } + weston_compositor_read_presentation_clock(compositor, &now); compositor->last_repaint_start = now; @@ -4011,6 +4017,7 @@ output_repaint_timer_handler(void *data) wl_list_for_each(output, &compositor->output_list, link) output->repainted = false; +out: output_repaint_timer_arm(compositor); return 0; -- 2.20.1