1 #ifndef __DALI_TOOLKIT_SHADER_EFFECT_IRIS_H__
2 #define __DALI_TOOLKIT_SHADER_EFFECT_IRIS_H__
5 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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.
21 * @addtogroup CAPI_DALI_TOOLKIT_SHADER_EFFECTS_MODULE
26 #include <dali/dali.h>
28 namespace Dali DALI_IMPORT_API
35 * @brief IrisEffect is a custom shader effect to achieve iris effects in Image actors
37 class IrisEffect : public ShaderEffect
43 * @brief Create an uninitialized IrisEffect; this can be initialized with IrisEffect::New().
45 * Calling member functions with an uninitialized Dali::Object is not allowed.
50 * @brief Virtual destructor.
52 virtual ~IrisEffect();
55 * @brief Create an initialized IrisEffect.
57 * @return A handle to a newly allocated Dali resource.
59 static IrisEffect New();
62 * @brief Set the radius of the iris effect in texture coordinate distance,
63 * i.e. 0.0 (no circle) to 1.0 (complete circle), to > 1.0 (extending
64 * outside of texture).
66 * @note For Atlas Textures results may be unpredictable.
68 * @param [in] radius The new radius.
70 void SetRadius(float radius);
73 * @brief Set the blend factor of the iris effect.
75 * The lower the value, the larger the blending portion
76 * (between Opaque & Transparent)
78 * Blending will account for 1 / blendFactor of the radius
81 * @param [in] value The new blend Factor.
83 void SetBlendFactor(float value);
86 * @brief Sets the center point of the iris (in texture coordinates).
88 * @param[in] center The center point.
90 void SetCenter( const Vector2& center );
93 * @brief Get the name for the radius property which can be used in Animation APIs.
95 * @return A std::string containing the property name
97 const std::string& GetRadiusPropertyName() const;
100 * @brief Get the name for the blend factor property.
102 * @return A std::string containing the property name
104 const std::string& GetBlendFactorPropertyName() const;
107 * @brief Get the name for the center property.
109 * @return A std::string containing the property name
111 const std::string& GetCenterPropertyName() const;
114 private: // Not intended for application developers
115 IrisEffect(ShaderEffect handle);