summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2017-08-25 10:52:29 -0700
committerCedric BAIL <cedric@osg.samsung.com>2017-08-25 10:52:29 -0700
commita5b4defdd559089bf289d4f71a4b7f015c586af9 (patch)
treef25c4782855e1d2e41c8fc125f8de44f5b8de3ac
parent84c6d3332e2243b6074c995c05c8b50e29cefb4d (diff)
evas: use output instead of default one during rendering of proxy.
-rw-r--r--src/lib/evas/canvas/evas_filter_mixin.c2
-rw-r--r--src/lib/evas/canvas/evas_object_image.c2
-rw-r--r--src/lib/evas/canvas/evas_object_textblock.c2
-rw-r--r--src/lib/evas/canvas/evas_render.c4
-rw-r--r--src/lib/evas/filters/evas_filter.c4
-rw-r--r--src/lib/evas/include/evas_filter.h2
-rw-r--r--src/lib/evas/include/evas_private.h2
7 files changed, 9 insertions, 9 deletions
diff --git a/src/lib/evas/canvas/evas_filter_mixin.c b/src/lib/evas/canvas/evas_filter_mixin.c
index 3f3292ec04..64574b3fd2 100644
--- a/src/lib/evas/canvas/evas_filter_mixin.c
+++ b/src/lib/evas/canvas/evas_filter_mixin.c
@@ -412,7 +412,7 @@ evas_filter_object_render(Eo *eo_obj, Evas_Object_Protected_Data *obj,
412 } 412 }
413 413
414 // Proxies 414 // Proxies
415 evas_filter_context_proxy_render_all(filter, eo_obj, EINA_FALSE); 415 evas_filter_context_proxy_render_all(filter, eo_obj, output, EINA_FALSE);
416 416
417 // Draw Context 417 // Draw Context
418 drawctx = ENFN->context_new(engine); 418 drawctx = ENFN->context_new(engine);
diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c
index 9db54b42ec..6d23f1a212 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -2092,7 +2092,7 @@ _evas_image_pixels_get(Eo *eo_obj, Evas_Object_Protected_Data *obj,
2092 else 2092 else
2093 { 2093 {
2094 o->proxyrendering = EINA_TRUE; 2094 o->proxyrendering = EINA_TRUE;
2095 evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source, 2095 evas_render_proxy_subrender(obj->layer->evas->evas, output, o->cur->source,
2096 eo_obj, obj, o->proxy_src_clip, EINA_FALSE); 2096 eo_obj, obj, o->proxy_src_clip, EINA_FALSE);
2097 pixels = source->proxy->surface; 2097 pixels = source->proxy->surface;
2098 *imagew = source->proxy->w; 2098 *imagew = source->proxy->w;
diff --git a/src/lib/evas/canvas/evas_object_textblock.c b/src/lib/evas/canvas/evas_object_textblock.c
index 79abde8b94..ae0ab261af 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -13520,7 +13520,7 @@ evas_object_textblock_render(Evas_Object *eo_obj EINA_UNUSED,
13520 ENFN->context_multiplier_set(engine, context, 13520 ENFN->context_multiplier_set(engine, context,
13521 obj->cur->cache.clip.r, obj->cur->cache.clip.g, 13521 obj->cur->cache.clip.r, obj->cur->cache.clip.g,
13522 obj->cur->cache.clip.b, obj->cur->cache.clip.a); 13522 obj->cur->cache.clip.b, obj->cur->cache.clip.a);
13523 evas_filter_context_proxy_render_all(ctx, eo_obj, EINA_FALSE); 13523 evas_filter_context_proxy_render_all(ctx, eo_obj, output, EINA_FALSE);
13524 evas_filter_context_buffers_allocate_all(ctx); 13524 evas_filter_context_buffers_allocate_all(ctx);
13525 evas_filter_target_set(ctx, context, surface, target.x, target.y, NULL); 13525 evas_filter_target_set(ctx, context, surface, target.x, target.y, NULL);
13526 ti->gfx_filter->ctx = ctx; 13526 ti->gfx_filter->ctx = ctx;
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 47d4efa025..f5485c4838 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2309,7 +2309,7 @@ end:
2309 * TODO: 3d objects subrender should probably be merged here as well. 2309 * TODO: 3d objects subrender should probably be merged here as well.
2310 */ 2310 */
2311void 2311void
2312evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, 2312evas_render_proxy_subrender(Evas *eo_e, void *output, Evas_Object *eo_source, Evas_Object *eo_proxy,
2313 Evas_Object_Protected_Data *proxy_obj, 2313 Evas_Object_Protected_Data *proxy_obj,
2314 Eina_Bool source_clip, Eina_Bool do_async) 2314 Eina_Bool source_clip, Eina_Bool do_async)
2315{ 2315{
@@ -2363,7 +2363,7 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_
2363 ctx = ENFN->context_new(ENC); 2363 ctx = ENFN->context_new(ENC);
2364 ENFN->context_color_set(ENC, ctx, 0, 0,0, 0); 2364 ENFN->context_color_set(ENC, ctx, 0, 0,0, 0);
2365 ENFN->context_render_op_set(ENC, ctx, EVAS_RENDER_COPY); 2365 ENFN->context_render_op_set(ENC, ctx, EVAS_RENDER_COPY);
2366 ENFN->rectangle_draw(ENC, ENDT, ctx, proxy_write->surface, 0, 0, w, h, do_async); 2366 ENFN->rectangle_draw(ENC, output, ctx, proxy_write->surface, 0, 0, w, h, do_async);
2367 ENFN->context_free(ENC, ctx); 2367 ENFN->context_free(ENC, ctx);
2368 eina_evlog("-proxy_fill", eo_proxy, 0.0, NULL); 2368 eina_evlog("-proxy_fill", eo_proxy, 0.0, NULL);
2369 2369
diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c
index e95296258b..0f0a835df7 100644
--- a/src/lib/evas/filters/evas_filter.c
+++ b/src/lib/evas/filters/evas_filter.c
@@ -118,7 +118,7 @@ _filter_buffer_backing_free(Evas_Filter_Buffer *fb)
118 118
119/** @hidden private render proxy objects */ 119/** @hidden private render proxy objects */
120void 120void
121evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, 121evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, void *output,
122 Eina_Bool do_async) 122 Eina_Bool do_async)
123{ 123{
124 Evas_Object_Protected_Data *source; 124 Evas_Object_Protected_Data *source;
@@ -148,7 +148,7 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj,
148 XDBG("Source needs to be rendered: '%s' of type '%s' (%s)", 148 XDBG("Source needs to be rendered: '%s' of type '%s' (%s)",
149 fb->source_name, efl_class_name_get(efl_class_get(fb->source)), 149 fb->source_name, efl_class_name_get(efl_class_get(fb->source)),
150 source->proxy->redraw ? "redraw" : "no surface"); 150 source->proxy->redraw ? "redraw" : "no surface");
151 evas_render_proxy_subrender(ctx->evas->evas, fb->source, eo_obj, obj, EINA_FALSE, do_async); 151 evas_render_proxy_subrender(ctx->evas->evas, output, fb->source, eo_obj, obj, EINA_FALSE, do_async);
152 } 152 }
153 if (fb->buffer) 153 if (fb->buffer)
154 { 154 {
diff --git a/src/lib/evas/include/evas_filter.h b/src/lib/evas/include/evas_filter.h
index 175069c7a7..00b9bbf08c 100644
--- a/src/lib/evas/include/evas_filter.h
+++ b/src/lib/evas/include/evas_filter.h
@@ -152,7 +152,7 @@ Eina_Bool evas_filter_context_async_get(Evas_Filter_Context *ctx)
152void evas_filter_context_size_get(Evas_Filter_Context *ctx, int *w, int *H); 152void evas_filter_context_size_get(Evas_Filter_Context *ctx, int *w, int *H);
153void evas_filter_context_destroy(Evas_Filter_Context *ctx); 153void evas_filter_context_destroy(Evas_Filter_Context *ctx);
154Eina_Bool evas_filter_context_program_use(void *engine, void *output, Evas_Filter_Context *ctx, Evas_Filter_Program *pgm, Eina_Bool reuse, int object_x, int object_y); 154Eina_Bool evas_filter_context_program_use(void *engine, void *output, Evas_Filter_Context *ctx, Evas_Filter_Program *pgm, Eina_Bool reuse, int object_x, int object_y);
155void evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, Eina_Bool do_async); 155void evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, void *output, Eina_Bool do_async);
156void evas_filter_context_post_run_callback_set(Evas_Filter_Context *ctx, Evas_Filter_Cb cb, void *data); 156void evas_filter_context_post_run_callback_set(Evas_Filter_Context *ctx, Evas_Filter_Cb cb, void *data);
157#define evas_filter_context_autodestroy(ctx) evas_filter_context_post_run_callback_set(ctx, ((Evas_Filter_Cb) evas_filter_context_destroy), ctx) 157#define evas_filter_context_autodestroy(ctx) evas_filter_context_post_run_callback_set(ctx, ((Evas_Filter_Cb) evas_filter_context_destroy), ctx)
158Eina_Bool evas_filter_context_buffers_allocate_all(Evas_Filter_Context *ctx); 158Eina_Bool evas_filter_context_buffers_allocate_all(Evas_Filter_Context *ctx);
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 5d40c32b5a..cf43529af9 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -2056,7 +2056,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, Evas_Object *obj,
2056 int level, Eina_Bool do_async); 2056 int level, Eina_Bool do_async);
2057void evas_render_invalidate(Evas *e); 2057void evas_render_invalidate(Evas *e);
2058void evas_render_object_recalc(Evas_Object_Protected_Data *obj); 2058void evas_render_object_recalc(Evas_Object_Protected_Data *obj);
2059void evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy, Evas_Object_Protected_Data *proxy_obj, Eina_Bool source_clip, Eina_Bool do_async); 2059void evas_render_proxy_subrender(Evas *eo_e, void *output, Evas_Object *eo_source, Evas_Object *eo_proxy, Evas_Object_Protected_Data *proxy_obj, Eina_Bool source_clip, Eina_Bool do_async);
2060void evas_render_mask_subrender(Evas_Public_Data *e, Evas_Object_Protected_Data *mask, Evas_Object_Protected_Data *prev_mask, int level, Eina_Bool do_async); 2060void evas_render_mask_subrender(Evas_Public_Data *e, Evas_Object_Protected_Data *mask, Evas_Object_Protected_Data *prev_mask, int level, Eina_Bool do_async);
2061 2061
2062Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y); 2062Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y);