forked from enlightenment/efl
evas engines - fix partial swap to not skip swaps if full mode used
@fix
This commit is contained in:
parent
ab1734ea19
commit
f05686c051
|
@ -1556,7 +1556,8 @@ eng_outbuf_flush(Outbuf *ob, Tilebuf_Rect *rects, Evas_Render_Mode render_mode)
|
|||
{
|
||||
ob->info->callback.pre_swap(ob->info->callback.data, ob->evas);
|
||||
}
|
||||
if ((glsym_eglSwapBuffersWithDamage) && (ob->swap_mode != MODE_FULL))
|
||||
if ((glsym_eglSwapBuffersWithDamage) && (rects) &&
|
||||
(ob->swap_mode != MODE_FULL))
|
||||
{
|
||||
EGLint num = 0, *result = NULL, i = 0;
|
||||
Tilebuf_Rect *r;
|
||||
|
|
|
@ -3594,7 +3594,9 @@ 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) || (!surface))
|
||||
if ((re->swap_mode == MODE_AUTO) ||
|
||||
(re->swap_mode == MODE_FULL) ||
|
||||
(!surface))
|
||||
{
|
||||
evas_common_tilebuf_free_render_rects(re->rects);
|
||||
re->rects = NULL;
|
||||
|
|
|
@ -508,7 +508,8 @@ eng_outbuf_flush(Outbuf *ob, Tilebuf_Rect *rects, Evas_Render_Mode render_mode)
|
|||
if (ob->info->callback.pre_swap)
|
||||
ob->info->callback.pre_swap(ob->info->callback.data, ob->evas);
|
||||
|
||||
if ((glsym_eglSwapBuffersWithDamage) && (ob->swap_mode != MODE_FULL))
|
||||
if ((glsym_eglSwapBuffersWithDamage) && (rects) &&
|
||||
(ob->swap_mode != MODE_FULL))
|
||||
{
|
||||
EGLint num = 0, *result = NULL, i = 0;
|
||||
Tilebuf_Rect *r;
|
||||
|
|
Loading…
Reference in New Issue