summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Philippe Andre <jp.andre@samsung.com>2015-06-03 11:02:44 +0900
committerJean-Philippe Andre <jp.andre@samsung.com>2015-06-03 11:03:29 +0900
commit777f7f20479afd3322f02a1db2125cd8f2c1c5a0 (patch)
tree87bb42d45f0af0a0ab9cc481cbbe6b81f9239d89
parenta4485484f1169549f51137bfa69b72a3b861d021 (diff)
downloadefl-777f7f20479afd3322f02a1db2125cd8f2c1c5a0.tar.gz
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
-rw-r--r--src/modules/evas/engines/gl_generic/evas_engine.c13
1 files 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 34d3f454be..63fe2d8d53 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;