-
jpetsovits@rim.com authored
Reviewed by Dirk Schulze. [OpenVG] Use masks to implement non-rectilinear clipping https://bugs.webkit.org/show_bug.cgi?id=35544 Requires some additional context switching logic to make sure the right context is current when dealing with the mask, because we don't store it by ourselves. Initial version of this code was written by Eli Fidler <efidler@rim.com>, I did a couple of bug fixes and efficiency improvements since then. * platform/graphics/openvg/GraphicsContextOpenVG.cpp: (WebCore::GraphicsContext::clipPath): (WebCore::GraphicsContext::clip): (WebCore::GraphicsContext::clipOut): (WebCore::GraphicsContext::clipOutEllipseInRect): (WebCore::GraphicsContext::addInnerRoundedRectClip): * platform/graphics/openvg/PainterOpenVG.cpp: (WebCore::PlatformPainterState::PlatformPainterState): (WebCore::PlatformPainterState::~PlatformPainterState): (WebCore::PlatformPainterState::maskingEnabled): (WebCore::PlatformPainterState::applyState): (WebCore::PlatformPainterState::saveMaskIfNecessary): (WebCore::PainterOpenVG::intersectClipRect): (WebCore::PainterOpenVG::clipPath): (WebCore::PainterOpenVG::save): * platform/graphics/openvg/PainterOpenVG.h: (WebCore::PainterOpenVG::): * platform/graphics/openvg/SurfaceOpenVG.cpp: (WebCore::SurfaceOpenVG::makeCurrent): (WebCore::SurfaceOpenVG::makeCompatibleCurrent): * platform/graphics/openvg/SurfaceOpenVG.h: (WebCore::SurfaceOpenVG::): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
5cfb2d7b