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
This commit is contained in:
Shinwoo Kim 2020-05-28 10:40:40 +09:00 committed by Hermet Park
parent a4c5db2350
commit ea531d1c4d
1 changed files with 3 additions and 0 deletions

View File

@ -1755,6 +1755,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;