OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 The Android Open Source Project | 2 * Copyright 2013 The Android Open Source Project |
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 #ifndef SkXfermodeImageFilter_DEFINED | 8 #ifndef SkXfermodeImageFilter_DEFINED |
9 #define SkXfermodeImageFilter_DEFINED | 9 #define SkXfermodeImageFilter_DEFINED |
10 | 10 |
| 11 #include "SkBlendMode.h" |
11 #include "SkImageFilter.h" | 12 #include "SkImageFilter.h" |
12 | 13 |
13 class SkXfermode; | 14 class SkXfermode; |
14 | 15 |
15 /** | 16 /** |
16 * This filter takes an xfermode, and uses it to composite the foreground | 17 * This filter takes an xfermode, and uses it to composite the foreground |
17 * over the background. If foreground or background is NULL, the input | 18 * over the background. If foreground or background is NULL, the input |
18 * bitmap (src) is used instead. | 19 * bitmap (src) is used instead. |
19 */ | 20 */ |
20 class SK_API SkXfermodeImageFilter { | 21 class SK_API SkXfermodeImageFilter { |
21 public: | 22 public: |
22 static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, sk_sp<SkImageFilter
> background, | 23 static sk_sp<SkImageFilter> Make(SkBlendMode, sk_sp<SkImageFilter> backgroun
d, |
23 sk_sp<SkImageFilter> foreground, | 24 sk_sp<SkImageFilter> foreground, |
24 const SkImageFilter::CropRect* cropRect); | 25 const SkImageFilter::CropRect* cropRect); |
25 static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, sk_sp<SkImageFilter
> background) { | 26 static sk_sp<SkImageFilter> Make(SkBlendMode mode, sk_sp<SkImageFilter> back
ground) { |
26 return Make(std::move(mode), std::move(background), nullptr, nullptr); | 27 return Make(mode, std::move(background), nullptr, nullptr); |
27 } | 28 } |
28 | 29 |
29 static sk_sp<SkImageFilter> MakeArithmetic(float k1, float k2, float k3, flo
at k4, | 30 static sk_sp<SkImageFilter> MakeArithmetic(float k1, float k2, float k3, flo
at k4, |
30 bool enforcePMColor, | 31 bool enforcePMColor, |
31 sk_sp<SkImageFilter> background, | 32 sk_sp<SkImageFilter> background, |
32 sk_sp<SkImageFilter> foreground, | 33 sk_sp<SkImageFilter> foreground, |
33 const SkImageFilter::CropRect* cr
opRect); | 34 const SkImageFilter::CropRect* cr
opRect); |
34 static sk_sp<SkImageFilter> MakeArithmetic(float k1, float k2, float k3, flo
at k4, | 35 static sk_sp<SkImageFilter> MakeArithmetic(float k1, float k2, float k3, flo
at k4, |
35 bool enforcePMColor, | 36 bool enforcePMColor, |
36 sk_sp<SkImageFilter> background)
{ | 37 sk_sp<SkImageFilter> background)
{ |
37 return MakeArithmetic(k1, k2, k3, k4, enforcePMColor, std::move(backgrou
nd), | 38 return MakeArithmetic(k1, k2, k3, k4, enforcePMColor, std::move(backgrou
nd), |
38 nullptr, nullptr); | 39 nullptr, nullptr); |
39 } | 40 } |
40 | 41 |
| 42 #ifdef SK_SUPPORT_LEGACY_XFERMODE_OBJECT |
| 43 static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, sk_sp<SkImageFilter
> background, |
| 44 sk_sp<SkImageFilter> foreground, |
| 45 const SkImageFilter::CropRect* cropRect); |
| 46 static sk_sp<SkImageFilter> Make(sk_sp<SkXfermode> mode, sk_sp<SkImageFilter
> background) { |
| 47 return Make(std::move(mode), std::move(background), nullptr, nullptr); |
| 48 } |
| 49 |
| 50 #endif |
| 51 |
41 #ifdef SK_SUPPORT_LEGACY_XFERMODE_PTR | 52 #ifdef SK_SUPPORT_LEGACY_XFERMODE_PTR |
42 static SkImageFilter* Create(SkXfermode* mode, SkImageFilter* background, | 53 static SkImageFilter* Create(SkXfermode* mode, SkImageFilter* background, |
43 SkImageFilter* foreground = NULL, | 54 SkImageFilter* foreground = NULL, |
44 const SkImageFilter::CropRect* cropRect = NULL)
{ | 55 const SkImageFilter::CropRect* cropRect = NULL)
{ |
45 return Make(sk_ref_sp(mode), | 56 return Make(sk_ref_sp(mode), |
46 sk_ref_sp(background), | 57 sk_ref_sp(background), |
47 sk_ref_sp(foreground), | 58 sk_ref_sp(foreground), |
48 cropRect).release(); | 59 cropRect).release(); |
49 } | 60 } |
50 #endif | 61 #endif |
(...skipping 11 matching lines...) Expand all Loading... |
62 } | 73 } |
63 #endif | 74 #endif |
64 | 75 |
65 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP(); | 76 SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP(); |
66 | 77 |
67 private: | 78 private: |
68 SkXfermodeImageFilter(); // can't instantiate | 79 SkXfermodeImageFilter(); // can't instantiate |
69 }; | 80 }; |
70 | 81 |
71 #endif | 82 #endif |
OLD | NEW |