From 5c994667c2b164856b51f1c4cc2d341504e52c8e Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 6 Apr 2011 05:56:53 +0000 Subject: [PATCH] fixme notice, fix make current context to force if it was changed. SVN revision: 58375 --- .../evas/src/modules/engines/gl_common/evas_gl_context.c | 2 ++ legacy/evas/src/modules/engines/gl_x11/evas_x_main.c | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c b/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c index e87d31797b..ae4786b08a 100644 --- a/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c +++ b/legacy/evas/src/modules/engines/gl_common/evas_gl_context.c @@ -2741,6 +2741,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) cy = gh - gc->pipe[i].shader.cy - gc->pipe[i].shader.ch; if (fbo) cy = gc->pipe[i].shader.cy; glEnable(GL_SCISSOR_TEST); + // FIXME: handle gc->rot IF gc->pipe[0].shader.surface == gc->def_surface glScissor(gc->pipe[i].shader.cx, cy, gc->pipe[i].shader.cw, gc->pipe[i].shader.ch); setclip = 1; @@ -2760,6 +2761,7 @@ shader_array_flush(Evas_Engine_GL_Context *gc) { cy = gh - gc->pipe[i].shader.cy - gc->pipe[i].shader.ch; if (fbo) cy = gc->pipe[i].shader.cy; + // FIXME: handle gc->rot IF gc->pipe[0].shader.surface == gc->def_surface glScissor(gc->pipe[i].shader.cx, cy, gc->pipe[i].shader.cw, gc->pipe[i].shader.ch); } diff --git a/legacy/evas/src/modules/engines/gl_x11/evas_x_main.c b/legacy/evas/src/modules/engines/gl_x11/evas_x_main.c index e370e75959..471321c601 100644 --- a/legacy/evas/src/modules/engines/gl_x11/evas_x_main.c +++ b/legacy/evas/src/modules/engines/gl_x11/evas_x_main.c @@ -570,7 +570,12 @@ eng_window_use(Evas_GL_X11_Window *gw) _evas_gl_x11_window->egl_surface[0])) force_use = EINA_TRUE; } -#else +#else + if (_evas_gl_x11_window) + { + if (glXGetCurrentContext() != _evas_gl_x11_window->context) + force_use = EINA_TRUE; + } #endif if ((_evas_gl_x11_window != gw) || (force_use)) {