1 #ifndef DALI_TOOLKIT_INTERNAL_COLOR_VISUAL_H
2 #define DALI_TOOLKIT_INTERNAL_COLOR_VISUAL_H
5 * Copyright (c) 2021 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/public-api/common/intrusive-ptr.h>
25 #include <dali-toolkit/internal/visuals/visual-base-impl.h>
34 typedef IntrusivePtr<ColorVisual> ColorVisualPtr;
37 * The visual which renders a solid color to the control's quad
39 * The following properties are required for create a ColorRender
41 * | %Property Name | Type |
42 * |-----------------|-------------|
43 * | mixColor | VECTOR4 |
45 class ColorVisual : public Visual::Base
49 * @brief Create a new color visual.
51 * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
52 * @param[in] properties A Property::Map containing settings for this visual
53 * @return A smart-pointer to the newly allocated visual.
55 static ColorVisualPtr New(VisualFactoryCache& factoryCache, const Property::Map& properties);
57 public: // from Visual
59 * @copydoc Visual::Base::CreatePropertyMap
61 void DoCreatePropertyMap(Property::Map& map) const override;
64 * @copydoc Visual::Base::CreateInstancePropertyMap
66 void DoCreateInstancePropertyMap(Property::Map& map) const override;
72 * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object
74 ColorVisual(VisualFactoryCache& factoryCache);
77 * @brief A reference counted object may only be deleted by calling Unreference().
79 virtual ~ColorVisual();
82 * @copydoc Visual::Base::OnInitialize
84 void OnInitialize() override;
87 * @copydoc Visual::Base::DoSetProperties
89 void DoSetProperties(const Property::Map& propertyMap) override;
92 * @copydoc Visual::Base::DoSetOnScene
94 void DoSetOnScene(Actor& actor) override;
97 * @copydoc Visual::Base::DoSetOffScene
99 void DoSetOffScene(Actor& actor) override;
102 * @copydoc Visual::Base::OnSetTransform
104 void OnSetTransform() override;
107 * @copydoc Visual::Base::OnDoAction
109 void OnDoAction(const Property::Index actionId, const Property::Value& attributes) override;
112 * @copydoc Visual::Base::UpdateShader
114 void UpdateShader() override;
117 * @copydoc Visual::Base::OnGetPropertyObject
119 Dali::Property OnGetPropertyObject(Dali::Property::Key key) override;
123 * @brief Get a shader for the current properties.
124 * @return The shader for the current properties.
130 ColorVisual(const ColorVisual& colorRenderer);
133 ColorVisual& operator=(const ColorVisual& colorRenderer);
136 float mBlurRadius; ///< The blur radius
137 Property::Index mBlurRadiusIndex; ///< The blur radius property index
138 bool mNeedBlurRadius; ///< Whether we need the blur radius in shader.
141 } // namespace Internal
143 } // namespace Toolkit
147 #endif /* DALI_TOOLKIT_INTERNAL_COLOR_VISUAL_H */