From 0a3f25c3039b586f5b5721e91136c5d2fccecca1 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Tue, 1 Oct 2019 14:16:25 +0200 Subject: [PATCH] clutter/stage-view: Ignore clipping rectangle for offscreen blit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In `clutter_stage_view_blit_offscreen()`, the given clipping rectangle is in “view” coordinates whereas we intend to copy the whole actual framebuffer, meaning that we cannot use the clipping rectangle. Use the actual framebuffer size, starting at (0, 0) instead. That fixes the issue with partial repainting with shadow framebuffer when fractional scaling is enabled. https://gitlab.gnome.org/GNOME/mutter/merge_requests/820 --- clutter/clutter/clutter-stage-view.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/clutter/clutter/clutter-stage-view.c b/clutter/clutter/clutter-stage-view.c index 7db079f781..b76bf677ba 100644 --- a/clutter/clutter/clutter-stage-view.c +++ b/clutter/clutter/clutter-stage-view.c @@ -146,11 +146,14 @@ clutter_stage_view_blit_offscreen (ClutterStageView *view, clutter_stage_view_get_offscreen_transformation_matrix (view, &matrix); if (cogl_matrix_is_identity (&matrix)) { + int fb_width = cogl_framebuffer_get_width (priv->framebuffer); + int fb_height = cogl_framebuffer_get_height (priv->framebuffer); + if (cogl_blit_framebuffer (priv->offscreen, priv->framebuffer, - rect->x, rect->y, - rect->x, rect->y, - rect->width, rect->height, + 0, 0, + 0, 0, + fb_width, fb_height, NULL)) return; } -- GitLab