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
This commit is contained in:
Subhransu Mohanty 2016-09-28 15:28:27 +09:00 committed by Carsten Haitzler (Rasterman)
parent 19a16ecb6d
commit d54b5fba6c
5 changed files with 10 additions and 0 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;
}

View File

@ -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;
}