OLD | NEW |
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 11 matching lines...) Expand all Loading... |
22 , fColor(color) | 22 , fColor(color) |
23 { | 23 { |
24 } | 24 } |
25 | 25 |
26 SkDropShadowImageFilter::SkDropShadowImageFilter(SkFlattenableReadBuffer& buffer
) : INHERITED(buffer) | 26 SkDropShadowImageFilter::SkDropShadowImageFilter(SkFlattenableReadBuffer& buffer
) : INHERITED(buffer) |
27 { | 27 { |
28 fDx = buffer.readScalar(); | 28 fDx = buffer.readScalar(); |
29 fDy = buffer.readScalar(); | 29 fDy = buffer.readScalar(); |
30 fSigma = buffer.readScalar(); | 30 fSigma = buffer.readScalar(); |
31 fColor = buffer.readColor(); | 31 fColor = buffer.readColor(); |
| 32 buffer.validate(SkScalarIsFinite(fDx) && |
| 33 SkScalarIsFinite(fDy) && |
| 34 SkScalarIsFinite(fSigma)); |
32 } | 35 } |
33 | 36 |
34 void SkDropShadowImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const | 37 void SkDropShadowImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const |
35 { | 38 { |
36 this->INHERITED::flatten(buffer); | 39 this->INHERITED::flatten(buffer); |
37 buffer.writeScalar(fDx); | 40 buffer.writeScalar(fDx); |
38 buffer.writeScalar(fDy); | 41 buffer.writeScalar(fDy); |
39 buffer.writeScalar(fSigma); | 42 buffer.writeScalar(fSigma); |
40 buffer.writeColor(fColor); | 43 buffer.writeColor(fColor); |
41 } | 44 } |
(...skipping 11 matching lines...) Expand all Loading... |
53 SkAutoTUnref<SkColorFilter> colorFilter(SkColorFilter::CreateModeFilter(fCol
or, SkXfermode::kSrcIn_Mode)); | 56 SkAutoTUnref<SkColorFilter> colorFilter(SkColorFilter::CreateModeFilter(fCol
or, SkXfermode::kSrcIn_Mode)); |
54 SkPaint paint; | 57 SkPaint paint; |
55 paint.setImageFilter(blurFilter.get()); | 58 paint.setImageFilter(blurFilter.get()); |
56 paint.setColorFilter(colorFilter.get()); | 59 paint.setColorFilter(colorFilter.get()); |
57 paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); | 60 paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); |
58 canvas.drawBitmap(src, fDx, fDy, &paint); | 61 canvas.drawBitmap(src, fDx, fDy, &paint); |
59 canvas.drawBitmap(src, 0, 0); | 62 canvas.drawBitmap(src, 0, 0); |
60 *result = device->accessBitmap(false); | 63 *result = device->accessBitmap(false); |
61 return true; | 64 return true; |
62 } | 65 } |
OLD | NEW |