[mutter] clutter/stage-view: Ignore clipping rectangle for offscreen blit



commit 0a3f25c3039b586f5b5721e91136c5d2fccecca1
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Tue Oct 1 14:16:25 2019 +0200

    clutter/stage-view: Ignore clipping rectangle for offscreen blit
    
    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 7db079f78..b76bf677b 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;
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]