evas: do not unset/delete master clip after every frame
authorMike Blumenkrantz <zmike@osg.samsung.com>
Tue, 15 Dec 2015 22:21:42 +0000 (17:21 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Tue, 15 Dec 2015 22:24:52 +0000 (17:24 -0500)
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

src/lib/evas/canvas/evas_render.c

index 3247b7c..4ae9af9 100644 (file)
@@ -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;