cedric pushed a commit to branch master.

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

commit 4ea75113caeeec6bbc047f2406f8d1c89870360b
Author: Cedric BAIL <[email protected]>
Date:   Thu Oct 9 12:20:53 2014 +0200

    evas: GL_X11 context need to always be with alpha or it will fail to change.
    
    @fix
---
 src/modules/evas/engines/gl_x11/evas_engine.c |  7 +++----
 src/modules/evas/engines/gl_x11/evas_engine.h |  2 +-
 src/modules/evas/engines/gl_x11/evas_x_main.c | 15 +++------------
 3 files changed, 7 insertions(+), 17 deletions(-)

diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c 
b/src/modules/evas/engines/gl_x11/evas_engine.c
index fb1a6b8..a639b2f 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -994,7 +994,6 @@ eng_setup(Evas *eo_e, void *in)
                             info->info.depth,
                             e->output.w, e->output.h,
                             info->indirect,
-                            info->info.destination_alpha,
                             info->info.rotation,
                             swap_mode);
         if (!ob)
@@ -1060,11 +1059,11 @@ eng_setup(Evas *eo_e, void *in)
                  (info->info.screen != eng_get_ob(re)->screen) ||
                  (info->info.visual != eng_get_ob(re)->visual) ||
                  (info->info.colormap != eng_get_ob(re)->colormap) ||
-                 (info->info.depth != eng_get_ob(re)->depth) ||
-                 (info->info.destination_alpha != eng_get_ob(re)->alpha))
+                 (info->info.depth != eng_get_ob(re)->depth))
                {
                   Outbuf *ob;
 
+                  eng_get_ob(re)->gl_context->references++;
                   eng_window_free(eng_get_ob(re));
                   re->generic.software.ob = NULL;
                   gl_wins--;
@@ -1078,7 +1077,6 @@ eng_setup(Evas *eo_e, void *in)
                                       info->info.depth,
                                       e->output.w, e->output.h,
                                       info->indirect,
-                                      info->info.destination_alpha,
                                       info->info.rotation,
                                       swap_mode);
 
@@ -1087,6 +1085,7 @@ eng_setup(Evas *eo_e, void *in)
                     {
                        
evas_render_engine_software_generic_update(&re->generic.software, ob,
                                                                   e->output.w, 
e->output.h);
+                       eng_get_ob(re)->gl_context->references--;
 
                        gl_wins++;
                     }
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.h 
b/src/modules/evas/engines/gl_x11/evas_engine.h
index 37ffb93..82a4458 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.h
+++ b/src/modules/evas/engines/gl_x11/evas_engine.h
@@ -158,7 +158,7 @@ Outbuf *eng_window_new(Evas_Engine_Info_GL_X11 *info, Evas 
*e,
                        Display *disp, Window win, int screen,
                        Visual *vis, Colormap cmap,
                        int depth, int w, int h, int indirect,
-                       int alpha, int rot,
+                       int rot,
                        Render_Engine_Swap_Mode swap_mode);
 void      eng_window_free(Outbuf *gw);
 void      eng_window_use(Outbuf *gw);
diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c 
b/src/modules/evas/engines/gl_x11/evas_x_main.c
index 7c5661d..18ed377 100644
--- a/src/modules/evas/engines/gl_x11/evas_x_main.c
+++ b/src/modules/evas/engines/gl_x11/evas_x_main.c
@@ -34,7 +34,6 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info,
                int      w,
                int      h,
                int      indirect EINA_UNUSED,
-               int      alpha,
                int      rot,
                Render_Engine_Swap_Mode swap_mode)
 {
@@ -60,7 +59,7 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info,
    gw->visual = vis;
    gw->colormap = cmap;
    gw->depth = depth;
-   gw->alpha = alpha;
+   gw->alpha = 1;
    gw->w = w;
    gw->h = h;
    gw->rot = rot;
@@ -93,16 +92,8 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info,
    config_attrs[n++] = 1;
 // FIXME: end n900 breakage
 # endif
-   if (gw->alpha)
-     {
-        config_attrs[n++] = EGL_ALPHA_SIZE;
-        config_attrs[n++] = 1;
-     }
-   else
-     {
-        config_attrs[n++] = EGL_ALPHA_SIZE;
-        config_attrs[n++] = 0;
-     }
+   config_attrs[n++] = EGL_ALPHA_SIZE;
+   config_attrs[n++] = 1;
    config_attrs[n++] = EGL_DEPTH_SIZE;
    config_attrs[n++] = 0;
    config_attrs[n++] = EGL_STENCIL_SIZE;

-- 


Reply via email to