Bug 106871

Summary: Update GraphicsContext to support winding rule in clip operator for Core Graphics
Product: WebKit Reporter: Rik Cabanier <cabanier>
Component: WebCore Misc.Assignee: Rik Cabanier <cabanier>
Severity: Normal CC: dino, d-r, junov, krit, noam, senorblanco, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 106188, 106872, 106873    
Description Flags
Patch none

Description Rik Cabanier 2013-01-14 22:09:24 PST
the GraphicsContext interface does not support passing a winding rule to the canvas clip operator.
Update the GraphicsContext interface for all platforms + add support for  eoclip
Comment 1 Rik Cabanier 2013-01-16 13:03:35 PST
Created attachment 183024 [details]
Comment 2 Dirk Schulze 2013-01-16 14:31:14 PST
Comment on attachment 183024 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=183024&action=review

Looks like you are going to go the wrong way. We already have clipPath which should do what you want. And I am not really a friend of leaving the other ports behind when it would be fairly easy to implement there as well. However, this bug should be mainly invalid.

> Source/WebCore/ChangeLog:5
> +

Can you please summarize your changes and what they are good for here please?

> Source/WebCore/ChangeLog:11
> +        * platform/graphics/GraphicsContext.h: Change canvasClip and clip signature with default winding rule

End sentences please.

> Source/WebCore/ChangeLog:12
> +        * platform/graphics/cairo/GraphicsContextCairo.cpp: Update interface with new signature so it still compiles

Ditto.... And in a couple of other lines as well.
Comment 3 Rik Cabanier 2013-01-16 17:03:40 PST
Created attachment 183065 [details]
Comment 4 Dirk Schulze 2013-01-16 22:15:56 PST
Comment on attachment 183065 [details]

View in context: https://bugs.webkit.org/attachment.cgi?id=183065&action=review

We discussed the behavior of all the different clip function on IRC. clipPath(Path, WindRule) is not doing the same as clip(Path, WindRule). So it seems indeed the better solution to edit clip() and add the WindRule there.

> Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:995
> +// FIXME: don't ignore the winding rule. https://bugs.webkit.org/show_bug.cgi?id=107065
> +void GraphicsContext::clip(const Path& path, WindRule)

usually we put it into the function, but this is not blocking this patch. Just for the future.
Comment 5 WebKit Review Bot 2013-01-16 23:24:42 PST
Comment on attachment 183065 [details]

Clearing flags on attachment: 183065

Committed r139967: <http://trac.webkit.org/changeset/139967>
Comment 6 WebKit Review Bot 2013-01-16 23:24:46 PST
All reviewed patches have been landed.  Closing bug.