forked from enlightenment/efl
ecore_wl2: Add ecore_wl2_surface_flush
This removes all buffers from a surface.
This commit is contained in:
parent
fdd05f8028
commit
c48ca81026
|
@ -2003,6 +2003,7 @@ EAPI void ecore_wl2_surface_reconfigure(Ecore_Wl2_Surface *surface, int w, int h
|
|||
EAPI void *ecore_wl2_surface_data_get(Ecore_Wl2_Surface *surface, int *w, int *h);
|
||||
EAPI int ecore_wl2_surface_assign(Ecore_Wl2_Surface *surface);
|
||||
EAPI void ecore_wl2_surface_post(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
|
||||
EAPI void ecore_wl2_surface_flush(Ecore_Wl2_Surface *surface);
|
||||
|
||||
# endif
|
||||
|
||||
|
|
|
@ -559,6 +559,7 @@ typedef struct _Ecore_Wl2_Surface
|
|||
void *(*data_get)(Ecore_Wl2_Surface *surface, int *w, int *h);
|
||||
int (*assign)(Ecore_Wl2_Surface *surface);
|
||||
void (*post)(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
|
||||
void (*flush)(Ecore_Wl2_Surface *surface);
|
||||
} funcs;
|
||||
} Ecore_Wl2_Surface;
|
||||
|
||||
|
|
|
@ -148,6 +148,18 @@ _evas_dmabuf_surface_destroy(Ecore_Wl2_Surface *s)
|
|||
ecore_wl2_buffer_destroy(b);
|
||||
}
|
||||
|
||||
static void
|
||||
_surface_flush(Ecore_Wl2_Surface *surface)
|
||||
{
|
||||
Ecore_Wl2_Buffer *b;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(surface);
|
||||
|
||||
EINA_LIST_FREE(surface->buffers, b)
|
||||
ecore_wl2_buffer_destroy(b);
|
||||
}
|
||||
|
||||
|
||||
EAPI void
|
||||
ecore_wl2_surface_destroy(Ecore_Wl2_Surface *surface)
|
||||
{
|
||||
|
@ -191,6 +203,14 @@ ecore_wl2_surface_post(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsign
|
|||
surface->funcs.post(surface, rects, count);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_wl2_surface_flush(Ecore_Wl2_Surface *surface)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(surface);
|
||||
|
||||
surface->funcs.flush(surface);
|
||||
}
|
||||
|
||||
EAPI Ecore_Wl2_Surface *
|
||||
ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha)
|
||||
{
|
||||
|
@ -224,6 +244,7 @@ ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha)
|
|||
out->funcs.data_get = _evas_dmabuf_surface_data_get;
|
||||
out->funcs.assign = _evas_dmabuf_surface_assign;
|
||||
out->funcs.post = _evas_dmabuf_surface_post;
|
||||
out->funcs.flush = _surface_flush;
|
||||
win->wl2_surface = out;
|
||||
return out;
|
||||
|
||||
|
|
Loading…
Reference in New Issue