ecore_wl2: Add surface_window_get api

One of the last remaining blockers for compiling dmabuf support as a
plug-in.
This commit is contained in:
Derek Foreman 2018-01-26 13:15:45 -06:00
parent fb3928ec96
commit 0fc4fa7156
2 changed files with 15 additions and 3 deletions

View File

@ -2030,6 +2030,7 @@ EAPI void ecore_wl2_window_surface_flush(Ecore_Wl2_Window *window);
EAPI Ecore_Wl2_Buffer *ecore_wl2_surface_buffer_create(Ecore_Wl2_Surface *surface); EAPI Ecore_Wl2_Buffer *ecore_wl2_surface_buffer_create(Ecore_Wl2_Surface *surface);
EAPI int ecore_wl2_surface_manager_add(Ecore_Wl2_Surface_Interface *intf); EAPI int ecore_wl2_surface_manager_add(Ecore_Wl2_Surface_Interface *intf);
EAPI void ecore_wl2_surface_manager_del(Ecore_Wl2_Surface_Interface *intf); EAPI void ecore_wl2_surface_manager_del(Ecore_Wl2_Surface_Interface *intf);
EAPI Ecore_Wl2_Window *ecore_wl2_surface_window_get(Ecore_Wl2_Surface *surface);
# endif # endif

View File

@ -152,6 +152,7 @@ _evas_dmabuf_surface_post(Ecore_Wl2_Surface *s, void *priv_data, Eina_Rectangle
{ {
Ecore_Wl2_Dmabuf_Private *p; Ecore_Wl2_Dmabuf_Private *p;
Ecore_Wl2_Buffer *b; Ecore_Wl2_Buffer *b;
Ecore_Wl2_Window *win;
p = priv_data; p = priv_data;
@ -164,10 +165,12 @@ _evas_dmabuf_surface_post(Ecore_Wl2_Surface *s, void *priv_data, Eina_Rectangle
ecore_wl2_buffer_busy_set(b); ecore_wl2_buffer_busy_set(b);
ecore_wl2_buffer_age_set(b, 0); ecore_wl2_buffer_age_set(b, 0);
ecore_wl2_window_buffer_attach(s->wl2_win, b->wl_buffer, 0, 0, EINA_FALSE); win = ecore_wl2_surface_window_get(s);
ecore_wl2_window_damage(s->wl2_win, rects, count);
ecore_wl2_window_commit(s->wl2_win, EINA_TRUE); ecore_wl2_window_buffer_attach(win, b->wl_buffer, 0, 0, EINA_FALSE);
ecore_wl2_window_damage(win, rects, count);
ecore_wl2_window_commit(win, EINA_TRUE);
} }
static void static void
@ -325,6 +328,14 @@ ecore_wl2_surface_manager_del(Ecore_Wl2_Surface_Interface *intf)
_smanagers = eina_list_remove(_smanagers, intf); _smanagers = eina_list_remove(_smanagers, intf);
} }
EAPI Ecore_Wl2_Window *
ecore_wl2_surface_window_get(Ecore_Wl2_Surface *surface)
{
EINA_SAFETY_ON_NULL_RETURN_VAL(surface, NULL);
return surface->wl2_win;
}
/* TEMPORARY HACK FOR TESTING */ /* TEMPORARY HACK FOR TESTING */
Eina_Bool Eina_Bool
ecore_wl2_surface_manager_dmabuf_add(void) ecore_wl2_surface_manager_dmabuf_add(void)