[evas_gl] The cache entry is deleted when set to orient. 19/133419/2
authorJoogab Yun <joogab.yun@samsung.com>
Fri, 24 Feb 2017 09:51:03 +0000 (18:51 +0900)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Tue, 27 Jun 2017 04:56:23 +0000 (04:56 +0000)
          so reloading the cache entry.

Change-Id: I36de13d40001e897128a59e9616cf09f3fcdb168

src/modules/evas/engines/gl_generic/evas_engine.c

index c3082aa..90b9c26 100644 (file)
@@ -994,7 +994,20 @@ eng_image_orient_set(void *data, void *image, Evas_Image_Orient orient)
    evas_gl_common_image_update(im->gc, im);
 
    if (im->im)
-      im_new = evas_gl_common_image_new_from_copied_data(im->gc, im->w, im->h, im->im->image.data, im->alpha, im->cs.space);
+     {
+       if (!im->im->image.data)
+         {
+#ifdef EVAS_CSERVE2
+           if (evas_cserve2_use_get() && evas_cache2_image_cached(&im->im->cache_entry))
+             evas_cache2_image_load_data(&im->im->cache_entry);
+           else
+#endif
+             evas_cache_image_load_data(&im->im->cache_entry);
+         }
+       evas_gl_common_image_alloc_ensure(im);
+
+       im_new = evas_gl_common_image_new_from_copied_data(im->gc, im->w, im->h, im->im->image.data, im->alpha, im->cs.space);
+     }
    if (!im_new) return im;
 
    im_new->load_opts = im->load_opts;