• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 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 "modifier_ng/appearance/rs_shadow_modifier.h"
17 
18 namespace OHOS::Rosen::ModifierNG {
SetShadowColor(Color color)19 void RSShadowModifier::SetShadowColor(Color color)
20 {
21     Setter(RSPropertyType::SHADOW_COLOR, color);
22 }
23 
GetShadowColor() const24 Color RSShadowModifier::GetShadowColor() const
25 {
26     return Getter(RSPropertyType::SHADOW_COLOR, Color::FromArgbInt(DEFAULT_SPOT_COLOR));
27 }
28 
SetShadowOffsetX(float offsetX)29 void RSShadowModifier::SetShadowOffsetX(float offsetX)
30 {
31     Setter(RSPropertyType::SHADOW_OFFSET_X, offsetX);
32 }
33 
GetShadowOffsetX() const34 float RSShadowModifier::GetShadowOffsetX() const
35 {
36     return Getter(RSPropertyType::SHADOW_OFFSET_X, 0.f);
37 }
38 
SetShadowOffsetY(float offsetY)39 void RSShadowModifier::SetShadowOffsetY(float offsetY)
40 {
41     Setter(RSPropertyType::SHADOW_OFFSET_Y, offsetY);
42 }
43 
GetShadowOffsetY() const44 float RSShadowModifier::GetShadowOffsetY() const
45 {
46     return Getter(RSPropertyType::SHADOW_OFFSET_Y, 0.f);
47 }
48 
SetShadowAlpha(float alpha)49 void RSShadowModifier::SetShadowAlpha(float alpha)
50 {
51     Setter(RSPropertyType::SHADOW_ALPHA, alpha);
52 }
53 
GetShadowAlpha() const54 float RSShadowModifier::GetShadowAlpha() const
55 {
56     return Getter(RSPropertyType::SHADOW_ALPHA, 1.f);
57 }
58 
SetShadowElevation(float elevation)59 void RSShadowModifier::SetShadowElevation(float elevation)
60 {
61     Setter(RSPropertyType::SHADOW_ELEVATION, elevation);
62 }
63 
GetShadowElevation() const64 float RSShadowModifier::GetShadowElevation() const
65 {
66     return Getter(RSPropertyType::SHADOW_ELEVATION, 0.f);
67 }
68 
SetShadowRadius(float radius)69 void RSShadowModifier::SetShadowRadius(float radius)
70 {
71     Setter(RSPropertyType::SHADOW_RADIUS, radius);
72 }
73 
GetShadowRadius() const74 float RSShadowModifier::GetShadowRadius() const
75 {
76     return Getter(RSPropertyType::SHADOW_RADIUS, 0.f);
77 }
78 
SetShadowPath(const std::shared_ptr<RSPath> & shadowPath)79 void RSShadowModifier::SetShadowPath(const std::shared_ptr<RSPath>& shadowPath)
80 {
81     Setter<RSProperty, std::shared_ptr<RSPath>>(RSPropertyType::SHADOW_PATH, shadowPath);
82 }
83 
GetShadowPath() const84 std::shared_ptr<RSPath> RSShadowModifier::GetShadowPath() const
85 {
86     return Getter(RSPropertyType::SHADOW_PATH, std::shared_ptr<RSPath>(nullptr));
87 }
88 
SetShadowMask(int shadowMask)89 void RSShadowModifier::SetShadowMask(int shadowMask)
90 {
91     Setter<RSProperty>(RSPropertyType::SHADOW_MASK, shadowMask);
92 }
93 
GetShadowMask() const94 int RSShadowModifier::GetShadowMask() const
95 {
96     return Getter(RSPropertyType::SHADOW_MASK, SHADOW_MASK_STRATEGY::MASK_NONE);
97 }
98 
SetShadowColorStrategy(int shadowColorStrategy)99 void RSShadowModifier::SetShadowColorStrategy(int shadowColorStrategy)
100 {
101     Setter<RSProperty>(RSPropertyType::SHADOW_COLOR_STRATEGY, shadowColorStrategy);
102 }
103 
GetShadowColorStrategy() const104 int RSShadowModifier::GetShadowColorStrategy() const
105 {
106     return Getter(RSPropertyType::SHADOW_COLOR_STRATEGY, 0);
107 }
108 
SetShadowIsFilled(bool shadowIsFilled)109 void RSShadowModifier::SetShadowIsFilled(bool shadowIsFilled)
110 {
111     Setter<RSProperty>(RSPropertyType::SHADOW_IS_FILLED, shadowIsFilled);
112 }
113 
GetShadowIsFilled() const114 bool RSShadowModifier::GetShadowIsFilled() const
115 {
116     return Getter(RSPropertyType::SHADOW_IS_FILLED, false);
117 }
118 
SetUseShadowBatching(bool useShadowBatching)119 void RSShadowModifier::SetUseShadowBatching(bool useShadowBatching)
120 {
121     Setter<RSProperty>(RSPropertyType::USE_SHADOW_BATCHING, useShadowBatching);
122 }
123 
GetUseShadowBatching() const124 bool RSShadowModifier::GetUseShadowBatching() const
125 {
126     return Getter(RSPropertyType::USE_SHADOW_BATCHING, false);
127 }
128 } // namespace OHOS::Rosen::ModifierNG
129