forked from enlightenment/efl
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:
parent
19a16ecb6d
commit
d54b5fba6c
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue