devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2725a248c993856d70323c3a0bb0d859d7501789

commit 2725a248c993856d70323c3a0bb0d859d7501789
Author: Chris Michael <[email protected]>
Date:   Thu Mar 19 16:09:23 2015 -0400

    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 <[email protected]>
---
 src/modules/evas/engines/software_generic/evas_engine.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/software_generic/evas_engine.c 
b/src/modules/evas/engines/software_generic/evas_engine.c
index f053ace..dc4d7b3 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
         surface = re->outbuf_new_region_for_update(re->ob,
                                                    *x, *y, *w, *h,
                                                    cx, cy, cw, ch);
-        if (!re->cur_rect)
+        if ((!re->cur_rect) || (!surface))
           {
+             evas_common_tilebuf_free_render_rects(re->rects);
+             re->rects = NULL;
              re->end = 1;
           }
         return surface;

-- 


Reply via email to