Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: Source/core/layout/svg/LayoutSVGResourceFilter.cpp

Issue 1056353003: Derive the SourceAlpha filter input from SourceGraphic (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix variable name. Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005, 2006, 2007 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005 Rob Buis <buis@kde.org>
4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org> 4 * Copyright (C) 2005 Eric Seidel <eric@webkit.org>
5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> 5 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org>
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version. 11 * version 2 of the License, or (at your option) any later version.
12 * 12 *
13 * This library is distributed in the hope that it will be useful, 13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details. 16 * Library General Public License for more details.
17 * 17 *
18 * You should have received a copy of the GNU Library General Public License 18 * You should have received a copy of the GNU Library General Public License
19 * along with this library; see the file COPYING.LIB. If not, write to 19 * along with this library; see the file COPYING.LIB. If not, write to
20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 20 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA. 21 * Boston, MA 02110-1301, USA.
22 */ 22 */
23 23
24 #include "config.h" 24 #include "config.h"
25 #include "core/layout/svg/LayoutSVGResourceFilter.h" 25 #include "core/layout/svg/LayoutSVGResourceFilter.h"
26 26
27 #include "core/dom/ElementTraversal.h" 27 #include "core/dom/ElementTraversal.h"
28 #include "core/svg/SVGFilterPrimitiveStandardAttributes.h" 28 #include "core/svg/SVGFilterPrimitiveStandardAttributes.h"
29 #include "platform/graphics/GraphicsContext.h" 29 #include "platform/graphics/GraphicsContext.h"
30 #include "platform/graphics/filters/SourceAlpha.h"
31 #include "platform/graphics/filters/SourceGraphic.h" 30 #include "platform/graphics/filters/SourceGraphic.h"
32 #include "third_party/skia/include/core/SkPicture.h" 31 #include "third_party/skia/include/core/SkPicture.h"
33 32
34 namespace blink { 33 namespace blink {
35 34
36 DEFINE_TRACE(FilterData) 35 DEFINE_TRACE(FilterData)
37 { 36 {
38 #if ENABLE(OILPAN) 37 #if ENABLE(OILPAN)
39 visitor->trace(filter); 38 visitor->trace(filter);
40 visitor->trace(builder); 39 visitor->trace(builder);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 91
93 markClientForInvalidation(client, markForInvalidation ? BoundariesInvalidati on : ParentOnlyInvalidation); 92 markClientForInvalidation(client, markForInvalidation ? BoundariesInvalidati on : ParentOnlyInvalidation);
94 } 93 }
95 94
96 PassRefPtrWillBeRawPtr<SVGFilterBuilder> LayoutSVGResourceFilter::buildPrimitive s(SVGFilter* filter) 95 PassRefPtrWillBeRawPtr<SVGFilterBuilder> LayoutSVGResourceFilter::buildPrimitive s(SVGFilter* filter)
97 { 96 {
98 SVGFilterElement* filterElement = toSVGFilterElement(element()); 97 SVGFilterElement* filterElement = toSVGFilterElement(element());
99 FloatRect targetBoundingBox = filter->targetBoundingBox(); 98 FloatRect targetBoundingBox = filter->targetBoundingBox();
100 99
101 // Add effects to the builder 100 // Add effects to the builder
102 RefPtrWillBeRawPtr<SVGFilterBuilder> builder = SVGFilterBuilder::create(Sour ceGraphic::create(filter), SourceAlpha::create(filter)); 101 RefPtrWillBeRawPtr<SVGFilterBuilder> builder = SVGFilterBuilder::create(Sour ceGraphic::create(filter));
103 for (SVGElement* element = Traversal<SVGElement>::firstChild(*filterElement) ; element; element = Traversal<SVGElement>::nextSibling(*element)) { 102 for (SVGElement* element = Traversal<SVGElement>::firstChild(*filterElement) ; element; element = Traversal<SVGElement>::nextSibling(*element)) {
104 if (!element->isFilterEffect() || !element->layoutObject()) 103 if (!element->isFilterEffect() || !element->layoutObject())
105 continue; 104 continue;
106 105
107 SVGFilterPrimitiveStandardAttributes* effectElement = static_cast<SVGFil terPrimitiveStandardAttributes*>(element); 106 SVGFilterPrimitiveStandardAttributes* effectElement = static_cast<SVGFil terPrimitiveStandardAttributes*>(element);
108 RefPtrWillBeRawPtr<FilterEffect> effect = effectElement->build(builder.g et(), filter); 107 RefPtrWillBeRawPtr<FilterEffect> effect = effectElement->build(builder.g et(), filter);
109 if (!effect) { 108 if (!effect) {
110 builder->clearEffects(); 109 builder->clearEffects();
111 return nullptr; 110 return nullptr;
112 } 111 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 return; 148 return;
150 builder->clearResultsRecursive(effect); 149 builder->clearResultsRecursive(effect);
151 150
152 // Issue paint invalidations for the image on the screen. 151 // Issue paint invalidations for the image on the screen.
153 markClientForInvalidation(it->key, PaintInvalidation); 152 markClientForInvalidation(it->key, PaintInvalidation);
154 } 153 }
155 markAllClientLayersForInvalidation(); 154 markAllClientLayersForInvalidation();
156 } 155 }
157 156
158 } // namespace blink 157 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698