Surface *surface;
- struct
+ struct
{
/* one big buffer for updates. flushed on idle_flush */
RGBA_Image *onebuf;
/* Eina_Bool redraw : 1; */
Eina_Bool destination_alpha : 1;
} priv;
+ // TIZEN_ONLY(20161017): Properly invalidate buffer //
+ int prev_age;
+ //
};
Eina_Bool _evas_tbmbuf_surface_create(Surface *s, int w, int h, int num_buff);
Render_Engine_Swap_Mode
_evas_outbuf_swap_mode_get(Outbuf *ob)
{
+ //TIZEN_ONLY(20161017): Properly invalidate buffer
int age;
+ Render_Engine_Swap_Mode mode;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
age = ob->surface->funcs.assign(ob->surface);
- if (age == 1) return MODE_COPY;
- else if (age == 2) return MODE_DOUBLE;
- else if (age == 3) return MODE_TRIPLE;
- else if (age == 4) return MODE_QUADRUPLE;
+ if (age == 1) mode = MODE_COPY;
+ else if (age == 2) mode = MODE_DOUBLE;
+ else if (age == 3) mode = MODE_TRIPLE;
+ else if (age == 4) mode = MODE_QUADRUPLE;
+ else mode = MODE_FULL;
- return MODE_FULL;
+ if (ob->prev_age != age) mode = MODE_FULL;
+ ob->prev_age = age;
+
+ return mode;
+ //
}
int