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

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: rebase 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
« no previous file with comments | « src/effects/SkDisplacementMapEffect.cpp ('k') | src/effects/SkEmbossMaskFilter.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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"
11 #include "SkBlurImageFilter.h" 11 #include "SkBlurImageFilter.h"
12 #include "SkCanvas.h" 12 #include "SkCanvas.h"
13 #include "SkColorMatrixFilter.h" 13 #include "SkColorMatrixFilter.h"
14 #include "SkDevice.h" 14 #include "SkDevice.h"
15 #include "SkReadBuffer.h" 15 #include "SkReadBuffer.h"
16 #include "SkWriteBuffer.h" 16 #include "SkWriteBuffer.h"
17 17
18 SkDropShadowImageFilter::SkDropShadowImageFilter(SkScalar dx, SkScalar dy, 18 SkDropShadowImageFilter::SkDropShadowImageFilter(SkScalar dx, SkScalar dy,
19 SkScalar sigmaX, SkScalar sigma Y, SkColor color, 19 SkScalar sigmaX, SkScalar sigma Y, SkColor color,
20 SkImageFilter* input, const Cro pRect* cropRect) 20 SkImageFilter* input, const Cro pRect* cropRect)
21 : INHERITED(1, &input, cropRect) 21 : INHERITED(1, &input, cropRect)
22 , fDx(dx) 22 , fDx(dx)
23 , fDy(dy) 23 , fDy(dy)
24 , fSigmaX(sigmaX) 24 , fSigmaX(sigmaX)
25 , fSigmaY(sigmaY) 25 , fSigmaY(sigmaY)
26 , fColor(color) 26 , fColor(color)
27 { 27 {
28 } 28 }
29 29
30 #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING
30 SkDropShadowImageFilter::SkDropShadowImageFilter(SkReadBuffer& buffer) 31 SkDropShadowImageFilter::SkDropShadowImageFilter(SkReadBuffer& buffer)
31 : INHERITED(1, buffer) { 32 : INHERITED(1, buffer) {
32 fDx = buffer.readScalar(); 33 fDx = buffer.readScalar();
33 fDy = buffer.readScalar(); 34 fDy = buffer.readScalar();
34 fSigmaX = buffer.readScalar(); 35 fSigmaX = buffer.readScalar();
35 fSigmaY = buffer.readScalar(); 36 fSigmaY = buffer.readScalar();
36 fColor = buffer.readColor(); 37 fColor = buffer.readColor();
37 buffer.validate(SkScalarIsFinite(fDx) && 38 buffer.validate(SkScalarIsFinite(fDx) &&
38 SkScalarIsFinite(fDy) && 39 SkScalarIsFinite(fDy) &&
39 SkScalarIsFinite(fSigmaX) && 40 SkScalarIsFinite(fSigmaX) &&
40 SkScalarIsFinite(fSigmaY)); 41 SkScalarIsFinite(fSigmaY));
41 } 42 }
43 #endif
42 44
43 void SkDropShadowImageFilter::flatten(SkWriteBuffer& buffer) const 45 SkFlattenable* SkDropShadowImageFilter::CreateProc(SkReadBuffer& buffer) {
44 { 46 SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 1);
47 SkScalar dx = buffer.readScalar();
48 SkScalar dy = buffer.readScalar();
49 SkScalar sigmaX = buffer.readScalar();
50 SkScalar sigmaY = buffer.readScalar();
51 SkColor color = buffer.readColor();
52 return Create(dx, dy, sigmaX, sigmaY, color, common.getInput(0), &common.cro pRect());
53 }
54
55 void SkDropShadowImageFilter::flatten(SkWriteBuffer& buffer) const {
45 this->INHERITED::flatten(buffer); 56 this->INHERITED::flatten(buffer);
46 buffer.writeScalar(fDx); 57 buffer.writeScalar(fDx);
47 buffer.writeScalar(fDy); 58 buffer.writeScalar(fDy);
48 buffer.writeScalar(fSigmaX); 59 buffer.writeScalar(fSigmaX);
49 buffer.writeScalar(fSigmaY); 60 buffer.writeScalar(fSigmaY);
50 buffer.writeColor(fColor); 61 buffer.writeColor(fColor);
51 } 62 }
52 63
53 bool SkDropShadowImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source , 64 bool SkDropShadowImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source ,
54 const Context& ctx, 65 const Context& ctx,
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 bounds.offset(-SkScalarCeilToInt(offsetVec.x()), 129 bounds.offset(-SkScalarCeilToInt(offsetVec.x()),
119 -SkScalarCeilToInt(offsetVec.y())); 130 -SkScalarCeilToInt(offsetVec.y()));
120 SkVector sigma = SkVector::Make(fSigmaX, fSigmaY); 131 SkVector sigma = SkVector::Make(fSigmaX, fSigmaY);
121 ctm.mapVectors(&sigma, 1); 132 ctm.mapVectors(&sigma, 1);
122 bounds.outset(SkScalarCeilToInt(SkScalarMul(sigma.x(), SkIntToScalar(3))), 133 bounds.outset(SkScalarCeilToInt(SkScalarMul(sigma.x(), SkIntToScalar(3))),
123 SkScalarCeilToInt(SkScalarMul(sigma.y(), SkIntToScalar(3)))); 134 SkScalarCeilToInt(SkScalarMul(sigma.y(), SkIntToScalar(3))));
124 bounds.join(src); 135 bounds.join(src);
125 *dst = bounds; 136 *dst = bounds;
126 return true; 137 return true;
127 } 138 }
OLDNEW
« no previous file with comments | « src/effects/SkDisplacementMapEffect.cpp ('k') | src/effects/SkEmbossMaskFilter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698