summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Michael <cp.michael@samsung.com>2015-03-19 16:09:23 -0400
committerChris Michael <cp.michael@samsung.com>2015-03-19 16:17:25 -0400
commit2725a248c993856d70323c3a0bb0d859d7501789 (patch)
treef30db2f3fc02b4a98e824d29a774a60d53383036
parent4935582355d240ba5600ffb9354bb4185575afb3 (diff)
evas-software-generic: Allow future rendering calls if evas has to skip a frame
Summary: If we do not get a new_region_for_update from an engine, it could mean that the engine has skipped a frame. In that case, we still want to try and render any future frames. Before this commit, evas would never try to re-render anything again once it hit a failed frame. To fix this, we test for a valid returned region, and if we don't get one, mark this frame as failed so we can try again. NB: Thanks for the help Cedric !! :) @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index f053acea15..dc4d7b334f 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -3376,8 +3376,10 @@ eng_output_redraws_next_update_get(void *data, int *x, int *y, int *w, int *h, i
3376 surface = re->outbuf_new_region_for_update(re->ob, 3376 surface = re->outbuf_new_region_for_update(re->ob,
3377 *x, *y, *w, *h, 3377 *x, *y, *w, *h,
3378 cx, cy, cw, ch); 3378 cx, cy, cw, ch);
3379 if (!re->cur_rect) 3379 if ((!re->cur_rect) || (!surface))
3380 { 3380 {
3381 evas_common_tilebuf_free_render_rects(re->rects);
3382 re->rects = NULL;
3381 re->end = 1; 3383 re->end = 1;
3382 } 3384 }
3383 return surface; 3385 return surface;