From 777f7f20479afd3322f02a1db2125cd8f2c1c5a0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Wed, 3 Jun 2015 11:02:44 +0900 Subject: [PATCH] Evas masking: Fix rare issue of invalid rendering (GL) Thanks Dongyeon for finding out this solution. Now that was one nasty bug :) Somehow the currently bound texture id would not match what Evas expected, so Evas would not call glBindTexture when required. As a result it was drawing black (sampling from tex 0). @fix --- src/modules/evas/engines/gl_generic/evas_engine.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 34d3f45..63fe2d8 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -1190,6 +1190,13 @@ eng_image_scaled_update(void *data EINA_UNUSED, void *scaled, void *image, (dst->w == dst_w) && (dst->h == dst_h)) return dst; + evas_gl_common_image_update(gc, src); + if (!src->tex) + { + ERR("No source texture."); + return NULL; + } + if (dst) { if (dst->scaled.origin == src) @@ -1206,12 +1213,6 @@ eng_image_scaled_update(void *data EINA_UNUSED, void *scaled, void *image, } evas_gl_common_image_free(dst); } - evas_gl_common_image_update(gc, src); - if (!src->tex) - { - ERR("No source texture."); - return NULL; - } dst = calloc(1, sizeof(Evas_GL_Image)); if (!dst) return NULL; -- 2.7.4