Commit 0a3f25c3 authored by Olivier Fourdan's avatar Olivier Fourdan 🛠

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.

parent 105a3f75
...@@ -146,11 +146,14 @@ clutter_stage_view_blit_offscreen (ClutterStageView *view, ...@@ -146,11 +146,14 @@ clutter_stage_view_blit_offscreen (ClutterStageView *view,
clutter_stage_view_get_offscreen_transformation_matrix (view, &matrix); clutter_stage_view_get_offscreen_transformation_matrix (view, &matrix);
if (cogl_matrix_is_identity (&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, if (cogl_blit_framebuffer (priv->offscreen,
priv->framebuffer, priv->framebuffer,
rect->x, rect->y, 0, 0,
rect->x, rect->y, 0, 0,
rect->width, rect->height, fb_width, fb_height,
return; return;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment