summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schmidt <s.schmidt@samsung.com>2014-10-21 09:22:49 +0200
committerStefan Schmidt <s.schmidt@samsung.com>2014-10-21 09:23:58 +0200
commita7ef5bd7da95d3965a5227dd2e9f7d8036374967 (patch)
treeb5fd372968748a83fae33ad3daf6fb2fd9fda381
parenta3caed801257369d032e635b18d850d5acef3294 (diff)
downloadefl-a7ef5bd7da95d3965a5227dd2e9f7d8036374967.tar.gz
Revert "evas: GL_X11 context need to always be with alpha or it will fail to change."
Need to also revert this in master. Cedric seems busy with other things and this should not end up in 1.12 alpha1 This reverts commit 4ea75113caeeec6bbc047f2406f8d1c89870360b.
-rw-r--r--src/modules/evas/engines/gl_x11/evas_engine.c7
-rw-r--r--src/modules/evas/engines/gl_x11/evas_engine.h2
-rw-r--r--src/modules/evas/engines/gl_x11/evas_x_main.c15
3 files changed, 17 insertions, 7 deletions
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c
index 527ee33927..a9b850c20c 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -1360,6 +1360,7 @@ 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)
@@ -1425,11 +1426,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.depth != eng_get_ob(re)->depth) ||
+ (info->info.destination_alpha != eng_get_ob(re)->alpha))
{
Outbuf *ob;
- eng_get_ob(re)->gl_context->references++;
eng_window_free(eng_get_ob(re));
re->generic.software.ob = NULL;
gl_wins--;
@@ -1443,6 +1444,7 @@ 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);
@@ -1451,7 +1453,6 @@ 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 82a44584b4..37ffb9310c 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 rot,
+ int alpha, 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 bcbb449243..208e42c23f 100644
--- a/src/modules/evas/engines/gl_x11/evas_x_main.c
+++ b/src/modules/evas/engines/gl_x11/evas_x_main.c
@@ -109,6 +109,7 @@ 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)
{
@@ -139,7 +140,7 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info,
gw->visual = vis;
gw->colormap = cmap;
gw->depth = depth;
- gw->alpha = 1;
+ gw->alpha = alpha;
gw->w = w;
gw->h = h;
gw->rot = rot;
@@ -172,8 +173,16 @@ eng_window_new(Evas_Engine_Info_GL_X11 *info,
config_attrs[n++] = 1;
// FIXME: end n900 breakage
# endif
- config_attrs[n++] = EGL_ALPHA_SIZE;
- config_attrs[n++] = 1;
+ 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_DEPTH_SIZE;
config_attrs[n++] = 0;
config_attrs[n++] = EGL_STENCIL_SIZE;