derekf pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=57f0150b73cfac4f0e2f1d98663377dd26c89d09

commit 57f0150b73cfac4f0e2f1d98663377dd26c89d09
Author: Derek Foreman <der...@osg.samsung.com>
Date:   Fri Apr 29 11:20:38 2016 -0500

    Break native surface test criteria into explicit wayland and X cases
    
    Until now it's been reasonable to consider these together as the
    criteria have been similar.  With the upcoming introduction of wayland
    DMAbuf buffers, they diverge.
    
    We don't need to test for GL in the wayland case because we don't
    advertise GL capabilities to clients when we don't support it, so they
    can't create GL buffers unless we can display them.
---
 src/bin/e_comp_object.c | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 77f9004..033a46c 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3675,10 +3675,20 @@ e_comp_object_native_surface_set(Evas_Object *obj, 
Eina_Bool set)
 
    if (set)
      {
-        /* native requires gl enabled, texture from pixmap enabled, and a 
non-shaped client */
-        set = (e_comp->gl &&
-          ((e_comp->comp_type != E_PIXMAP_TYPE_X) || 
e_comp_config_get()->texture_from_pixmap) &&
-          (!cw->ec->shaped));
+        switch (e_comp->comp_type)
+          {
+           case E_PIXMAP_TYPE_X:
+             /* native requires gl enabled, texture from pixmap enabled, and a 
non-shaped client */
+             set = e_comp->gl &&
+                   e_comp_config_get()->texture_from_pixmap &&
+                   !cw->ec->shaped;
+             break;
+           case E_PIXMAP_TYPE_WL:
+             set = !e_pixmap_is_pixels(cw->ec->pixmap);
+             break;
+           default:
+             set = 0;
+          }
         if (set)
           set = (!!cw->ns) || e_pixmap_native_surface_init(cw->ec->pixmap, 
&ns);
      }

-- 


Reply via email to