ecore_wl2: Add surface_window_get api
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 26 Jan 2018 19:15:45 +0000 (13:15 -0600)
committerJiyoun Park <jy0703.park@samsung.com>
Tue, 3 Apr 2018 13:12:55 +0000 (22:12 +0900)
One of the last remaining blockers for compiling dmabuf support as a
plug-in.

src/lib/ecore_wl2/Ecore_Wl2.h
src/lib/ecore_wl2/ecore_wl2_surface.c

index 947177c..f4b14a9 100644 (file)
@@ -2324,6 +2324,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 int ecore_wl2_surface_manager_add(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);
 
 // TIZEN_ONLY(20171107): support a tizen_keyrouter interface
 EAPI void ecore_wl2_display_sync(Ecore_Wl2_Display *display);
index 30ce26f..341047e 100644 (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_Buffer *b;
+   Ecore_Wl2_Window *win;
 
    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_age_set(b, 0);
 
-   ecore_wl2_window_buffer_attach(s->wl2_win, b->wl_buffer, 0, 0, EINA_FALSE);
-   ecore_wl2_window_damage(s->wl2_win, rects, count);
+   win = ecore_wl2_surface_window_get(s);
 
-   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
@@ -331,6 +334,14 @@ ecore_wl2_surface_manager_del(Ecore_Wl2_Surface_Interface *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 */
 Eina_Bool
 ecore_wl2_surface_manager_dmabuf_add(void)