summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_3d_texture.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/lib/evas/canvas/evas_3d_texture.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/lib/evas/canvas/evas_3d_texture.c b/src/lib/evas/canvas/evas_3d_texture.c
index 8945fad..a324eb6 100644
--- a/src/lib/evas/canvas/evas_3d_texture.c
+++ b/src/lib/evas/canvas/evas_3d_texture.c
@@ -196,6 +196,7 @@ 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));
199 if (pd->materials) 200 if (pd->materials)
200 eina_hash_foreach(pd->materials, _texture_material_change_notify, obj); 201 eina_hash_foreach(pd->materials, _texture_material_change_notify, obj);
201} 202}
@@ -203,6 +204,7 @@ _evas_3d_texture_evas_3d_object_change_notify(Eo *obj, Evas_3D_Texture_Data *pd,
203EOLIAN static void 204EOLIAN static void
204_evas_3d_texture_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd) 205_evas_3d_texture_evas_3d_object_update_notify(Eo *obj, Evas_3D_Texture_Data *pd)
205{ 206{
207 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
206 if (pd->source) 208 if (pd->source)
207 { 209 {
208 Eo *evas = NULL; 210 Eo *evas = NULL;
@@ -311,19 +313,21 @@ _evas_3d_texture_eo_base_constructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUS
311EOLIAN static void 313EOLIAN static void
312_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED) 314_evas_3d_texture_eo_base_destructor(Eo *obj, Evas_3D_Texture_Data *pd EINA_UNUSED)
313{ 315{
316 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
314 //evas_3d_object_unreference(&pd->base); 317 //evas_3d_object_unreference(&pd->base);
315 _texture_fini(obj); 318 _texture_fini(obj);
316 eo_do_super(obj, MY_CLASS, eo_destructor()); 319 eo_do_super(obj, MY_CLASS, eo_destructor());
317} 320}
318 321
319EOLIAN static void 322EOLIAN static void
320_evas_3d_texture_data_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format, 323_evas_3d_texture_data_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Color_Format color_format,
321 Evas_3D_Pixel_Format pixel_format, int w, int h, const void *data) 324 Evas_3D_Pixel_Format pixel_format, int w, int h, const void *data)
322{ 325{
323 Eo *evas = NULL; 326 Eo *evas = NULL;
324 eo_do(obj, evas = evas_common_evas_get()); 327 eo_do(obj, evas = evas_common_evas_get());
325 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 328 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
326 329
330 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
327 if (!pd->engine_data && e->engine.func->texture_new) 331 if (!pd->engine_data && e->engine.func->texture_new)
328 pd->engine_data = e->engine.func->texture_new(e->engine.data.output); 332 pd->engine_data = e->engine.func->texture_new(e->engine.data.output);
329 333
@@ -341,6 +345,7 @@ _evas_3d_texture_file_set(Eo *obj, Evas_3D_Texture_Data *pd, const char *file, c
341 eo_do(obj, evas = evas_common_evas_get()); 345 eo_do(obj, evas = evas_common_evas_get());
342 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 346 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS);
343 347
348 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
344 if (!pd->engine_data && e->engine.func->texture_new) 349 if (!pd->engine_data && e->engine.func->texture_new)
345 pd->engine_data = e->engine.func->texture_new(e->engine.data.output); 350 pd->engine_data = e->engine.func->texture_new(e->engine.data.output);
346 351
@@ -361,6 +366,7 @@ _evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *sou
361 if (source == pd->source) 366 if (source == pd->source)
362 return; 367 return;
363 368
369 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
364 _texture_fini(obj); 370 _texture_fini(obj);
365 371
366 if (source == NULL) 372 if (source == NULL)
@@ -391,7 +397,7 @@ _evas_3d_texture_source_set(Eo *obj , Evas_3D_Texture_Data *pd, Evas_Object *sou
391} 397}
392 398
393EOLIAN static void 399EOLIAN static void
394_evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Eina_Bool visible) 400_evas_3d_texture_source_visible_set(Eo *obj, Evas_3D_Texture_Data *pd, Eina_Bool visible)
395{ 401{
396 Evas_Object_Protected_Data *src_obj; 402 Evas_Object_Protected_Data *src_obj;
397 403
@@ -403,6 +409,7 @@ _evas_3d_texture_source_visible_set(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *p
403 if (src_obj->proxy->src_invisible == !visible) 409 if (src_obj->proxy->src_invisible == !visible)
404 return; 410 return;
405 411
412 evas_object_async_block(eo_data_scope_get(obj, EVAS_OBJECT_CLASS));
406 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src_obj->proxy, Evas_Object_Proxy_Data, proxy_write) 413 EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, src_obj->proxy, Evas_Object_Proxy_Data, proxy_write)
407 proxy_write->src_invisible = !visible; 414 proxy_write->src_invisible = !visible;
408 EINA_COW_WRITE_END(evas_object_proxy_cow, src_obj->proxy, proxy_write); 415 EINA_COW_WRITE_END(evas_object_proxy_cow, src_obj->proxy, proxy_write);
@@ -448,6 +455,7 @@ _evas_3d_texture_size_get(Eo *obj, Evas_3D_Texture_Data *pd, int *w, int *h)
448 Eo *evas = NULL; 455 Eo *evas = NULL;
449 eo_do(obj, evas = evas_common_evas_get()); 456 eo_do(obj, evas = evas_common_evas_get());
450 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 457 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));
451 if (e->engine.func->texture_size_get) 459 if (e->engine.func->texture_size_get)
452 { 460 {
453 e->engine.func->texture_size_get(e->engine.data.output, 461 e->engine.func->texture_size_get(e->engine.data.output,
@@ -461,6 +469,7 @@ _evas_3d_texture_wrap_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode s
461 Eo *evas = NULL; 469 Eo *evas = NULL;
462 eo_do(obj, evas = evas_common_evas_get()); 470 eo_do(obj, evas = evas_common_evas_get());
463 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 471 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));
464 if (e->engine.func->texture_wrap_set) 473 if (e->engine.func->texture_wrap_set)
465 { 474 {
466 e->engine.func->texture_wrap_set(e->engine.data.output, 475 e->engine.func->texture_wrap_set(e->engine.data.output,
@@ -475,6 +484,7 @@ _evas_3d_texture_wrap_get(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Wrap_Mode *
475 Eo *evas = NULL; 484 Eo *evas = NULL;
476 eo_do(obj, evas = evas_common_evas_get()); 485 eo_do(obj, evas = evas_common_evas_get());
477 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 486 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));
478 if (e->engine.func->texture_wrap_set) 488 if (e->engine.func->texture_wrap_set)
479 { 489 {
480 e->engine.func->texture_wrap_get(e->engine.data.output, 490 e->engine.func->texture_wrap_get(e->engine.data.output,
@@ -488,6 +498,7 @@ _evas_3d_texture_filter_set(Eo *obj, Evas_3D_Texture_Data *pd, Evas_3D_Texture_F
488 Eo *evas = NULL; 498 Eo *evas = NULL;
489 eo_do(obj, evas = evas_common_evas_get()); 499 eo_do(obj, evas = evas_common_evas_get());
490 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 500 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));
491 if (e->engine.func->texture_filter_set) 502 if (e->engine.func->texture_filter_set)
492 { 503 {
493 e->engine.func->texture_filter_set(e->engine.data.output, 504 e->engine.func->texture_filter_set(e->engine.data.output,
@@ -502,6 +513,7 @@ _evas_3d_texture_filter_get(Eo *obj EINA_UNUSED, Evas_3D_Texture_Data *pd, Evas_
502 Eo *evas = NULL; 513 Eo *evas = NULL;
503 eo_do(obj, evas = evas_common_evas_get()); 514 eo_do(obj, evas = evas_common_evas_get());
504 Evas_Public_Data *e = eo_data_scope_get(evas, EVAS_CANVAS_CLASS); 515 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));
505 if (e->engine.func->texture_filter_get) 517 if (e->engine.func->texture_filter_get)
506 { 518 {
507 e->engine.func->texture_filter_get(e->engine.data.output, 519 e->engine.func->texture_filter_get(e->engine.data.output,