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

Side by Side Diff: Source/core/rendering/svg/RenderSVGResource.cpp

Issue 652243002: Hoist paint-server transform adaption out of preparePaintServer (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 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) 2006 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2007 Rob Buis <buis@kde.org> 3 * Copyright (C) 2007 Rob Buis <buis@kde.org>
4 * Copyright (C) 2008 Dirk Schulze <krit@webkit.org> 4 * Copyright (C) 2008 Dirk Schulze <krit@webkit.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 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 } else { 68 } else {
69 if (m_pattern) 69 if (m_pattern)
70 context.setStrokePattern(m_pattern); 70 context.setStrokePattern(m_pattern);
71 else if (m_gradient) 71 else if (m_gradient)
72 context.setStrokeGradient(m_gradient); 72 context.setStrokeGradient(m_gradient);
73 else 73 else
74 context.setStrokeColor(m_color); 74 context.setStrokeColor(m_color);
75 } 75 }
76 } 76 }
77 77
78 SVGPaintServer SVGPaintServer::requestForRenderer(RenderObject& renderer, Render Style* style, RenderSVGResourceModeFlags resourceModeFlags) 78 void SVGPaintServer::prependTransform(const AffineTransform& transform)
79 {
80 ASSERT(m_gradient || m_pattern);
81 if (m_pattern)
82 m_pattern->setPatternSpaceTransform(transform * m_pattern->patternSpaceT ransform());
83 else
84 m_gradient->setGradientSpaceTransform(transform * m_gradient->gradientSp aceTransform());
85 }
86
87 SVGPaintServer SVGPaintServer::requestForRenderer(RenderObject& renderer, Render Style* style, RenderSVGResourceMode resourceMode)
79 { 88 {
80 ASSERT(style); 89 ASSERT(style);
81 RenderSVGResourceMode resourceMode = static_cast<RenderSVGResourceMode>(reso urceModeFlags & (ApplyToFillMode | ApplyToStrokeMode));
82 ASSERT(resourceMode == ApplyToFillMode || resourceMode == ApplyToStrokeMode) ; 90 ASSERT(resourceMode == ApplyToFillMode || resourceMode == ApplyToStrokeMode) ;
83 91
84 bool hasFallback = false; 92 bool hasFallback = false;
85 RenderSVGResource* paintingResource = RenderSVGResource::requestPaintingReso urce(resourceMode, &renderer, style, hasFallback); 93 RenderSVGResource* paintingResource = RenderSVGResource::requestPaintingReso urce(resourceMode, &renderer, style, hasFallback);
86 if (!paintingResource) 94 if (!paintingResource)
87 return invalid(); 95 return invalid();
88 96
89 SVGPaintServer paintServer = paintingResource->preparePaintServer(&renderer, style, resourceModeFlags); 97 SVGPaintServer paintServer = paintingResource->preparePaintServer(&renderer) ;
90 if (paintServer.isValid()) 98 if (paintServer.isValid())
91 return paintServer; 99 return paintServer;
92 if (hasFallback) 100 if (hasFallback)
93 return SVGPaintServer(RenderSVGResource::sharedSolidPaintingResource()-> color()); 101 return SVGPaintServer(RenderSVGResource::sharedSolidPaintingResource()-> color());
94 return invalid(); 102 return invalid();
95 } 103 }
96 104
97 SVGPaintServer RenderSVGResource::preparePaintServer(RenderObject*, RenderStyle* , RenderSVGResourceModeFlags) 105 SVGPaintServer RenderSVGResource::preparePaintServer(RenderObject*)
98 { 106 {
99 ASSERT_NOT_REACHED(); 107 ASSERT_NOT_REACHED();
100 return SVGPaintServer::invalid(); 108 return SVGPaintServer::invalid();
101 } 109 }
102 110
103 RenderSVGResource* RenderSVGResource::requestPaintingResource(RenderSVGResourceM ode mode, RenderObject* object, const RenderStyle* style, bool& hasFallback) 111 RenderSVGResource* RenderSVGResource::requestPaintingResource(RenderSVGResourceM ode mode, RenderObject* object, const RenderStyle* style, bool& hasFallback)
104 { 112 {
105 ASSERT(object); 113 ASSERT(object);
106 ASSERT(style); 114 ASSERT(style);
107 115
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 // This will process the rest of the ancestors. 256 // This will process the rest of the ancestors.
249 toRenderSVGResourceContainer(current)->removeAllClientsFromCache(); 257 toRenderSVGResourceContainer(current)->removeAllClientsFromCache();
250 break; 258 break;
251 } 259 }
252 260
253 current = current->parent(); 261 current = current->parent();
254 } 262 }
255 } 263 }
256 264
257 } 265 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698