evas_gl_generic: fix wrong gl context set

example:
...
im=evas_object_image_add()
evas_gl_surface_create
...
evas_object_image_native_surface_set(im, xx)-> MAIN CONTEXT
evas_gl_make_current -> CONTEXT A
.....
evas_object_image_size_set(im, x,x) ->WRONG CONTEXT A

evas_object_image_size_set of image have native_surface finally calls
eng_image_size_set function of gl_generic.

eng_image_size_set cannot get the proper context related with
evas_gl_common_image_native_enable.
It ruined gl context and texture of main context has gone wrong.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8338
This commit is contained in:
Jiyoun Park 2019-03-14 08:53:50 +00:00 committed by Cedric BAIL
parent 25797aaca0
commit 9a700c92a7
1 changed files with 1 additions and 1 deletions

View File

@ -627,6 +627,7 @@ eng_image_size_set(void *engine, void *image, int w, int h)
Evas_GL_Image *im_old;
if (!im) return NULL;
gl_context = gl_generic_context_find(engine, 1);
if (im->native.data)
{
im->w = w;
@ -634,7 +635,6 @@ eng_image_size_set(void *engine, void *image, int w, int h)
evas_gl_common_image_native_enable(im);
return image;
}
gl_context = gl_generic_context_find(engine, 1);
if ((im->tex) && (im->tex->pt->dyn.img))
{
evas_gl_common_texture_free(im->tex, EINA_TRUE);