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 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 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_post(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
|
||||||
|
EAPI void ecore_wl2_surface_flush(Ecore_Wl2_Surface *surface);
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
|
|
@ -559,6 +559,7 @@ typedef struct _Ecore_Wl2_Surface
|
||||||
void *(*data_get)(Ecore_Wl2_Surface *surface, int *w, int *h);
|
void *(*data_get)(Ecore_Wl2_Surface *surface, int *w, int *h);
|
||||||
int (*assign)(Ecore_Wl2_Surface *surface);
|
int (*assign)(Ecore_Wl2_Surface *surface);
|
||||||
void (*post)(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
|
void (*post)(Ecore_Wl2_Surface *surface, Eina_Rectangle *rects, unsigned int count);
|
||||||
|
void (*flush)(Ecore_Wl2_Surface *surface);
|
||||||
} funcs;
|
} funcs;
|
||||||
} Ecore_Wl2_Surface;
|
} Ecore_Wl2_Surface;
|
||||||
|
|
||||||
|
|
|
@ -148,6 +148,18 @@ _evas_dmabuf_surface_destroy(Ecore_Wl2_Surface *s)
|
||||||
ecore_wl2_buffer_destroy(b);
|
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
|
EAPI void
|
||||||
ecore_wl2_surface_destroy(Ecore_Wl2_Surface *surface)
|
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);
|
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 *
|
EAPI Ecore_Wl2_Surface *
|
||||||
ecore_wl2_surface_create(Ecore_Wl2_Window *win, Eina_Bool alpha)
|
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.data_get = _evas_dmabuf_surface_data_get;
|
||||||
out->funcs.assign = _evas_dmabuf_surface_assign;
|
out->funcs.assign = _evas_dmabuf_surface_assign;
|
||||||
out->funcs.post = _evas_dmabuf_surface_post;
|
out->funcs.post = _evas_dmabuf_surface_post;
|
||||||
|
out->funcs.flush = _surface_flush;
|
||||||
win->wl2_surface = out;
|
win->wl2_surface = out;
|
||||||
return out;
|
return out;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue