evas/clip: If the clipper is image or has color, clipped area should be redrawn.
authorYoungbok Shin <youngb.shin@samsung.com>
Tue, 17 Mar 2015 02:02:04 +0000 (11:02 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Tue, 17 Mar 2015 02:13:29 +0000 (11:13 +0900)
commit84634ea51f18e6f88ca43527cfb7f2f56828e76a
tree321cd848f601708b29639aa055427e41b4bd34f9
parent57a4cae33bf8e6fc5ab75b15d5a001d4026109d9
evas/clip: If the clipper is image or has color, clipped area should be redrawn.

Summary:
If the clipper is image or has color, it affects to its clipees.
Even if we unset the clipper or change the clipper to another object,
it seems the clipper is not changed.

Test Plan:
Make two clipper objects and one clipee object.
And make clip the clipee according to following example

ex) Clipee object -> inner_clipper -> clipper

evas_object_clip_set(clipee, inner_clipper);
evas_object_clip_set(inner_clipper, clipper);

After checking the result and hide inner_clipper.

evas_object_clip_set(clipee, clipper);
evas_object_hide(inner_clipper);

See the result.

Reviewers: raster, cedric, Hermet, jpeg

Subscribers: woohyun, cedric

Differential Revision: https://phab.enlightenment.org/D2112

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Note: Technically we should not check the color of the fact that
      the clipper is a mask and not a simple rect. But because of
      real-life performance issues, damage_add was disabled so we're
      trying to keep the perf in most cases while being correct in
      cases where the clipper is visually important.
src/lib/evas/canvas/evas_clip.c