OLD | NEW |
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "platform/graphics/GraphicsContextState.h" | 6 #include "platform/graphics/GraphicsContextState.h" |
7 | 7 |
8 #include "platform/graphics/skia/SkiaUtils.h" | 8 #include "platform/graphics/skia/SkiaUtils.h" |
9 | 9 |
10 namespace WebCore { | 10 namespace WebCore { |
(...skipping 18 matching lines...) Expand all Loading... |
29 m_strokePaint.setStrokeCap(SkPaint::kDefault_Cap); | 29 m_strokePaint.setStrokeCap(SkPaint::kDefault_Cap); |
30 m_strokePaint.setStrokeJoin(SkPaint::kDefault_Join); | 30 m_strokePaint.setStrokeJoin(SkPaint::kDefault_Join); |
31 m_strokePaint.setStrokeMiter(SkFloatToScalar(m_strokeData.miterLimit())); | 31 m_strokePaint.setStrokeMiter(SkFloatToScalar(m_strokeData.miterLimit())); |
32 m_strokePaint.setFilterLevel(WebCoreInterpolationQualityToSkFilterLevel(m_in
terpolationQuality)); | 32 m_strokePaint.setFilterLevel(WebCoreInterpolationQualityToSkFilterLevel(m_in
terpolationQuality)); |
33 m_strokePaint.setAntiAlias(m_shouldAntialias); | 33 m_strokePaint.setAntiAlias(m_shouldAntialias); |
34 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb())); | 34 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb())); |
35 m_fillPaint.setFilterLevel(WebCoreInterpolationQualityToSkFilterLevel(m_inte
rpolationQuality)); | 35 m_fillPaint.setFilterLevel(WebCoreInterpolationQualityToSkFilterLevel(m_inte
rpolationQuality)); |
36 m_fillPaint.setAntiAlias(m_shouldAntialias); | 36 m_fillPaint.setAntiAlias(m_shouldAntialias); |
37 } | 37 } |
38 | 38 |
39 void GraphicsContextState::copy(GraphicsContextState* source) | 39 GraphicsContextState::GraphicsContextState(const GraphicsContextState& other) |
| 40 : m_strokePaint(other.m_strokePaint) |
| 41 , m_fillPaint(other.m_fillPaint) |
| 42 , m_strokeData(other.m_strokeData) |
| 43 , m_fillColor(other.m_fillColor) |
| 44 , m_fillRule(other.m_fillRule) |
| 45 , m_fillGradient(other.m_fillGradient) |
| 46 , m_fillPattern(other.m_fillPattern) |
| 47 , m_looper(other.m_looper) |
| 48 , m_textDrawingMode(other.m_textDrawingMode) |
| 49 , m_alpha(other.m_alpha) |
| 50 , m_xferMode(other.m_xferMode) |
| 51 , m_colorFilter(other.m_colorFilter) |
| 52 , m_compositeOperator(other.m_compositeOperator) |
| 53 , m_blendMode(other.m_blendMode) |
| 54 , m_interpolationQuality(other.m_interpolationQuality) |
| 55 , m_saveCount(0) |
| 56 , m_shouldAntialias(other.m_shouldAntialias) |
| 57 , m_shouldSmoothFonts(other.m_shouldSmoothFonts) |
| 58 , m_shouldClampToSourceRect(other.m_shouldClampToSourceRect) { } |
| 59 |
| 60 void GraphicsContextState::copy(const GraphicsContextState& source) |
40 { | 61 { |
41 m_strokePaint = source->m_strokePaint; | 62 new (this) GraphicsContextState(source); |
42 m_fillPaint = source->m_fillPaint; | |
43 m_strokeData = source->m_strokeData; | |
44 m_fillColor = source->m_fillColor; | |
45 m_fillRule = source->m_fillRule; | |
46 m_fillGradient = source->m_fillGradient; | |
47 m_fillPattern = source->m_fillPattern; | |
48 m_looper = source->m_looper; | |
49 m_textDrawingMode = source->m_textDrawingMode; | |
50 m_alpha = source->m_alpha; | |
51 m_xferMode = source->m_xferMode; | |
52 m_colorFilter = source->m_colorFilter; | |
53 m_compositeOperator = source->m_compositeOperator; | |
54 m_blendMode = source->m_blendMode; | |
55 m_interpolationQuality = source->m_interpolationQuality; | |
56 m_saveCount = 0; | |
57 m_shouldAntialias = source->m_shouldAntialias; | |
58 m_shouldSmoothFonts = source->m_shouldSmoothFonts; | |
59 m_shouldClampToSourceRect = source->m_shouldClampToSourceRect; | |
60 } | 63 } |
61 | 64 |
62 const SkPaint& GraphicsContextState::strokePaint(int strokedPathLength) const | 65 const SkPaint& GraphicsContextState::strokePaint(int strokedPathLength) const |
63 { | 66 { |
64 if (m_strokeData.gradient() && m_strokeData.gradient()->shaderChanged()) | 67 if (m_strokeData.gradient() && m_strokeData.gradient()->shaderChanged()) |
65 m_strokePaint.setShader(m_strokeData.gradient()->shader()); | 68 m_strokePaint.setShader(m_strokeData.gradient()->shader()); |
66 m_strokeData.setupPaintDashPathEffect(&m_strokePaint, strokedPathLength); | 69 m_strokeData.setupPaintDashPathEffect(&m_strokePaint, strokedPathLength); |
67 return m_strokePaint; | 70 return m_strokePaint; |
68 } | 71 } |
69 | 72 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 | 246 |
244 void GraphicsContextState::setShouldAntialias(bool shouldAntialias) | 247 void GraphicsContextState::setShouldAntialias(bool shouldAntialias) |
245 { | 248 { |
246 m_shouldAntialias = shouldAntialias; | 249 m_shouldAntialias = shouldAntialias; |
247 m_strokePaint.setAntiAlias(shouldAntialias); | 250 m_strokePaint.setAntiAlias(shouldAntialias); |
248 m_fillPaint.setAntiAlias(shouldAntialias); | 251 m_fillPaint.setAntiAlias(shouldAntialias); |
249 } | 252 } |
250 | 253 |
251 | 254 |
252 } // namespace WebCore | 255 } // namespace WebCore |
OLD | NEW |