OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2016 Google Inc. | 2 * Copyright 2016 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 "SkColorFilter.h" | 8 #include "SkColorFilter.h" |
9 #include "SkXfermode.h" | 9 #include "SkXfermode.h" |
10 | 10 |
11 #ifndef SkModeColorFilter_DEFINED | 11 #ifndef SkModeColorFilter_DEFINED |
12 #define SkModeColorFilter_DEFINED | 12 #define SkModeColorFilter_DEFINED |
13 | 13 |
14 class SkModeColorFilter : public SkColorFilter { | 14 class SkModeColorFilter : public SkColorFilter { |
15 public: | 15 public: |
| 16 static sk_sp<SkColorFilter> Make(SkColor color, SkXfermode::Mode mode) { |
| 17 return sk_sp<SkColorFilter>(new SkModeColorFilter(color, mode)); |
| 18 } |
| 19 #ifdef SK_SUPPORT_LEGACY_COLORFILTER_PTR |
16 static SkColorFilter* Create(SkColor color, SkXfermode::Mode mode) { | 20 static SkColorFilter* Create(SkColor color, SkXfermode::Mode mode) { |
17 return new SkModeColorFilter(color, mode); | 21 return Make(color, mode).release(); |
18 } | 22 } |
| 23 #endif |
19 | 24 |
20 SkColor getColor() const { return fColor; } | 25 SkColor getColor() const { return fColor; } |
21 SkXfermode::Mode getMode() const { return fMode; } | 26 SkXfermode::Mode getMode() const { return fMode; } |
22 SkPMColor getPMColor() const { return fPMColor; } | 27 SkPMColor getPMColor() const { return fPMColor; } |
23 | 28 |
24 bool asColorMode(SkColor*, SkXfermode::Mode*) const override; | 29 bool asColorMode(SkColor*, SkXfermode::Mode*) const override; |
25 uint32_t getFlags() const override; | 30 uint32_t getFlags() const override; |
26 void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) con
st override; | 31 void filterSpan(const SkPMColor shader[], int count, SkPMColor result[]) con
st override; |
27 void filterSpan4f(const SkPM4f shader[], int count, SkPM4f result[]) const o
verride; | 32 void filterSpan4f(const SkPM4f shader[], int count, SkPM4f result[]) const o
verride; |
28 | 33 |
(...skipping 23 matching lines...) Expand all Loading... |
52 SkXfermodeProc fProc; | 57 SkXfermodeProc fProc; |
53 | 58 |
54 void updateCache(); | 59 void updateCache(); |
55 | 60 |
56 friend class SkColorFilter; | 61 friend class SkColorFilter; |
57 | 62 |
58 typedef SkColorFilter INHERITED; | 63 typedef SkColorFilter INHERITED; |
59 }; | 64 }; |
60 | 65 |
61 #endif | 66 #endif |
OLD | NEW |