summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_map.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-02-10 20:44:38 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-02-12 11:06:40 +0900
commit7c5f92d702e2534b7b664d2b20d060dcac5fa6e6 (patch)
tree79e7afb25d05574d63275dee05204f155eb38011 /src/lib/evas/canvas/evas_map.c
parent9b24d378a39850f20bc84a0a533bb915897c3ef6 (diff)
evas - render - have lock point to allow for async obj walk + update add
this adds a lock for when walking all the objects to generate render commands for an async render. this allows even the object tree walk plus update area caluclation to be moved off into async if every oject that can change canvas state actually does so correctly. this change adds all those lock block calls to synchronise with an async object tree walk.
Diffstat (limited to 'src/lib/evas/canvas/evas_map.c')
-rw-r--r--src/lib/evas/canvas/evas_map.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c
index 453caba..86ceebe 100644
--- a/src/lib/evas/canvas/evas_map.c
+++ b/src/lib/evas/canvas/evas_map.c
@@ -472,6 +472,7 @@ _evas_object_map_enable_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Eina_Bo
472 if (obj->map->cur.usemap == enabled) return; 472 if (obj->map->cur.usemap == enabled) return;
473 pchange = obj->changed; 473 pchange = obj->changed;
474 474
475 evas_object_async_block(obj);
475 EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write) 476 EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write)
476 map_write->cur.usemap = enabled; 477 map_write->cur.usemap = enabled;
477 EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write); 478 EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write);
@@ -540,6 +541,7 @@ _evas_object_map_enable_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *
540EOLIAN void 541EOLIAN void
541_evas_object_map_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, const Evas_Map *map) 542_evas_object_map_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, const Evas_Map *map)
542{ 543{
544 evas_object_async_block(obj);
543 if ((!map) || (map->count < 4)) 545 if ((!map) || (map->count < 4))
544 { 546 {
545 if (obj->map->surface) 547 if (obj->map->surface)
@@ -631,6 +633,7 @@ _evas_object_map_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, const Evas_Map
631EOLIAN Evas_Map * 633EOLIAN Evas_Map *
632_evas_object_map_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj) 634_evas_object_map_get(Eo *eo_obj EINA_UNUSED, Evas_Object_Protected_Data *obj)
633{ 635{
636 evas_object_async_block(obj);
634 return obj->map->cur.map; 637 return obj->map->cur.map;
635} 638}
636 639