| 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 |