summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2015-08-01 02:38:31 +0200
committerCedric BAIL <cedric@osg.samsung.com>2015-08-06 11:05:50 +0200
commit08e888156ea343cbb004b825c44187576c3a7fa0 (patch)
treedc2116014dbf9b8dfdca5876fd10049ad7c1b59b
parent941d75d24db49b71de34c7f86c282c840c42dfbe (diff)
evas: force full redraw of snapshot for every frame, every time.
NOTE: it would be nicer to setup a specific context for each snapshot and walk all the child below. If any of them did change, only trigger the full redraw in that case (and of course only if a filter with blurr does use it somewhere).
-rw-r--r--src/lib/evas/canvas/evas_render.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index 0ad7df7603..0618e1aeb6 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2514,6 +2514,25 @@ evas_render_updates_internal(Evas *eo_e,
2514 e->engine.func->output_redraws_rect_add(e->engine.data.output, 0, 0, 2514 e->engine.func->output_redraws_rect_add(e->engine.data.output, 0, 0,
2515 e->output.w, e->output.h); 2515 e->output.w, e->output.h);
2516 } 2516 }
2517
2518 // Add redraw for all snapshot object due to potential use of pixels outside
2519 // of the update area by filters.
2520 // The side effect is that it also fix rendering of partial update of filter...
2521 // As they are never partially updated anymore !
2522
2523 // FIXME: don't add redraw rect for snapshot with no filter applied on
2524 // Also damage the filter object that use a snapshot.
2525 for (i = 0; i < e->snapshot_objects.count; i++)
2526 {
2527 obj = (Evas_Object_Protected_Data *)eina_array_data_get(&e->snapshot_objects, i);
2528
2529 if (evas_object_is_visible(obj->object, obj))
2530 e->engine.func->output_redraws_rect_add(e->engine.data.output,
2531 obj->cur->geometry.x,
2532 obj->cur->geometry.y,
2533 obj->cur->geometry.w,
2534 obj->cur->geometry.h);
2535 }
2517 eina_evlog("-render_phase4", eo_e, 0.0, NULL); 2536 eina_evlog("-render_phase4", eo_e, 0.0, NULL);
2518 2537
2519 /* phase 5. add obscures */ 2538 /* phase 5. add obscures */