derekf pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0fc4fa71565a466ce006a08b3d2f9099f074d0cc

commit 0fc4fa71565a466ce006a08b3d2f9099f074d0cc
Author: Derek Foreman <[email protected]>
Date:   Fri Jan 26 13:15:45 2018 -0600

    ecore_wl2: Add surface_window_get api
    
    One of the last remaining blockers for compiling dmabuf support as a
    plug-in.
---
 src/lib/ecore_wl2/Ecore_Wl2.h         |  1 +
 src/lib/ecore_wl2/ecore_wl2_surface.c | 17 ++++++++++++++---
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h
index c12e3a98fc..d03537f2a6 100644
--- a/src/lib/ecore_wl2/Ecore_Wl2.h
+++ b/src/lib/ecore_wl2/Ecore_Wl2.h
@@ -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 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);
 
 # endif
 
diff --git a/src/lib/ecore_wl2/ecore_wl2_surface.c 
b/src/lib/ecore_wl2/ecore_wl2_surface.c
index b5331c2e6e..e110a2c86b 100644
--- a/src/lib/ecore_wl2/ecore_wl2_surface.c
+++ b/src/lib/ecore_wl2/ecore_wl2_surface.c
@@ -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
@@ -325,6 +328,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)

-- 


Reply via email to