From d2b647d2b378a88bee07610a7416d4257bbebbb6 Mon Sep 17 00:00:00 2001 From: Wonsik Jung Date: Wed, 13 Nov 2013 16:58:01 +0900 Subject: [PATCH] evas: fix a missing eglMakeCurrent in image_cache_flush/image_cache_set in the GL X11 backend. [Problem] When glTextureDelete is called in image_cache_flush(), it sometimes doesn't work. [Cause] glTextureDelete is called with the wrong eglContext. [Solution] Call eng_window_use() in image_cache_flush() and image_cache_set() to use the correct eglContext. Change-Id: Id7ab1aaeb456be6dbc5f09cb2731ace5399a5dce Signed-off-by: Cedric Bail --- src/modules/evas/engines/gl_x11/evas_engine.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c index 3ca2452..b40dcbb 100644 --- a/src/modules/evas/engines/gl_x11/evas_engine.c +++ b/src/modules/evas/engines/gl_x11/evas_engine.c @@ -3080,6 +3080,8 @@ eng_image_cache_flush(void *data) re = (Render_Engine *)data; + if (re) eng_window_use(re->win); + tmp_size = evas_common_image_get_cache(); evas_common_image_set_cache(0); evas_common_rgba_image_scalecache_flush(); @@ -3093,6 +3095,9 @@ eng_image_cache_set(void *data, int bytes) Render_Engine *re; re = (Render_Engine *)data; + + if (re) eng_window_use(re->win); + evas_common_image_set_cache(bytes); evas_common_rgba_image_scalecache_size_set(bytes); evas_gl_common_image_cache_flush(re->win->gl_context); -- 2.7.4