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 namespace blink { | 8 namespace blink { |
9 | 9 |
10 GraphicsContextState::GraphicsContextState() | 10 GraphicsContextState::GraphicsContextState() |
(...skipping 16 matching lines...) Expand all Loading... |
27 m_fillPaint.setFilterQuality(WebCoreInterpolationQualityToSkFilterQuality(m_
interpolationQuality)); | 27 m_fillPaint.setFilterQuality(WebCoreInterpolationQualityToSkFilterQuality(m_
interpolationQuality)); |
28 m_fillPaint.setAntiAlias(m_shouldAntialias); | 28 m_fillPaint.setAntiAlias(m_shouldAntialias); |
29 } | 29 } |
30 | 30 |
31 GraphicsContextState::GraphicsContextState(const GraphicsContextState& other) | 31 GraphicsContextState::GraphicsContextState(const GraphicsContextState& other) |
32 : m_strokePaint(other.m_strokePaint) | 32 : m_strokePaint(other.m_strokePaint) |
33 , m_fillPaint(other.m_fillPaint) | 33 , m_fillPaint(other.m_fillPaint) |
34 , m_strokeData(other.m_strokeData) | 34 , m_strokeData(other.m_strokeData) |
35 , m_strokeColor(other.m_strokeColor) | 35 , m_strokeColor(other.m_strokeColor) |
36 , m_strokeGradient(other.m_strokeGradient) | 36 , m_strokeGradient(other.m_strokeGradient) |
37 , m_strokePattern(other.m_strokePattern) | |
38 , m_fillColor(other.m_fillColor) | 37 , m_fillColor(other.m_fillColor) |
39 , m_fillGradient(other.m_fillGradient) | 38 , m_fillGradient(other.m_fillGradient) |
40 , m_fillPattern(other.m_fillPattern) | |
41 , m_looper(other.m_looper) | 39 , m_looper(other.m_looper) |
42 , m_textDrawingMode(other.m_textDrawingMode) | 40 , m_textDrawingMode(other.m_textDrawingMode) |
43 , m_colorFilter(other.m_colorFilter) | 41 , m_colorFilter(other.m_colorFilter) |
44 , m_interpolationQuality(other.m_interpolationQuality) | 42 , m_interpolationQuality(other.m_interpolationQuality) |
45 , m_saveCount(0) | 43 , m_saveCount(0) |
46 , m_shouldAntialias(other.m_shouldAntialias) { } | 44 , m_shouldAntialias(other.m_shouldAntialias) { } |
47 | 45 |
48 void GraphicsContextState::copy(const GraphicsContextState& source) | 46 void GraphicsContextState::copy(const GraphicsContextState& source) |
49 { | 47 { |
50 this->~GraphicsContextState(); | 48 this->~GraphicsContextState(); |
(...skipping 22 matching lines...) Expand all Loading... |
73 | 71 |
74 void GraphicsContextState::setStrokeThickness(float thickness) | 72 void GraphicsContextState::setStrokeThickness(float thickness) |
75 { | 73 { |
76 m_strokeData.setThickness(thickness); | 74 m_strokeData.setThickness(thickness); |
77 m_strokePaint.setStrokeWidth(SkFloatToScalar(thickness)); | 75 m_strokePaint.setStrokeWidth(SkFloatToScalar(thickness)); |
78 } | 76 } |
79 | 77 |
80 void GraphicsContextState::setStrokeColor(const Color& color) | 78 void GraphicsContextState::setStrokeColor(const Color& color) |
81 { | 79 { |
82 m_strokeGradient.clear(); | 80 m_strokeGradient.clear(); |
83 m_strokePattern.clear(); | |
84 m_strokeColor = color; | 81 m_strokeColor = color; |
85 m_strokePaint.setColor(color.rgb()); | 82 m_strokePaint.setColor(color.rgb()); |
86 m_strokePaint.setShader(0); | 83 m_strokePaint.setShader(0); |
87 } | 84 } |
88 | 85 |
89 void GraphicsContextState::setStrokeGradient(const PassRefPtr<Gradient> gradient
, float alpha) | 86 void GraphicsContextState::setStrokeGradient(const PassRefPtr<Gradient> gradient
, float alpha) |
90 { | 87 { |
91 m_strokeColor = Color::black; | 88 m_strokeColor = Color::black; |
92 m_strokePattern.clear(); | |
93 m_strokeGradient = gradient; | 89 m_strokeGradient = gradient; |
94 m_strokePaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); | 90 m_strokePaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); |
95 m_strokePaint.setShader(m_strokeGradient->shader()); | 91 m_strokePaint.setShader(m_strokeGradient->shader()); |
96 } | 92 } |
97 | 93 |
98 void GraphicsContextState::setStrokePattern(const PassRefPtr<Pattern> pattern, f
loat alpha) | |
99 { | |
100 m_strokeColor = Color::black; | |
101 m_strokeGradient.clear(); | |
102 m_strokePattern = pattern; | |
103 m_strokePaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); | |
104 m_strokePaint.setShader(m_strokePattern->shader()); | |
105 } | |
106 | |
107 void GraphicsContextState::setLineCap(LineCap cap) | 94 void GraphicsContextState::setLineCap(LineCap cap) |
108 { | 95 { |
109 m_strokeData.setLineCap(cap); | 96 m_strokeData.setLineCap(cap); |
110 m_strokePaint.setStrokeCap((SkPaint::Cap)cap); | 97 m_strokePaint.setStrokeCap((SkPaint::Cap)cap); |
111 } | 98 } |
112 | 99 |
113 void GraphicsContextState::setLineJoin(LineJoin join) | 100 void GraphicsContextState::setLineJoin(LineJoin join) |
114 { | 101 { |
115 m_strokeData.setLineJoin(join); | 102 m_strokeData.setLineJoin(join); |
116 m_strokePaint.setStrokeJoin((SkPaint::Join)join); | 103 m_strokePaint.setStrokeJoin((SkPaint::Join)join); |
117 } | 104 } |
118 | 105 |
119 void GraphicsContextState::setMiterLimit(float miterLimit) | 106 void GraphicsContextState::setMiterLimit(float miterLimit) |
120 { | 107 { |
121 m_strokeData.setMiterLimit(miterLimit); | 108 m_strokeData.setMiterLimit(miterLimit); |
122 m_strokePaint.setStrokeMiter(SkFloatToScalar(miterLimit)); | 109 m_strokePaint.setStrokeMiter(SkFloatToScalar(miterLimit)); |
123 } | 110 } |
124 | 111 |
125 void GraphicsContextState::setFillColor(const Color& color) | 112 void GraphicsContextState::setFillColor(const Color& color) |
126 { | 113 { |
127 m_fillColor = color; | 114 m_fillColor = color; |
128 m_fillGradient.clear(); | 115 m_fillGradient.clear(); |
129 m_fillPattern.clear(); | |
130 m_fillPaint.setColor(color.rgb()); | 116 m_fillPaint.setColor(color.rgb()); |
131 m_fillPaint.setShader(0); | 117 m_fillPaint.setShader(0); |
132 } | 118 } |
133 | 119 |
134 void GraphicsContextState::setFillGradient(const PassRefPtr<Gradient> gradient,
float alpha) | 120 void GraphicsContextState::setFillGradient(const PassRefPtr<Gradient> gradient,
float alpha) |
135 { | 121 { |
136 m_fillColor = Color::black; | 122 m_fillColor = Color::black; |
137 m_fillPattern.clear(); | |
138 m_fillGradient = gradient; | 123 m_fillGradient = gradient; |
139 m_fillPaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); | 124 m_fillPaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); |
140 m_fillPaint.setShader(m_fillGradient->shader()); | 125 m_fillPaint.setShader(m_fillGradient->shader()); |
141 } | 126 } |
142 | 127 |
143 void GraphicsContextState::setFillPattern(const PassRefPtr<Pattern> pattern, flo
at alpha) | |
144 { | |
145 m_fillColor = Color::black; | |
146 m_fillGradient.clear(); | |
147 m_fillPattern = pattern; | |
148 m_fillPaint.setColor(scaleAlpha(SK_ColorBLACK, alpha)); | |
149 m_fillPaint.setShader(m_fillPattern->shader()); | |
150 } | |
151 | |
152 // Shadow. (This will need tweaking if we use draw loopers for other things.) | 128 // Shadow. (This will need tweaking if we use draw loopers for other things.) |
153 void GraphicsContextState::setDrawLooper(PassRefPtr<SkDrawLooper> drawLooper) | 129 void GraphicsContextState::setDrawLooper(PassRefPtr<SkDrawLooper> drawLooper) |
154 { | 130 { |
155 m_looper = drawLooper; | 131 m_looper = drawLooper; |
156 m_strokePaint.setLooper(m_looper.get()); | 132 m_strokePaint.setLooper(m_looper.get()); |
157 m_fillPaint.setLooper(m_looper.get()); | 133 m_fillPaint.setLooper(m_looper.get()); |
158 } | 134 } |
159 | 135 |
160 void GraphicsContextState::clearDrawLooper() | 136 void GraphicsContextState::clearDrawLooper() |
161 { | 137 { |
(...skipping 22 matching lines...) Expand all Loading... |
184 } | 160 } |
185 | 161 |
186 void GraphicsContextState::setShouldAntialias(bool shouldAntialias) | 162 void GraphicsContextState::setShouldAntialias(bool shouldAntialias) |
187 { | 163 { |
188 m_shouldAntialias = shouldAntialias; | 164 m_shouldAntialias = shouldAntialias; |
189 m_strokePaint.setAntiAlias(shouldAntialias); | 165 m_strokePaint.setAntiAlias(shouldAntialias); |
190 m_fillPaint.setAntiAlias(shouldAntialias); | 166 m_fillPaint.setAntiAlias(shouldAntialias); |
191 } | 167 } |
192 | 168 |
193 } // namespace blink | 169 } // namespace blink |
OLD | NEW |