From 4ea75113caeeec6bbc047f2406f8d1c89870360b Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Thu, 9 Oct 2014 12:20:53 +0200 Subject: [PATCH] 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 fb1a6b8d3c..a639b2fa82 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 37ffb9310c..82a44584b4 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 7c5661ddce..18ed377de2 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;