Skip to content
  • krit@webkit.org's avatar
    Add ClipPathOperation for -webkit-clip-path organization · 202b364e
    krit@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=95619
    
    Reviewed by Dean Jackson.
    
    This patch adds a new class ClipPathOperation to manage the values of the
    -webkit-clip-path property. ClipPathOperation stores a Path object for clipping and is
    a preparation for IRI references of the SVG 'clipPath' element.
    
    The structure of ClipPathOperation is simular to FilterOperation.
    
    ClipPathOperation will be extended to support IRI references directly in a second patch.
    
    No new tests. The changes just affect the backend.
    
    * GNUmakefile.list.am: Added new ClipPathOperation class.
    * WebCore.gypi: Ditto.
    * WebCore.vcproj/WebCore.vcproj: Ditto.
    * WebCore.xcodeproj/project.pbxproj: Ditto.
    * css/CSSComputedStyleDeclaration.cpp: Use ClipPathOperation instead of BasicShape.
    (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Ditto.
    * css/StyleBuilder.cpp: Ditto.
    (WebCore):
    (WebCore::ApplyPropertyClipPath::setValue):
    (WebCore::ApplyPropertyClipPath::applyValue):
    (WebCore::ApplyPropertyClipPath::createHandler):
    * rendering/ClipPathOperation.h: Added. New handler for property values (BasicShape, references).
    (WebCore):
    (ClipPathOperation):
    (WebCore::ClipPathOperation::~ClipPathOperation):
    (WebCore::ClipPathOperation::operator!=):
    (WebCore::ClipPathOperation::getOperationType): Return the operation type.
    (WebCore::ClipPathOperation::isSameType): Helper function for =operator.
    (WebCore::ClipPathOperation::ClipPathOperation):
    (ShapeClipPathOperation): Inheriting class for managing BasicShapes.
    (WebCore::ShapeClipPathOperation::create):
    (WebCore::ShapeClipPathOperation::basicShape):
    (WebCore::ShapeClipPathOperation::windRule):
    (WebCore::ShapeClipPathOperation::path):
    (WebCore::ShapeClipPathOperation::operator==):
    (WebCore::ShapeClipPathOperation::ShapeClipPathOperation):
    * rendering/RenderLayer.cpp: Use ClipPathOperation to apply clipping.
    (WebCore::RenderLayer::paintLayerContents):
    * rendering/style/RenderStyle.h:
    * rendering/style/StyleRareNonInheritedData.h:
    (StyleRareNonInheritedData):
    * rendering/svg/SVGRenderingContext.cpp: Ditto.
    (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@128700 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    202b364e