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

Side by Side Diff: src/effects/gradients/SkRadialGradient.cpp

Issue 395603002: Simplify flattening to just write enough to call the factory (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: simplify xfermodes, fix SkLayerDrawLooper 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 1
2 /* 2 /*
3 * Copyright 2012 Google Inc. 3 * Copyright 2012 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkRadialGradient.h" 9 #include "SkRadialGradient.h"
10 #include "SkRadialGradient_Table.h" 10 #include "SkRadialGradient_Table.h"
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 245
246 SkShader::GradientType SkRadialGradient::asAGradient(GradientInfo* info) const { 246 SkShader::GradientType SkRadialGradient::asAGradient(GradientInfo* info) const {
247 if (info) { 247 if (info) {
248 commonAsAGradient(info); 248 commonAsAGradient(info);
249 info->fPoint[0] = fCenter; 249 info->fPoint[0] = fCenter;
250 info->fRadius[0] = fRadius; 250 info->fRadius[0] = fRadius;
251 } 251 }
252 return kRadial_GradientType; 252 return kRadial_GradientType;
253 } 253 }
254 254
255 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
255 SkRadialGradient::SkRadialGradient(SkReadBuffer& buffer) 256 SkRadialGradient::SkRadialGradient(SkReadBuffer& buffer)
256 : INHERITED(buffer), 257 : INHERITED(buffer),
257 fCenter(buffer.readPoint()), 258 fCenter(buffer.readPoint()),
258 fRadius(buffer.readScalar()) { 259 fRadius(buffer.readScalar()) {
259 } 260 }
261 #endif
262
263 SkFlattenable* SkRadialGradient::CreateProc(SkReadBuffer& buffer) {
264 DescriptorScope desc;
265 if (!desc.unflatten(buffer)) {
266 return NULL;
267 }
268 const SkPoint center = buffer.readPoint();
269 const SkScalar radius = buffer.readScalar();
270 return SkGradientShader::CreateRadial(center, radius, desc.fColors, desc.fPo s, desc.fCount,
271 desc.fTileMode, desc.fGradFlags, desc. fLocalMatrix);
272 }
260 273
261 void SkRadialGradient::flatten(SkWriteBuffer& buffer) const { 274 void SkRadialGradient::flatten(SkWriteBuffer& buffer) const {
262 this->INHERITED::flatten(buffer); 275 this->INHERITED::flatten(buffer);
263 buffer.writePoint(fCenter); 276 buffer.writePoint(fCenter);
264 buffer.writeScalar(fRadius); 277 buffer.writeScalar(fRadius);
265 } 278 }
266 279
267 namespace { 280 namespace {
268 281
269 inline bool radial_completely_pinned(int fx, int dx, int fy, int dy) { 282 inline bool radial_completely_pinned(int fx, int dx, int fy, int dy) {
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
608 str->appendScalar(fCenter.fY); 621 str->appendScalar(fCenter.fY);
609 str->append(") radius: "); 622 str->append(") radius: ");
610 str->appendScalar(fRadius); 623 str->appendScalar(fRadius);
611 str->append(" "); 624 str->append(" ");
612 625
613 this->INHERITED::toString(str); 626 this->INHERITED::toString(str);
614 627
615 str->append(")"); 628 str->append(")");
616 } 629 }
617 #endif 630 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698