OLD | NEW |
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 10 matching lines...) Expand all Loading... |
21 */ | 21 */ |
22 | 22 |
23 #include "config.h" | 23 #include "config.h" |
24 #include "core/layout/svg/LayoutSVGResourcePaintServer.h" | 24 #include "core/layout/svg/LayoutSVGResourcePaintServer.h" |
25 | 25 |
26 #include "core/style/ComputedStyle.h" | 26 #include "core/style/ComputedStyle.h" |
27 #include "core/layout/svg/SVGResources.h" | 27 #include "core/layout/svg/SVGResources.h" |
28 #include "core/layout/svg/SVGResourcesCache.h" | 28 #include "core/layout/svg/SVGResourcesCache.h" |
29 #include "platform/graphics/GraphicsContext.h" | 29 #include "platform/graphics/GraphicsContext.h" |
30 #include "platform/graphics/GraphicsContextStateSaver.h" | 30 #include "platform/graphics/GraphicsContextStateSaver.h" |
| 31 #include "third_party/skia/include/core/SkPaint.h" |
31 | 32 |
32 namespace blink { | 33 namespace blink { |
33 | 34 |
34 SVGPaintServer::SVGPaintServer(Color color) | 35 SVGPaintServer::SVGPaintServer(Color color) |
35 : m_color(color) | 36 : m_color(color) |
36 { | 37 { |
37 } | 38 } |
38 | 39 |
39 SVGPaintServer::SVGPaintServer(PassRefPtr<Gradient> gradient) | 40 SVGPaintServer::SVGPaintServer(PassRefPtr<Gradient> gradient) |
40 : m_gradient(gradient) | 41 : m_gradient(gradient) |
41 , m_color(Color::black) | 42 , m_color(Color::black) |
42 { | 43 { |
43 } | 44 } |
44 | 45 |
45 SVGPaintServer::SVGPaintServer(PassRefPtr<Pattern> pattern) | 46 SVGPaintServer::SVGPaintServer(PassRefPtr<Pattern> pattern) |
46 : m_pattern(pattern) | 47 : m_pattern(pattern) |
47 , m_color(Color::black) | 48 , m_color(Color::black) |
48 { | 49 { |
49 } | 50 } |
50 | 51 |
| 52 void SVGPaintServer::applyToSkPaint(SkPaint& paint, float paintAlpha) |
| 53 { |
| 54 SkColor baseColor = m_gradient || m_pattern ? SK_ColorBLACK : m_color.rgb(); |
| 55 paint.setColor(scaleAlpha(baseColor, paintAlpha)); |
| 56 if (m_pattern) |
| 57 paint.setShader(m_pattern->shader()); |
| 58 else if (m_gradient) |
| 59 paint.setShader(m_gradient->shader()); |
| 60 else |
| 61 paint.setShader(nullptr); |
| 62 } |
| 63 |
51 void SVGPaintServer::apply(GraphicsContext& context, LayoutSVGResourceMode resou
rceMode, float paintAlpha, GraphicsContextStateSaver& stateSaver) | 64 void SVGPaintServer::apply(GraphicsContext& context, LayoutSVGResourceMode resou
rceMode, float paintAlpha, GraphicsContextStateSaver& stateSaver) |
52 { | 65 { |
53 ASSERT(resourceMode == ApplyToFillMode || resourceMode == ApplyToStrokeMode)
; | 66 ASSERT(resourceMode == ApplyToFillMode || resourceMode == ApplyToStrokeMode)
; |
54 | 67 |
55 if (m_gradient || m_pattern) | 68 if (m_gradient || m_pattern) |
56 stateSaver.saveIfNeeded(); | 69 stateSaver.saveIfNeeded(); |
57 | 70 |
58 if (resourceMode == ApplyToFillMode) { | 71 if (resourceMode == ApplyToFillMode) { |
59 if (m_pattern) | 72 if (m_pattern) |
60 context.setFillPattern(m_pattern, paintAlpha); | 73 context.setFillPattern(m_pattern, paintAlpha); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
183 LayoutSVGResourcePaintServer::~LayoutSVGResourcePaintServer() | 196 LayoutSVGResourcePaintServer::~LayoutSVGResourcePaintServer() |
184 { | 197 { |
185 } | 198 } |
186 | 199 |
187 SVGPaintDescription LayoutSVGResourcePaintServer::requestPaintDescription(const
LayoutObject& layoutObject, const ComputedStyle& style, LayoutSVGResourceMode re
sourceMode) | 200 SVGPaintDescription LayoutSVGResourcePaintServer::requestPaintDescription(const
LayoutObject& layoutObject, const ComputedStyle& style, LayoutSVGResourceMode re
sourceMode) |
188 { | 201 { |
189 return requestPaint(layoutObject, style, resourceMode); | 202 return requestPaint(layoutObject, style, resourceMode); |
190 } | 203 } |
191 | 204 |
192 } | 205 } |
OLD | NEW |