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

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

Issue 625933003: Consolidated checks for the PaintBehaviorRenderingSVGMask flag (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) Research In Motion Limited 2010. All rights reserved. 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
3 * 3 *
4 * This library is free software; you can redistribute it and/or 4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Library General Public 5 * modify it under the terms of the GNU Library General Public
6 * License as published by the Free Software Foundation; either 6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version. 7 * version 2 of the License, or (at your option) any later version.
8 * 8 *
9 * This library is distributed in the hope that it will be useful, 9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Library General Public License for more details. 12 * Library General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU Library General Public License 14 * You should have received a copy of the GNU Library General Public License
15 * along with this library; see the file COPYING.LIB. If not, write to 15 * along with this library; see the file COPYING.LIB. If not, write to
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 * Boston, MA 02110-1301, USA. 17 * Boston, MA 02110-1301, USA.
18 */ 18 */
19 19
20 #include "config.h" 20 #include "config.h"
21 21
22 #include "core/rendering/svg/RenderSVGResourceSolidColor.h" 22 #include "core/rendering/svg/RenderSVGResourceSolidColor.h"
23 23
24 #include "core/frame/FrameView.h"
25 #include "core/frame/LocalFrame.h"
26 #include "core/rendering/style/RenderStyle.h" 24 #include "core/rendering/style/RenderStyle.h"
27 #include "core/rendering/svg/RenderSVGShape.h" 25 #include "core/rendering/svg/RenderSVGShape.h"
28 #include "core/rendering/svg/SVGRenderSupport.h" 26 #include "core/rendering/svg/SVGRenderSupport.h"
29 #include "platform/graphics/GraphicsContext.h" 27 #include "platform/graphics/GraphicsContext.h"
30 28
31 namespace blink { 29 namespace blink {
32 30
33 const RenderSVGResourceType RenderSVGResourceSolidColor::s_resourceType = SolidC olorResourceType; 31 const RenderSVGResourceType RenderSVGResourceSolidColor::s_resourceType = SolidC olorResourceType;
34 32
35 RenderSVGResourceSolidColor::RenderSVGResourceSolidColor() 33 RenderSVGResourceSolidColor::RenderSVGResourceSolidColor()
36 { 34 {
37 } 35 }
38 36
39 RenderSVGResourceSolidColor::~RenderSVGResourceSolidColor() 37 RenderSVGResourceSolidColor::~RenderSVGResourceSolidColor()
40 { 38 {
41 } 39 }
42 40
43 bool RenderSVGResourceSolidColor::applyResource(RenderObject* object, RenderStyl e* style, GraphicsContext*& context, unsigned short resourceMode) 41 bool RenderSVGResourceSolidColor::applyResource(RenderObject* object, RenderStyl e* style, GraphicsContext*& context, unsigned short resourceMode)
44 { 42 {
45 ASSERT(object); 43 ASSERT(object);
46 ASSERT(style); 44 ASSERT(style);
47 ASSERT(context); 45 ASSERT(context);
48 ASSERT(resourceMode != ApplyToDefaultMode); 46 ASSERT(resourceMode != ApplyToDefaultMode);
49 47
50 bool isRenderingMask = false; 48 bool isRenderingMask = SVGRenderSupport::isRenderingMaskImage(*object);
51 if (object->frame() && object->frame()->view())
52 isRenderingMask = object->frame()->view()->paintBehavior() & PaintBehavi orRenderingSVGMask;
53
54 const SVGRenderStyle& svgStyle = style->svgStyle(); 49 const SVGRenderStyle& svgStyle = style->svgStyle();
55 50
56 if (resourceMode & ApplyToFillMode) { 51 if (resourceMode & ApplyToFillMode) {
57 if (!isRenderingMask) 52 if (!isRenderingMask)
58 context->setAlphaAsFloat(svgStyle.fillOpacity()); 53 context->setAlphaAsFloat(svgStyle.fillOpacity());
59 else 54 else
60 context->setAlphaAsFloat(1); 55 context->setAlphaAsFloat(1);
61 context->setFillColor(m_color); 56 context->setFillColor(m_color);
62 if (!isRenderingMask) 57 if (!isRenderingMask)
63 context->setFillRule(svgStyle.fillRule()); 58 context->setFillRule(svgStyle.fillRule());
64 59
65 if (resourceMode & ApplyToTextMode) 60 if (resourceMode & ApplyToTextMode)
66 context->setTextDrawingMode(TextModeFill); 61 context->setTextDrawingMode(TextModeFill);
67 } else if (resourceMode & ApplyToStrokeMode) { 62 } else if (resourceMode & ApplyToStrokeMode) {
68 // When rendering the mask for a RenderSVGResourceClipper, the stroke co de path is never hit. 63 // When rendering the mask for a RenderSVGResourceClipper, the stroke co de path is never hit.
69 ASSERT(!isRenderingMask); 64 ASSERT(!isRenderingMask);
70 context->setAlphaAsFloat(svgStyle.strokeOpacity()); 65 context->setAlphaAsFloat(svgStyle.strokeOpacity());
71 context->setStrokeColor(m_color); 66 context->setStrokeColor(m_color);
72 67
73 SVGRenderSupport::applyStrokeStyleToContext(context, style, object); 68 SVGRenderSupport::applyStrokeStyleToContext(context, style, object);
74 69
75 if (resourceMode & ApplyToTextMode) 70 if (resourceMode & ApplyToTextMode)
76 context->setTextDrawingMode(TextModeStroke); 71 context->setTextDrawingMode(TextModeStroke);
77 } 72 }
78 73
79 return true; 74 return true;
80 } 75 }
81 76
82 } 77 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698