Changeset 55289 in webkit


Ignore:
Timestamp:
Feb 26, 2010 10:02:26 AM (14 years ago)
Author:
krit@webkit.org
Message:

2010-02-26 Dirk Schulze <krit@webkit.org>

Reviewed by Nikolas Zimmermann.

SVGResourceClipper needs to be moved to RenderSVGResourceClipper
https://bugs.webkit.org/show_bug.cgi?id=35421

Move SVGResourceClipper to RenderSVGResourceClipper. This follows the changes
of Masker and helps to clean up the SVG code. Code snippets from SVGClipPathElement
and SVGResourceClipper got combined in RenderSVGResourceClipper. DRT results are
more readable for clipPath's now. It's possible to see the unit type of clipper, as
well as it's childs instead of just one path.

  • Android.mk:
  • GNUmakefile.am:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderSVGResource.h: (WebCore::):
  • rendering/RenderSVGResourceClipper.cpp: Added. (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper): (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper): (WebCore::RenderSVGResourceClipper::invalidateClients): (WebCore::RenderSVGResourceClipper::invalidateClient): (WebCore::RenderSVGResourceClipper::applyResource): (WebCore::RenderSVGResourceClipper::resourceBoundingBox):
  • rendering/RenderSVGResourceClipper.h: Added. (WebCore::RenderSVGResourceClipper::renderName): (WebCore::RenderSVGResourceClipper::resourceType): (WebCore::RenderSVGResourceClipper::clipPathUnits):
  • rendering/SVGRenderSupport.cpp: (WebCore::SVGRenderBase::prepareToRenderSVGContent): (WebCore::SVGRenderBase::clipperBoundingBoxForRenderer): (WebCore::SVGRenderBase::deregisterFromResources):
  • rendering/SVGRenderTreeAsText.cpp: (WebCore::operator<<): (WebCore::writeStyle): (WebCore::writeSVGResource): (WebCore::writeResources):
  • svg/SVGClipPathElement.cpp: (WebCore::SVGClipPathElement::svgAttributeChanged): (WebCore::SVGClipPathElement::childrenChanged): (WebCore::SVGClipPathElement::createRenderer):
  • svg/SVGClipPathElement.h: (WebCore::SVGClipPathElement::isValid):
  • svg/SVGStyledElement.cpp: (WebCore::SVGStyledElement::invalidateResources):
  • svg/graphics/SVGResource.h: (WebCore::): (WebCore::SVGResource::isPaintServer): (WebCore::SVGResource::isFilter): (WebCore::SVGResource::isMarker):
  • svg/graphics/SVGResourceClipper.cpp: Removed.
  • svg/graphics/SVGResourceClipper.h: Removed.

2010-02-26 Dirk Schulze <krit@webkit.org>

Reviewed by Nikolas Zimmermann.

SVGResourceClipper needs to be moved to RenderSVGResourceClipper
https://bugs.webkit.org/show_bug.cgi?id=35421

Update results after the move of SVGResourceClipper. Results are better
readable and more sensible now.

  • platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
  • platform/mac/svg/batik/text/textEffect2-expected.txt:
  • platform/mac/svg/batik/text/textProperties-expected.txt:
  • platform/mac/svg/css/clippath-with-shadow-expected.txt:
  • platform/mac/svg/custom/clip-path-child-changes-expected.txt:
  • platform/mac/svg/custom/clip-path-display-none-child-expected.txt:
  • platform/mac/svg/custom/clip-path-href-changes-expected.txt:
  • platform/mac/svg/custom/clip-path-referencing-use-expected.txt:
  • platform/mac/svg/custom/clip-path-referencing-use2-expected.txt:
  • platform/mac/svg/custom/clip-path-units-changes-expected.txt:
  • platform/mac/svg/custom/clip-path-with-transform-expected.txt:
  • platform/mac/svg/custom/empty-clip-path-expected.txt:
  • platform/mac/svg/custom/focus-ring-expected.txt:
  • platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
  • platform/mac/svg/custom/invalid-css-expected.txt:
  • platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
  • platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
  • platform/mac/svg/custom/recursive-clippath-expected.txt:
  • platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt:
  • platform/mac/svg/custom/text-clip-expected.txt:
  • platform/mac/svg/custom/visibility-override-clip-expected.txt:
  • platform/mac/svg/filters/filter-clip-expected.txt:
  • svg/custom/use-clipped-transform-expected.txt:
Location:
trunk
Files:
2 added
2 deleted
43 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r55287 r55289  
     12010-02-26  Dirk Schulze  <krit@webkit.org>
     2
     3        Reviewed by Nikolas Zimmermann.
     4
     5        SVGResourceClipper needs to be moved to RenderSVGResourceClipper
     6        https://bugs.webkit.org/show_bug.cgi?id=35421
     7
     8        Update results after the move of SVGResourceClipper. Results are better
     9        readable and more sensible now.
     10
     11        * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt:
     12        * platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt:
     13        * platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt:
     14        * platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
     15        * platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt:
     16        * platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt:
     17        * platform/mac/svg/batik/text/textEffect2-expected.txt:
     18        * platform/mac/svg/batik/text/textProperties-expected.txt:
     19        * platform/mac/svg/css/clippath-with-shadow-expected.txt:
     20        * platform/mac/svg/custom/clip-path-child-changes-expected.txt:
     21        * platform/mac/svg/custom/clip-path-display-none-child-expected.txt:
     22        * platform/mac/svg/custom/clip-path-href-changes-expected.txt:
     23        * platform/mac/svg/custom/clip-path-referencing-use-expected.txt:
     24        * platform/mac/svg/custom/clip-path-referencing-use2-expected.txt:
     25        * platform/mac/svg/custom/clip-path-units-changes-expected.txt:
     26        * platform/mac/svg/custom/clip-path-with-transform-expected.txt:
     27        * platform/mac/svg/custom/empty-clip-path-expected.txt:
     28        * platform/mac/svg/custom/focus-ring-expected.txt:
     29        * platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt:
     30        * platform/mac/svg/custom/invalid-css-expected.txt:
     31        * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt:
     32        * platform/mac/svg/custom/js-late-clipPath-creation-expected.txt:
     33        * platform/mac/svg/custom/recursive-clippath-expected.txt:
     34        * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt:
     35        * platform/mac/svg/custom/text-clip-expected.txt:
     36        * platform/mac/svg/custom/visibility-override-clip-expected.txt:
     37        * platform/mac/svg/filters/filter-clip-expected.txt:
     38        * svg/custom/use-clipped-transform-expected.txt:
     39
    1402010-02-26  Ben Murdoch  <benm@google.com>
    241
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt

    r54991 r55289  
    1 KCanvasResource {id="one" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [bounding box mode=1] [path=M0.50,0.50 L0.50,0.51 L0.50,0.53 L0.50,0.54 L0.49,0.55 L0.49,0.56 L0.49,0.57 L0.48,0.59 L0.48,0.60 L0.47,0.61 L0.46,0.62 L0.45,0.63 L0.45,0.64 L0.44,0.65 L0.43,0.65 L0.42,0.66 L0.41,0.67 L0.40,0.68 L0.39,0.68 L0.37,0.69 L0.36,0.69 L0.35,0.69 L0.34,0.70 L0.33,0.70 L0.31,0.70 L0.30,0.70 L0.29,0.70 L0.27,0.70 L0.26,0.70 L0.25,0.69 L0.24,0.69 L0.23,0.69 L0.21,0.68 L0.20,0.68 L0.19,0.67 L0.18,0.66 L0.17,0.65 L0.16,0.65 L0.15,0.64 L0.15,0.63 L0.14,0.62 L0.13,0.61 L0.12,0.60 L0.12,0.59 L0.11,0.57 L0.11,0.56 L0.11,0.55 L0.10,0.54 L0.10,0.53 L0.10,0.51 L0.10,0.50 L0.10,0.49 L0.10,0.47 L0.10,0.46 L0.11,0.45 L0.11,0.44 L0.11,0.43 L0.12,0.41 L0.12,0.40 L0.13,0.39 L0.14,0.38 L0.15,0.37 L0.15,0.36 L0.16,0.35 L0.17,0.35 L0.18,0.34 L0.19,0.33 L0.20,0.32 L0.21,0.32 L0.23,0.31 L0.24,0.31 L0.25,0.31 L0.26,0.30 L0.27,0.30 L0.29,0.30 L0.30,0.30 L0.31,0.30 L0.33,0.30 L0.34,0.30 L0.35,0.31 L0.36,0.31 L0.37,0.31 L0.39,0.32 L0.40,0.32 L0.41,0.33 L0.42,0.34 L0.43,0.35 L0.44,0.35 L0.45,0.36 L0.45,0.37 L0.46,0.38 L0.47,0.39 L0.48,0.40 L0.48,0.41 L0.49,0.43 L0.49,0.44 L0.49,0.45 L0.50,0.46 L0.50,0.47 L0.50,0.49 Z], [winding=NON-ZERO] [bounding box mode=1] [path=M0.90,0.50 L0.90,0.51 L0.90,0.53 L0.90,0.54 L0.89,0.55 L0.89,0.56 L0.89,0.57 L0.88,0.59 L0.88,0.60 L0.87,0.61 L0.86,0.62 L0.85,0.63 L0.85,0.64 L0.84,0.65 L0.83,0.65 L0.82,0.66 L0.81,0.67 L0.80,0.68 L0.79,0.68 L0.77,0.69 L0.76,0.69 L0.75,0.69 L0.74,0.70 L0.73,0.70 L0.71,0.70 L0.70,0.70 L0.69,0.70 L0.67,0.70 L0.66,0.70 L0.65,0.69 L0.64,0.69 L0.63,0.69 L0.61,0.68 L0.60,0.68 L0.59,0.67 L0.58,0.66 L0.57,0.65 L0.56,0.65 L0.55,0.64 L0.55,0.63 L0.54,0.62 L0.53,0.61 L0.52,0.60 L0.52,0.59 L0.51,0.57 L0.51,0.56 L0.51,0.55 L0.50,0.54 L0.50,0.53 L0.50,0.51 L0.50,0.50 L0.50,0.49 L0.50,0.47 L0.50,0.46 L0.51,0.45 L0.51,0.44 L0.51,0.43 L0.52,0.41 L0.52,0.40 L0.53,0.39 L0.54,0.38 L0.55,0.37 L0.55,0.36 L0.56,0.35 L0.57,0.35 L0.58,0.34 L0.59,0.33 L0.60,0.32 L0.61,0.32 L0.63,0.31 L0.64,0.31 L0.65,0.31 L0.66,0.30 L0.67,0.30 L0.69,0.30 L0.70,0.30 L0.71,0.30 L0.73,0.30 L0.74,0.30 L0.75,0.31 L0.76,0.31 L0.77,0.31 L0.79,0.32 L0.80,0.32 L0.81,0.33 L0.82,0.34 L0.83,0.35 L0.84,0.35 L0.85,0.36 L0.85,0.37 L0.86,0.38 L0.87,0.39 L0.88,0.40 L0.88,0.41 L0.89,0.43 L0.89,0.44 L0.89,0.45 L0.90,0.46 L0.90,0.47 L0.90,0.49 Z]]]}
    21layer at (0,0) size 480x360
    32  RenderView at (0,0) size 480x360
     
    87        chunk 1 (middle anchor) text run 1 at (62.50,35.00) startOffset 0 endOffset 51 width 355.00: "Testing stroke inclusion for 'clip-path' and 'mask'"
    98    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    10       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     9      RenderSVGResourceClipper {clipPath} [id="one"] [clipPathUnits=objectBoundingBox]
    1110        RenderPath {circle} at (0,0) size 1x1 [stroke={[type=SOLID] [color=#FF0000] [stroke width=0.15]}] [data="M0.50,0.50 L0.50,0.51 L0.50,0.53 L0.50,0.54 L0.49,0.55 L0.49,0.56 L0.49,0.57 L0.48,0.59 L0.48,0.60 L0.47,0.61 L0.46,0.62 L0.45,0.63 L0.45,0.64 L0.44,0.65 L0.43,0.65 L0.42,0.66 L0.41,0.67 L0.40,0.68 L0.39,0.68 L0.37,0.69 L0.36,0.69 L0.35,0.69 L0.34,0.70 L0.33,0.70 L0.31,0.70 L0.30,0.70 L0.29,0.70 L0.27,0.70 L0.26,0.70 L0.25,0.69 L0.24,0.69 L0.23,0.69 L0.21,0.68 L0.20,0.68 L0.19,0.67 L0.18,0.66 L0.17,0.65 L0.16,0.65 L0.15,0.64 L0.15,0.63 L0.14,0.62 L0.13,0.61 L0.12,0.60 L0.12,0.59 L0.11,0.57 L0.11,0.56 L0.11,0.55 L0.10,0.54 L0.10,0.53 L0.10,0.51 L0.10,0.50 L0.10,0.49 L0.10,0.47 L0.10,0.46 L0.11,0.45 L0.11,0.44 L0.11,0.43 L0.12,0.41 L0.12,0.40 L0.13,0.39 L0.14,0.38 L0.15,0.37 L0.15,0.36 L0.16,0.35 L0.17,0.35 L0.18,0.34 L0.19,0.33 L0.20,0.32 L0.21,0.32 L0.23,0.31 L0.24,0.31 L0.25,0.31 L0.26,0.30 L0.27,0.30 L0.29,0.30 L0.30,0.30 L0.31,0.30 L0.33,0.30 L0.34,0.30 L0.35,0.31 L0.36,0.31 L0.37,0.31 L0.39,0.32 L0.40,0.32 L0.41,0.33 L0.42,0.34 L0.43,0.35 L0.44,0.35 L0.45,0.36 L0.45,0.37 L0.46,0.38 L0.47,0.39 L0.48,0.40 L0.48,0.41 L0.49,0.43 L0.49,0.44 L0.49,0.45 L0.50,0.46 L0.50,0.47 L0.50,0.49 Z"]
    1211        RenderPath {circle} at (0,0) size 1x1 [data="M0.90,0.50 L0.90,0.51 L0.90,0.53 L0.90,0.54 L0.89,0.55 L0.89,0.56 L0.89,0.57 L0.88,0.59 L0.88,0.60 L0.87,0.61 L0.86,0.62 L0.85,0.63 L0.85,0.64 L0.84,0.65 L0.83,0.65 L0.82,0.66 L0.81,0.67 L0.80,0.68 L0.79,0.68 L0.77,0.69 L0.76,0.69 L0.75,0.69 L0.74,0.70 L0.73,0.70 L0.71,0.70 L0.70,0.70 L0.69,0.70 L0.67,0.70 L0.66,0.70 L0.65,0.69 L0.64,0.69 L0.63,0.69 L0.61,0.68 L0.60,0.68 L0.59,0.67 L0.58,0.66 L0.57,0.65 L0.56,0.65 L0.55,0.64 L0.55,0.63 L0.54,0.62 L0.53,0.61 L0.52,0.60 L0.52,0.59 L0.51,0.57 L0.51,0.56 L0.51,0.55 L0.50,0.54 L0.50,0.53 L0.50,0.51 L0.50,0.50 L0.50,0.49 L0.50,0.47 L0.50,0.46 L0.51,0.45 L0.51,0.44 L0.51,0.43 L0.52,0.41 L0.52,0.40 L0.53,0.39 L0.54,0.38 L0.55,0.37 L0.55,0.36 L0.56,0.35 L0.57,0.35 L0.58,0.34 L0.59,0.33 L0.60,0.32 L0.61,0.32 L0.63,0.31 L0.64,0.31 L0.65,0.31 L0.66,0.30 L0.67,0.30 L0.69,0.30 L0.70,0.30 L0.71,0.30 L0.73,0.30 L0.74,0.30 L0.75,0.31 L0.76,0.31 L0.77,0.31 L0.79,0.32 L0.80,0.32 L0.81,0.33 L0.82,0.34 L0.83,0.35 L0.84,0.35 L0.85,0.36 L0.85,0.37 L0.86,0.38 L0.87,0.39 L0.88,0.40 L0.88,0.41 L0.89,0.43 L0.89,0.44 L0.89,0.45 L0.90,0.46 L0.90,0.47 L0.90,0.49 Z"]
    13     RenderPath {rect} at (170,60) size 160x80 [fill={[type=SOLID] [color=#00008B]}] [clip path="one"] [data="M150.00,0.00 L350.00,0.00 L350.00,200.00 L150.00,200.00 Z"]
     12    RenderPath {rect} at (170,60) size 160x80 [fill={[type=SOLID] [color=#00008B]}] [data="M150.00,0.00 L350.00,0.00 L350.00,200.00 L150.00,200.00 Z"]
     13      [clipPath="one"] RenderSVGResourceClipper {clipPath} at (170,60) size 160x80
    1414    RenderSVGText {text} at (50,110) size 111x18 contains 1 chunk(s)
    1515      RenderSVGInlineText {#text} at (0,-14) size 111x18
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-01-b-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip1" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M200.00,10.00 L260.00,10.00 L260.00,110.00 L200.00,110.00 Z]]]}
    2 KCanvasResource {id="clip2" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M90.00,150.00 L265.00,150.00 L265.00,250.00 L90.00,250.00 Z], [winding=NON-ZERO] [path=M225.00,160.00 L320.00,160.00 L320.00,235.00 L225.00,235.00 Z]]]}
    31layer at (0,0) size 480x360
    42  RenderView at (0,0) size 480x360
     
    75    RenderSVGContainer {g} at (20,17) size 325x269
    86      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    9         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7        RenderSVGResourceClipper {clipPath} [id="clip1"] [clipPathUnits=userSpaceOnUse]
    108          RenderPath {rect} at (200,10) size 60x100 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,10.00 L260.00,10.00 L260.00,110.00 L200.00,110.00 Z"]
    11         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     9        RenderSVGResourceClipper {clipPath} [id="clip2"] [clipPathUnits=userSpaceOnUse]
    1210          RenderPath {rect} at (90,150) size 175x100 [fill={[type=SOLID] [color=#000000]}] [data="M90.00,150.00 L265.00,150.00 L265.00,250.00 L90.00,250.00 Z"]
    1311          RenderPath {rect} at (225,160) size 95x75 [fill={[type=SOLID] [color=#000000]}] [data="M225.00,160.00 L320.00,160.00 L320.00,235.00 L225.00,235.00 Z"]
    14       RenderPath {rect} at (200,17) size 60x66 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M20.00,20.00 L460.00,20.00 L460.00,80.00 L20.00,80.00 Z"]
     12      RenderPath {rect} at (200,17) size 60x66 [stroke={[type=SOLID] [color=#000000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#FF0000]}] [data="M20.00,20.00 L460.00,20.00 L460.00,80.00 L20.00,80.00 Z"]
     13        [clipPath="clip1"] RenderSVGResourceClipper {clipPath} at (200,10) size 60x100
    1514      RenderSVGText {text} at (20,130) size 325x33 contains 1 chunk(s)
    1615        RenderSVGInlineText {#text} at (0,-27) size 325x33
    1716          chunk 1 text run 1 at (20.00,130.00) startOffset 0 endOffset 23 width 325.00: "Rectangle being clipped"
    18       RenderSVGContainer {g} at (112,153) size 208x97 [clip path="clip2"]
     17      RenderSVGContainer {g} at (112,153) size 208x97
     18        [clipPath="clip2"] RenderSVGResourceClipper {clipPath} at (90,150) size 230x100
    1919        RenderPath {rect} at (112,187) size 231x46 [stroke={[type=SOLID] [color=#0000FF] [stroke width=5.00]}] [fill={[type=SOLID] [color=#00FFFF]}] [data="M115.00,190.00 L340.00,190.00 L340.00,230.00 L115.00,230.00 Z"]
    2020        RenderPath {rect} at (112,237) size 231x46 [stroke={[type=SOLID] [color=#008000] [stroke width=5.00]}] [fill={[type=SOLID] [color=#00FF00]}] [data="M115.00,240.00 L340.00,240.00 L340.00,280.00 L115.00,280.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-02-b-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip1" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [bounding box mode=1] [path=M0.25,0.50 L0.85,0.50 L0.85,1.50 L0.25,1.50 Z]]]}
    2 KCanvasResource {id="clip2" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M60.00,60.00 L140.00,60.00 L140.00,140.00 L60.00,140.00 Z]]]}
    31layer at (0,0) size 480x360
    42  RenderView at (0,0) size 480x360
     
    64  RenderSVGRoot {svg} at (0,0) size 480x360
    75    RenderSVGContainer {g} at (20,50) size 457x236
    8       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="clip1"] [clipPathUnits=objectBoundingBox]
    97        RenderPath {rect} at (0,0) size 1x2 [fill={[type=SOLID] [color=#000000]}] [data="M0.25,0.50 L0.85,0.50 L0.85,1.50 L0.25,1.50 Z"]
    10       RenderPath {rect} at (117,50) size 259x40 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M10.00,10.00 L440.00,10.00 L440.00,90.00 L10.00,90.00 Z"]
     8      RenderPath {rect} at (117,50) size 259x40 [fill={[type=SOLID] [color=#FF0000]}] [data="M10.00,10.00 L440.00,10.00 L440.00,90.00 L10.00,90.00 Z"]
     9        [clipPath="clip1"] RenderSVGResourceClipper {clipPath} at (117.50,50) size 258x80
    1110      RenderSVGText {text} at (20,130) size 457x33 contains 1 chunk(s)
    1211        RenderSVGInlineText {#text} at (0,-27) size 457x33
    1312          chunk 1 text run 1 at (20.00,130.00) startOffset 0 endOffset 31 width 457.00: "clipPathUnits=objectBoundingBox"
    14       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     13      RenderSVGResourceClipper {clipPath} [id="clip2"] [clipPathUnits=userSpaceOnUse]
    1514        RenderPath {rect} at (60,60) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M60.00,60.00 L140.00,60.00 L140.00,140.00 L60.00,140.00 Z"]
    16       RenderPath {rect} at (184,157) size 86x86 [transform={m=((0.71,-0.71)(0.71,0.71)) t=(100.00,200.00)}] [fill={[type=SOLID] [color=#0000FF]}] [clip path="clip2"] [data="M0.00,0.00 L120.00,0.00 L120.00,120.00 L0.00,120.00 Z"]
     15      RenderPath {rect} at (184,157) size 86x86 [transform={m=((0.71,-0.71)(0.71,0.71)) t=(100.00,200.00)}] [fill={[type=SOLID] [color=#0000FF]}] [data="M0.00,0.00 L120.00,0.00 L120.00,120.00 L0.00,120.00 Z"]
     16        [clipPath="clip2"] RenderSVGResourceClipper {clipPath} at (60,60) size 80x80
    1717      RenderSVGText {text} at (20,280) size 434x33 contains 1 chunk(s)
    1818        RenderSVGInlineText {#text} at (0,-27) size 434x33
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="sample" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    21layer at (0,0) size 480x360
    32  RenderView at (0,0) size 480x360
     
    65    RenderSVGContainer {g} at (20,20) size 420x310
    76      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    8         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7        RenderSVGResourceClipper {clipPath} [id="sample"] [clipPathUnits=userSpaceOnUse]
    98          RenderSVGText {text} at (45,270) size 353x122 contains 1 chunk(s)
    109            RenderSVGInlineText {#text} at (0,-101) size 353x122
     
    1615            chunk 1 text run 1 at (55.00,130.00) startOffset 0 endOffset 9 width 353.00: "Clip Test"
    1716      RenderSVGContainer {g} at (20,170) size 410x160
    18         RenderSVGImage {image} at (20,170) size 410x160 [clip path="sample"]
     17        RenderSVGImage {image} at (20,170) size 410x160
     18          [clipPath="sample"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    1919    RenderSVGText {text} at (10,340) size 264x46 contains 1 chunk(s)
    2020      RenderSVGInlineText {#text} at (0,-36) size 264x46
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-path-05-f-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip1" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M200.00,40.00 L220.00,40.00 L220.00,100.00 L240.00,100.00 L240.00,80.00 L180.00,80.00 L180.00,60.00 L260.00,60.00 L260.00,120.00 L200.00,120.00 L200.00,40.00 Z]]]}
    2 KCanvasResource {id="clip2" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M200.00,170.00 L220.00,170.00 L220.00,230.00 L240.00,230.00 L240.00,210.00 L180.00,210.00 L180.00,190.00 L260.00,190.00 L260.00,250.00 L200.00,250.00 L200.00,170.00 Z]]]}
    31layer at (0,0) size 480x360
    42  RenderView at (0,0) size 480x360
     
    97        RenderSVGInlineText {#text} at (0,-13) size 164x16
    108          chunk 1 text run 1 at (150.00,20.00) startOffset 0 endOffset 28 width 164.00: "Test for clip-rule property."
    11       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
    12         RenderPath {path} at (180,40) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,40.00 L220.00,40.00 L220.00,100.00 L240.00,100.00 L240.00,80.00 L180.00,80.00 L180.00,60.00 L260.00,60.00 L260.00,120.00 L200.00,120.00 L200.00,40.00 Z"]
    13       RenderPath {rect} at (180,40) size 80x80 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clip1"] [data="M50.00,30.00 L400.00,30.00 L400.00,130.00 L50.00,130.00 Z"]
     9      RenderSVGResourceClipper {clipPath} [id="clip1"] [clipPathUnits=userSpaceOnUse]
     10        RenderPath {path} at (180,40) size 80x80 [fill={[type=SOLID] [color=#000000]}] [clip rule=EVEN-ODD] [data="M200.00,40.00 L220.00,40.00 L220.00,100.00 L240.00,100.00 L240.00,80.00 L180.00,80.00 L180.00,60.00 L260.00,60.00 L260.00,120.00 L200.00,120.00 L200.00,40.00 Z"]
     11      RenderPath {rect} at (180,40) size 80x80 [fill={[type=SOLID] [color=#FF0000]}] [data="M50.00,30.00 L400.00,30.00 L400.00,130.00 L50.00,130.00 Z"]
     12        [clipPath="clip1"] RenderSVGResourceClipper {clipPath} at (180,40) size 80x80
    1413      RenderSVGText {text} at (100,140) size 99x14 contains 1 chunk(s)
    1514        RenderSVGInlineText {#text} at (0,-11) size 99x14
    1615          chunk 1 text run 1 at (100.00,140.00) startOffset 0 endOffset 17 width 99.00: "clip-rule=evenodd"
    17       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     16      RenderSVGResourceClipper {clipPath} [id="clip2"] [clipPathUnits=userSpaceOnUse]
    1817        RenderPath {path} at (180,170) size 80x80 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,170.00 L220.00,170.00 L220.00,230.00 L240.00,230.00 L240.00,210.00 L180.00,210.00 L180.00,190.00 L260.00,190.00 L260.00,250.00 L200.00,250.00 L200.00,170.00 Z"]
    19       RenderPath {rect} at (180,170) size 80x80 [fill={[type=SOLID] [color=#0000FF]}] [clip path="clip2"] [data="M50.00,160.00 L400.00,160.00 L400.00,260.00 L50.00,260.00 Z"]
     18      RenderPath {rect} at (180,170) size 80x80 [fill={[type=SOLID] [color=#0000FF]}] [data="M50.00,160.00 L400.00,160.00 L400.00,260.00 L50.00,260.00 Z"]
     19        [clipPath="clip2"] RenderSVGResourceClipper {clipPath} at (180,170) size 80x80
    2020      RenderSVGText {text} at (100,270) size 92x14 contains 1 chunk(s)
    2121        RenderSVGInlineText {#text} at (0,-11) size 92x14
  • trunk/LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-marker-02-f-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="overflowHiddenClip1" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L2.00,0.00 L2.00,2.00 L0.00,2.00 Z]]]}
    2 KCanvasResource {id="overflowHiddenClip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L4.00,0.00 L4.00,4.00 L0.00,4.00 Z]]]}
    31KCanvasResource {id="marker1" [type=MARKER] [angle=0.00] [ref x=5.00 y=5.00]}
    42KCanvasResource {id="marker2" [type=MARKER] [angle=0.00] [ref x=10.00 y=10.00]}
     
    119    RenderSVGContainer {g} at (0,0) size 448x272
    1210      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    13         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     11        RenderSVGResourceClipper {clipPath} [id="overflowHiddenClip1"] [clipPathUnits=userSpaceOnUse]
    1412          RenderPath {rect} at (0,0) size 2x2 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L2.00,0.00 L2.00,2.00 L0.00,2.00 Z"]
    15         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     13        RenderSVGResourceClipper {clipPath} [id="overflowHiddenClip"] [clipPathUnits=userSpaceOnUse]
    1614          RenderPath {rect} at (0,0) size 4x4 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L4.00,0.00 L4.00,4.00 L0.00,4.00 Z"]
    1715      RenderSVGText {text} at (125,30) size 184x16 contains 1 chunk(s)
     
    2826          RenderPath {path} at (150,60) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M30.00,60.00 L80.00,60.00 L80.00,110.00 Z"]
    2927          RenderSVGContainer {g} at (142,52) size 16x16 [transform={m=((8.00,0.00)(0.00,8.00)) t=(22.00,52.00)}]
    30             RenderSVGContainer {g} at (142,52) size 16x16 [clip path="overflowHiddenClip1"]
     28            RenderSVGContainer {g} at (142,52) size 16x16
     29              [clipPath="overflowHiddenClip1"] RenderSVGResourceClipper {clipPath} at (0,0) size 2x2
    3130              RenderSVGContainer {g} at (142,52) size 16x16 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    3231                RenderPath {rect} at (142,52) size 16x16 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
    3332          RenderSVGContainer {g} at (192,52) size 16x16 [transform={m=((8.00,0.00)(0.00,8.00)) t=(72.00,52.00)}]
    34             RenderSVGContainer {g} at (192,52) size 16x16 [clip path="overflowHiddenClip1"]
     33            RenderSVGContainer {g} at (192,52) size 16x16
     34              [clipPath="overflowHiddenClip1"] RenderSVGResourceClipper {clipPath} at (0,0) size 2x2
    3535              RenderSVGContainer {g} at (192,52) size 16x16 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    3636                RenderPath {rect} at (192,52) size 16x16 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
    3737          RenderSVGContainer {g} at (192,102) size 16x16 [transform={m=((8.00,0.00)(0.00,8.00)) t=(72.00,102.00)}]
    38             RenderSVGContainer {g} at (192,102) size 16x16 [clip path="overflowHiddenClip1"]
     38            RenderSVGContainer {g} at (192,102) size 16x16
     39              [clipPath="overflowHiddenClip1"] RenderSVGResourceClipper {clipPath} at (0,0) size 2x2
    3940              RenderSVGContainer {g} at (192,102) size 16x16 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    4041                RenderPath {rect} at (192,102) size 16x16 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
     
    4950          RenderPath {path} at (385,58) size 57x57 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M270.00,60.00 L320.00,60.00 L320.00,110.00 Z"]
    5051          RenderSVGContainer {g} at (382,52) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(262.00,52.00)}]
    51             RenderSVGContainer {g} at (382,52) size 16x16 [clip path="overflowHiddenClip"]
     52            RenderSVGContainer {g} at (382,52) size 16x16
     53              [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    5254              RenderSVGContainer {g} at (378,48) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    5355                RenderPath {rect} at (378,48) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
    5456          RenderSVGContainer {g} at (432,52) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(312.00,52.00)}]
    55             RenderSVGContainer {g} at (432,52) size 16x16 [clip path="overflowHiddenClip"]
     57            RenderSVGContainer {g} at (432,52) size 16x16
     58              [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    5659              RenderSVGContainer {g} at (428,48) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    5760                RenderPath {rect} at (428,48) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
    5861          RenderSVGContainer {g} at (432,102) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(312.00,102.00)}]
    59             RenderSVGContainer {g} at (432,102) size 16x16 [clip path="overflowHiddenClip"]
     62            RenderSVGContainer {g} at (432,102) size 16x16
     63              [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    6064              RenderSVGContainer {g} at (428,98) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    6165                RenderPath {rect} at (428,98) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=4.00]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
     
    7478          RenderSVGContainer {g} at (142,182) size 66x66
    7579            RenderSVGContainer {g} at (142,182) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(22.00,182.00)}]
    76               RenderSVGContainer {g} at (142,182) size 16x16 [clip path="overflowHiddenClip"]
     80              RenderSVGContainer {g} at (142,182) size 16x16
     81                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    7782                RenderSVGContainer {g} at (138,178) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    7883                  RenderPath {rect} at (138,178) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
    7984            RenderSVGContainer {g} at (192,182) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(72.00,182.00)}]
    80               RenderSVGContainer {g} at (192,182) size 16x16 [clip path="overflowHiddenClip"]
     85              RenderSVGContainer {g} at (192,182) size 16x16
     86                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    8187                RenderSVGContainer {g} at (188,178) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    8288                  RenderPath {rect} at (188,178) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
    8389            RenderSVGContainer {g} at (192,232) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(72.00,232.00)}]
    84               RenderSVGContainer {g} at (192,232) size 16x16 [clip path="overflowHiddenClip"]
     90              RenderSVGContainer {g} at (192,232) size 16x16
     91                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    8592                RenderSVGContainer {g} at (188,228) size 24x24 [transform={m=((0.20,0.00)(0.00,0.20)) t=(0.00,0.00)}]
    8693                  RenderPath {rect} at (188,228) size 24x24 [stroke={[type=SOLID] [color=#000000] [stroke width=8.00]}] [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L20.00,0.00 L20.00,20.00 L0.00,20.00 Z"]
     
    94101          RenderSVGContainer {g} at (382,182) size 66x66
    95102            RenderSVGContainer {g} at (382,182) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(262.00,182.00)}]
    96               RenderSVGContainer {g} at (382,182) size 16x16 [clip path="overflowHiddenClip"]
     103              RenderSVGContainer {g} at (382,182) size 16x16
     104                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    97105                RenderSVGContainer {g} at (378,178) size 24x24 [transform={m=((0.40,0.00)(0.00,0.40)) t=(0.00,0.00)}]
    98106                  RenderPath {rect} at (378,178) size 24x24 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
    99107            RenderSVGContainer {g} at (432,182) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(312.00,182.00)}]
    100               RenderSVGContainer {g} at (432,182) size 16x16 [clip path="overflowHiddenClip"]
     108              RenderSVGContainer {g} at (432,182) size 16x16
     109                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    101110                RenderSVGContainer {g} at (428,178) size 24x24 [transform={m=((0.40,0.00)(0.00,0.40)) t=(0.00,0.00)}]
    102111                  RenderPath {rect} at (428,178) size 24x24 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
    103112            RenderSVGContainer {g} at (432,232) size 16x16 [transform={m=((4.00,0.00)(0.00,4.00)) t=(312.00,232.00)}]
    104               RenderSVGContainer {g} at (432,232) size 16x16 [clip path="overflowHiddenClip"]
     113              RenderSVGContainer {g} at (432,232) size 16x16
     114                [clipPath="overflowHiddenClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 4x4
    105115                RenderSVGContainer {g} at (428,228) size 24x24 [transform={m=((0.40,0.00)(0.00,0.40)) t=(0.00,0.00)}]
    106116                  RenderPath {rect} at (428,228) size 24x24 [stroke={[type=SOLID] [color=#0000FF] [stroke width=4.00]}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L10.00,0.00 L10.00,10.00 L0.00,10.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt

    r54483 r55289  
    11KRenderingPaintServer {id="grad" [type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}
    2 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    3 KCanvasResource {id="svgClip" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    42layer at (0,0) size 800x600
    53  RenderView at (0,0) size 800x600
     
    1816          RenderSVGGradientStop {stop} at (0,0) size 0x0
    1917          RenderSVGGradientStop {stop} at (0,0) size 0x0
    20         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     18        RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    2119          RenderSVGText {text} at (100,200) size 152x59 contains 1 chunk(s)
    2220            RenderSVGInlineText {#text} at (0,-48) size 152x59
    2321              chunk 1 text run 1 at (100.00,200.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
    24         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     22        RenderSVGResourceClipper {clipPath} [id="svgClip"] [clipPathUnits=userSpaceOnUse]
    2523          RenderSVGText {text} at (100,300) size 152x59 contains 1 chunk(s)
    2624            RenderSVGInlineText {#text} at (0,-48) size 152x59
    2725              chunk 1 text run 1 at (100.00,300.00) startOffset 0 endOffset 5 width 152.00: "BATIK"
    28       RenderPath {rect} at (100,160) size 200x45 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}] [clip path="clip"] [data="M100.00,160.00 L300.00,160.00 L300.00,205.00 L100.00,205.00 Z"]
     26      RenderPath {rect} at (100,160) size 200x45 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}] [data="M100.00,160.00 L300.00,160.00 L300.00,205.00 L100.00,205.00 Z"]
     27        [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    2928      RenderSVGText {text} at (300,200) size 65x14 contains 1 chunk(s)
    3029        RenderSVGInlineText {#text} at (0,-11) size 65x14
    3130          chunk 1 text run 1 at (300.00,200.00) startOffset 0 endOffset 13 width 65.00: "(System font)"
    32       RenderPath {rect} at (100,260) size 200x45 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}] [clip path="svgClip"] [data="M100.00,260.00 L300.00,260.00 L300.00,305.00 L100.00,305.00 Z"]
     31      RenderPath {rect} at (100,260) size 200x45 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#FFD700), (0.50,#FFA500), (1.00,#DC143C)]] [start=(0,0)] [end=(1,0)]}] [data="M100.00,260.00 L300.00,260.00 L300.00,305.00 L100.00,305.00 Z"]
     32        [clipPath="svgClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    3333      RenderSVGText {text} at (300,300) size 55x14 contains 1 chunk(s)
    3434        RenderSVGInlineText {#text} at (0,-11) size 55x14
  • trunk/LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt

    r54483 r55289  
    11KCanvasResource {id="gaussianBlur" [type=FILTER]  [bounding box=at (-100,-100) size 200x200] [bounding box mode=0]}
    2 KCanvasResource {id="textClip" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    32KRenderingPaintServer {id="gradient" [type=LINEAR-GRADIENT] [stops=[(0.00,#0000FF), (1.00,#008000)]] [bounding box mode=0] [start=(-50,-25)] [end=(50,25)]}
    43layer at (0,0) size 800x600
     
    133132            chunk 1 (middle anchor) text run 1 at (-74.50,25.00) startOffset 0 endOffset 21 width 149.00: "stroke=\"MidnightBlue\""
    134133      RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    135         RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     134        RenderSVGResourceClipper {clipPath} [id="textClip"] [clipPathUnits=userSpaceOnUse]
    136135          RenderSVGText {text} at (-42,0) size 84x36 contains 1 chunk(s)
    137136            RenderSVGInlineText {#text} at (0,-28) size 84x36
     
    141140          RenderSVGGradientStop {stop} at (0,0) size 0x0
    142141      RenderSVGContainer {g} at (300,345) size 100x50 [transform={m=((1.00,0.00)(0.00,1.00)) t=(350.00,370.00)}]
    143         RenderPath {rect} at (300,345) size 100x50 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#0000FF), (1.00,#008000)]] [bounding box mode=0] [start=(-50,-25)] [end=(50,25)]}] [clip path="textClip"] [data="M-50.00,-25.00 L50.00,-25.00 L50.00,25.00 L-50.00,25.00 Z"]
     142        RenderPath {rect} at (300,345) size 100x50 [fill={[type=LINEAR-GRADIENT] [stops=[(0.00,#0000FF), (1.00,#008000)]] [bounding box mode=0] [start=(-50,-25)] [end=(50,25)]}] [data="M-50.00,-25.00 L50.00,-25.00 L50.00,25.00 L-50.00,25.00 Z"]
     143          [clipPath="textClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    144144        RenderSVGText {text} at (-50,15) size 100x18 contains 1 chunk(s)
    145145          RenderSVGInlineText {#text} at (0,-14) size 100x18
  • trunk/LayoutTests/platform/mac/svg/css/clippath-with-shadow-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    65    RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    76    RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
    8     RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7    RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    98      RenderSVGContainer {use} at (0,0) size 210x210
    109        RenderSVGContainer {g} at (0,0) size 210x210
    1110          RenderPath {rect} at (0,0) size 210x210 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
    12     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
     11    RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
     12      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-child-changes-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {path} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    9     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
     8    RenderSVGContainer {g} at (0,0) size 200x200
     9      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    1010      RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    1111      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-display-none-child-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="c" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="c"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    9     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="c"]
     8    RenderSVGContainer {g} at (0,0) size 100x100
     9      [clipPath="c"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    1010      RenderPath {rect} at (0,0) size 200x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,100.00 L0.00,100.00 Z"]
    1111      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-href-changes-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {path} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    9     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
     8    RenderSVGContainer {g} at (0,0) size 200x200
     9      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    1010      RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    1111      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    76      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    8       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7      RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    98        RenderSVGContainer {use} at (0,0) size 100x100
    109          RenderSVGContainer {g} at (0,0) size 100x100
    1110            RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    12     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="clip"]
     11    RenderSVGContainer {g} at (0,0) size 100x100
     12      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    1313      RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    1414      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-referencing-use2-expected.txt

    r54483 r55289  
    2020CONSOLE MESSAGE: line 1: Error: Not allowed to use indirect reference in <clip-path>
    2121CONSOLE MESSAGE: line 1: Error: Not allowed to use indirect reference in <clip-path>
    22 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    2322layer at (0,0) size 800x600
    2423  RenderView at (0,0) size 800x600
     
    3029        RenderSVGContainer {g} at (0,0) size 50x50
    3130          RenderPath {rect} at (0,0) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
    32       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     31      RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    3332        RenderSVGContainer {use} at (0,0) size 50x50
    3433          RenderSVGContainer {g} at (0,0) size 50x50
     
    3635              RenderPath {rect} at (0,0) size 50x50 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L50.00,0.00 L50.00,50.00 L0.00,50.00 Z"]
    3736    RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    38     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="clip"]
     37    RenderSVGContainer {g} at (0,0) size 100x100
     38      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    3939      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    4040    RenderSVGText {text} at (10,120) size 377x18 contains 1 chunk(s)
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-units-changes-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {path} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    9     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
     8    RenderSVGContainer {g} at (0,0) size 200x200
     9      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    1010      RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    1111      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/clip-path-with-transform-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {path} at (0,0) size 100x100 [transform={m=((0.50,0.00)(0.00,0.50)) t=(0.00,0.00)}] [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    9     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
     8    RenderSVGContainer {g} at (0,0) size 200x200
     9      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    1010      RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    1111      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/empty-clip-path-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="nothing" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    2 KCanvasResource {id="emptyrect" [type=CLIPPER] [clip data=[[winding=EVEN-ODD] [path=M0.00,0.00 L0.00,0.00 L0.00,0.00 L0.00,0.00 Z]]]}
    31layer at (0,0) size 800x600
    42  RenderView at (0,0) size 800x600
     
    64  RenderSVGRoot {svg} at (0,0) size 800x600
    75    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    8       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
    9       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="nothing"] [clipPathUnits=userSpaceOnUse]
     7      RenderSVGResourceClipper {clipPath} [id="emptyrect"] [clipPathUnits=userSpaceOnUse]
    108        RenderPath {rect} at (0,0) size 0x0 [fill={[type=SOLID] [color=#000000]}] [data=""]
    119    RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    12     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="nothing"]
     10    RenderSVGContainer {g} at (0,0) size 100x100
     11      [clipPath="nothing"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    1312      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    14     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="emptyrect"]
     13    RenderSVGContainer {g} at (0,0) size 100x100
     14      [clipPath="emptyrect"] RenderSVGResourceClipper {clipPath} at (0,0) size 0x0
    1515      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    1616    RenderSVGContainer {g} at (0,116) size 452x38
  • trunk/LayoutTests/platform/mac/svg/custom/focus-ring-expected.txt

    r54551 r55289  
    1 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    2322        RenderSVGInlineText {#text} at (0,-14) size 76x18
    2423          chunk 1 text run 1 at (0.00,0.00) startOffset 0 endOffset 12 width 76.00: "focused text"
    25     RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     24    RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    2625      RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    27     RenderSVGImage {image} at (0,0) size 0x0 [clip path="clip"]
    28     RenderSVGImage {image} at (150,400) size 137x137 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(200.00,400.00)}] [clip path="clip"]
     26    RenderSVGImage {image} at (0,0) size 0x0
     27      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
     28    RenderSVGImage {image} at (150,400) size 137x137 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(200.00,400.00)}]
     29      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    2930    RenderSVGContainer {g} at (310,400) size 137x137 [transform={m=((0.87,0.50)(-0.50,0.87)) t=(360.00,400.00)}]
    30       RenderSVGImage {image} at (310,400) size 137x137 [clip path="clip"]
     31      RenderSVGImage {image} at (310,400) size 137x137
     32        [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
  • trunk/LayoutTests/platform/mac/svg/custom/image-with-transform-clip-filter-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21KCanvasResource {id="myfilter" [type=FILTER]  [bounding box=at (-10.00%,-10.00%) size 120.00%x120.00%]}
    32layer at (0,0) size 800x600
     
    65  RenderSVGRoot {svg} at (0,0) size 800x600
    76    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    8       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    98        RenderPath {path} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    10     RenderSVGImage {image} at (0,0) size 100x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-25.00)}] [clip path="myclip"] [filter=myfilter]
     9    RenderSVGImage {image} at (0,0) size 100x75 [transform={m=((1.00,0.00)(0.00,1.00)) t=(0.00,-25.00)}] [filter=myfilter]
     10      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    1111    RenderSVGText {text} at (0,125) size 542x18 contains 1 chunk(s)
    1212      RenderSVGInlineText {#text} at (0,-14) size 542x18
  • trunk/LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip1" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M40.00,40.00 L39.98,40.63 L39.92,41.25 L39.82,41.87 L39.69,42.49 L39.51,43.09 L39.30,43.68 L39.05,44.26 L38.76,44.82 L38.44,45.36 L38.09,45.88 L37.71,46.37 L37.29,46.85 L36.85,47.29 L36.37,47.71 L35.88,48.09 L35.36,48.44 L34.82,48.76 L34.26,49.05 L33.68,49.30 L33.09,49.51 L32.49,49.69 L31.87,49.82 L31.25,49.92 L30.63,49.98 L30.00,50.00 L29.37,49.98 L28.75,49.92 L28.13,49.82 L27.51,49.69 L26.91,49.51 L26.32,49.30 L25.74,49.05 L25.18,48.76 L24.64,48.44 L24.12,48.09 L23.63,47.71 L23.15,47.29 L22.71,46.85 L22.29,46.37 L21.91,45.88 L21.56,45.36 L21.24,44.82 L20.95,44.26 L20.70,43.68 L20.49,43.09 L20.31,42.49 L20.18,41.87 L20.08,41.25 L20.02,40.63 L20.00,40.00 L20.02,39.37 L20.08,38.75 L20.18,38.13 L20.31,37.51 L20.49,36.91 L20.70,36.32 L20.95,35.74 L21.24,35.18 L21.56,34.64 L21.91,34.12 L22.29,33.63 L22.71,33.15 L23.15,32.71 L23.63,32.29 L24.12,31.91 L24.64,31.56 L25.18,31.24 L25.74,30.95 L26.32,30.70 L26.91,30.49 L27.51,30.31 L28.13,30.18 L28.75,30.08 L29.37,30.02 L30.00,30.00 L30.63,30.02 L31.25,30.08 L31.87,30.18 L32.49,30.31 L33.09,30.49 L33.68,30.70 L34.26,30.95 L34.82,31.24 L35.36,31.56 L35.88,31.91 L36.37,32.29 L36.85,32.71 L37.29,33.15 L37.71,33.63 L38.09,34.12 L38.44,34.64 L38.76,35.18 L39.05,35.74 L39.30,36.32 L39.51,36.91 L39.69,37.51 L39.82,38.13 L39.92,38.75 L39.98,39.37 Z]]]}
    21KRenderingPaintServer {id="grad" [type=LINEAR-GRADIENT] [stops=[(0.00,#008000)]] [start=(0,0)] [end=(1,0)]}
    32KCanvasResource {id="blurxy" [type=FILTER]  [bounding box=at (0,0) size 0x0] [bounding box mode=0]}
     
    87  RenderSVGRoot {svg} at (0,0) size 800x600
    98    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    10       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     9      RenderSVGResourceClipper {clipPath} [id="clip1"] [clipPathUnits=userSpaceOnUse]
    1110        RenderPath {circle} at (33,50) size 34x34 [fill={[type=SOLID] [color=#000000]}] [data="M40.00,40.00 L39.98,40.63 L39.92,41.25 L39.82,41.87 L39.69,42.49 L39.51,43.09 L39.30,43.68 L39.05,44.26 L38.76,44.82 L38.44,45.36 L38.09,45.88 L37.71,46.37 L37.29,46.85 L36.85,47.29 L36.37,47.71 L35.88,48.09 L35.36,48.44 L34.82,48.76 L34.26,49.05 L33.68,49.30 L33.09,49.51 L32.49,49.69 L31.87,49.82 L31.25,49.92 L30.63,49.98 L30.00,50.00 L29.37,49.98 L28.75,49.92 L28.13,49.82 L27.51,49.69 L26.91,49.51 L26.32,49.30 L25.74,49.05 L25.18,48.76 L24.64,48.44 L24.12,48.09 L23.63,47.71 L23.15,47.29 L22.71,46.85 L22.29,46.37 L21.91,45.88 L21.56,45.36 L21.24,44.82 L20.95,44.26 L20.70,43.68 L20.49,43.09 L20.31,42.49 L20.18,41.87 L20.08,41.25 L20.02,40.63 L20.00,40.00 L20.02,39.37 L20.08,38.75 L20.18,38.13 L20.31,37.51 L20.49,36.91 L20.70,36.32 L20.95,35.74 L21.24,35.18 L21.56,34.64 L21.91,34.12 L22.29,33.63 L22.71,33.15 L23.15,32.71 L23.63,32.29 L24.12,31.91 L24.64,31.56 L25.18,31.24 L25.74,30.95 L26.32,30.70 L26.91,30.49 L27.51,30.31 L28.13,30.18 L28.75,30.08 L29.37,30.02 L30.00,30.00 L30.63,30.02 L31.25,30.08 L31.87,30.18 L32.49,30.31 L33.09,30.49 L33.68,30.70 L34.26,30.95 L34.82,31.24 L35.36,31.56 L35.88,31.91 L36.37,32.29 L36.85,32.71 L37.29,33.15 L37.71,33.63 L38.09,34.12 L38.44,34.64 L38.76,35.18 L39.05,35.74 L39.30,36.32 L39.51,36.91 L39.69,37.51 L39.82,38.13 L39.92,38.75 L39.98,39.37 Z"]
    1211      RenderSVGHiddenContainer {linearGradient} at (0,0) size 0x0
  • trunk/LayoutTests/platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="dynClip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    65    RenderSVGContainer {g} at (16,40) size 318x174 [transform={m=((1.00,0.00)(0.00,1.50)) t=(0.00,0.00)}]
    76      RenderSVGText {text} at (10,70) size 529x69 contains 1 chunk(s)
     7        [clipPath="dynClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    88        RenderSVGInlineText {#text} at (0,-54) size 529x69
     9          [clipPath="dynClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    910          chunk 1 text run 1 at (10.00,70.00) startOffset 0 endOffset 19 width 529.00: "Clipped. INVISIBLE."
    10       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     11      RenderSVGResourceClipper {clipPath} [id="dynClip"] [clipPathUnits=userSpaceOnUse]
    1112        RenderPath {path} at (0,0) size 334x500 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/js-late-clipPath-creation-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="dynClip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    65    RenderSVGContainer {g} at (16,40) size 318x174 [transform={m=((1.00,0.00)(0.00,1.50)) t=(0.00,0.00)}]
    76      RenderSVGText {text} at (10,70) size 529x69 contains 1 chunk(s)
     7        [clipPath="dynClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    88        RenderSVGInlineText {#text} at (0,-54) size 529x69
     9          [clipPath="dynClip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
    910          chunk 1 text run 1 at (10.00,70.00) startOffset 0 endOffset 19 width 529.00: "Clipped. INVISIBLE."
    10       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     11      RenderSVGResourceClipper {clipPath} [id="dynClip"] [clipPathUnits=userSpaceOnUse]
    1112        RenderPath {path} at (0,0) size 334x500 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/recursive-clippath-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clipPath_0" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
    43layer at (0,0) size 800x600
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    6     RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
    7       RenderPath {rect} at (0,0) size 100x100 [clip path="clipPath_0"] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    8     RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [clip path="clipPath_0"] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     5    RenderSVGResourceClipper {clipPath} [id="clipPath_0"] [clipPathUnits=userSpaceOnUse]
     6      RenderPath {rect} at (0,0) size 100x100 [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
     7        [clipPath="clipPath_0"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
     8    RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
     9      [clipPath="clipPath_0"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    910    RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/resource-invalidate-on-target-update-expected.txt

    r54991 r55289  
    11KCanvasResource {id="filter" [type=FILTER]  [bounding box=at (-10.00%,-10.00%) size 120.00%x120.00%]}
    2 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [bounding box mode=1] [path=M1.00,0.50 L1.00,0.53 L1.00,0.56 L0.99,0.59 L0.98,0.62 L0.98,0.65 L0.96,0.68 L0.95,0.71 L0.94,0.74 L0.92,0.77 L0.90,0.79 L0.89,0.82 L0.86,0.84 L0.84,0.86 L0.82,0.89 L0.79,0.90 L0.77,0.92 L0.74,0.94 L0.71,0.95 L0.68,0.96 L0.65,0.98 L0.62,0.98 L0.59,0.99 L0.56,1.00 L0.53,1.00 L0.50,1.00 L0.47,1.00 L0.44,1.00 L0.41,0.99 L0.38,0.98 L0.35,0.98 L0.32,0.96 L0.29,0.95 L0.26,0.94 L0.23,0.92 L0.21,0.90 L0.18,0.89 L0.16,0.86 L0.14,0.84 L0.11,0.82 L0.10,0.79 L0.08,0.77 L0.06,0.74 L0.05,0.71 L0.04,0.68 L0.02,0.65 L0.02,0.62 L0.01,0.59 L0.00,0.56 L0.00,0.53 L0.00,0.50 L0.00,0.47 L0.00,0.44 L0.01,0.41 L0.02,0.38 L0.02,0.35 L0.04,0.32 L0.05,0.29 L0.06,0.26 L0.08,0.23 L0.10,0.21 L0.11,0.18 L0.14,0.16 L0.16,0.14 L0.18,0.11 L0.21,0.10 L0.23,0.08 L0.26,0.06 L0.29,0.05 L0.32,0.04 L0.35,0.02 L0.38,0.02 L0.41,0.01 L0.44,0.00 L0.47,0.00 L0.50,0.00 L0.53,0.00 L0.56,0.00 L0.59,0.01 L0.62,0.02 L0.65,0.02 L0.68,0.04 L0.71,0.05 L0.74,0.06 L0.77,0.08 L0.79,0.10 L0.82,0.11 L0.84,0.14 L0.86,0.16 L0.89,0.18 L0.90,0.21 L0.92,0.23 L0.94,0.26 L0.95,0.29 L0.96,0.32 L0.98,0.35 L0.98,0.38 L0.99,0.41 L1.00,0.44 L1.00,0.47 Z]]]}
    32layer at (0,0) size 800x600
    43  RenderView at (0,0) size 800x600
     
    65  RenderSVGRoot {svg} at (0,0) size 800x600
    76    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    8       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7      RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=objectBoundingBox]
    98        RenderPath {circle} at (0,0) size 1x1 [fill={[type=SOLID] [color=#000000]}] [data="M1.00,0.50 L1.00,0.53 L1.00,0.56 L0.99,0.59 L0.98,0.62 L0.98,0.65 L0.96,0.68 L0.95,0.71 L0.94,0.74 L0.92,0.77 L0.90,0.79 L0.89,0.82 L0.86,0.84 L0.84,0.86 L0.82,0.89 L0.79,0.90 L0.77,0.92 L0.74,0.94 L0.71,0.95 L0.68,0.96 L0.65,0.98 L0.62,0.98 L0.59,0.99 L0.56,1.00 L0.53,1.00 L0.50,1.00 L0.47,1.00 L0.44,1.00 L0.41,0.99 L0.38,0.98 L0.35,0.98 L0.32,0.96 L0.29,0.95 L0.26,0.94 L0.23,0.92 L0.21,0.90 L0.18,0.89 L0.16,0.86 L0.14,0.84 L0.11,0.82 L0.10,0.79 L0.08,0.77 L0.06,0.74 L0.05,0.71 L0.04,0.68 L0.02,0.65 L0.02,0.62 L0.01,0.59 L0.00,0.56 L0.00,0.53 L0.00,0.50 L0.00,0.47 L0.00,0.44 L0.01,0.41 L0.02,0.38 L0.02,0.35 L0.04,0.32 L0.05,0.29 L0.06,0.26 L0.08,0.23 L0.10,0.21 L0.11,0.18 L0.14,0.16 L0.16,0.14 L0.18,0.11 L0.21,0.10 L0.23,0.08 L0.26,0.06 L0.29,0.05 L0.32,0.04 L0.35,0.02 L0.38,0.02 L0.41,0.01 L0.44,0.00 L0.47,0.00 L0.50,0.00 L0.53,0.00 L0.56,0.00 L0.59,0.01 L0.62,0.02 L0.65,0.02 L0.68,0.04 L0.71,0.05 L0.74,0.06 L0.77,0.08 L0.79,0.10 L0.82,0.11 L0.84,0.14 L0.86,0.16 L0.89,0.18 L0.90,0.21 L0.92,0.23 L0.94,0.26 L0.95,0.29 L0.96,0.32 L0.98,0.35 L0.98,0.38 L0.99,0.41 L1.00,0.44 L1.00,0.47 Z"]
    109      RenderSVGResourceMasker {mask} [id="mask"] [maskUnits=objectBoundingBox] [maskContentUnits=objectBoundingBox]
     
    1312      RenderPath {rect} at (10,10) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,10.00 L110.00,10.00 L110.00,110.00 L10.00,110.00 Z"]
    1413        [masker="mask"] RenderSVGResourceMasker {mask} at (0,0) size 120x120
    15       RenderPath {rect} at (10,130) size 100x100 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [data="M10.00,130.00 L110.00,130.00 L110.00,230.00 L10.00,230.00 Z"]
     14      RenderPath {rect} at (10,130) size 100x100 [fill={[type=SOLID] [color=#008000]}] [data="M10.00,130.00 L110.00,130.00 L110.00,230.00 L10.00,230.00 Z"]
     15        [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (10,130) size 100x100
    1616      RenderPath {rect} at (0,240) size 121x120 [fill={[type=SOLID] [color=#008000]}] [filter=filter] [data="M10.00,250.00 L110.00,250.00 L110.00,350.00 L10.00,350.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/custom/text-clip-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M200.00,200.00 L300.00,200.00 L300.00,400.00 L200.00,400.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {path} at (200,200) size 100x200 [fill={[type=SOLID] [color=#000000]}] [data="M200.00,200.00 L300.00,200.00 L300.00,400.00 L200.00,400.00 Z"]
    98    RenderSVGContainer {g} at (0,76) size 133x63
     
    1211          chunk 1 text run 1 at (0.00,125.00) startOffset 0 endOffset 4 width 133.00: "PASS"
    1312      RenderSVGText {text} at (0,125) size 648x63 contains 1 chunk(s)
     13        [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (200,200) size 100x200
    1414        RenderSVGInlineText {#text} at (0,-49) size 648x63
     15          [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (200,200) size 100x200
    1516          chunk 1 text run 1 at (0.00,125.00) startOffset 0 endOffset 28 width 648.00: "FAIL (should be clipped out)"
  • trunk/LayoutTests/platform/mac/svg/custom/visibility-override-clip-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="myclip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    54  RenderSVGRoot {svg} at (0,0) size 800x600
    65    RenderSVGHiddenContainer {defs} at (0,0) size 0x0
    7       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     6      RenderSVGResourceClipper {clipPath} [id="myclip"] [clipPathUnits=userSpaceOnUse]
    87        RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    98    RenderPath {rect} at (0,0) size 100x100 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L100.00,0.00 L100.00,100.00 L0.00,100.00 Z"]
    10     RenderSVGContainer {g} at (0,0) size 100x100 [clip path="myclip"]
     9    RenderSVGContainer {g} at (0,0) size 100x100
     10      [clipPath="myclip"] RenderSVGResourceClipper {clipPath} at (0,0) size 100x100
    1111      RenderSVGContainer {g} at (0,0) size 200x200
    1212        RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
  • trunk/LayoutTests/platform/mac/svg/filters/filter-clip-expected.txt

    r54991 r55289  
    11KCanvasResource {id="blur" [type=FILTER]  [bounding box=at (-20.00%,-20.00%) size 140.00%x140.00%]}
    2 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M120.00,70.00 L119.90,73.14 L119.61,76.27 L119.11,79.37 L118.43,82.43 L117.55,85.45 L116.49,88.41 L115.24,91.29 L113.82,94.09 L112.22,96.79 L110.45,99.39 L108.53,101.87 L106.45,104.23 L104.23,106.45 L101.87,108.53 L99.39,110.45 L96.79,112.22 L94.09,113.82 L91.29,115.24 L88.41,116.49 L85.45,117.55 L82.43,118.43 L79.37,119.11 L76.27,119.61 L73.14,119.90 L70.00,120.00 L66.86,119.90 L63.73,119.61 L60.63,119.11 L57.57,118.43 L54.55,117.55 L51.59,116.49 L48.71,115.24 L45.91,113.82 L43.21,112.22 L40.61,110.45 L38.13,108.53 L35.77,106.45 L33.55,104.23 L31.47,101.87 L29.55,99.39 L27.78,96.79 L26.18,94.09 L24.76,91.29 L23.51,88.41 L22.45,85.45 L21.57,82.43 L20.89,79.37 L20.39,76.27 L20.10,73.14 L20.00,70.00 L20.10,66.86 L20.39,63.73 L20.89,60.63 L21.57,57.57 L22.45,54.55 L23.51,51.59 L24.76,48.71 L26.18,45.91 L27.78,43.21 L29.55,40.61 L31.47,38.13 L33.55,35.77 L35.77,33.55 L38.13,31.47 L40.61,29.55 L43.21,27.78 L45.91,26.18 L48.71,24.76 L51.59,23.51 L54.55,22.45 L57.57,21.57 L60.63,20.89 L63.73,20.39 L66.86,20.10 L70.00,20.00 L73.14,20.10 L76.27,20.39 L79.37,20.89 L82.43,21.57 L85.45,22.45 L88.41,23.51 L91.29,24.76 L94.09,26.18 L96.79,27.78 L99.39,29.55 L101.87,31.47 L104.23,33.55 L106.45,35.77 L108.53,38.13 L110.45,40.61 L112.22,43.21 L113.82,45.91 L115.24,48.71 L116.49,51.59 L117.55,54.55 L118.43,57.57 L119.11,60.63 L119.61,63.73 L119.90,66.86 Z]]]}
    32layer at (0,0) size 800x600
    43  RenderView at (0,0) size 800x600
     
    98        RenderPath {rect} at (0,0) size 140x140 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L140.00,0.00 L140.00,140.00 L0.00,140.00 Z"]
    109        RenderPath {circle} at (30,30) size 80x80 [fill={[type=SOLID] [color=#FFFF00]}] [data="M110.00,70.00 L109.92,72.51 L109.68,75.01 L109.29,77.50 L108.74,79.95 L108.04,82.36 L107.19,84.72 L106.19,87.03 L105.05,89.27 L103.77,91.43 L102.36,93.51 L100.82,95.50 L99.16,97.38 L97.38,99.16 L95.50,100.82 L93.51,102.36 L91.43,103.77 L89.27,105.05 L87.03,106.19 L84.72,107.19 L82.36,108.04 L79.95,108.74 L77.50,109.29 L75.01,109.68 L72.51,109.92 L70.00,110.00 L67.49,109.92 L64.99,109.68 L62.50,109.29 L60.05,108.74 L57.64,108.04 L55.28,107.19 L52.97,106.19 L50.73,105.05 L48.57,103.77 L46.49,102.36 L44.50,100.82 L42.62,99.16 L40.84,97.38 L39.18,95.50 L37.64,93.51 L36.23,91.43 L34.95,89.27 L33.81,87.03 L32.81,84.72 L31.96,82.36 L31.26,79.95 L30.71,77.50 L30.32,75.01 L30.08,72.51 L30.00,70.00 L30.08,67.49 L30.32,64.99 L30.71,62.50 L31.26,60.05 L31.96,57.64 L32.81,55.28 L33.81,52.97 L34.95,50.73 L36.23,48.57 L37.64,46.49 L39.18,44.50 L40.84,42.62 L42.62,40.84 L44.50,39.18 L46.49,37.64 L48.57,36.23 L50.73,34.95 L52.97,33.81 L55.28,32.81 L57.64,31.96 L60.05,31.26 L62.50,30.71 L64.99,30.32 L67.49,30.08 L70.00,30.00 L72.51,30.08 L75.01,30.32 L77.50,30.71 L79.95,31.26 L82.36,31.96 L84.72,32.81 L87.03,33.81 L89.27,34.95 L91.43,36.23 L93.51,37.64 L95.50,39.18 L97.38,40.84 L99.16,42.62 L100.82,44.50 L102.36,46.49 L103.77,48.57 L105.05,50.73 L106.19,52.97 L107.19,55.28 L108.04,57.64 L108.74,60.05 L109.29,62.50 L109.68,64.99 L109.92,67.49 Z"]
    11       RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     10      RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    1211        RenderPath {circle} at (20,20) size 100x100 [fill={[type=SOLID] [color=#000000]}] [data="M120.00,70.00 L119.90,73.14 L119.61,76.27 L119.11,79.37 L118.43,82.43 L117.55,85.45 L116.49,88.41 L115.24,91.29 L113.82,94.09 L112.22,96.79 L110.45,99.39 L108.53,101.87 L106.45,104.23 L104.23,106.45 L101.87,108.53 L99.39,110.45 L96.79,112.22 L94.09,113.82 L91.29,115.24 L88.41,116.49 L85.45,117.55 L82.43,118.43 L79.37,119.11 L76.27,119.61 L73.14,119.90 L70.00,120.00 L66.86,119.90 L63.73,119.61 L60.63,119.11 L57.57,118.43 L54.55,117.55 L51.59,116.49 L48.71,115.24 L45.91,113.82 L43.21,112.22 L40.61,110.45 L38.13,108.53 L35.77,106.45 L33.55,104.23 L31.47,101.87 L29.55,99.39 L27.78,96.79 L26.18,94.09 L24.76,91.29 L23.51,88.41 L22.45,85.45 L21.57,82.43 L20.89,79.37 L20.39,76.27 L20.10,73.14 L20.00,70.00 L20.10,66.86 L20.39,63.73 L20.89,60.63 L21.57,57.57 L22.45,54.55 L23.51,51.59 L24.76,48.71 L26.18,45.91 L27.78,43.21 L29.55,40.61 L31.47,38.13 L33.55,35.77 L35.77,33.55 L38.13,31.47 L40.61,29.55 L43.21,27.78 L45.91,26.18 L48.71,24.76 L51.59,23.51 L54.55,22.45 L57.57,21.57 L60.63,20.89 L63.73,20.39 L66.86,20.10 L70.00,20.00 L73.14,20.10 L76.27,20.39 L79.37,20.89 L82.43,21.57 L85.45,22.45 L88.41,23.51 L91.29,24.76 L94.09,26.18 L96.79,27.78 L99.39,29.55 L101.87,31.47 L104.23,33.55 L106.45,35.77 L108.53,38.13 L110.45,40.61 L112.22,43.21 L113.82,45.91 L115.24,48.71 L116.49,51.59 L117.55,54.55 L118.43,57.57 L119.11,60.63 L119.61,63.73 L119.90,66.86 Z"]
    13     RenderPath {rect} at (20,20) size 100x100 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [filter=blur] [data="M20.00,20.00 L120.00,20.00 L120.00,120.00 L20.00,120.00 Z"]
     12    RenderPath {rect} at (20,20) size 100x100 [fill={[type=SOLID] [color=#008000]}] [filter=blur] [data="M20.00,20.00 L120.00,20.00 L120.00,120.00 L20.00,120.00 Z"]
    1413      [masker="mask"] RenderSVGResourceMasker {mask} at (10,10) size 120x120
     14      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (20,20) size 100x100
  • trunk/LayoutTests/svg/custom/use-clipped-transform-expected.txt

    r54483 r55289  
    1 KCanvasResource {id="clip" [type=CLIPPER] [clip data=[[winding=NON-ZERO] [path=M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z]]]}
    21layer at (0,0) size 800x600
    32  RenderView at (0,0) size 800x600
     
    65    RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#FF0000]}] [data="M0.00,0.00 L200.00,0.00 L200.00,200.00 L0.00,200.00 Z"]
    76    RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
    8     RenderSVGHiddenContainer {clipPath} at (0,0) size 0x0
     7    RenderSVGResourceClipper {clipPath} [id="clip"] [clipPathUnits=userSpaceOnUse]
    98      RenderSVGContainer {use} at (0,0) size 200x200
    109        RenderSVGContainer {g} at (0,0) size 200x200
    1110          RenderPath {rect} at (0,0) size 200x200 [transform={m=((1.00,0.00)(0.00,1.00)) t=(-200.00,0.00)}] [data="M200.00,0.00 L400.00,0.00 L400.00,200.00 L200.00,200.00 Z"]
    12     RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [clip path="clip"] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
     11    RenderPath {rect} at (0,0) size 200x200 [fill={[type=SOLID] [color=#008000]}] [data="M0.00,0.00 L400.00,0.00 L400.00,200.00 L0.00,200.00 Z"]
     12      [clipPath="clip"] RenderSVGResourceClipper {clipPath} at (0,0) size 200x200
  • trunk/WebCore/Android.mk

    r55142 r55289  
    604604        rendering/RenderSVGInlineText.cpp \
    605605        rendering/RenderSVGModelObject.cpp \
     606        rendering/RenderSVGResourceClipper.cpp \
    606607        rendering/RenderSVGResourceMasker.cpp \
    607608        rendering/RenderSVGRoot.cpp \
     
    857858        svg/graphics/SVGPaintServerSolid.cpp \
    858859        svg/graphics/SVGResource.cpp \
    859         svg/graphics/SVGResourceClipper.cpp \
    860860        svg/graphics/SVGResourceFilter.cpp \
    861861        svg/graphics/SVGResourceMarker.cpp \
  • trunk/WebCore/ChangeLog

    r55287 r55289  
     12010-02-26  Dirk Schulze  <krit@webkit.org>
     2
     3        Reviewed by Nikolas Zimmermann.
     4
     5        SVGResourceClipper needs to be moved to RenderSVGResourceClipper
     6        https://bugs.webkit.org/show_bug.cgi?id=35421
     7
     8        Move SVGResourceClipper to RenderSVGResourceClipper. This follows the changes
     9        of Masker and helps to clean up the SVG code. Code snippets from SVGClipPathElement
     10        and SVGResourceClipper got combined in RenderSVGResourceClipper. DRT results are
     11        more readable for clipPath's now. It's possible to see the unit type of clipper, as
     12        well as it's childs instead of just one path.
     13
     14        * Android.mk:
     15        * GNUmakefile.am:
     16        * WebCore.vcproj/WebCore.vcproj:
     17        * WebCore.xcodeproj/project.pbxproj:
     18        * rendering/RenderSVGResource.h:
     19        (WebCore::):
     20        * rendering/RenderSVGResourceClipper.cpp: Added.
     21        (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
     22        (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper):
     23        (WebCore::RenderSVGResourceClipper::invalidateClients):
     24        (WebCore::RenderSVGResourceClipper::invalidateClient):
     25        (WebCore::RenderSVGResourceClipper::applyResource):
     26        (WebCore::RenderSVGResourceClipper::resourceBoundingBox):
     27        * rendering/RenderSVGResourceClipper.h: Added.
     28        (WebCore::RenderSVGResourceClipper::renderName):
     29        (WebCore::RenderSVGResourceClipper::resourceType):
     30        (WebCore::RenderSVGResourceClipper::clipPathUnits):
     31        * rendering/SVGRenderSupport.cpp:
     32        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
     33        (WebCore::SVGRenderBase::clipperBoundingBoxForRenderer):
     34        (WebCore::SVGRenderBase::deregisterFromResources):
     35        * rendering/SVGRenderTreeAsText.cpp:
     36        (WebCore::operator<<):
     37        (WebCore::writeStyle):
     38        (WebCore::writeSVGResource):
     39        (WebCore::writeResources):
     40        * svg/SVGClipPathElement.cpp:
     41        (WebCore::SVGClipPathElement::svgAttributeChanged):
     42        (WebCore::SVGClipPathElement::childrenChanged):
     43        (WebCore::SVGClipPathElement::createRenderer):
     44        * svg/SVGClipPathElement.h:
     45        (WebCore::SVGClipPathElement::isValid):
     46        * svg/SVGStyledElement.cpp:
     47        (WebCore::SVGStyledElement::invalidateResources):
     48        * svg/graphics/SVGResource.h:
     49        (WebCore::):
     50        (WebCore::SVGResource::isPaintServer):
     51        (WebCore::SVGResource::isFilter):
     52        (WebCore::SVGResource::isMarker):
     53        * svg/graphics/SVGResourceClipper.cpp: Removed.
     54        * svg/graphics/SVGResourceClipper.h: Removed.
     55
    1562010-02-26  Ben Murdoch  <benm@google.com>
    257
  • trunk/WebCore/GNUmakefile.am

    r55253 r55289  
    30103010        WebCore/rendering/RenderSVGModelObject.h \
    30113011        WebCore/rendering/RenderSVGResource.h \
     3012        WebCore/rendering/RenderSVGResourceClipper.cpp \
     3013        WebCore/rendering/RenderSVGResourceClipper.h \
    30123014        WebCore/rendering/RenderSVGResourceMasker.cpp \
    30133015        WebCore/rendering/RenderSVGResourceMasker.h \
     
    33473349        WebCore/svg/graphics/SVGResource.cpp \
    33483350        WebCore/svg/graphics/SVGResource.h \
    3349         WebCore/svg/graphics/SVGResourceClipper.cpp \
    3350         WebCore/svg/graphics/SVGResourceClipper.h \
    33513351        WebCore/svg/graphics/SVGResourceFilter.cpp \
    33523352        WebCore/svg/graphics/SVGResourceFilter.h \
  • trunk/WebCore/WebCore.gypi

    r55233 r55289  
    31043104            'rendering/RenderSVGModelObject.h',
    31053105            'rendering/RenderSVGResource.h',
     3106            'rendering/RenderSVGResourceClipper.cpp',
     3107            'rendering/RenderSVGResourceClipper.h',
    31063108            'rendering/RenderSVGResourceMasker.cpp',
    31073109            'rendering/RenderSVGResourceMasker.h',
     
    33253327            'svg/graphics/SVGResource.cpp',
    33263328            'svg/graphics/SVGResource.h',
    3327             'svg/graphics/SVGResourceClipper.cpp',
    3328             'svg/graphics/SVGResourceClipper.h',
    33293329            'svg/graphics/SVGResourceFilter.cpp',
    33303330            'svg/graphics/SVGResourceFilter.h',
  • trunk/WebCore/WebCore.pro

    r55253 r55289  
    16751675    rendering/RenderSVGModelObject.h \
    16761676    rendering/RenderSVGResource.h \
     1677    rendering/RenderSVGResourceClipper.h \
    16771678    rendering/RenderSVGResourceMasker.h \
    16781679    rendering/RenderSVGRoot.h \
     
    17631764    svg/graphics/SVGPaintServerRadialGradient.h \
    17641765    svg/graphics/SVGPaintServerSolid.h \
    1765     svg/graphics/SVGResourceClipper.h \
    17661766    svg/graphics/SVGResourceFilter.h \
    17671767    svg/graphics/SVGResource.h \
     
    26212621        svg/graphics/SVGPaintServerRadialGradient.cpp \
    26222622        svg/graphics/SVGPaintServerSolid.cpp \
    2623         svg/graphics/SVGResourceClipper.cpp \
    26242623        svg/graphics/SVGResource.cpp \
    26252624        svg/graphics/SVGResourceFilter.cpp \
     
    26352634        rendering/RenderSVGInlineText.cpp \
    26362635        rendering/RenderSVGModelObject.cpp \
     2636        rendering/RenderSVGResourceClipper.cpp \
    26372637        rendering/RenderSVGResourceMasker.cpp \
    26382638        rendering/RenderSVGRoot.cpp \
  • trunk/WebCore/WebCore.vcproj/WebCore.vcproj

    r55252 r55289  
    2763427634                        </File>
    2763527635                        <File
     27636                                RelativePath="..\rendering\RenderSVGResourceClipper.cpp"
     27637                                >
     27638                        </File>
     27639                        <File
     27640                                RelativePath="..\rendering\RenderSVGResourceClipper.h"
     27641                                >
     27642                        </File>
     27643                        <File
    2763627644                                RelativePath="..\rendering\RenderSVGResourceMasker.cpp"
    2763727645                                >
     
    4177841786                                <File
    4177941787                                        RelativePath="..\svg\graphics\SVGResource.h"
    41780                                         >
    41781                                 </File>
    41782                                 <File
    41783                                         RelativePath="..\svg\graphics\SVGResourceClipper.cpp"
    41784                                         >
    41785                                 </File>
    41786                                 <File
    41787                                         RelativePath="..\svg\graphics\SVGResourceClipper.h"
    4178841788                                        >
    4178941789                                </File>
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r55250 r55289  
    13201320                84A81F410FC7E02700955300 /* SourceGraphic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84A81F3F0FC7E02700955300 /* SourceGraphic.cpp */; };
    13211321                84A81F420FC7E02700955300 /* SourceGraphic.h in Headers */ = {isa = PBXBuildFile; fileRef = 84A81F400FC7E02700955300 /* SourceGraphic.h */; };
     1322                84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */; };
     1323                84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */ = {isa = PBXBuildFile; fileRef = 84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */; };
    13221324                84D0C4041115F1D40018AA34 /* AffineTransform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84D0C4031115F1D40018AA34 /* AffineTransform.cpp */; };
    13231325                84D0C4061115F1EA0018AA34 /* AffineTransform.h in Headers */ = {isa = PBXBuildFile; fileRef = 84D0C4051115F1EA0018AA34 /* AffineTransform.h */; settings = {ATTRIBUTES = (Private, ); }; };
     
    36893691                B25599B20D00D8BA00BB825C /* SVGResource.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B255991A0D00D8B900BB825C /* SVGResource.cpp */; };
    36903692                B25599B30D00D8BA00BB825C /* SVGResource.h in Headers */ = {isa = PBXBuildFile; fileRef = B255991B0D00D8B900BB825C /* SVGResource.h */; };
    3691                 B25599B40D00D8BA00BB825C /* SVGResourceClipper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B255991C0D00D8B900BB825C /* SVGResourceClipper.cpp */; };
    3692                 B25599B50D00D8BA00BB825C /* SVGResourceClipper.h in Headers */ = {isa = PBXBuildFile; fileRef = B255991D0D00D8B900BB825C /* SVGResourceClipper.h */; };
    36933693                B25599B60D00D8BA00BB825C /* SVGResourceFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B255991E0D00D8B900BB825C /* SVGResourceFilter.cpp */; };
    36943694                B25599B70D00D8BA00BB825C /* SVGResourceFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = B255991F0D00D8B900BB825C /* SVGResourceFilter.h */; };
     
    67566756                84B2B1F8056BEF3A00D2B771 /* WebCoreKeyGenerator.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreKeyGenerator.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
    67576757                84B2B24F056BF15F00D2B771 /* SSLKeyGeneratorMac.mm */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SSLKeyGeneratorMac.mm; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; };
     6758                84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceClipper.cpp; sourceTree = "<group>"; };
     6759                84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceClipper.h; sourceTree = "<group>"; };
    67586760                84D0C4031115F1D40018AA34 /* AffineTransform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AffineTransform.cpp; path = transforms/AffineTransform.cpp; sourceTree = "<group>"; };
    67596761                84D0C4051115F1EA0018AA34 /* AffineTransform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AffineTransform.h; path = transforms/AffineTransform.h; sourceTree = "<group>"; };
     
    89378939                B255991A0D00D8B900BB825C /* SVGResource.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResource.cpp; sourceTree = "<group>"; };
    89388940                B255991B0D00D8B900BB825C /* SVGResource.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGResource.h; sourceTree = "<group>"; };
    8939                 B255991C0D00D8B900BB825C /* SVGResourceClipper.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourceClipper.cpp; sourceTree = "<group>"; };
    8940                 B255991D0D00D8B900BB825C /* SVGResourceClipper.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGResourceClipper.h; sourceTree = "<group>"; };
    89418941                B255991E0D00D8B900BB825C /* SVGResourceFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SVGResourceFilter.cpp; sourceTree = "<group>"; };
    89428942                B255991F0D00D8B900BB825C /* SVGResourceFilter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SVGResourceFilter.h; sourceTree = "<group>"; };
     
    1429414294                                B255991A0D00D8B900BB825C /* SVGResource.cpp */,
    1429514295                                B255991B0D00D8B900BB825C /* SVGResource.h */,
    14296                                 B255991C0D00D8B900BB825C /* SVGResourceClipper.cpp */,
    14297                                 B255991D0D00D8B900BB825C /* SVGResourceClipper.h */,
    1429814296                                B255991E0D00D8B900BB825C /* SVGResourceFilter.cpp */,
    1429914297                                B255991F0D00D8B900BB825C /* SVGResourceFilter.h */,
     
    1560615604                        isa = PBXGroup;
    1560715605                        children = (
     15606                                84BDA16911358D2A00DBF64C /* RenderSVGResourceClipper.cpp */,
     15607                                84BDA16A11358D2A00DBF64C /* RenderSVGResourceClipper.h */,
    1560815608                                BC8C8FAA0DDCD2F200B592F4 /* style */,
    1560915609                                A8CFF04B0A154F09000A4234 /* AutoTableLayout.cpp */,
     
    1798717987                                A8F5C0B80F9285AC0098E06B /* RenderSVGModelObject.h in Headers */,
    1798817988                                083192AA112B43050083C3B9 /* RenderSVGResource.h in Headers */,
     17989                                84BDA16C11358D2A00DBF64C /* RenderSVGResourceClipper.h in Headers */,
    1798917990                                083192AC112B43050083C3B9 /* RenderSVGResourceMasker.h in Headers */,
    1799017991                                AA31B5B50C1DFD1000AE7083 /* RenderSVGRoot.h in Headers */,
     
    1830818309                                B2EBDC9D0AF77E3400AE4A68 /* SVGRenderTreeAsText.h in Headers */,
    1830918310                                B25599B30D00D8BA00BB825C /* SVGResource.h in Headers */,
    18310                                 B25599B50D00D8BA00BB825C /* SVGResourceClipper.h in Headers */,
    1831118311                                B25599B70D00D8BA00BB825C /* SVGResourceFilter.h in Headers */,
    1831218312                                B25599B80D00D8BA00BB825C /* SVGResourceListener.h in Headers */,
     
    2023620236                                853CA9DC0AEEC5E9002372DC /* RenderSVGInlineText.cpp in Sources */,
    2023720237                                A8F5C0B90F9285AC0098E06B /* RenderSVGModelObject.cpp in Sources */,
     20238                                84BDA16B11358D2A00DBF64C /* RenderSVGResourceClipper.cpp in Sources */,
    2023820239                                083192AB112B43050083C3B9 /* RenderSVGResourceMasker.cpp in Sources */,
    2023920240                                AA31B5B40C1DFD1000AE7083 /* RenderSVGRoot.cpp in Sources */,
     
    2053420535                                B2EBDC9C0AF77E3400AE4A68 /* SVGRenderTreeAsText.cpp in Sources */,
    2053520536                                B25599B20D00D8BA00BB825C /* SVGResource.cpp in Sources */,
    20536                                 B25599B40D00D8BA00BB825C /* SVGResourceClipper.cpp in Sources */,
    2053720537                                B25599B60D00D8BA00BB825C /* SVGResourceFilter.cpp in Sources */,
    2053820538                                B25599B90D00D8BA00BB825C /* SVGResourceMarker.cpp in Sources */,
  • trunk/WebCore/rendering/RenderSVGResource.h

    r54991 r55289  
    2929
    3030enum RenderSVGResourceType {
    31     MaskerResourceType
     31    MaskerResourceType,
     32    ClipperResourceType
    3233};
    3334
  • trunk/WebCore/rendering/SVGRenderSupport.cpp

    r55260 r55289  
    55 *           (C) 2009 Google, Inc.  All rights reserved.
    66 *           (C) 2009 Dirk Schulze <krit@webkit.org>
     7 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
    78 *
    89 * This library is free software; you can redistribute it and/or
     
    3435#include "RenderSVGContainer.h"
    3536#include "RenderSVGResource.h"
     37#include "RenderSVGResourceClipper.h"
    3638#include "RenderSVGResourceMasker.h"
    3739#include "RenderView.h"
    38 #include "SVGResourceClipper.h"
    3940#include "SVGResourceFilter.h"
    4041#include "SVGStyledElement.h"
     
    130131#endif
    131132
    132     // apply Masker
    133133    if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>(document, maskerId)) {
    134134        if (!masker->applyResource(object, paintInfo.context))
     
    137137        svgElement->document()->accessSVGExtensions()->addPendingResource(maskerId, styledElement);
    138138
    139     if (SVGResourceClipper* clipper = getClipperById(document, clipperId, object)) {
    140         clipper->addClient(styledElement);
    141         clipper->applyClip(paintInfo.context, object->objectBoundingBox());
    142     } else if (!clipperId.isEmpty())
     139    if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(document, clipperId))
     140        clipper->applyResource(object, paintInfo.context);
     141    else if (!clipperId.isEmpty())
    143142        svgElement->document()->accessSVGExtensions()->addPendingResource(clipperId, styledElement);
    144143
     
    288287FloatRect SVGRenderBase::clipperBoundingBoxForRenderer(const RenderObject* object) const
    289288{
    290     SVGResourceClipper* clipper = getClipperById(object->document(), object->style()->svgStyle()->clipPath(), object);
    291     if (clipper)
    292         return clipper->clipperBoundingBox(object->objectBoundingBox());
     289    if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(object->document(), object->style()->svgStyle()->clipPath()))
     290        return clipper->resourceBoundingBox(object->objectBoundingBox());
    293291
    294292    return FloatRect();
     
    305303void SVGRenderBase::deregisterFromResources(RenderObject* object)
    306304{
    307     // We only have a renderer for masker at the moment.
    308     if (RenderSVGResourceMasker* resource = getRenderSVGResourceById<RenderSVGResourceMasker>(object->document(), object->style()->svgStyle()->maskElement()))
    309         resource->invalidateClient(object);
     305    // We only have the renderer for masker and clipper at the moment.
     306    if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>(object->document(), object->style()->svgStyle()->maskElement()))
     307        masker->invalidateClient(object);
     308    if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(object->document(), object->style()->svgStyle()->clipPath()))
     309        clipper->invalidateClient(object);
    310310}
    311311
     
    329329}
    330330
    331 } // namespace WebCore
    332 
    333 #endif // ENABLE(SVG)
     331}
     332
     333#endif
  • trunk/WebCore/rendering/SVGRenderTreeAsText.cpp

    r54991 r55289  
    3535#include "InlineTextBox.h"
    3636#include "NodeRenderStyle.h"
     37#include "Path.h"
    3738#include "RenderImage.h"
    3839#include "RenderPath.h"
    3940#include "RenderSVGContainer.h"
    4041#include "RenderSVGInlineText.h"
     42#include "RenderSVGResourceClipper.h"
    4143#include "RenderSVGResourceMasker.h"
    4244#include "RenderSVGRoot.h"
     
    4850#include "SVGPaintServerPattern.h"
    4951#include "SVGPaintServerSolid.h"
    50 #include "SVGResourceClipper.h"
    5152#include "SVGRootInlineBox.h"
    5253#include "SVGStyledElement.h"
     
    197198}
    198199
     200static TextStream& operator<<(TextStream& ts, const WindRule rule)
     201{
     202    switch (rule) {
     203    case RULE_NONZERO:
     204        ts << "NON-ZERO";
     205        break;
     206    case RULE_EVENODD:
     207        ts << "EVEN-ODD";
     208        break;
     209    }
     210
     211    return ts;
     212}
     213
    199214static TextStream& operator<<(TextStream& ts, const SVGUnitTypes::SVGUnitType& unitType)
    200215{
     
    317332            ts << "}]";
    318333        }
    319     }
    320 
    321     if (!svgStyle->clipPath().isEmpty())
    322         writeNameAndQuotedValue(ts, "clip path", svgStyle->clipPath());
     334        writeIfNotDefault(ts, "clip rule", svgStyle->clipRule(), RULE_NONZERO);
     335    }
     336
    323337    writeIfNotEmpty(ts, "start marker", svgStyle->startMarker());
    324338    writeIfNotEmpty(ts, "middle marker", svgStyle->midMarker());
     
    497511        writeNameValuePair(ts, "maskUnits", masker->maskUnits());
    498512        writeNameValuePair(ts, "maskContentUnits", masker->maskContentUnits());
     513    } else if (resource->resourceType() == ClipperResourceType) {
     514        RenderSVGResourceClipper* clipper = static_cast<RenderSVGResourceClipper*>(resource);
     515        ASSERT(clipper);
     516        writeNameValuePair(ts, "clipPathUnits", clipper->clipPathUnits());
    499517    }
    500518
     
    569587        }
    570588    }
     589    if (!svgStyle->clipPath().isEmpty()) {
     590        if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(object.document(), svgStyle->clipPath())) {
     591            writeIndent(ts, indent);
     592            ts << " ";
     593            writeNameAndQuotedValue(ts, "clipPath", svgStyle->clipPath());
     594            ts << " ";
     595            writeStandardPrefix(ts, *clipper, 0);
     596            ts << " " << clipper->resourceBoundingBox(object.objectBoundingBox()) << "\n";
     597        }
     598    }
    571599    // FIXME: Handle other RenderSVGResource* classes here, after converting them from SVGResource*.
    572600}
  • trunk/WebCore/svg/SVGClipPathElement.cpp

    r53879 r55289  
    22    Copyright (C) 2004, 2005, 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org>
    33                  2004, 2005, 2006, 2007, 2008 Rob Buis <buis@kde.org>
     4    Copyright (C) Research In Motion Limited 2009-2010. All rights reserved.
    45
    56    This library is free software; you can redistribute it and/or
     
    2728#include "Document.h"
    2829#include "MappedAttribute.h"
    29 #include "RenderSVGHiddenContainer.h"
     30#include "RenderSVGResourceClipper.h"
    3031#include "SVGNames.h"
    3132#include "SVGTransformList.h"
     
    6970    SVGStyledTransformableElement::svgAttributeChanged(attrName);
    7071
    71     if (!m_clipper)
    72         return;
    73 
    7472    if (attrName == SVGNames::clipPathUnitsAttr ||
    7573        SVGTests::isKnownAttribute(attrName) ||
     
    7775        SVGExternalResourcesRequired::isKnownAttribute(attrName) ||
    7876        SVGStyledTransformableElement::isKnownAttribute(attrName))
    79         m_clipper->invalidate();
     77        invalidateCanvasResources();
    8078}
    8179
     
    9997{
    10098    SVGStyledTransformableElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta);
    101 
    102     if (!m_clipper)
    103         return;
    104 
    105     m_clipper->invalidate();
     99    invalidateCanvasResources();
    106100}
    107101
    108102RenderObject* SVGClipPathElement::createRenderer(RenderArena* arena, RenderStyle*)
    109103{
    110     return new (arena) RenderSVGHiddenContainer(this);
    111 }
    112 
    113 SVGResource* SVGClipPathElement::canvasResource(const RenderObject*)
    114 {
    115     if (!m_clipper)
    116         m_clipper = SVGResourceClipper::create();
    117     else
    118         m_clipper->resetClipData();
    119 
    120     bool bbox = clipPathUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX;
    121 
    122     for (Node* node = firstChild(); node; node = node->nextSibling()) {
    123         if (!node->isSVGElement() || !static_cast<SVGElement*>(node)->isStyledTransformable())
    124             continue;
    125         SVGStyledTransformableElement* styled = static_cast<SVGStyledTransformableElement*>(node);
    126         RenderStyle* style = styled->renderer() ? styled->renderer()->style() : 0;
    127         if (!style || style->display() == NONE)
    128             continue;
    129         Path pathData = styled->toClipPath();
    130         if (pathData.isEmpty())
    131             continue;
    132         m_clipper->addClipData(pathData, style->svgStyle()->clipRule(), bbox);
    133     }
    134     if (m_clipper->clipData().isEmpty()) {
    135         Path pathData;
    136         pathData.addRect(FloatRect());
    137         m_clipper->addClipData(pathData, RULE_EVENODD, bbox);
    138     }
    139     return m_clipper.get();
     104    return new (arena) RenderSVGResourceClipper(this);
    140105}
    141106
  • trunk/WebCore/svg/SVGClipPathElement.h

    r53879 r55289  
    2626#include "SVGExternalResourcesRequired.h"
    2727#include "SVGLangSpace.h"
    28 #include "SVGResourceClipper.h"
    2928#include "SVGStyledTransformableElement.h"
    3029#include "SVGTests.h"
    3130
    3231namespace WebCore {
     32class SVGClipPathElement : public SVGStyledTransformableElement,
     33                           public SVGTests,
     34                           public SVGLangSpace,
     35                           public SVGExternalResourcesRequired {
     36public:
     37    SVGClipPathElement(const QualifiedName&, Document*);
     38    virtual ~SVGClipPathElement();
    3339
    34     class SVGClipPathElement : public SVGStyledTransformableElement,
    35                                public SVGTests,
    36                                public SVGLangSpace,
    37                                public SVGExternalResourcesRequired {
    38     public:
    39         SVGClipPathElement(const QualifiedName&, Document*);
    40         virtual ~SVGClipPathElement();
     40    virtual bool isValid() const { return SVGTests::isValid(); }
    4141
    42         virtual bool isValid() const { return SVGTests::isValid(); }
     42    virtual void parseMappedAttribute(MappedAttribute*);
     43    virtual void svgAttributeChanged(const QualifiedName&);
     44    virtual void synchronizeProperty(const QualifiedName&);
     45    virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
    4346
    44         virtual void parseMappedAttribute(MappedAttribute*);
    45         virtual void svgAttributeChanged(const QualifiedName&);
    46         virtual void synchronizeProperty(const QualifiedName&);
    47         virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0);
     47    virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
    4848
    49         virtual RenderObject* createRenderer(RenderArena*, RenderStyle*);
    50         virtual SVGResource* canvasResource(const RenderObject*);
     49private:
     50    DECLARE_ANIMATED_PROPERTY(SVGClipPathElement, SVGNames::clipPathUnitsAttr, int, ClipPathUnits, clipPathUnits)
    5151
    52     private:
    53         DECLARE_ANIMATED_PROPERTY(SVGClipPathElement, SVGNames::clipPathUnitsAttr, int, ClipPathUnits, clipPathUnits)
     52    // SVGExternalResourcesRequired
     53    DECLARE_ANIMATED_PROPERTY(SVGClipPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
     54};
    5455
    55         // SVGExternalResourcesRequired
    56         DECLARE_ANIMATED_PROPERTY(SVGClipPathElement, SVGNames::externalResourcesRequiredAttr, bool, ExternalResourcesRequired, externalResourcesRequired)
     56}
    5757
    58         RefPtr<SVGResourceClipper> m_clipper;
    59     };
    60 
    61 } // namespace WebCore
    62 
    63 #endif // ENABLE(SVG)
    6458#endif
     59#endif
  • trunk/WebCore/svg/SVGStyledElement.cpp

    r54991 r55289  
    3434#include "RenderObject.h"
    3535#include "RenderSVGResource.h"
     36#include "RenderSVGResourceClipper.h"
    3637#include "RenderSVGResourceMasker.h"
    3738#include "SVGElement.h"
     
    4041#include "SVGNames.h"
    4142#include "SVGRenderStyle.h"
    42 #include "SVGResourceClipper.h"
    4343#include "SVGResourceFilter.h"
    4444#include "SVGSVGElement.h"
     
    239239        masker->invalidateClient(object);
    240240
    241     SVGResourceClipper* clipper = getClipperById(document, svgStyle->clipPath(), object);
    242     if (clipper)
    243         clipper->invalidate();
     241    if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(document, svgStyle->clipPath()))
     242        clipper->invalidateClient(object);
    244243}
    245244
  • trunk/WebCore/svg/graphics/SVGResource.h

    r54991 r55289  
    3838namespace WebCore {
    3939
    40     class AtomicString;
    41     class Document;
    42     class SVGStyledElement;
    43     class TextStream;
     40class AtomicString;
     41class Document;
     42class SVGStyledElement;
     43class TextStream;
    4444
    45     enum SVGResourceType {
    46         // Painting mode
    47         ClipperResourceType = 0,
    48         ImageResourceType,
    49         FilterResourceType,
    50         MarkerResourceType,
    51         PaintServerResourceType,
    52        
    53         // For resource tracking we need to know how many types of resource there are
    54         _ResourceTypeCount
    55     };
     45enum SVGResourceType {
     46    // Painting mode
     47    ImageResourceType,
     48    FilterResourceType,
     49    MarkerResourceType,
     50    PaintServerResourceType,
     51   
     52    // For resource tracking we need to know how many types of resource there are
     53    _ResourceTypeCount
     54};
    5655
    57     // The SVGResource file represent various graphics resources:
    58     // - Filter resource
    59     // - Clipper resource
    60     // - Masker resource
    61     // - Marker resource
    62     // - Pattern resource
    63     // - Linear/Radial gradient resource
    64     //
    65     // SVG creates/uses these resources.
     56// The SVGResource file represent various graphics resources:
     57// - Filter resource
     58// - Marker resource
     59// - Pattern resource
     60// - Linear/Radial gradient resource
     61//
     62// SVG creates/uses these resources.
    6663
    67     class SVGResource : public RefCounted<SVGResource> {
    68     public:
    69         virtual ~SVGResource();
    70      
    71         virtual void invalidate();
     64class SVGResource : public RefCounted<SVGResource> {
     65public:
     66    virtual ~SVGResource();
     67 
     68    virtual void invalidate();
    7269
    73         void addClient(SVGStyledElement*);
    74         virtual SVGResourceType resourceType() const = 0;
    75        
    76         bool isPaintServer() const { return resourceType() == PaintServerResourceType; }
    77         bool isFilter() const { return resourceType() == FilterResourceType; }
    78         bool isClipper() const { return resourceType() == ClipperResourceType; }
    79         bool isMarker() const { return resourceType() == MarkerResourceType; }
     70    void addClient(SVGStyledElement*);
     71    virtual SVGResourceType resourceType() const = 0;
     72   
     73    bool isPaintServer() const { return resourceType() == PaintServerResourceType; }
     74    bool isFilter() const { return resourceType() == FilterResourceType; }
     75    bool isMarker() const { return resourceType() == MarkerResourceType; }
    8076
    81         virtual TextStream& externalRepresentation(TextStream&) const;
     77    virtual TextStream& externalRepresentation(TextStream&) const;
    8278
    83         static void invalidateClients(HashSet<SVGStyledElement*>);
    84         static void removeClient(SVGStyledElement*);
     79    static void invalidateClients(HashSet<SVGStyledElement*>);
     80    static void removeClient(SVGStyledElement*);
    8581
    86     protected:
    87         SVGResource();
     82protected:
     83    SVGResource();
    8884
    89     private:
    90         HashSet<SVGStyledElement*> m_clients;
    91     };
     85private:
     86    HashSet<SVGStyledElement*> m_clients;
     87};
    9288
    93     SVGResource* getResourceById(Document*, const AtomicString&, const RenderObject*);
    94    
    95     TextStream& operator<<(TextStream&, const SVGResource&);
     89SVGResource* getResourceById(Document*, const AtomicString&, const RenderObject*);
    9690
    97 } // namespace WebCore
     91TextStream& operator<<(TextStream&, const SVGResource&);
     92
     93}
    9894
    9995#endif
    100 #endif // SVGResource_h
     96#endif
Note: See TracChangeset for help on using the changeset viewer.