From 29427873da7356b5a56e4b9aa8ba4952c975a0b1 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Thu, 28 May 2020 10:40:40 +0900 Subject: [PATCH] evas_render: do not use mask of proxy source Summary: A mask of proxy source can be same with a mask of proxy source's child. If source_clip is false, then the child object should not use the mask. Test Plan: {F3888363} Reviewers: Hermet, herb, jsuya Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D11870 --- src/lib/evas/canvas/evas_render.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 2c23739..bced3eb 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1763,6 +1763,9 @@ _evas_render_mapped_mask(Evas_Public_Data *evas, Evas_Object_Protected_Data *obj Evas_Proxy_Render_Data *proxy_render_data, void *output, void *ctx, int off_x, int off_y, int level, Eina_Bool do_async) { if (!mask) return; + if (proxy_render_data && + !proxy_render_data->source_clip && + proxy_render_data->src_obj->clip.mask == mask) return; // This path can be hit when we're multiplying masks on top of each other... Evas_Object_Protected_Data *prev_mask = obj->clip.prev_mask; -- 2.7.4