OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2004, 2005, 2007, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2005, 2007, 2009 Apple Inc. All rights reserved. |
3 * (C) 2005 Rob Buis <buis@kde.org> | 3 * (C) 2005 Rob Buis <buis@kde.org> |
4 * (C) 2006 Alexander Kellett <lypanov@kde.org> | 4 * (C) 2006 Alexander Kellett <lypanov@kde.org> |
5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
6 * | 6 * |
7 * Redistribution and use in source and binary forms, with or without | 7 * Redistribution and use in source and binary forms, with or without |
8 * modification, are permitted provided that the following conditions | 8 * modification, are permitted provided that the following conditions |
9 * are met: | 9 * are met: |
10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
(...skipping 28 matching lines...) Expand all Loading... |
39 #include "core/layout/svg/LayoutSVGResourceMarker.h" | 39 #include "core/layout/svg/LayoutSVGResourceMarker.h" |
40 #include "core/layout/svg/LayoutSVGResourceMasker.h" | 40 #include "core/layout/svg/LayoutSVGResourceMasker.h" |
41 #include "core/layout/svg/LayoutSVGResourcePattern.h" | 41 #include "core/layout/svg/LayoutSVGResourcePattern.h" |
42 #include "core/layout/svg/LayoutSVGResourceRadialGradient.h" | 42 #include "core/layout/svg/LayoutSVGResourceRadialGradient.h" |
43 #include "core/layout/svg/LayoutSVGRoot.h" | 43 #include "core/layout/svg/LayoutSVGRoot.h" |
44 #include "core/layout/svg/LayoutSVGShape.h" | 44 #include "core/layout/svg/LayoutSVGShape.h" |
45 #include "core/layout/svg/LayoutSVGText.h" | 45 #include "core/layout/svg/LayoutSVGText.h" |
46 #include "core/layout/svg/SVGLayoutSupport.h" | 46 #include "core/layout/svg/SVGLayoutSupport.h" |
47 #include "core/layout/svg/line/SVGInlineTextBox.h" | 47 #include "core/layout/svg/line/SVGInlineTextBox.h" |
48 #include "core/layout/svg/line/SVGRootInlineBox.h" | 48 #include "core/layout/svg/line/SVGRootInlineBox.h" |
| 49 #include "core/paint/PaintLayer.h" |
49 #include "core/svg/LinearGradientAttributes.h" | 50 #include "core/svg/LinearGradientAttributes.h" |
50 #include "core/svg/PatternAttributes.h" | 51 #include "core/svg/PatternAttributes.h" |
51 #include "core/svg/RadialGradientAttributes.h" | 52 #include "core/svg/RadialGradientAttributes.h" |
52 #include "core/svg/SVGCircleElement.h" | 53 #include "core/svg/SVGCircleElement.h" |
53 #include "core/svg/SVGEllipseElement.h" | 54 #include "core/svg/SVGEllipseElement.h" |
54 #include "core/svg/SVGLineElement.h" | 55 #include "core/svg/SVGLineElement.h" |
55 #include "core/svg/SVGLinearGradientElement.h" | 56 #include "core/svg/SVGLinearGradientElement.h" |
56 #include "core/svg/SVGPathElement.h" | 57 #include "core/svg/SVGPathElement.h" |
57 #include "core/svg/SVGPatternElement.h" | 58 #include "core/svg/SVGPatternElement.h" |
58 #include "core/svg/SVGPointList.h" | 59 #include "core/svg/SVGPointList.h" |
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
652 if (!svgStyle.clipperResource().isEmpty()) { | 653 if (!svgStyle.clipperResource().isEmpty()) { |
653 if (LayoutSVGResourceClipper* clipper = getLayoutSVGResourceById<LayoutS
VGResourceClipper>(object.document(), svgStyle.clipperResource())) { | 654 if (LayoutSVGResourceClipper* clipper = getLayoutSVGResourceById<LayoutS
VGResourceClipper>(object.document(), svgStyle.clipperResource())) { |
654 writeIndent(ts, indent); | 655 writeIndent(ts, indent); |
655 ts << " "; | 656 ts << " "; |
656 writeNameAndQuotedValue(ts, "clipPath", svgStyle.clipperResource()); | 657 writeNameAndQuotedValue(ts, "clipPath", svgStyle.clipperResource()); |
657 ts << " "; | 658 ts << " "; |
658 writeStandardPrefix(ts, *clipper, 0); | 659 writeStandardPrefix(ts, *clipper, 0); |
659 ts << " " << clipper->resourceBoundingBox(&layoutObject) << "\n"; | 660 ts << " " << clipper->resourceBoundingBox(&layoutObject) << "\n"; |
660 } | 661 } |
661 } | 662 } |
662 if (!svgStyle.filterResource().isEmpty()) { | 663 if (style.hasFilter()) { |
663 if (LayoutSVGResourceFilter* filter = getLayoutSVGResourceById<LayoutSVG
ResourceFilter>(object.document(), svgStyle.filterResource())) { | 664 const FilterOperations& filterOperations = style.filter(); |
664 writeIndent(ts, indent); | 665 if (filterOperations.size() == 1) { |
665 ts << " "; | 666 const FilterOperation& filterOperation = *filterOperations.at(0); |
666 writeNameAndQuotedValue(ts, "filter", svgStyle.filterResource()); | 667 if (filterOperation.type() == FilterOperation::REFERENCE) { |
667 ts << " "; | 668 const auto& referenceFilterOperation = toReferenceFilterOperatio
n(filterOperation); |
668 writeStandardPrefix(ts, *filter, 0); | 669 AtomicString id = SVGURIReference::fragmentIdentifierFromIRIStri
ng(referenceFilterOperation.url(), object.document()); |
669 ts << " " << filter->resourceBoundingBox(&layoutObject) << "\n"; | 670 if (LayoutSVGResourceFilter* filter = getLayoutSVGResourceById<L
ayoutSVGResourceFilter>(object.document(), id)) { |
| 671 writeIndent(ts, indent); |
| 672 ts << " "; |
| 673 writeNameAndQuotedValue(ts, "filter", id); |
| 674 ts << " "; |
| 675 writeStandardPrefix(ts, *filter, 0); |
| 676 ts << " " << filter->resourceBoundingBox(&layoutObject) << "
\n"; |
| 677 } |
| 678 } |
670 } | 679 } |
671 } | 680 } |
672 } | 681 } |
673 | 682 |
674 } // namespace blink | 683 } // namespace blink |
OLD | NEW |