Fixed to render image with previous size 35/46735/1 accepted/tizen/mobile/20150826.020010 accepted/tizen/tv/20150826.015606 accepted/tizen/wearable/20150826.020217 submit/tizen/20150825.115612
authorMinJeong Kim <minjjj.kim@samsung.com>
Tue, 25 Aug 2015 11:10:50 +0000 (20:10 +0900)
committerMinJeong Kim <minjjj.kim@samsung.com>
Tue, 25 Aug 2015 11:34:10 +0000 (20:34 +0900)
Set size of image object to new buffer size when new buffer resource be
set. This patch fixes a problem to draw image object with size of previous
buffer that not rendered.

The problem mentioned above is derived from current buffer management process.
because the process doesn't ensure to render all committed buffer, it means
there are buffers never rendered(even if those buffers changes size of image
object already it's possible to be skip rendering). In the future, new process
is considerable that manage new attached buffer resources with pending list
if previous buffer is not rendered yet to resolve the skip problem.

Change-Id: Ia4bc7296c9770a1a2a28f7872f1c7ef1225a712b
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_comp_object.c
src/bin/e_comp_object.h
src/bin/e_pixmap.c

index e17723d8f6ef8589f419dc8822ada3abda0682b4..4ec724d8474151bf67f30a20bb8187f0a93958c9 100644 (file)
@@ -3964,3 +3964,11 @@ e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set)
           }
      }
 }
+
+EAPI void
+e_comp_object_size_update(Evas_Object *obj, int w, int h)
+{
+   SOFT_ENTRY();
+
+   evas_object_image_size_set(cw->obj, w, h);
+}
index e8d2f199f3034ff40b700527fcfdf01179fe8c49..3feee0f201ce5ea1daca37c269bc26b954bea332 100644 (file)
@@ -110,6 +110,7 @@ EAPI void e_comp_object_intercept_hook_del(E_Comp_Object_Intercept_Hook *ch);
 EAPI unsigned int e_comp_object_is_animating(Evas_Object *obj);
 EAPI void e_comp_object_alpha_set(Evas_Object *obj, Eina_Bool alpha);
 EAPI void e_comp_object_mask_set(Evas_Object *obj, Eina_Bool set);
+EAPI void e_comp_object_size_update(Evas_Object *obj, int w, int h);
 
 #endif
 #endif
index 1a3f98ea69338e91cc8fadc1a9edc57d03c019b0..fa933ba50d7e9d6dc97f83f3e6383151dd1737af 100644 (file)
@@ -696,6 +696,14 @@ e_pixmap_resource_set(E_Pixmap *cp, void *resource)
                   cp->h = buffer->h;
                   cp->image_argb = EINA_FALSE; /* TODO: format */
                   cp->data = NULL;
+
+                  /* TODO: Current buffer management process doesn't ensure
+                   * to render all committed buffer, it means there are buffers
+                   * never rendered. New attached buffer resources should be
+                   * managed and be pending if previous buffer is not rendered yet. */
+                  /* set size of image object to new buffer size */
+                  e_comp_object_size_update(cp->client->frame,
+                                            buffer->w, buffer->h);
                }
              else
                {