1 /*
2 * Copyright (c) 2021 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <effect/filter.h>
17
18 namespace OHOS {
19 namespace Rosen {
20 namespace Drawing {
Filter()21 Filter::Filter() noexcept
22 : colorFilter_(nullptr), imageFilter_(nullptr), maskFilter_(nullptr), filterQuality_(FilterQuality::NONE)
23 {}
24
SetColorFilter(std::shared_ptr<ColorFilter> colorFilter)25 void Filter::SetColorFilter(std::shared_ptr<ColorFilter> colorFilter)
26 {
27 colorFilter_ = colorFilter;
28 }
29
GetColorFilter() const30 std::shared_ptr<ColorFilter> Filter::GetColorFilter() const
31 {
32 return colorFilter_;
33 }
34
GetColorFilterPtr() const35 const ColorFilter* Filter::GetColorFilterPtr() const
36 {
37 return colorFilter_.get();
38 }
39
SetImageFilter(std::shared_ptr<ImageFilter> imageFilter)40 void Filter::SetImageFilter(std::shared_ptr<ImageFilter> imageFilter)
41 {
42 imageFilter_ = imageFilter;
43 }
44
GetImageFilter() const45 std::shared_ptr<ImageFilter> Filter::GetImageFilter() const
46 {
47 return imageFilter_;
48 }
49
GetImageFilterPtr() const50 const ImageFilter* Filter::GetImageFilterPtr() const
51 {
52 return imageFilter_.get();
53 }
54
SetMaskFilter(std::shared_ptr<MaskFilter> maskFilter)55 void Filter::SetMaskFilter(std::shared_ptr<MaskFilter> maskFilter)
56 {
57 maskFilter_ = maskFilter;
58 }
59
GetMaskFilter() const60 std::shared_ptr<MaskFilter> Filter::GetMaskFilter() const
61 {
62 return maskFilter_;
63 }
64
GetMaskFilterPtr() const65 const MaskFilter* Filter::GetMaskFilterPtr() const
66 {
67 return maskFilter_.get();
68 }
69
SetFilterQuality(FilterQuality filterQuality)70 void Filter::SetFilterQuality(FilterQuality filterQuality)
71 {
72 filterQuality_ = filterQuality;
73 }
74
GetFilterQuality() const75 Filter::FilterQuality Filter::GetFilterQuality() const
76 {
77 return filterQuality_;
78 }
79
Reset()80 void Filter::Reset()
81 {
82 colorFilter_ = nullptr;
83 imageFilter_ = nullptr;
84 maskFilter_ = nullptr;
85 filterQuality_ = FilterQuality::NONE;
86 }
87
operator ==(const Filter & f1,const Filter & f2)88 bool operator==(const Filter& f1, const Filter& f2)
89 {
90 return f1.colorFilter_ == f2.colorFilter_ && f1.imageFilter_ == f2.imageFilter_ &&
91 f1.maskFilter_ == f2.maskFilter_ && f1.filterQuality_ == f2.filterQuality_;
92 }
93
operator !=(const Filter & f1,const Filter & f2)94 bool operator!=(const Filter& f1, const Filter& f2)
95 {
96 return f1.colorFilter_ != f2.colorFilter_ || f1.imageFilter_ != f2.imageFilter_ ||
97 f1.maskFilter_ != f2.maskFilter_ || f1.filterQuality_ != f2.filterQuality_;
98 }
99
Dump(std::string & out) const100 void Filter::Dump(std::string& out) const
101 {
102 out += '[';
103 if (colorFilter_ != nullptr) {
104 out += "colorFilter:" + std::to_string(static_cast<int>(colorFilter_->GetType())) + " ";
105 }
106 if (imageFilter_ != nullptr) {
107 out += "imageFilter:" + std::to_string(static_cast<int>(imageFilter_->GetType())) + " ";
108 }
109 if (maskFilter_ != nullptr) {
110 out += "maskFilter:" + std::to_string(static_cast<int>(maskFilter_->GetType())) + " ";
111 }
112 out += "filterQuality:" + std::to_string(static_cast<int>(filterQuality_));
113 out += ']';
114 }
115 } // namespace Drawing
116 } // namespace Rosen
117 } // namespace OHOS