diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-06-03 11:02:44 +0900 |
---|---|---|
committer | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-06-03 11:03:29 +0900 |
commit | 777f7f20479afd3322f02a1db2125cd8f2c1c5a0 (patch) | |
tree | 87bb42d45f0af0a0ab9cc481cbbe6b81f9239d89 | |
parent | a4485484f1169549f51137bfa69b72a3b861d021 (diff) | |
download | efl-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.c | 13 |
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; |