mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 00:20:42 -05:00
clutter/stage: Only add paint volumes of mapped actors to stage clip
Right now we damage the stage even if an actor is not mapped, for example in the overview. Stop doing so, reducing over-paint significantly in some situations. Clones will still do stage damage on their own. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2035>
This commit is contained in:
parent
b41def4749
commit
136caca5d5
@ -2849,10 +2849,13 @@ clutter_stage_maybe_finish_queue_redraws (ClutterStage *stage)
|
||||
{
|
||||
ClutterActor *redraw_actor = key;
|
||||
QueueRedrawEntry *entry = value;
|
||||
ClutterPaintVolume old_actor_pv, new_actor_pv;
|
||||
|
||||
g_hash_table_iter_steal (&iter);
|
||||
|
||||
if (clutter_actor_is_mapped (redraw_actor))
|
||||
{
|
||||
ClutterPaintVolume old_actor_pv, new_actor_pv;
|
||||
|
||||
_clutter_paint_volume_init_static (&old_actor_pv, NULL);
|
||||
_clutter_paint_volume_init_static (&new_actor_pv, NULL);
|
||||
|
||||
@ -2881,6 +2884,7 @@ clutter_stage_maybe_finish_queue_redraws (ClutterStage *stage)
|
||||
*/
|
||||
add_to_stage_clip (stage, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
g_object_unref (redraw_actor);
|
||||
free_queue_redraw_entry (entry);
|
||||
|
Loading…
Reference in New Issue
Block a user