forked from enlightenment/efl
evas: use output instead of default one during rendering of proxy.
This commit is contained in:
parent
84c6d3332e
commit
a5b4defdd5
|
@ -412,7 +412,7 @@ evas_filter_object_render(Eo *eo_obj, Evas_Object_Protected_Data *obj,
|
|||
}
|
||||
|
||||
// Proxies
|
||||
evas_filter_context_proxy_render_all(filter, eo_obj, EINA_FALSE);
|
||||
evas_filter_context_proxy_render_all(filter, eo_obj, output, EINA_FALSE);
|
||||
|
||||
// Draw Context
|
||||
drawctx = ENFN->context_new(engine);
|
||||
|
|
|
@ -2092,7 +2092,7 @@ _evas_image_pixels_get(Eo *eo_obj, Evas_Object_Protected_Data *obj,
|
|||
else
|
||||
{
|
||||
o->proxyrendering = EINA_TRUE;
|
||||
evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source,
|
||||
evas_render_proxy_subrender(obj->layer->evas->evas, output, o->cur->source,
|
||||
eo_obj, obj, o->proxy_src_clip, EINA_FALSE);
|
||||
pixels = source->proxy->surface;
|
||||
*imagew = source->proxy->w;
|
||||
|
|
|
@ -13520,7 +13520,7 @@ evas_object_textblock_render(Evas_Object *eo_obj EINA_UNUSED,
|
|||
ENFN->context_multiplier_set(engine, context,
|
||||
obj->cur->cache.clip.r, obj->cur->cache.clip.g,
|
||||
obj->cur->cache.clip.b, obj->cur->cache.clip.a);
|
||||
evas_filter_context_proxy_render_all(ctx, eo_obj, EINA_FALSE);
|
||||
evas_filter_context_proxy_render_all(ctx, eo_obj, output, EINA_FALSE);
|
||||
evas_filter_context_buffers_allocate_all(ctx);
|
||||
evas_filter_target_set(ctx, context, surface, target.x, target.y, NULL);
|
||||
ti->gfx_filter->ctx = ctx;
|
||||
|
|
|
@ -2309,7 +2309,7 @@ end:
|
|||
* TODO: 3d objects subrender should probably be merged here as well.
|
||||
*/
|
||||
void
|
||||
evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_proxy,
|
||||
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)
|
||||
{
|
||||
|
@ -2363,7 +2363,7 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object *eo_
|
|||
ctx = ENFN->context_new(ENC);
|
||||
ENFN->context_color_set(ENC, ctx, 0, 0,0, 0);
|
||||
ENFN->context_render_op_set(ENC, ctx, EVAS_RENDER_COPY);
|
||||
ENFN->rectangle_draw(ENC, ENDT, ctx, proxy_write->surface, 0, 0, w, h, do_async);
|
||||
ENFN->rectangle_draw(ENC, output, ctx, proxy_write->surface, 0, 0, w, h, do_async);
|
||||
ENFN->context_free(ENC, ctx);
|
||||
eina_evlog("-proxy_fill", eo_proxy, 0.0, NULL);
|
||||
|
||||
|
|
|
@ -118,7 +118,7 @@ _filter_buffer_backing_free(Evas_Filter_Buffer *fb)
|
|||
|
||||
/** @hidden private render proxy objects */
|
||||
void
|
||||
evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj,
|
||||
evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, void *output,
|
||||
Eina_Bool do_async)
|
||||
{
|
||||
Evas_Object_Protected_Data *source;
|
||||
|
@ -148,7 +148,7 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj,
|
|||
XDBG("Source needs to be rendered: '%s' of type '%s' (%s)",
|
||||
fb->source_name, efl_class_name_get(efl_class_get(fb->source)),
|
||||
source->proxy->redraw ? "redraw" : "no surface");
|
||||
evas_render_proxy_subrender(ctx->evas->evas, fb->source, eo_obj, obj, EINA_FALSE, do_async);
|
||||
evas_render_proxy_subrender(ctx->evas->evas, output, fb->source, eo_obj, obj, EINA_FALSE, do_async);
|
||||
}
|
||||
if (fb->buffer)
|
||||
{
|
||||
|
|
|
@ -152,7 +152,7 @@ Eina_Bool evas_filter_context_async_get(Evas_Filter_Context *ctx)
|
|||
void evas_filter_context_size_get(Evas_Filter_Context *ctx, int *w, int *H);
|
||||
void evas_filter_context_destroy(Evas_Filter_Context *ctx);
|
||||
Eina_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);
|
||||
void evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, Eina_Bool do_async);
|
||||
void evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, void *output, Eina_Bool do_async);
|
||||
void evas_filter_context_post_run_callback_set(Evas_Filter_Context *ctx, Evas_Filter_Cb cb, void *data);
|
||||
#define evas_filter_context_autodestroy(ctx) evas_filter_context_post_run_callback_set(ctx, ((Evas_Filter_Cb) evas_filter_context_destroy), ctx)
|
||||
Eina_Bool evas_filter_context_buffers_allocate_all(Evas_Filter_Context *ctx);
|
||||
|
|
|
@ -2056,7 +2056,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, Evas_Object *obj,
|
|||
int level, Eina_Bool do_async);
|
||||
void evas_render_invalidate(Evas *e);
|
||||
void evas_render_object_recalc(Evas_Object_Protected_Data *obj);
|
||||
void 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);
|
||||
void 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);
|
||||
void 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);
|
||||
|
||||
Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y);
|
||||
|
|
Loading…
Reference in New Issue