summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-02-12 22:25:06 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-02-12 22:30:10 +0900
commit5213599b5aa2cc0dc85739b9b3c7b8953380f72d (patch)
treeb0358c0ee2b86fd81abbd4ec5f1ac545a397a6e1
parentd3527da0ab8cd9d9727c9aeca08df115be3632e2 (diff)
evas 3d - undo async block code - 3d objects dont inherit from evas obj
-rw-r--r--src/lib/evas/canvas/evas_3d_camera.c6
-rw-r--r--src/lib/evas/canvas/evas_3d_light.c14
-rw-r--r--src/lib/evas/canvas/evas_3d_material.c13
-rw-r--r--src/lib/evas/canvas/evas_3d_mesh.c29
-rw-r--r--src/lib/evas/canvas/evas_3d_node.c20
-rw-r--r--src/lib/evas/canvas/evas_3d_object.c5
-rw-r--r--src/lib/evas/canvas/evas_3d_scene.c17
-rw-r--r--src/lib/evas/canvas/evas_3d_texture.c16
8 files changed, 11 insertions, 109 deletions
diff --git a/src/lib/evas/canvas/evas_3d_camera.c b/src/lib/evas/canvas/evas_3d_camera.c
index b72c173e46..c6da2d3aa7 100644
--- a/src/lib/evas/canvas/evas_3d_camera.c
+++ b/src/lib/evas/canvas/evas_3d_camera.c
@@ -15,7 +15,6 @@ _camera_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
15EOLIAN static void 15EOLIAN static void
16_evas_3d_camera_evas_3d_object_change_notify(Eo *obj,Evas_3D_Camera_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED) 16_evas_3d_camera_evas_3d_object_change_notify(Eo *obj,Evas_3D_Camera_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
17{ 17{
18 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
19 if (pd->nodes) eina_hash_foreach(pd->nodes, _camera_node_change_notify, obj); 18 if (pd->nodes) eina_hash_foreach(pd->nodes, _camera_node_change_notify, obj);
20} 19}
21 20
@@ -75,7 +74,6 @@ EOLIAN static void
75_evas_3d_camera_eo_base_destructor(Eo *obj, 74_evas_3d_camera_eo_base_destructor(Eo *obj,
76 Evas_3D_Camera_Data *pd) 75 Evas_3D_Camera_Data *pd)
77{ 76{
78 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
79 //evas_3d_object_unreference(&pd->base); 77 //evas_3d_object_unreference(&pd->base);
80 if (pd->nodes) eina_hash_free(pd->nodes); 78 if (pd->nodes) eina_hash_free(pd->nodes);
81 eo_do_super(obj, MY_CLASS, eo_destructor()); 79 eo_do_super(obj, MY_CLASS, eo_destructor());
@@ -95,7 +93,6 @@ EOLIAN static void
95_evas_3d_camera_projection_matrix_set(Eo *obj, Evas_3D_Camera_Data *pd, 93_evas_3d_camera_projection_matrix_set(Eo *obj, Evas_3D_Camera_Data *pd,
96 const Evas_Real *matrix) 94 const Evas_Real *matrix)
97{ 95{
98 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
99 evas_mat4_array_set(&pd->projection, matrix); 96 evas_mat4_array_set(&pd->projection, matrix);
100 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL)); 97 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
101} 98}
@@ -119,7 +116,6 @@ _evas_3d_camera_projection_perspective_set(Eo *obj, Evas_3D_Camera_Data *pd,
119 ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0); 116 ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0);
120 xmax = ymax * aspect; 117 xmax = ymax * aspect;
121 118
122 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
123 evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar); 119 evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar);
124 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL)); 120 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
125} 121}
@@ -130,7 +126,6 @@ _evas_3d_camera_projection_frustum_set(Eo *obj, Evas_3D_Camera_Data *pd,
130 Evas_Real bottom, Evas_Real top, 126 Evas_Real bottom, Evas_Real top,
131 Evas_Real dnear, Evas_Real dfar) 127 Evas_Real dnear, Evas_Real dfar)
132{ 128{
133 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
134 evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar); 129 evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar);
135 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL)); 130 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
136} 131}
@@ -141,7 +136,6 @@ _evas_3d_camera_projection_ortho_set(Eo *obj, Evas_3D_Camera_Data *pd,
141 Evas_Real bottom, Evas_Real top, 136 Evas_Real bottom, Evas_Real top,
142 Evas_Real dnear, Evas_Real dfar) 137 Evas_Real dnear, Evas_Real dfar)
143{ 138{
144 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
145 evas_mat4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar); 139 evas_mat4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar);
146 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL)); 140 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_CAMERA_PROJECTION, NULL));
147} 141}
diff --git a/src/lib/evas/canvas/evas_3d_light.c b/src/lib/evas/canvas/evas_3d_light.c
index 48abf0fd20..f9ca75b17b 100644
--- a/src/lib/evas/canvas/evas_3d_light.c
+++ b/src/lib/evas/canvas/evas_3d_light.c
@@ -15,7 +15,6 @@ _light_node_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
15EOLIAN static void 15EOLIAN static void
16_evas_3d_light_evas_3d_object_change_notify(Eo *obj, Evas_3D_Light_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED) 16_evas_3d_light_evas_3d_object_change_notify(Eo *obj, Evas_3D_Light_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
17{ 17{
18 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
19 if (pd->nodes) 18 if (pd->nodes)
20 eina_hash_foreach(pd->nodes, _light_node_change_notify, obj); 19 eina_hash_foreach(pd->nodes, _light_node_change_notify, obj);
21} 20}
@@ -98,7 +97,6 @@ _evas_3d_light_eo_base_constructor(Eo *obj, Evas_3D_Light_Data *pd)
98EOLIAN static void 97EOLIAN static void
99_evas_3d_light_eo_base_destructor(Eo *obj, Evas_3D_Light_Data *pd) 98_evas_3d_light_eo_base_destructor(Eo *obj, Evas_3D_Light_Data *pd)
100{ 99{
101 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
102 if (pd->nodes) 100 if (pd->nodes)
103 eina_hash_free(pd->nodes); 101 eina_hash_free(pd->nodes);
104 eo_do_super(obj, MY_CLASS, eo_destructor()); 102 eo_do_super(obj, MY_CLASS, eo_destructor());
@@ -108,7 +106,6 @@ _evas_3d_light_eo_base_destructor(Eo *obj, Evas_3D_Light_Data *pd)
108EOLIAN static void 106EOLIAN static void
109_evas_3d_light_directional_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool directional) 107_evas_3d_light_directional_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool directional)
110{ 108{
111 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
112 if (pd->directional != directional) 109 if (pd->directional != directional)
113 { 110 {
114 pd->directional = directional; 111 pd->directional = directional;
@@ -125,7 +122,6 @@ _evas_3d_light_directional_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
125EOLIAN static void 122EOLIAN static void
126_evas_3d_light_ambient_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 123_evas_3d_light_ambient_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
127{ 124{
128 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
129 pd->ambient.r = r; 125 pd->ambient.r = r;
130 pd->ambient.g = g; 126 pd->ambient.g = g;
131 pd->ambient.b = b; 127 pd->ambient.b = b;
@@ -146,7 +142,6 @@ _evas_3d_light_ambient_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Rea
146EOLIAN static void 142EOLIAN static void
147_evas_3d_light_diffuse_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 143_evas_3d_light_diffuse_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
148{ 144{
149 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
150 pd->diffuse.r = r; 145 pd->diffuse.r = r;
151 pd->diffuse.g = g; 146 pd->diffuse.g = g;
152 pd->diffuse.b = b; 147 pd->diffuse.b = b;
@@ -167,7 +162,6 @@ _evas_3d_light_diffuse_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Rea
167EOLIAN static void 162EOLIAN static void
168_evas_3d_light_specular_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 163_evas_3d_light_specular_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
169{ 164{
170 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
171 pd->specular.r = r; 165 pd->specular.r = r;
172 pd->specular.g = g; 166 pd->specular.g = g;
173 pd->specular.b = b; 167 pd->specular.b = b;
@@ -188,7 +182,6 @@ _evas_3d_light_specular_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas_Re
188EOLIAN static void 182EOLIAN static void
189_evas_3d_light_spot_exponent_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real exponent) 183_evas_3d_light_spot_exponent_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real exponent)
190{ 184{
191 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
192 pd->spot_exp = exponent; 185 pd->spot_exp = exponent;
193 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_EXP, NULL)); 186 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_EXP, NULL));
194} 187}
@@ -202,7 +195,6 @@ _evas_3d_light_spot_exponent_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
202EOLIAN static void 195EOLIAN static void
203_evas_3d_light_spot_cutoff_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real cutoff) 196_evas_3d_light_spot_cutoff_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real cutoff)
204{ 197{
205 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
206 pd->spot_cutoff = cutoff; 198 pd->spot_cutoff = cutoff;
207 pd->spot_cutoff_cos = cos(cutoff * M_PI / 180.0); 199 pd->spot_cutoff_cos = cos(cutoff * M_PI / 180.0);
208 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_CUTOFF, NULL)); 200 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_SPOT_CUTOFF, NULL));
@@ -217,7 +209,6 @@ _evas_3d_light_spot_cutoff_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd)
217EOLIAN static void 209EOLIAN static void
218_evas_3d_light_attenuation_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real constant, Evas_Real linear, Evas_Real quadratic) 210_evas_3d_light_attenuation_set(Eo *obj, Evas_3D_Light_Data *pd, Evas_Real constant, Evas_Real linear, Evas_Real quadratic)
219{ 211{
220 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
221 pd->atten_const = constant; 212 pd->atten_const = constant;
222 pd->atten_linear = linear; 213 pd->atten_linear = linear;
223 pd->atten_quad = quadratic; 214 pd->atten_quad = quadratic;
@@ -235,7 +226,6 @@ _evas_3d_light_attenuation_get(Eo *obj EINA_UNUSED, Evas_3D_Light_Data *pd, Evas
235EOLIAN static void 226EOLIAN static void
236_evas_3d_light_attenuation_enable_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool enable) 227_evas_3d_light_attenuation_enable_set(Eo *obj, Evas_3D_Light_Data *pd, Eina_Bool enable)
237{ 228{
238 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
239 if (pd->enable_attenuation != enable) 229 if (pd->enable_attenuation != enable)
240 { 230 {
241 pd->enable_attenuation = enable; 231 pd->enable_attenuation = enable;
@@ -253,7 +243,6 @@ EOLIAN static void
253_evas_3d_light_projection_matrix_set(Eo *obj, Evas_3D_Light_Data *pd, 243_evas_3d_light_projection_matrix_set(Eo *obj, Evas_3D_Light_Data *pd,
254 const Evas_Real *matrix) 244 const Evas_Real *matrix)
255{ 245{
256 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
257 evas_mat4_array_set(&pd->projection, matrix); 246 evas_mat4_array_set(&pd->projection, matrix);
258 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL)); 247 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL));
259} 248}
@@ -277,7 +266,6 @@ _evas_3d_light_projection_perspective_set(Eo *obj, Evas_3D_Light_Data *pd,
277 ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0); 266 ymax = dnear * (Evas_Real)tan((double)fovy * M_PI / 360.0);
278 xmax = ymax * aspect; 267 xmax = ymax * aspect;
279 268
280 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
281 evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar); 269 evas_mat4_frustum_set(&pd->projection, -xmax, xmax, -ymax, ymax, dnear, dfar);
282 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL)); 270 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL));
283} 271}
@@ -288,7 +276,6 @@ _evas_3d_light_projection_frustum_set(Eo *obj, Evas_3D_Light_Data *pd,
288 Evas_Real bottom, Evas_Real top, 276 Evas_Real bottom, Evas_Real top,
289 Evas_Real dnear, Evas_Real dfar) 277 Evas_Real dnear, Evas_Real dfar)
290{ 278{
291 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
292 evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar); 279 evas_mat4_frustum_set(&pd->projection, left, right, bottom, top, dnear, dfar);
293 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL)); 280 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL));
294} 281}
@@ -299,7 +286,6 @@ _evas_3d_light_projection_ortho_set(Eo *obj, Evas_3D_Light_Data *pd,
299 Evas_Real bottom, Evas_Real top, 286 Evas_Real bottom, Evas_Real top,
300 Evas_Real dnear, Evas_Real dfar) 287 Evas_Real dnear, Evas_Real dfar)
301{ 288{
302 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
303 evas_mat4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar); 289 evas_mat4_ortho_set(&pd->projection, left, right, bottom, top, dnear, dfar);
304 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL)); 290 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_LIGHT_PROJECTION, NULL));
305} 291}
diff --git a/src/lib/evas/canvas/evas_3d_material.c b/src/lib/evas/canvas/evas_3d_material.c
index ca0b4037cf..8cd325d6a1 100644
--- a/src/lib/evas/canvas/evas_3d_material.c
+++ b/src/lib/evas/canvas/evas_3d_material.c
@@ -15,16 +15,14 @@ _material_mesh_change_notify(const Eina_Hash *hash EINA_UNUSED, const void *key,
15EOLIAN static void 15EOLIAN static void
16_evas_3d_material_evas_3d_object_change_notify(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED) 16_evas_3d_material_evas_3d_object_change_notify(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
17{ 17{
18 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
19 if (pd->meshes) 18 if (pd->meshes)
20 eina_hash_foreach(pd->meshes, _material_mesh_change_notify, obj); 19 eina_hash_foreach(pd->meshes, _material_mesh_change_notify, obj);
21} 20}
22 21
23EOLIAN static void 22EOLIAN static void
24_evas_3d_material_evas_3d_object_update_notify(Eo *obj, Evas_3D_Material_Data *pd) 23_evas_3d_material_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
25{ 24{
26 int i; 25 int i;
27 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
28 for (i = 0; i < EVAS_3D_MATERIAL_ATTRIB_COUNT; i++) 26 for (i = 0; i < EVAS_3D_MATERIAL_ATTRIB_COUNT; i++)
29 { 27 {
30 if (pd->attribs[i].enable) 28 if (pd->attribs[i].enable)
@@ -108,7 +106,6 @@ _evas_3d_material_eo_base_destructor(Eo *obj, Evas_3D_Material_Data *pd)
108{ 106{
109 int i; 107 int i;
110 108
111 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
112 if (pd->meshes) 109 if (pd->meshes)
113 eina_hash_free(pd->meshes); 110 eina_hash_free(pd->meshes);
114 111
@@ -124,9 +121,8 @@ _evas_3d_material_eo_base_destructor(Eo *obj, Evas_3D_Material_Data *pd)
124} 121}
125 122
126EOLIAN static void 123EOLIAN static void
127_evas_3d_material_enable_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Eina_Bool enable) 124_evas_3d_material_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Eina_Bool enable)
128{ 125{
129 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
130 pd->attribs[attrib].enable = enable; 126 pd->attribs[attrib].enable = enable;
131} 127}
132 128
@@ -139,7 +135,6 @@ _evas_3d_material_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Eva
139EOLIAN static void 135EOLIAN static void
140_evas_3d_material_color_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 136_evas_3d_material_color_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
141{ 137{
142 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
143 evas_color_set(&pd->attribs[attrib].color, r, g, b, a); 138 evas_color_set(&pd->attribs[attrib].color, r, g, b, a);
144 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MATERIAL_COLOR, NULL)); 139 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MATERIAL_COLOR, NULL));
145} 140}
@@ -154,9 +149,8 @@ _evas_3d_material_color_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas
154} 149}
155 150
156EOLIAN static void 151EOLIAN static void
157_evas_3d_material_shininess_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_Real shininess) 152_evas_3d_material_shininess_set(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd, Evas_Real shininess)
158{ 153{
159 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
160 pd->shininess = shininess; 154 pd->shininess = shininess;
161} 155}
162 156
@@ -169,7 +163,6 @@ _evas_3d_material_shininess_get(Eo *obj EINA_UNUSED, Evas_3D_Material_Data *pd)
169EOLIAN static void 163EOLIAN static void
170_evas_3d_material_texture_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_3D_Texture *texture) 164_evas_3d_material_texture_set(Eo *obj, Evas_3D_Material_Data *pd, Evas_3D_Material_Attrib attrib, Evas_3D_Texture *texture)
171{ 165{
172 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
173 if (pd->attribs[attrib].texture != texture) 166 if (pd->attribs[attrib].texture != texture)
174 { 167 {
175 if (pd->attribs[attrib].texture) 168 if (pd->attribs[attrib].texture)
diff --git a/src/lib/evas/canvas/evas_3d_mesh.c b/src/lib/evas/canvas/evas_3d_mesh.c
index 55b1d4795f..4430438054 100644
--- a/src/lib/evas/canvas/evas_3d_mesh.c
+++ b/src/lib/evas/canvas/evas_3d_mesh.c
@@ -182,12 +182,11 @@ _evas_3d_mesh_evas_3d_object_change_notify(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_
182} 182}
183 183
184EOLIAN static void 184EOLIAN static void
185_evas_3d_mesh_evas_3d_object_update_notify(Eo *obj, Evas_3D_Mesh_Data *pd) 185_evas_3d_mesh_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
186{ 186{
187 Eina_List *l; 187 Eina_List *l;
188 Evas_3D_Mesh_Frame *f; 188 Evas_3D_Mesh_Frame *f;
189 189
190 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
191 EINA_LIST_FOREACH(pd->frames, l, f) 190 EINA_LIST_FOREACH(pd->frames, l, f)
192 { 191 {
193 if (f->material) 192 if (f->material)
@@ -260,16 +259,14 @@ _evas_3d_mesh_eo_base_constructor(Eo *obj, Evas_3D_Mesh_Data *pd)
260EOLIAN static void 259EOLIAN static void
261_evas_3d_mesh_eo_base_destructor(Eo *obj, Evas_3D_Mesh_Data *pd) 260_evas_3d_mesh_eo_base_destructor(Eo *obj, Evas_3D_Mesh_Data *pd)
262{ 261{
263 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
264 //evas_3d_object_unreference(&pd->base); 262 //evas_3d_object_unreference(&pd->base);
265 _mesh_fini(pd); 263 _mesh_fini(pd);
266 eo_do_super(obj, MY_CLASS, eo_destructor()); 264 eo_do_super(obj, MY_CLASS, eo_destructor());
267} 265}
268 266
269EOLIAN static void 267EOLIAN static void
270_evas_3d_mesh_shade_mode_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Shade_Mode mode) 268_evas_3d_mesh_shade_mode_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Evas_3D_Shade_Mode mode)
271{ 269{
272 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
273 if (pd->shade_mode != mode) 270 if (pd->shade_mode != mode)
274 { 271 {
275 pd->shade_mode = mode; 272 pd->shade_mode = mode;
@@ -286,7 +283,6 @@ _evas_3d_mesh_shade_mode_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
286EOLIAN static void 283EOLIAN static void
287_evas_3d_mesh_vertex_count_set(Eo *obj, Evas_3D_Mesh_Data *pd, unsigned int count) 284_evas_3d_mesh_vertex_count_set(Eo *obj, Evas_3D_Mesh_Data *pd, unsigned int count)
288{ 285{
289 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
290 pd->vertex_count = count; 286 pd->vertex_count = count;
291 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_COUNT, NULL)); 287 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_COUNT, NULL));
292} 288}
@@ -308,7 +304,6 @@ _evas_3d_mesh_frame_add(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
308 return; 304 return;
309 } 305 }
310 306
311 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
312 f = evas_3d_mesh_frame_new(obj); 307 f = evas_3d_mesh_frame_new(obj);
313 308
314 if (f == NULL) 309 if (f == NULL)
@@ -330,7 +325,6 @@ _evas_3d_mesh_frame_del(Eo *obj, Evas_3D_Mesh_Data *pd, int frame)
330 return; 325 return;
331 } 326 }
332 327
333 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
334 pd->frames = eina_list_remove(pd->frames, f); 328 pd->frames = eina_list_remove(pd->frames, f);
335 evas_3d_mesh_frame_free(f); 329 evas_3d_mesh_frame_free(f);
336 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FRAME, NULL)); 330 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FRAME, NULL));
@@ -350,7 +344,6 @@ _evas_3d_mesh_frame_material_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, Evas
350 if (f->material == material) 344 if (f->material == material)
351 return; 345 return;
352 346
353 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
354 if (f->material) 347 if (f->material)
355 { 348 {
356 evas_3d_material_mesh_del(f->material, obj); 349 evas_3d_material_mesh_del(f->material, obj);
@@ -395,7 +388,6 @@ _evas_3d_mesh_frame_vertex_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, int frame, E
395 return; 388 return;
396 } 389 }
397 390
398 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
399 if (attrib == EVAS_3D_VERTEX_POSITION) 391 if (attrib == EVAS_3D_VERTEX_POSITION)
400 { 392 {
401 int i = 0, j = 0, size = stride/sizeof(float); 393 int i = 0, j = 0, size = stride/sizeof(float);
@@ -479,7 +471,6 @@ _evas_3d_mesh_frame_vertex_data_copy_set(Eo *obj, Evas_3D_Mesh_Data *pd, int fra
479 return; 471 return;
480 } 472 }
481 473
482 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
483 if (attrib == EVAS_3D_VERTEX_POSITION) 474 if (attrib == EVAS_3D_VERTEX_POSITION)
484 { 475 {
485 element_count = 3; 476 element_count = 3;
@@ -608,7 +599,6 @@ _evas_3d_mesh_frame_vertex_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd,
608 return NULL; 599 return NULL;
609 } 600 }
610 601
611 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
612 f->vertices[attrib].mapped = EINA_TRUE; 602 f->vertices[attrib].mapped = EINA_TRUE;
613 return f->vertices[attrib].data; 603 return f->vertices[attrib].data;
614} 604}
@@ -630,7 +620,6 @@ _evas_3d_mesh_frame_vertex_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd
630 return; 620 return;
631 } 621 }
632 622
633 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
634 f->vertices[attrib].mapped = EINA_FALSE; 623 f->vertices[attrib].mapped = EINA_FALSE;
635} 624}
636 625
@@ -651,7 +640,6 @@ _evas_3d_mesh_frame_vertex_stride_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd
651EOLIAN static void 640EOLIAN static void
652_evas_3d_mesh_index_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices) 641_evas_3d_mesh_index_data_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Index_Format format, int count, const void *indices)
653{ 642{
654 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
655 if (pd->owns_indices && pd->indices) 643 if (pd->owns_indices && pd->indices)
656 free(pd->indices); 644 free(pd->indices);
657 645
@@ -683,7 +671,6 @@ _evas_3d_mesh_index_data_copy_set(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd, Ev
683 return; 671 return;
684 } 672 }
685 673
686 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
687 if (!pd->owns_indices || pd->index_size < size) 674 if (!pd->owns_indices || pd->index_size < size)
688 { 675 {
689 if (pd->owns_indices && pd->indices) 676 if (pd->owns_indices && pd->indices)
@@ -729,7 +716,6 @@ _evas_3d_mesh_index_data_map(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
729 return NULL; 716 return NULL;
730 } 717 }
731 718
732 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
733 pd->index_mapped = EINA_TRUE; 719 pd->index_mapped = EINA_TRUE;
734 return pd->indices; 720 return pd->indices;
735} 721}
@@ -743,14 +729,12 @@ _evas_3d_mesh_index_data_unmap(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
743 return; 729 return;
744 } 730 }
745 731
746 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
747 pd->index_mapped = EINA_FALSE; 732 pd->index_mapped = EINA_FALSE;
748} 733}
749 734
750EOLIAN static void 735EOLIAN static void
751_evas_3d_mesh_vertex_assembly_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Vertex_Assembly assembly) 736_evas_3d_mesh_vertex_assembly_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Vertex_Assembly assembly)
752{ 737{
753 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
754 pd->assembly = assembly; 738 pd->assembly = assembly;
755 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY, NULL)); 739 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_VERTEX_ASSEMBLY, NULL));
756} 740}
@@ -758,14 +742,12 @@ _evas_3d_mesh_vertex_assembly_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Vertex
758EOLIAN static Evas_3D_Vertex_Assembly 742EOLIAN static Evas_3D_Vertex_Assembly
759_evas_3d_mesh_vertex_assembly_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd) 743_evas_3d_mesh_vertex_assembly_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
760{ 744{
761 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
762 return pd->assembly; 745 return pd->assembly;
763} 746}
764 747
765EOLIAN static void 748EOLIAN static void
766_evas_3d_mesh_fog_color_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 749_evas_3d_mesh_fog_color_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
767{ 750{
768 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
769 evas_color_set(&pd->fog_color, r, g, b, a); 751 evas_color_set(&pd->fog_color, r, g, b, a);
770 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FOG, NULL)); 752 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FOG, NULL));
771} 753}
@@ -783,7 +765,6 @@ _evas_3d_mesh_fog_color_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd,
783EOLIAN static void 765EOLIAN static void
784_evas_3d_mesh_fog_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool enabled) 766_evas_3d_mesh_fog_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool enabled)
785{ 767{
786 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
787 pd->fog_enabled = enabled; 768 pd->fog_enabled = enabled;
788 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FOG, NULL)); 769 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_FOG, NULL));
789} 770}
@@ -797,7 +778,6 @@ _evas_3d_mesh_fog_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
797EOLIAN static void 778EOLIAN static void
798_evas_3d_mesh_blending_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool blending) 779_evas_3d_mesh_blending_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool blending)
799{ 780{
800 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
801 pd->blending = blending; 781 pd->blending = blending;
802 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_BLENDING, NULL)); 782 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_BLENDING, NULL));
803} 783}
@@ -811,7 +791,6 @@ _evas_3d_mesh_blending_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
811EOLIAN static void 791EOLIAN static void
812_evas_3d_mesh_blending_func_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Blend_Func sfactor, Evas_3D_Blend_Func dfactor) 792_evas_3d_mesh_blending_func_set(Eo *obj, Evas_3D_Mesh_Data *pd, Evas_3D_Blend_Func sfactor, Evas_3D_Blend_Func dfactor)
813{ 793{
814 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
815 pd->blend_sfactor = sfactor; 794 pd->blend_sfactor = sfactor;
816 pd->blend_dfactor = dfactor; 795 pd->blend_dfactor = dfactor;
817 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_BLENDING, NULL)); 796 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_BLENDING, NULL));
@@ -829,7 +808,6 @@ EOLIAN static void
829_evas_3d_mesh_mmap_set(Eo *obj, Evas_3D_Mesh_Data *pd, 808_evas_3d_mesh_mmap_set(Eo *obj, Evas_3D_Mesh_Data *pd,
830 Eina_File *file, const char *key EINA_UNUSED) 809 Eina_File *file, const char *key EINA_UNUSED)
831{ 810{
832 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
833 _mesh_fini(pd); 811 _mesh_fini(pd);
834 _mesh_init(pd); 812 _mesh_init(pd);
835 813
@@ -843,7 +821,6 @@ _evas_3d_mesh_efl_file_file_set(Eo *obj, Evas_3D_Mesh_Data *pd,
843 const char *file, 821 const char *file,
844 const char *key EINA_UNUSED) 822 const char *key EINA_UNUSED)
845{ 823{
846 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
847 _mesh_fini(pd); 824 _mesh_fini(pd);
848 _mesh_init(pd); 825 _mesh_init(pd);
849 826
@@ -861,7 +838,6 @@ _evas_3d_mesh_efl_file_save(Eo *obj, Evas_3D_Mesh_Data *pd,
861{ 838{
862 if ((file == NULL) || (obj == NULL) || (pd == NULL)) return EINA_FALSE; 839 if ((file == NULL) || (obj == NULL) || (pd == NULL)) return EINA_FALSE;
863 840
864 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
865 Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, 0); 841 Evas_3D_Mesh_Frame *f = evas_3d_mesh_frame_find(pd, 0);
866 842
867 if (f == NULL) 843 if (f == NULL)
@@ -998,7 +974,6 @@ _evas_3d_mesh_color_pick_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Mesh_Data *pd)
998EOLIAN static Eina_Bool 974EOLIAN static Eina_Bool
999_evas_3d_mesh_color_pick_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool _enabled) 975_evas_3d_mesh_color_pick_enable_set(Eo *obj, Evas_3D_Mesh_Data *pd, Eina_Bool _enabled)
1000{ 976{
1001 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1002 if (pd->color_pick_enabled != _enabled) 977 if (pd->color_pick_enabled != _enabled)
1003 pd->color_pick_enabled = _enabled; 978 pd->color_pick_enabled = _enabled;
1004 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_COLOR_PICK, NULL)); 979 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_MESH_COLOR_PICK, NULL));
diff --git a/src/lib/evas/canvas/evas_3d_node.c b/src/lib/evas/canvas/evas_3d_node.c
index ead5694e81..62e2c1cb01 100644
--- a/src/lib/evas/canvas/evas_3d_node.c
+++ b/src/lib/evas/canvas/evas_3d_node.c
@@ -85,7 +85,6 @@ _evas_3d_node_evas_3d_object_change_notify(Eo *obj, Evas_3D_Node_Data *pd, Evas_
85 Eina_Bool scale; 85 Eina_Bool scale;
86 Eina_Bool parent_change; 86 Eina_Bool parent_change;
87 87
88 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
89 /* Notify all scenes using this node that it has changed. */ 88 /* Notify all scenes using this node that it has changed. */
90 if (pd->scenes_root) 89 if (pd->scenes_root)
91 eina_hash_foreach(pd->scenes_root, _node_scene_root_change_notify, obj); 90 eina_hash_foreach(pd->scenes_root, _node_scene_root_change_notify, obj);
@@ -458,7 +457,6 @@ _node_update_done(Evas_3D_Node *obj, void *data EINA_UNUSED)
458EOLIAN static void 457EOLIAN static void
459_evas_3d_node_evas_3d_object_update_notify(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED) 458_evas_3d_node_evas_3d_object_update_notify(Eo *obj, Evas_3D_Node_Data *pd EINA_UNUSED)
460{ 459{
461 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
462 /* Update transform. */ 460 /* Update transform. */
463 evas_3d_node_tree_traverse(obj, EVAS_3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE, 461 evas_3d_node_tree_traverse(obj, EVAS_3D_TREE_TRAVERSE_LEVEL_ORDER, EINA_FALSE,
464 _node_transform_update, NULL); 462 _node_transform_update, NULL);
@@ -935,7 +933,6 @@ _evas_3d_node_member_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
935 ERR("Failed to add a member node (adding to itself)."); 933 ERR("Failed to add a member node (adding to itself).");
936 return; 934 return;
937 } 935 }
938 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
939 Evas_3D_Node_Data *pdmember = eo_data_scope_get(member, MY_CLASS); 936 Evas_3D_Node_Data *pdmember = eo_data_scope_get(member, MY_CLASS);
940 if (pdmember->parent == obj) 937 if (pdmember->parent == obj)
941 return; 938 return;
@@ -976,7 +973,6 @@ _evas_3d_node_member_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Node *member)
976 return; 973 return;
977 } 974 }
978 975
979 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
980 /* Delete the member node. */ 976 /* Delete the member node. */
981 pd->members = eina_list_remove(pd->members, member); 977 pd->members = eina_list_remove(pd->members, member);
982 pdmember->parent = NULL; 978 pdmember->parent = NULL;
@@ -1000,14 +996,12 @@ _evas_3d_node_parent_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
1000EOLIAN static const Eina_List * 996EOLIAN static const Eina_List *
1001_evas_3d_node_member_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd) 997_evas_3d_node_member_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
1002{ 998{
1003 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1004 return pd->members; 999 return pd->members;
1005} 1000}
1006 1001
1007EOLIAN static void 1002EOLIAN static void
1008_evas_3d_node_position_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z) 1003_evas_3d_node_position_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
1009{ 1004{
1010 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1011 pd->position.x = x; 1005 pd->position.x = x;
1012 pd->position.y = y; 1006 pd->position.y = y;
1013 pd->position.z = z; 1007 pd->position.z = z;
@@ -1018,7 +1012,6 @@ _evas_3d_node_position_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Rea
1018EOLIAN static void 1012EOLIAN static void
1019_evas_3d_node_orientation_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w) 1013_evas_3d_node_orientation_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z, Evas_Real w)
1020{ 1014{
1021 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1022 pd->orientation.x = x; 1015 pd->orientation.x = x;
1023 pd->orientation.y = y; 1016 pd->orientation.y = y;
1024 pd->orientation.z = z; 1017 pd->orientation.z = z;
@@ -1035,7 +1028,6 @@ _evas_3d_node_orientation_angle_axis_set(Eo *obj, Evas_3D_Node_Data *pd,
1035 Evas_Real s = sin(half_angle); 1028 Evas_Real s = sin(half_angle);
1036 Evas_Vec3 axis; 1029 Evas_Vec3 axis;
1037 1030
1038 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1039 evas_vec3_set(&axis, x, y, z); 1031 evas_vec3_set(&axis, x, y, z);
1040 evas_vec3_normalize(&axis, &axis); 1032 evas_vec3_normalize(&axis, &axis);
1041 1033
@@ -1050,7 +1042,6 @@ _evas_3d_node_orientation_angle_axis_set(Eo *obj, Evas_3D_Node_Data *pd,
1050EOLIAN static void 1042EOLIAN static void
1051_evas_3d_node_scale_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z) 1043_evas_3d_node_scale_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_Real x, Evas_Real y, Evas_Real z)
1052{ 1044{
1053 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1054 pd->scale.x = x; 1045 pd->scale.x = x;
1055 pd->scale.y = y; 1046 pd->scale.y = y;
1056 pd->scale.z = z; 1047 pd->scale.z = z;
@@ -1143,7 +1134,6 @@ _evas_3d_node_scale_get(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Space space,
1143EOLIAN static void 1134EOLIAN static void
1144_evas_3d_node_position_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit) 1135_evas_3d_node_position_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
1145{ 1136{
1146 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1147 pd->position_inherit = inherit; 1137 pd->position_inherit = inherit;
1148 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_POSITION, NULL)); 1138 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_POSITION, NULL));
1149} 1139}
@@ -1151,7 +1141,6 @@ _evas_3d_node_position_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inh
1151EOLIAN static void 1141EOLIAN static void
1152_evas_3d_node_orientation_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit) 1142_evas_3d_node_orientation_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
1153{ 1143{
1154 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1155 pd->orientation_inherit = inherit; 1144 pd->orientation_inherit = inherit;
1156 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL)); 1145 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_ORIENTATION, NULL));
1157} 1146}
@@ -1159,7 +1148,6 @@ _evas_3d_node_orientation_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool
1159EOLIAN static void 1148EOLIAN static void
1160_evas_3d_node_scale_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit) 1149_evas_3d_node_scale_inherit_set(Eo *obj, Evas_3D_Node_Data *pd, Eina_Bool inherit)
1161{ 1150{
1162 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1163 pd->scale_inherit = inherit; 1151 pd->scale_inherit = inherit;
1164 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_SCALE, NULL)); 1152 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_NODE_TRANSFORM_SCALE, NULL));
1165} 1153}
@@ -1191,7 +1179,6 @@ _evas_3d_node_look_at_set(Eo *obj, Evas_3D_Node_Data *pd,
1191 Evas_Vec3 up; 1179 Evas_Vec3 up;
1192 Evas_Vec3 x, y, z; 1180 Evas_Vec3 x, y, z;
1193 1181
1194 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1195 /* Target position in parent space. */ 1182 /* Target position in parent space. */
1196 if (target_space == EVAS_3D_SPACE_LOCAL) 1183 if (target_space == EVAS_3D_SPACE_LOCAL)
1197 { 1184 {
@@ -1305,7 +1292,6 @@ _evas_3d_node_camera_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Camera *camera)
1305 if (pd->data.camera.camera == camera) 1292 if (pd->data.camera.camera == camera)
1306 return; 1293 return;
1307 1294
1308 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1309 if (pd->data.camera.camera) 1295 if (pd->data.camera.camera)
1310 { 1296 {
1311 /* Detach previous camera object. */ 1297 /* Detach previous camera object. */
@@ -1341,7 +1327,6 @@ _evas_3d_node_light_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Light *light)
1341 if (pd->data.light.light == light) 1327 if (pd->data.light.light == light)
1342 return; 1328 return;
1343 1329
1344 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1345 if (pd->data.light.light) 1330 if (pd->data.light.light)
1346 { 1331 {
1347 /* Detach previous light object. */ 1332 /* Detach previous light object. */
@@ -1382,7 +1367,6 @@ _evas_3d_node_mesh_add(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
1382 return; 1367 return;
1383 } 1368 }
1384 1369
1385 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1386 if ((nm = _node_mesh_new(obj, mesh)) == NULL) 1370 if ((nm = _node_mesh_new(obj, mesh)) == NULL)
1387 { 1371 {
1388 ERR("Failed to create node mesh."); 1372 ERR("Failed to create node mesh.");
@@ -1417,7 +1401,6 @@ _evas_3d_node_mesh_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
1417 return; 1401 return;
1418 } 1402 }
1419 1403
1420 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1421 if (!eina_hash_del(pd->data.mesh.node_meshes, &mesh, NULL)) 1404 if (!eina_hash_del(pd->data.mesh.node_meshes, &mesh, NULL))
1422 { 1405 {
1423 ERR("The given mesh doesn't belong to this node."); 1406 ERR("The given mesh doesn't belong to this node.");
@@ -1435,7 +1418,6 @@ _evas_3d_node_mesh_del(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh)
1435EOLIAN static const Eina_List * 1418EOLIAN static const Eina_List *
1436_evas_3d_node_mesh_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd) 1419_evas_3d_node_mesh_list_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd)
1437{ 1420{
1438 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1439 return pd->data.mesh.meshes; 1421 return pd->data.mesh.meshes;
1440} 1422}
1441 1423
@@ -1450,7 +1432,6 @@ _evas_3d_node_mesh_frame_set(Eo *obj, Evas_3D_Node_Data *pd, Evas_3D_Mesh *mesh,
1450 return; 1432 return;
1451 } 1433 }
1452 1434
1453 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1454 if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL) 1435 if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL)
1455 { 1436 {
1456 ERR("The given mesh doesn't belongs to this node."); 1437 ERR("The given mesh doesn't belongs to this node.");
@@ -1472,7 +1453,6 @@ _evas_3d_node_mesh_frame_get(Eo *obj EINA_UNUSED, Evas_3D_Node_Data *pd, Evas_3D
1472 return 0; 1453 return 0;
1473 } 1454 }
1474 1455
1475 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
1476 if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL) 1456 if ((nm = eina_hash_find(pd->data.mesh.node_meshes, &mesh)) == NULL)
1477 { 1457 {
1478 ERR("The given mesh doesn't belongs to this node."); 1458 ERR("The given mesh doesn't belongs to this node.");
diff --git a/src/lib/evas/canvas/evas_3d_object.c b/src/lib/evas/canvas/evas_3d_object.c
index ba1ecdc352..8116d098c4 100644
--- a/src/lib/evas/canvas/evas_3d_object.c
+++ b/src/lib/evas/canvas/evas_3d_object.c
@@ -22,9 +22,8 @@ EOLIAN static Evas *
22} 22}
23 23
24EOLIAN static void 24EOLIAN static void
25_evas_3d_object_type_set(Eo *obj, Evas_3D_Object_Data *pd, Evas_3D_Object_Type type) 25_evas_3d_object_type_set(Eo *obj EINA_UNUSED, Evas_3D_Object_Data *pd, Evas_3D_Object_Type type)
26{ 26{
27 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
28 pd->type = type; 27 pd->type = type;
29} 28}
30 29
@@ -47,7 +46,6 @@ _evas_3d_object_change(Eo *obj, Evas_3D_Object_Data *pd, Evas_3D_State state, Ev
47 if (pd->dirty[state]) 46 if (pd->dirty[state])
48 return; 47 return;
49 48
50 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
51 pd->dirty[state] = EINA_TRUE; 49 pd->dirty[state] = EINA_TRUE;
52 pd->dirty[EVAS_3D_STATE_ANY] = EINA_TRUE; 50 pd->dirty[EVAS_3D_STATE_ANY] = EINA_TRUE;
53 51
@@ -60,7 +58,6 @@ _evas_3d_object_update(Eo *obj, Evas_3D_Object_Data *pd)
60 if (!pd->dirty[EVAS_3D_STATE_ANY]) 58 if (!pd->dirty[EVAS_3D_STATE_ANY])
61 return; 59 return;
62 60
63 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
64 eo_do(obj, evas_3d_object_update_notify()); 61 eo_do(obj, evas_3d_object_update_notify());
65 62
66 memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX); 63 memset(&pd->dirty[0], 0x00, sizeof(Eina_Bool) * EVAS_3D_STATE_MAX);
diff --git a/src/lib/evas/canvas/evas_3d_scene.c b/src/lib/evas/canvas/evas_3d_scene.c
index edab2922eb..a26b6c8967 100644
--- a/src/lib/evas/canvas/evas_3d_scene.c
+++ b/src/lib/evas/canvas/evas_3d_scene.c
@@ -24,12 +24,11 @@ evas_3d_scene_data_fini(Evas_3D_Scene_Public_Data *data)
24} 24}
25 25
26EOLIAN static void 26EOLIAN static void
27_evas_3d_scene_evas_3d_object_change_notify(Eo *eo_obj, Evas_3D_Scene_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED) 27_evas_3d_scene_evas_3d_object_change_notify(Eo *eo_obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
28{ 28{
29 Eina_List *l; 29 Eina_List *l;
30 Evas_Object *eo; 30 Evas_Object *eo;
31 31
32 evas_object_async_block(eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS));
33 EINA_LIST_FOREACH(pd->images, l, eo) 32 EINA_LIST_FOREACH(pd->images, l, eo)
34 { 33 {
35 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo, EVAS_OBJECT_CLASS); 34 Evas_Object_Protected_Data *obj = eo_data_scope_get(eo, EVAS_OBJECT_CLASS);
@@ -38,9 +37,8 @@ _evas_3d_scene_evas_3d_object_change_notify(Eo *eo_obj, Evas_3D_Scene_Data *pd,
38} 37}
39 38
40EOLIAN static void 39EOLIAN static void
41_evas_3d_scene_evas_3d_object_update_notify(Eo *obj, Evas_3D_Scene_Data *pd) 40_evas_3d_scene_evas_3d_object_update_notify(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
42{ 41{
43 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
44 if (pd->root_node) 42 if (pd->root_node)
45 { 43 {
46 eo_do(pd->root_node, evas_3d_object_update()); 44 eo_do(pd->root_node, evas_3d_object_update());
@@ -82,7 +80,6 @@ _evas_3d_scene_root_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *node
82 if (pd->root_node == node) 80 if (pd->root_node == node)
83 return; 81 return;
84 82
85 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
86 if (pd->root_node) 83 if (pd->root_node)
87 { 84 {
88 evas_3d_node_scene_root_del(pd->root_node, obj); 85 evas_3d_node_scene_root_del(pd->root_node, obj);
@@ -112,7 +109,6 @@ _evas_3d_scene_camera_node_set(Eo *obj, Evas_3D_Scene_Data *pd, Evas_3D_Node *no
112 if (pd->camera_node == node) 109 if (pd->camera_node == node)
113 return; 110 return;
114 111
115 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
116 if (pd->camera_node) 112 if (pd->camera_node)
117 { 113 {
118 evas_3d_node_scene_camera_del(pd->camera_node, obj); 114 evas_3d_node_scene_camera_del(pd->camera_node, obj);
@@ -139,7 +135,6 @@ _evas_3d_scene_camera_node_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
139EOLIAN static void 135EOLIAN static void
140_evas_3d_scene_size_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int w, int h) 136_evas_3d_scene_size_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, int w, int h)
141{ 137{
142 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
143 pd->w = w; 138 pd->w = w;
144 pd->h = h; 139 pd->h = h;
145 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_SIZE, NULL)); 140 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_SIZE, NULL));
@@ -156,7 +151,6 @@ EOLIAN static void
156_evas_3d_scene_background_color_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, 151_evas_3d_scene_background_color_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd,
157 Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a) 152 Evas_Real r, Evas_Real g, Evas_Real b, Evas_Real a)
158{ 153{
159 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
160 evas_color_set(&pd->bg_color, r, g, b, a); 154 evas_color_set(&pd->bg_color, r, g, b, a);
161 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_BACKGROUND_COLOR, NULL)); 155 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_BACKGROUND_COLOR, NULL));
162} 156}
@@ -636,13 +630,12 @@ _evas_3d_scene_pick(Eo *obj, Evas_3D_Scene_Data *pd, Evas_Real x, Evas_Real y,
636 Evas_3D_Camera_Data *pd_camera; 630 Evas_3D_Camera_Data *pd_camera;
637 Evas_3D_Object_Data *pd_parent; 631 Evas_3D_Object_Data *pd_parent;
638 Evas_Public_Data *e; 632 Evas_Public_Data *e;
639 int tex = 0, px, py;; 633 int tex, px, py;;
640 double redcomponent; 634 double redcomponent;
641 Eina_Stringshare *tmp; 635 Eina_Stringshare *tmp;
642 Eina_Array *arr = NULL; 636 Eina_Array *arr = NULL;
643 Eina_Bool update_scene = EINA_FALSE; 637 Eina_Bool update_scene = EINA_FALSE;
644 638
645 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
646 pd_parent = eo_data_scope_get(obj, EVAS_3D_OBJECT_CLASS); 639 pd_parent = eo_data_scope_get(obj, EVAS_3D_OBJECT_CLASS);
647 e = eo_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS); 640 e = eo_data_scope_get(pd_parent->evas, EVAS_CANVAS_CLASS);
648 641
@@ -759,7 +752,6 @@ _evas_3d_scene_exist(Eo *obj, Evas_3D_Scene_Data *pd, Evas_Real x, Evas_Real y,
759 data.s = 0.0; 752 data.s = 0.0;
760 data.t = 0.0; 753 data.t = 0.0;
761 754
762 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
763 /* Update the scene graph. */ 755 /* Update the scene graph. */
764 eo_do(obj, evas_3d_object_update()); 756 eo_do(obj, evas_3d_object_update());
765 pd_camera_node = eo_data_scope_get(pd->camera_node, EVAS_3D_NODE_CLASS); 757 pd_camera_node = eo_data_scope_get(pd->camera_node, EVAS_3D_NODE_CLASS);
@@ -786,7 +778,6 @@ _evas_3d_scene_pick_member_list_get(Eo *obj, Evas_3D_Scene_Data *pd, Evas_Real x
786 void *node; 778 void *node;
787 Eina_Bool pick = EINA_FALSE; 779 Eina_Bool pick = EINA_FALSE;
788 780
789 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
790 /* Check pick for given scene. */ 781 /* Check pick for given scene. */
791 pick = eo_do(obj, evas_3d_scene_pick(x, y, NULL, NULL, NULL, NULL)); 782 pick = eo_do(obj, evas_3d_scene_pick(x, y, NULL, NULL, NULL, NULL));
792 783
@@ -814,7 +805,6 @@ _evas_3d_scene_shadows_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd)
814EOLIAN static void 805EOLIAN static void
815_evas_3d_scene_shadows_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Eina_Bool _shadows_enabled) 806_evas_3d_scene_shadows_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Eina_Bool _shadows_enabled)
816{ 807{
817 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
818 pd->shadows_enabled = _shadows_enabled; 808 pd->shadows_enabled = _shadows_enabled;
819 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_SHADOWS_ENABLED, NULL)); 809 eo_do(obj, evas_3d_object_change(EVAS_3D_STATE_SCENE_SHADOWS_ENABLED, NULL));
820} 810}
@@ -828,7 +818,6 @@ _evas_3d_scene_color_pick_enable_get(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd
828EOLIAN static Eina_Bool 818EOLIAN static Eina_Bool
829_evas_3d_scene_color_pick_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Eina_Bool _enabled) 819_evas_3d_scene_color_pick_enable_set(Eo *obj EINA_UNUSED, Evas_3D_Scene_Data *pd, Eina_Bool _enabled)
830{ 820{
831 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
832 if (pd->color_pick_enabled != _enabled) 821 if (pd->color_pick_enabled != _enabled)
833 pd->color_pick_enabled = _enabled; 822 pd->color_pick_enabled = _enabled;
834 823
diff --git a/src/lib/evas/canvas/evas_3d_texture.c b/src/lib/evas/canvas/evas_3d_texture.c
index a324eb67f5..8945fadea8 100644
--- a/src/lib/evas/canvas/evas_3d_texture.c
+++ b/src/lib/evas/canvas/evas_3d_texture.c
@@ -196,7 +196,6 @@ EOLIAN static void
196_evas_3d_texture_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED) 196_evas_3d_texture_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_State state EINA_UNUSED, Evas_3D_Object *ref EINA_UNUSED)
197{ 197{
198 198
199 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
200 if (pd->materials) 199 if (pd->materials)
201 eina_hash_foreach(pd->materials, _texture_material_change_notify, obj); 200 eina_hash_foreach(pd->materials, _texture_material_change_notify, obj);
202} 201}
@@ -204,7 +203,6 @@ _evas_3d_texture_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd,
204EOLIAN static void 203EOLIAN static void
205_evas_3d_texture_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd) 204_evas_3d_texture_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd)
206{ 205{
207 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
208 if (pd->source) 206 if (pd->source)
209 { 207 {
210 Eo *evas = NULL; 208 Eo *evas = NULL;
@@ -313,21 +311,19 @@ _evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUS
313EOLIAN static void 311EOLIAN static void
314_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED) 312_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
315{ 313{
316 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
317 //evas_3d_object_unreference(&pd->base); 314 //evas_3d_object_unreference(&pd->base);
318 _texture_fini(obj); 315 _texture_fini(obj);
319 eo_do_super(obj, MY_CLASS, eo_destructor()); 316 eo_do_super(obj, MY_CLASS, eo_destructor());
320} 317}
321 318
322EOLIAN static void 319EOLIAN static void
323_evas_3d_texture_data_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format, 320_evas_3d_texture_data_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format,
324 Evas_3D_Pixel_Format pixel_format, int w, int h, const void *data) 321 Evas_3D_Pixel_Format pixel_format, int w, int h, const void *data)
325{ 322{
326 Eo *evas = NULL; 323 Eo *evas = NULL;
327 eo_do(obj, evas = evas_common_evas_get()); 324 eo_do(obj, evas = evas_common_evas_get());
328 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 325 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
329 326
330 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
331 if (!pd->engine_data && e->engine.func->texture_new) 327 if (!pd->engine_data && e->engine.func->texture_new)
332 pd->engine_data = e->engine.func->texture_new(e->engine.data.output); 328 pd->engine_data = e->engine.func->texture_new(e->engine.data.output);
333 329
@@ -345,7 +341,6 @@ _evas_3d_texture_file_set(Eo *obj, Evas_3D_Texture_Data *pd, const char *file, c
345 eo_do(obj, evas = evas_common_evas_get()); 341 eo_do(obj, evas = evas_common_evas_get());
346 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 342 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
347 343
348 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
349 if (!pd->engine_data && e->engine.func->texture_new) 344 if (!pd->engine_data && e->engine.func->texture_new)
350 pd->engine_data = e->engine.func->texture_new(e->engine.data.output); 345 pd->engine_data = e->engine.func->texture_new(e->engine.data.output);
351 346
@@ -366,7 +361,6 @@ _evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *sou
366 if (source == pd->source) 361 if (source == pd->source)
367 return; 362 return;
368 363
369 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
370 _texture_fini(obj); 364 _texture_fini(obj);
371 365
372 if (source == NULL) 366 if (source == NULL)
@@ -397,7 +391,7 @@ _evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *sou
397} 391}
398 392
399EOLIAN static void 393EOLIAN static void
400_evas_3d_texture_source_visible_set(Eo *obj, Evas_3D_Texture_Data *pd, Eina_Bool visible) 394_evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Eina_Bool visible)
401{ 395{
402 Evas_Object_Protected_Data *src_obj; 396 Evas_Object_Protected_Data *src_obj;
403 397
@@ -409,7 +403,6 @@ _evas_3d_texture_source_visible_set(Eo *obj, Evas_3D_Texture_Data *pd, Eina_Bool
409 if (src_obj->proxy->src_invisible == !visible) 403 if (src_obj->proxy->src_invisible == !visible)
410 return; 404 return;
411 405
412 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
413 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src_obj->proxy, Evas_Object_Proxy_Data, proxy_write) 406 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src_obj->proxy, Evas_Object_Proxy_Data, proxy_write)
414 proxy_write->src_invisible = !visible; 407 proxy_write->src_invisible = !visible;
415 EINA_COW_WRITE_END(evas_object_proxy_cow, src_obj->proxy, proxy_write); 408 EINA_COW_WRITE_END(evas_object_proxy_cow, src_obj->proxy, proxy_write);
@@ -455,7 +448,6 @@ _evas_3d_texture_size_get(Eo *obj, Evas_3D_Texture_Data *pd, int *w, int *h)
455 Eo *evas = NULL; 448 Eo *evas = NULL;
456 eo_do(obj, evas = evas_common_evas_get()); 449 eo_do(obj, evas = evas_common_evas_get());
457 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 450 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
458 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
459 if (e->engine.func->texture_size_get) 451 if (e->engine.func->texture_size_get)
460 { 452 {
461 e->engine.func->texture_size_get(e->engine.data.output, 453 e->engine.func->texture_size_get(e->engine.data.output,
@@ -469,7 +461,6 @@ _evas_3d_texture_wrap_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode s
469 Eo *evas = NULL; 461 Eo *evas = NULL;
470 eo_do(obj, evas = evas_common_evas_get()); 462 eo_do(obj, evas = evas_common_evas_get());
471 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 463 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
472 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
473 if (e->engine.func->texture_wrap_set) 464 if (e->engine.func->texture_wrap_set)
474 { 465 {
475 e->engine.func->texture_wrap_set(e->engine.data.output, 466 e->engine.func->texture_wrap_set(e->engine.data.output,
@@ -484,7 +475,6 @@ _evas_3d_texture_wrap_get(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode *
484 Eo *evas = NULL; 475 Eo *evas = NULL;
485 eo_do(obj, evas = evas_common_evas_get()); 476 eo_do(obj, evas = evas_common_evas_get());
486 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 477 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
487 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
488 if (e->engine.func->texture_wrap_set) 478 if (e->engine.func->texture_wrap_set)
489 { 479 {
490 e->engine.func->texture_wrap_get(e->engine.data.output, 480 e->engine.func->texture_wrap_get(e->engine.data.output,
@@ -498,7 +488,6 @@ _evas_3d_texture_filter_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Texture_F
498 Eo *evas = NULL; 488 Eo *evas = NULL;
499 eo_do(obj, evas = evas_common_evas_get()); 489 eo_do(obj, evas = evas_common_evas_get());
500 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 490 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
501 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
502 if (e->engine.func->texture_filter_set) 491 if (e->engine.func->texture_filter_set)
503 { 492 {
504 e->engine.func->texture_filter_set(e->engine.data.output, 493 e->engine.func->texture_filter_set(e->engine.data.output,
@@ -513,7 +502,6 @@ _evas_3d_texture_filter_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_
513 Eo *evas = NULL; 502 Eo *evas = NULL;
514 eo_do(obj, evas = evas_common_evas_get()); 503 eo_do(obj, evas = evas_common_evas_get());
515 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 504 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
516 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
517 if (e->engine.func->texture_filter_get) 505 if (e->engine.func->texture_filter_get)
518 { 506 {
519 e->engine.func->texture_filter_get(e->engine.data.output, 507 e->engine.func->texture_filter_get(e->engine.data.output,