diff options
author | Subhransu Mohanty <sub.mohanty@samsung.com> | 2016-09-28 15:28:27 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2016-09-28 16:02:12 +0900 |
commit | d54b5fba6c7e7f13ca63a47fc177e4d141995a8d (patch) | |
tree | fdf58b7dc4376fcc12124d7080aed5bfffc406a1 | |
parent | 19a16ecb6d64f56b36403aa750bdca2acaf0c28e (diff) | |
download | efl-d54b5fba6c7e7f13ca63a47fc177e4d141995a8d.tar.gz |
ector: make the ector objects as shared object after eo changes.
As ector objects are acessed by draw thread we need to create it as
shared object in order to access it from other thread.
Note: there is some performance lag...
Summary: make ector object as shared eo object to acess from other thread.
Reviewers: cedric, jpeg, raster
Reviewed By: jpeg, raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4319
-rw-r--r-- | src/lib/evas/canvas/evas_vg_gradient_linear.c | 2 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_gradient_radial.c | 2 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_shape.c | 2 | ||||
-rw-r--r-- | src/modules/evas/engines/gl_generic/evas_engine.c | 2 | ||||
-rw-r--r-- | src/modules/evas/engines/software_generic/evas_engine.c | 2 |
5 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_vg_gradient_linear.c b/src/lib/evas/canvas/evas_vg_gradient_linear.c index 11fb903210..de81987979 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_linear.c +++ b/src/lib/evas/canvas/evas_vg_gradient_linear.c @@ -74,7 +74,9 @@ _efl_vg_gradient_linear_render_pre(Eo *obj, if (!nd->renderer) { + efl_domain_current_push(EFL_ID_DOMAIN_SHARED); nd->renderer = ector_surface_renderer_factory_new(s, ECTOR_RENDERER_GRADIENT_LINEAR_MIXIN); + efl_domain_current_pop(); } ector_renderer_transformation_set(nd->renderer, current); diff --git a/src/lib/evas/canvas/evas_vg_gradient_radial.c b/src/lib/evas/canvas/evas_vg_gradient_radial.c index a83c016a38..9a60d65518 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_radial.c +++ b/src/lib/evas/canvas/evas_vg_gradient_radial.c @@ -90,7 +90,9 @@ _efl_vg_gradient_radial_render_pre(Eo *obj, if (!nd->renderer) { + efl_domain_current_push(EFL_ID_DOMAIN_SHARED); nd->renderer = ector_surface_renderer_factory_new(s, ECTOR_RENDERER_GRADIENT_RADIAL_MIXIN); + efl_domain_current_pop(); } ector_renderer_transformation_set(nd->renderer, current); diff --git a/src/lib/evas/canvas/evas_vg_shape.c b/src/lib/evas/canvas/evas_vg_shape.c index 2f47f27cef..9b48ab37c5 100644 --- a/src/lib/evas/canvas/evas_vg_shape.c +++ b/src/lib/evas/canvas/evas_vg_shape.c @@ -135,7 +135,9 @@ _efl_vg_shape_render_pre(Eo *obj EINA_UNUSED, if (!nd->renderer) { + efl_domain_current_push(EFL_ID_DOMAIN_SHARED); nd->renderer = ector_surface_renderer_factory_new(s, ECTOR_RENDERER_SHAPE_MIXIN); + efl_domain_current_pop(); } ector_renderer_transformation_set(nd->renderer, current); diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 5c5417fd0a..61b4a607f7 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -2489,6 +2489,7 @@ eng_ector_create(void *data EINA_UNUSED) Ector_Surface *ector; const char *ector_backend; ector_backend = getenv("ECTOR_BACKEND"); + efl_domain_current_push(EFL_ID_DOMAIN_SHARED); if (ector_backend && !strcasecmp(ector_backend, "default")) { ector = efl_add(ECTOR_SOFTWARE_SURFACE_CLASS, NULL); @@ -2503,6 +2504,7 @@ eng_ector_create(void *data EINA_UNUSED) ector = efl_add(ECTOR_CAIRO_SOFTWARE_SURFACE_CLASS, NULL); use_cairo = EINA_TRUE; } + efl_domain_current_pop(); return ector; } diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 2755b48a94..7ab8ba443a 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -4254,6 +4254,7 @@ eng_ector_create(void *data EINA_UNUSED) Ector_Surface *ector; const char *ector_backend; ector_backend = getenv("ECTOR_BACKEND"); + efl_domain_current_push(EFL_ID_DOMAIN_SHARED); if (ector_backend && !strcasecmp(ector_backend, "default")) { ector = efl_add(ECTOR_SOFTWARE_SURFACE_CLASS, NULL); @@ -4264,6 +4265,7 @@ eng_ector_create(void *data EINA_UNUSED) ector = efl_add(ECTOR_CAIRO_SOFTWARE_SURFACE_CLASS, NULL); use_cairo = EINA_TRUE; } + efl_domain_current_pop(); return ector; } |