summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSubhransu Mohanty <sub.mohanty@samsung.com>2016-09-28 15:28:27 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-09-28 16:02:12 +0900
commitd54b5fba6c7e7f13ca63a47fc177e4d141995a8d (patch)
treefdf58b7dc4376fcc12124d7080aed5bfffc406a1
parent19a16ecb6d64f56b36403aa750bdca2acaf0c28e (diff)
downloadefl-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.c2
-rw-r--r--src/lib/evas/canvas/evas_vg_gradient_radial.c2
-rw-r--r--src/lib/evas/canvas/evas_vg_shape.c2
-rw-r--r--src/modules/evas/engines/gl_generic/evas_engine.c2
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c2
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;
}