Bug 16577

Summary: Merge Cairo enhancements from Apollo project
Product: WebKit Reporter: Brent Fulgham <bfulgham@webkit.org>
Component: WebCore Misc.Assignee: Alp Toker <alp@nuanti.com>
Severity: Normal CC: alp@nuanti.com
Priority: P2 Keywords: Cairo
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Description Flags
Patch to flesh-out the Cairo implementation
alp: review-
Cairo graphics fixes zecke: review+

Description From 2007-12-22 20:28:03 PST
The attached patch extends the Cairo backend, namely providing the missing implementations for:
* GraphicsContext::clipOut(const Path&)
* GraphicsContext::clipOut(const IntRect&)
* GraphicsContext::clipOutEllipseInRect(const IntRect&)
* GraphicsContext::fillRoundedRect
------- Comment #1 From 2007-12-22 20:29:12 PST -------
Created an attachment (id=18064) [details]
Patch to flesh-out the Cairo implementation

Patch extends the Cairo implementation with additional functionality missing in the current implementation.
------- Comment #2 From 2007-12-22 20:38:26 PST -------
(From update of attachment 18064 [details])
This patch will need to update copyrights as well in order to be considered for landing.
------- Comment #3 From 2007-12-22 20:43:49 PST -------
The changes in platform/graphics/Image.cpp shouldn't be there.  They were removed from trunk in r27060.  I also don't like the addition of the many PLATFORM(APOLLO) ifdefs when that port is not present in SVN.  The code these are being added to is virtually free of ifdef's at present, which is the way we prefer things to be.
------- Comment #4 From 2007-12-22 21:59:33 PST -------
Eric: There is no problem with the copyright headers here, everything's in order.

We will want to boil this patch down to remove the platform-specific parts for now. If we go ahead with a Cairo/Win port, this code will go elsewhere anyway, not in GraphicsContextCairo.

The hasAlpha() change is also obsolete IIRC.

I'll continue to investigate this patch and verify the correctness of the substantive changes.

------- Comment #5 From 2007-12-22 22:00:24 PST -------
(From update of attachment 18064 [details])
r- for now based on inclusion of needless APOLLO-only changes in the patch.
------- Comment #6 From 2007-12-23 01:15:05 PST -------
Created an attachment (id=18069) [details]
Cairo graphics fixes

In this patch I've extracted all useful modifications to shared code, modified it to follow coding style, studied and documented the effects in the ChangeLog entry.

We only cover GraphicsContextCairo.cpp and ImageSourceCairo.cpp here. There are several other good fixes that still need to be merged in other files from the Apollo port.
------- Comment #7 From 2007-12-23 16:21:02 PST -------
(From update of attachment 18069 [details])
Looks sane.
------- Comment #8 From 2007-12-23 17:12:15 PST -------
Landed in r28969.