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

Side by Side Diff: src/effects/SkDropShadowImageFilter.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: revised understanding : input filter count is requred, but elements may be null Created 6 years, 5 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 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkDropShadowImageFilter.h" 8 #include "SkDropShadowImageFilter.h"
9 9
10 #include "SkBitmap.h" 10 #include "SkBitmap.h"
(...skipping 20 matching lines...) Expand all
31 SkImageFilter* input, const Cro pRect* cropRect) 31 SkImageFilter* input, const Cro pRect* cropRect)
32 : INHERITED(1, &input, cropRect) 32 : INHERITED(1, &input, cropRect)
33 , fDx(dx) 33 , fDx(dx)
34 , fDy(dy) 34 , fDy(dy)
35 , fSigmaX(sigmaX) 35 , fSigmaX(sigmaX)
36 , fSigmaY(sigmaY) 36 , fSigmaY(sigmaY)
37 , fColor(color) 37 , fColor(color)
38 { 38 {
39 } 39 }
40 40
41 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
41 SkDropShadowImageFilter::SkDropShadowImageFilter(SkReadBuffer& buffer) 42 SkDropShadowImageFilter::SkDropShadowImageFilter(SkReadBuffer& buffer)
42 : INHERITED(1, buffer) { 43 : INHERITED(1, buffer) {
43 fDx = buffer.readScalar(); 44 fDx = buffer.readScalar();
44 fDy = buffer.readScalar(); 45 fDy = buffer.readScalar();
45 fSigmaX = buffer.readScalar(); 46 fSigmaX = buffer.readScalar();
46 fSigmaY = buffer.readScalar(); 47 fSigmaY = buffer.readScalar();
47 fColor = buffer.readColor(); 48 fColor = buffer.readColor();
48 buffer.validate(SkScalarIsFinite(fDx) && 49 buffer.validate(SkScalarIsFinite(fDx) &&
49 SkScalarIsFinite(fDy) && 50 SkScalarIsFinite(fDy) &&
50 SkScalarIsFinite(fSigmaX) && 51 SkScalarIsFinite(fSigmaX) &&
51 SkScalarIsFinite(fSigmaY)); 52 SkScalarIsFinite(fSigmaY));
52 } 53 }
54 #endif
53 55
54 void SkDropShadowImageFilter::flatten(SkWriteBuffer& buffer) const 56 SkFlattenable* SkDropShadowImageFilter::CreateProc(SkReadBuffer& buffer) {
55 { 57 Common common;
56 this->INHERITED::flatten(buffer); 58 if (!common.unflatten(buffer, 1)) {
59 return NULL;
60 }
61 SkScalar dx = buffer.readScalar();
62 SkScalar dy = buffer.readScalar();
63 SkScalar sigmaX = buffer.readScalar();
64 SkScalar sigmaY = buffer.readScalar();
65 SkColor color = buffer.readColor();
66 return Create(dx, dy, sigmaX, sigmaY, color);
67 }
68
69 void SkDropShadowImageFilter::flatten(SkWriteBuffer& buffer) const {
70 this->flattenCommon(buffer);
57 buffer.writeScalar(fDx); 71 buffer.writeScalar(fDx);
58 buffer.writeScalar(fDy); 72 buffer.writeScalar(fDy);
59 buffer.writeScalar(fSigmaX); 73 buffer.writeScalar(fSigmaX);
60 buffer.writeScalar(fSigmaY); 74 buffer.writeScalar(fSigmaY);
61 buffer.writeColor(fColor); 75 buffer.writeColor(fColor);
62 } 76 }
63 77
64 bool SkDropShadowImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source , 78 bool SkDropShadowImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source ,
65 const Context& ctx, 79 const Context& ctx,
66 SkBitmap* result, SkIPoint* offset) const 80 SkBitmap* result, SkIPoint* offset) const
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 bounds.offset(-SkScalarCeilToInt(offsetVec.x()), 143 bounds.offset(-SkScalarCeilToInt(offsetVec.x()),
130 -SkScalarCeilToInt(offsetVec.y())); 144 -SkScalarCeilToInt(offsetVec.y()));
131 SkVector sigma = SkVector::Make(fSigmaX, fSigmaY); 145 SkVector sigma = SkVector::Make(fSigmaX, fSigmaY);
132 ctm.mapVectors(&sigma, 1); 146 ctm.mapVectors(&sigma, 1);
133 bounds.outset(SkScalarCeilToInt(SkScalarMul(sigma.x(), SkIntToScalar(3))), 147 bounds.outset(SkScalarCeilToInt(SkScalarMul(sigma.x(), SkIntToScalar(3))),
134 SkScalarCeilToInt(SkScalarMul(sigma.y(), SkIntToScalar(3)))); 148 SkScalarCeilToInt(SkScalarMul(sigma.y(), SkIntToScalar(3))));
135 bounds.join(src); 149 bounds.join(src);
136 *dst = bounds; 150 *dst = bounds;
137 return true; 151 return true;
138 } 152 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698