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
Created attachment 18064 [details] Patch to flesh-out the Cairo implementation Patch extends the Cairo implementation with additional functionality missing in the current implementation.
Comment on attachment 18064 [details] Patch to flesh-out the Cairo implementation This patch will need to update copyrights as well in order to be considered for landing.
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.
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. Thanks!
Comment on attachment 18064 [details] Patch to flesh-out the Cairo implementation r- for now based on inclusion of needless APOLLO-only changes in the patch.
Created attachment 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 on attachment 18069 [details] Cairo graphics fixes Looks sane.
Landed in r28969.