Page MenuHomePhabricator

evas: enable setting any object as a clipper
Needs ReviewPublic

Authored by zmike on Tue, May 7, 12:21 PM.

Details

Reviewers
Hermet
Summary

now that various other bugs related to clipping/masking/drawing have
been fixed, this "just works"

@feature

Diff Detail

Repository
rEFL core/efl
Branch
master
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 11384
zmike created this revision.Tue, May 7, 12:21 PM

It seems that this patch has no reviewers specified. If you are unsure who can review your patch, please check this wiki page and see if anyone can be added: https://phab.enlightenment.org/w/maintainers_reviewers/

Hermet requested changes to this revision.Wed, May 8, 7:12 PM
Hermet added a subscriber: Hermet.

See a comment.

I didn't watch a series of your patches. but curious how other type objects work as clipper. . what happens if text is set as the clipper?

src/lib/evas/canvas/evas_clip.c
341–342

Maybe this comment is redundant?

This revision now requires changes to proceed.Wed, May 8, 7:12 PM

This is a good point. I've done some testing locally and it doesn't work quite right yet.

src/lib/evas/canvas/evas_clip.c
341–342

No, rect clippers are the only kind which wouldn't trigger the mask codepath.

I was wrong and this does work exactly as expected: the area that the text is rendered into is the mask. I've added a test.

Hermet added inline comments.Mon, May 13, 1:42 AM
src/lib/evas/canvas/evas_clip.c
341–342

I mean the comment => /* image object clipper */

I have no idea what's your plan for maksing,
Will you make mask images to apply as the clipper if the clipper type is not rect or image?
How about the Line, Vg, Grid, Box whatever else?

Hermet requested changes to this revision.Mon, May 13, 1:49 AM
This revision now requires changes to proceed.Mon, May 13, 1:49 AM
zmike updated this revision to Diff 22121.Mon, May 13, 4:37 AM
zmike edited the summary of this revision. (Show Details)

update comment

zmike added a comment.Mon, May 13, 4:38 AM

All of the types you listed should work as mask objects now.