forked from enlightenment/efl
From: <om101.woo@samsung.com>
Subject: image data get/set pairing issue I found a bug about pairing evas_object_image_data_get/set(eng_image_data_get/put). It was added to count checked_out for paring eglMapImageSEC/eglUnmapImageSEC. In case of calling evas_object_image_data_set() twice after calling evas_object_image_data_get(), dyn.checked_out has -1. Then, if evas_object_image_data_get() and evas_object_image_data_set() is call, it can't call eglUnmapImageSEC(). If dyn.checked_out has minus, it can make some problem. So, I fixed this problem. Please find enclosed patch file and let me know if I misunderstood. SVN revision: 68504
This commit is contained in:
parent
5756d4ad09
commit
cf569fb2bf
|
@ -2540,11 +2540,15 @@ eng_image_data_put(void *data, void *image, DATA32 *image_data)
|
|||
|
||||
if (im->tex->pt->dyn.data == image_data)
|
||||
{
|
||||
im->tex->pt->dyn.checked_out--;
|
||||
if (im->tex->pt->dyn.checked_out > 0)
|
||||
{
|
||||
im->tex->pt->dyn.checked_out--;
|
||||
#if defined (GLES_VARIETY_S3C6410) || defined (GLES_VARIETY_SGX)
|
||||
if (im->tex->pt->dyn.checked_out == 0)
|
||||
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
||||
if (im->tex->pt->dyn.checked_out == 0)
|
||||
glsym_eglUnmapImageSEC(re->win->egl_disp, im->tex->pt->dyn.img);
|
||||
#endif
|
||||
}
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue