aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2014-10-09 12:20:53 +0200
committerCedric BAIL <cedric@osg.samsung.com>2014-10-09 12:28:08 +0200
commit8862fc38b451fb8a598876111871336fe0749387 (patch)
treece4f988467446d2ed4c4e9b5bb9c7c1d24b3196e
parentevas: GL_X11 - make sure to re-create the gl context when window visual change (diff)
downloadefl-8862fc38b451fb8a598876111871336fe0749387.tar.gz
evas: GL_X11 context need to always be with alpha or it will fail to change.
@fix
-rw-r--r--src/modules/evas/engines/gl_x11/evas_engine.c1
-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, 5 insertions, 13 deletions
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c
index ac3397c10d..db2e40b5e2 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -938,6 +938,7 @@ eng_setup(Evas *eo_e, void *in)
{
inc = 1;
eng_window_free(re->win);
+ re->win->gl_context->references++;
gl_wins--;
}
re->w = e->output.w;
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.h b/src/modules/evas/engines/gl_x11/evas_engine.h
index 371a10b39d..932156c360 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.h
+++ b/src/modules/evas/engines/gl_x11/evas_engine.h
@@ -94,7 +94,7 @@ struct _Evas_GL_X11_Window
Evas_GL_X11_Window *eng_window_new(Display *disp, Window win, int screen,
Visual *vis, Colormap cmap,
int depth, int w, int h, int indirect,
- int alpha, int rot);
+ int rot);
void eng_window_free(Evas_GL_X11_Window *gw);
void eng_window_use(Evas_GL_X11_Window *gw);
void eng_window_unsurf(Evas_GL_X11_Window *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 1b7cab645b..ad81f9982e 100644
--- a/src/modules/evas/engines/gl_x11/evas_x_main.c
+++ b/src/modules/evas/engines/gl_x11/evas_x_main.c
@@ -32,7 +32,6 @@ eng_window_new(Display *disp,
int w,
int h,
int indirect,
- int alpha,
int rot)
{
Evas_GL_X11_Window *gw;
@@ -58,7 +57,7 @@ eng_window_new(Display *disp,
gw->visual = vis;
gw->colormap = cmap;
gw->depth = depth;
- gw->alpha = alpha;
+ gw->alpha = 1;
gw->w = w;
gw->h = h;
gw->rot = rot;
@@ -102,16 +101,8 @@ eng_window_new(Display *disp,
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;