forked from enlightenment/efl
evas: do not unset/delete master clip after every frame
this is not ideal since it triggers a client-side rerender of every object which was clipped to the master clip (double render) and then this ends up forcing the server to rerender the same area twice as well not only that, it causes all surface damages to to be the size of the entire window - framespace for every frame @fix
This commit is contained in:
parent
1d3c4162b3
commit
fb8c547077
|
@ -2882,26 +2882,6 @@ evas_render_updates_internal(Evas *eo_e,
|
|||
}
|
||||
}
|
||||
|
||||
if (!strncmp(e->engine.module->definition->name, "wayland", 7))
|
||||
{
|
||||
/* unclip objects from master clip */
|
||||
for (i = 0; i < e->render_objects.count; ++i)
|
||||
{
|
||||
obj = eina_array_data_get(&e->render_objects, i);
|
||||
if (obj->is_frame) continue;
|
||||
if (obj->object == e->framespace.clip) continue;
|
||||
|
||||
if (evas_object_clip_get(obj->object) == e->framespace.clip)
|
||||
{
|
||||
/* unclip this object from the master clip */
|
||||
evas_object_clip_unset(obj->object);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete master clip */
|
||||
evas_object_del(e->framespace.clip);
|
||||
e->framespace.clip = NULL;
|
||||
}
|
||||
|
||||
e->changed = EINA_FALSE;
|
||||
e->viewport.changed = EINA_FALSE;
|
||||
|
|
Loading…
Reference in New Issue