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

Side by Side Diff: Source/platform/graphics/GraphicsContextState.cpp

Issue 358893002: Use newImageSnapshot() to get an image from a Canvas (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Bitmap caching for Shaders/Patterns from StaticBitmapImage/SkImage Created 6 years, 4 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
OLDNEW
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 blink { 10 namespace blink {
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 m_strokePaint.setShader(m_strokeData.gradient()->shader()); 107 m_strokePaint.setShader(m_strokeData.gradient()->shader());
108 } 108 }
109 109
110 void GraphicsContextState::clearStrokeGradient() 110 void GraphicsContextState::clearStrokeGradient()
111 { 111 {
112 m_strokeData.clearGradient(); 112 m_strokeData.clearGradient();
113 ASSERT(!m_strokeData.pattern()); 113 ASSERT(!m_strokeData.pattern());
114 m_strokePaint.setColor(applyAlpha(m_strokeData.color().rgb())); 114 m_strokePaint.setColor(applyAlpha(m_strokeData.color().rgb()));
115 } 115 }
116 116
117 void GraphicsContextState::setStrokePattern(const PassRefPtr<Pattern> pattern) 117 void GraphicsContextState::setStrokePattern(const PassRefPtr<Pattern> pattern, S kShader::ShaderLocation preferredLocation)
118 { 118 {
119 m_strokeData.setColor(Color::black); 119 m_strokeData.setColor(Color::black);
120 m_strokeData.clearGradient(); 120 m_strokeData.clearGradient();
121 m_strokeData.setPattern(pattern); 121 m_strokeData.setPattern(pattern);
122 m_strokePaint.setColor(applyAlpha(SK_ColorBLACK)); 122 m_strokePaint.setColor(applyAlpha(SK_ColorBLACK));
123 m_strokePaint.setShader(m_strokeData.pattern()->shader()); 123 m_strokePaint.setShader(m_strokeData.pattern()->shader(preferredLocation));
124 } 124 }
125 125
126 void GraphicsContextState::clearStrokePattern() 126 void GraphicsContextState::clearStrokePattern()
127 { 127 {
128 m_strokeData.clearPattern(); 128 m_strokeData.clearPattern();
129 ASSERT(!m_strokeData.gradient()); 129 ASSERT(!m_strokeData.gradient());
130 m_strokePaint.setColor(applyAlpha(m_strokeData.color().rgb())); 130 m_strokePaint.setColor(applyAlpha(m_strokeData.color().rgb()));
131 } 131 }
132 132
133 void GraphicsContextState::setLineCap(LineCap cap) 133 void GraphicsContextState::setLineCap(LineCap cap)
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 m_fillPaint.setShader(m_fillGradient->shader()); 166 m_fillPaint.setShader(m_fillGradient->shader());
167 } 167 }
168 168
169 void GraphicsContextState::clearFillGradient() 169 void GraphicsContextState::clearFillGradient()
170 { 170 {
171 m_fillGradient.clear(); 171 m_fillGradient.clear();
172 ASSERT(!m_fillPattern); 172 ASSERT(!m_fillPattern);
173 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb())); 173 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb()));
174 } 174 }
175 175
176 void GraphicsContextState::setFillPattern(const PassRefPtr<Pattern> pattern) 176 void GraphicsContextState::setFillPattern(const PassRefPtr<Pattern> pattern, SkS hader::ShaderLocation preferredLocation)
177 { 177 {
178 m_fillColor = Color::black; 178 m_fillColor = Color::black;
179 m_fillGradient.clear(); 179 m_fillGradient.clear();
180 m_fillPattern = pattern; 180 m_fillPattern = pattern;
181 m_fillPaint.setColor(applyAlpha(SK_ColorBLACK)); 181 m_fillPaint.setColor(applyAlpha(SK_ColorBLACK));
182 m_fillPaint.setShader(m_fillPattern->shader()); 182 m_fillPaint.setShader(m_fillPattern->shader(preferredLocation));
183 } 183 }
184 184
185 void GraphicsContextState::clearFillPattern() 185 void GraphicsContextState::clearFillPattern()
186 { 186 {
187 m_fillPattern.clear(); 187 m_fillPattern.clear();
188 ASSERT(!m_fillGradient); 188 ASSERT(!m_fillGradient);
189 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb())); 189 m_fillPaint.setColor(applyAlpha(m_fillColor.rgb()));
190 } 190 }
191 191
192 // Shadow. (This will need tweaking if we use draw loopers for other things.) 192 // Shadow. (This will need tweaking if we use draw loopers for other things.)
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 247
248 void GraphicsContextState::setShouldAntialias(bool shouldAntialias) 248 void GraphicsContextState::setShouldAntialias(bool shouldAntialias)
249 { 249 {
250 m_shouldAntialias = shouldAntialias; 250 m_shouldAntialias = shouldAntialias;
251 m_strokePaint.setAntiAlias(shouldAntialias); 251 m_strokePaint.setAntiAlias(shouldAntialias);
252 m_fillPaint.setAntiAlias(shouldAntialias); 252 m_fillPaint.setAntiAlias(shouldAntialias);
253 } 253 }
254 254
255 255
256 } // namespace blink 256 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698