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>
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;