summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2017-08-25 10:52:14 -0700
committerCedric BAIL <cedric@osg.samsung.com>2017-08-25 10:52:14 -0700
commite682f641930dc52db44729ffe4f23895c0fe94d6 (patch)
tree850aad1a0b52ee4315344c0a7fa9c594b46596a7
parenta0c58276c34a1877b2c8a15502b06431ecb4b306 (diff)
evas: make vector graphic support multi output.
-rw-r--r--src/lib/evas/canvas/evas_object_vg.c8
-rw-r--r--src/lib/evas/include/evas_private.h1
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c9
3 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/evas/canvas/evas_object_vg.c b/src/lib/evas/canvas/evas_object_vg.c
index c1a2730407..c3edc9dac9 100644
--- a/src/lib/evas/canvas/evas_object_vg.c
+++ b/src/lib/evas/canvas/evas_object_vg.c
@@ -179,12 +179,8 @@ evas_object_vg_render(Evas_Object *eo_obj EINA_UNUSED,
179{ 179{
180 Evas_VG_Data *vd = type_private_data; 180 Evas_VG_Data *vd = type_private_data;
181 Ector_Surface *ector = evas_ector_get(obj->layer->evas); 181 Ector_Surface *ector = evas_ector_get(obj->layer->evas);
182 // FIXME: Set context (that should affect Ector_Surface) and 182
183 // then call Ector_Renderer render from bottom to top. Get the 183 obj->layer->evas->engine.func->ector_output_set(engine, surface, output);
184 // Ector_Surface that match the output from Evas engine API.
185 // It is a requirement that you can reparent an Ector_Renderer
186 // to another Ector_Surface as long as that Ector_Surface is a
187 // child of the main Ector_Surface (necessary for Evas_Map).
188 184
189 if (!vd->engine_data) 185 if (!vd->engine_data)
190 vd->engine_data = obj->layer->evas->engine.func->ector_new(engine, context, ector, surface); 186 vd->engine_data = obj->layer->evas->engine.func->ector_new(engine, context, ector, surface);
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 529256a3c5..c0cdd12ac8 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1611,6 +1611,7 @@ struct _Evas_Func
1611 void *(*texture_image_get) (void *engine, void *texture); 1611 void *(*texture_image_get) (void *engine, void *texture);
1612 1612
1613 Ector_Surface *(*ector_create) (void *engine); 1613 Ector_Surface *(*ector_create) (void *engine);
1614 void (*ector_output_set) (void *engine, Ector_Surface *surface, void *output);
1614 void (*ector_destroy) (void *engine, Ector_Surface *surface); 1615 void (*ector_destroy) (void *engine, Ector_Surface *surface);
1615 Ector_Buffer *(*ector_buffer_wrap) (void *engine, Evas *e, void *engine_image); 1616 Ector_Buffer *(*ector_buffer_wrap) (void *engine, Evas *e, void *engine_image);
1616 Ector_Buffer *(*ector_buffer_new) (void *engine, Evas *e, int width, int height, Efl_Gfx_Colorspace cspace, Ector_Buffer_Flag flags); 1617 Ector_Buffer *(*ector_buffer_new) (void *engine, Evas *e, int width, int height, Efl_Gfx_Colorspace cspace, Ector_Buffer_Flag flags);
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index b7dd3c8058..ade91f45ae 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -4338,6 +4338,14 @@ eng_ector_create(void *engine EINA_UNUSED)
4338} 4338}
4339 4339
4340static void 4340static void
4341eng_ector_output_set(void *engine EINA_UNUSED,
4342 Ector_Surface *surface EINA_UNUSED,
4343 void *output EINA_UNUSED)
4344{
4345 // To be useful for GL backend only.
4346}
4347
4348static void
4341eng_ector_destroy(void *data EINA_UNUSED, Ector_Surface *ector) 4349eng_ector_destroy(void *data EINA_UNUSED, Ector_Surface *ector)
4342{ 4350{
4343 if (ector) efl_del(ector); 4351 if (ector) efl_del(ector);
@@ -4848,6 +4856,7 @@ static Evas_Func func =
4848 NULL, // eng_texture_image_set 4856 NULL, // eng_texture_image_set
4849 NULL, // eng_texture_image_get 4857 NULL, // eng_texture_image_get
4850 eng_ector_create, 4858 eng_ector_create,
4859 eng_ector_output_set,
4851 eng_ector_destroy, 4860 eng_ector_destroy,
4852 eng_ector_buffer_wrap, 4861 eng_ector_buffer_wrap,
4853 eng_ector_buffer_new, 4862 eng_ector_buffer_new,