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 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/shader-effects/shader-effect.h>
31 * @brief IrisEffect is a custom shader effect to achieve iris effects in Image actors
33 class DALI_IMPORT_API IrisEffect : public ShaderEffect
39 * @brief Create an uninitialized IrisEffect; this can be initialized with IrisEffect::New().
41 * Calling member functions with an uninitialized Dali::Object is not allowed.
48 * This is non-virtual since derived Handle types must not contain data or virtual methods.
53 * @brief Create an initialized IrisEffect.
55 * @return A handle to a newly allocated Dali resource.
57 static IrisEffect New();
60 * @brief Set the radius of the iris effect in texture coordinate distance,
61 * i.e. 0.0 (no circle) to 1.0 (complete circle), to > 1.0 (extending
62 * outside of texture).
64 * @note For Atlas Textures results may be unpredictable.
66 * @param [in] radius The new radius.
68 void SetRadius(float radius);
71 * @brief Set the blend factor of the iris effect.
73 * The lower the value, the larger the blending portion
74 * (between Opaque & Transparent)
76 * Blending will account for 1 / blendFactor of the radius
79 * @param [in] value The new blend Factor.
81 void SetBlendFactor(float value);
84 * @brief Sets the center point of the iris (in texture coordinates).
86 * @param[in] center The center point.
88 void SetCenter( const Vector2& center );
91 * @brief Get the name for the radius property which can be used in Animation APIs.
93 * @return A std::string containing the property name
95 const std::string& GetRadiusPropertyName() const;
98 * @brief Get the name for the blend factor property.
100 * @return A std::string containing the property name
102 const std::string& GetBlendFactorPropertyName() const;
105 * @brief Get the name for the center property.
107 * @return A std::string containing the property name
109 const std::string& GetCenterPropertyName() const;
112 private: // Not intended for application developers
113 DALI_INTERNAL IrisEffect(ShaderEffect handle);