devilhorns pushed a commit to branch master.

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

commit b44a068b4b8fe55d700274655b3a6f003e47beec
Author: Chris Michael <[email protected]>
Date:   Mon Aug 18 16:11:15 2014 -0400

    evas-wayland-egl: Fix wayland egl engine not rendering
    
    Reset the Outbuf's Engine information pointer.
    We also don't need to do an eng_window_free during reconfigure because the
    software_generic_update function will free it anyway.
    We should also re-setup the tilebuffer during eng_setup.
    Fix gl_context resize to work even if there is no wl_egl window setup
    yet.
    
    @fix
    
    Signed-off-by: Chris Michael <[email protected]>
---
 src/modules/evas/engines/wayland_egl/evas_engine.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c 
b/src/modules/evas/engines/wayland_egl/evas_engine.c
index ef0471b..59f7240 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -666,6 +666,7 @@ eng_setup(Evas *evas, void *info)
         ob = eng_get_ob(re);
         if ((ob) && (_re_wincheck(ob)))
           {
+             ob->info = inf;
              if ((ob->info->info.display != ob->disp) || 
                  (ob->info->info.surface != ob->surface) || 
                  (ob->info->info.win != ob->win) || 
@@ -678,9 +679,6 @@ eng_setup(Evas *evas, void *info)
 
                   ob = eng_window_new(evas, inf, epd->output.w, epd->output.h, 
swap_mode);
                   if (!ob) goto ob_err;
-
-                  eng_window_free(eng_get_ob(re));
-                  re->generic.software.ob = NULL;
  
                   eng_window_use(ob);
 
@@ -694,13 +692,6 @@ eng_setup(Evas *evas, void *info)
                {
                   eng_outbuf_reconfigure(ob, epd->output.w, epd->output.h, 
                                          ob->info->info.rotation, 0);
-                  if (re->generic.software.tb)
-                    evas_common_tilebuf_free(re->generic.software.tb);
-                  re->generic.software.tb = 
-                    evas_common_tilebuf_new(epd->output.w, epd->output.h);
-                  if (re->generic.software.tb)
-                    evas_common_tilebuf_set_tile_size(re->generic.software.tb, 
-                                                      TILESIZE, TILESIZE);
                }
           }
      }
@@ -718,7 +709,14 @@ eng_setup(Evas *evas, void *info)
      }
 
    if (re->generic.software.tb)
+     evas_common_tilebuf_free(re->generic.software.tb);
+   re->generic.software.tb = 
+     evas_common_tilebuf_new(epd->output.w, epd->output.h);
+
+   if (re->generic.software.tb)
      {
+        evas_common_tilebuf_set_tile_size(re->generic.software.tb, 
+                                          TILESIZE, TILESIZE);
         evas_render_engine_software_generic_tile_strict_set
           (&re->generic.software, EINA_TRUE);
      }
@@ -816,10 +814,10 @@ eng_output_resize(void *data, int w, int h)
           wl_egl_window_resize(ob->win, h, w, dx, dy);
         else
           wl_egl_window_resize(ob->win, w, h, dx, dy);
-
-        glsym_evas_gl_common_context_resize(ob->gl_context, w, h, ob->rot);
      }
 
+   glsym_evas_gl_common_context_resize(ob->gl_context, w, h, ob->rot);
+
    if (re->generic.software.tb)
      evas_common_tilebuf_free(re->generic.software.tb);
 

-- 


Reply via email to