evas_render: fix direct render bug when direct render is applied 30/306330/2
authorHosang Kim <hosang12.kim@samsung.com>
Tue, 20 Feb 2024 07:36:53 +0000 (16:36 +0900)
committerkim hosang <hosang12.kim@samsung.com>
Mon, 26 Feb 2024 16:27:08 +0000 (16:27 +0000)
repeatedly.

If a direct render is set up multiple times on an smart object,
only the top layer will be rendered directly.
To fix this issue, only the bottom layer will be rendered directly and other layers will be rendered normally.

Change-Id: I8dfaa415dcac3333cdeb3fd04a97de9c39cbf956
(cherry picked from commit f00e79d5f85e7611b040d7a89dfccb3a66a41a3e)

src/lib/evas/canvas/evas_render.c

index ca5ca92..84c6ddd 100644 (file)
@@ -2072,7 +2072,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object *eo_obj,
         int src_img_w = 0;
         int src_img_h = 0;
         Evas_Object *direct_render_src_img = NULL;
-        if (obj->map->cur.map->direct_render && obj->map->cur.map->count == 4)
+        if (!obj->child_has_map && obj->map->cur.map->direct_render && obj->map->cur.map->count == 4)
           {
              _map_source_image_get(eo_obj, &direct_render_src_img);
              if (direct_render_src_img)