X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fshader-effects%2Fdistance-field-effect.h;h=2a233f3f3b6f69b32f1ed13bbe96a269f2d37284;hb=e4a4f86d7504f8823efd25da04c1a2a37554dac5;hp=7d0b8832dcf8623e935ccdd44ecfc8d0dae1da2c;hpb=f58b8383147de70affa1e3949cf1c6757d705d3c;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/devel-api/shader-effects/distance-field-effect.h b/dali-toolkit/devel-api/shader-effects/distance-field-effect.h index 7d0b883..2a233f3 100644 --- a/dali-toolkit/devel-api/shader-effects/distance-field-effect.h +++ b/dali-toolkit/devel-api/shader-effects/distance-field-effect.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_SHADER_EFFECT_DISTANCEFIELD_H__ -#define __DALI_TOOLKIT_SHADER_EFFECT_DISTANCEFIELD_H__ +#ifndef DALI_TOOLKIT_SHADER_EFFECT_DISTANCEFIELD_H +#define DALI_TOOLKIT_SHADER_EFFECT_DISTANCEFIELD_H /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,182 +18,43 @@ * */ +// INTERNAL INCLUDES +#include + // EXTERNAL INCLUDES -#include +#include namespace Dali { - namespace Toolkit { - /** + * Creates a new DistanceFieldEffect + * * DistanceFieldEffect is a custom shader effect to achieve distance field on Image actors + * + * Animatable/Constrainable uniforms - These will need to be registered to the actor as a custom property to take into effect: + * + * "uDoGlow" - The glow state. If true, glow is enabled + * "uGlowBoundary" - The glow boundary factor + * "uGlowColor" - The glow color multiplier + + * "uDoShadow" - The shadow state. If true, shadows is enabled. Cannot be used with glow/and or outline + * "uShadowColor" - The shadow color multiplier + * "uShadowOffset" - The shadow offset + + * "uDoOutline" - The outline state. If true, outline is enabled + * "uOutlineColor" - The outline color multiplier + * "uOutlineParams"- Thickness of outline. The outline thickness is determined by two values. + * First value [0-1] Specifies the distance field value for the center of the outline. + * Second value [0-1] Specifies the softness/width/anti-aliasing of the outlines inner edge. + * + * @return The newly created Property::Map with the distance field effect */ -class DALI_IMPORT_API DistanceFieldEffect : public ShaderEffect -{ -public: - - /** - * Create an uninitialized DistanceFieldEffect; this can be initialized with DistanceFieldEffect::New() - * Calling member functions with an uninitialized Dali::Object is not allowed. - */ - DistanceFieldEffect(); - - /** - * @brief Destructor - * - * This is non-virtual since derived Handle types must not contain data or virtual methods. - */ - ~DistanceFieldEffect(); - - /** - * Create an initialized DistanceFieldEffect. - * @return A handle to a newly allocated Dali resource. - */ - static DistanceFieldEffect New(); - - /** - * Set the shadow state - * @param[in] shadowEnable value - true, enable shadow. - * @note Shadow cannot be used with glow/and or outline. - */ - void SetShadow(bool shadowEnable); - - /** - * Set the shadow color multiplier (e.g. output RGB) - * @param[in] color Shadow color value - */ - void SetShadowColor(const Vector4& color); - - /** - * Set the shadow offset - * @param[in] color shadow offset value - */ - void SetShadowOffset(const Vector2& color); - - /** - * Set the glow state - * @param[in] glowEnable value - true, enable glow. - */ - - void SetGlow(bool glowEnable); - - /** - * Set the glow color multiplier (e.g. output RGB) - * @param[in] color Glow color value - */ - void SetGlowColor(const Vector4& color); - - /** - * Set the glow boundary factor - * @param[in] glowBoundary glow boundary - */ - void SetGlowBoundary(float glowBoundary); - - /** - * Set the outline state - * @param[in] outlineEnable value - true, enable outline. - */ - - void SetOutline(bool outlineEnable); - - /** - * Set the outline color multiplier (e.g. output RGB) - * @param[in] color Outline color value - */ - void SetOutlineColor(const Vector4& color); - - /** - * Sets the outline parameters. - * @param[in] outlineParams Thickness of outline. The outline thickness is determined by two parameters. - * params[0] (0-1) Specifies the distance field value for the center of the outline. - * 0 <= params[0] <= 1 - * params[1] (0-1) Specifies the softness/width/anti-aliasing of the outlines inner edge. - * 0 <= params[0] <= 1 - */ - void SetOutlineParams(const Vector2& outlineParams); - - /** - * Set soft edge smoothing - * @param[in] smoothing Specify the distance field value for the center of the edge. - * 0 <= params <= 1 - */ - void SetSmoothingEdge(float smoothing); - - /** - * Get the name for the outline-enable property - * @return A std::string containing the property name - */ - const std::string& GetOutlineEnablePropertyName() const; - - /** - * Get the name for the glow-enable property - * @return A std::string containing the property name - */ - const std::string& GetGlowEnablePropertyName() const; - - /** - * Get the name for the shadow-enable property - * @return A std::string containing the property name - */ - const std::string& GetShadowEnablePropertyName() const; - - /** - * Get the name for the radius property - * @return A std::string containing the property name - */ - const std::string& GetColorPropertyName() const; - - /** - * Get the name for the smoothing property - * @return A std::string containing the property name - */ - const std::string& GetSmoothingPropertyName() const; - - /** - * Get the name for the outline color property - * @return A std::string containing the property name - */ - const std::string& GetOutlineColorPropertyName() const; - - /** - * Get the name for the outline size property - * @return A std::string containing the property name - */ - const std::string& GetOutlineSizePropertyName() const; - - /** - * Get the name for the shadow color property - * @return A std::string containing the property name - */ - const std::string& GetShadowColorPropertyName() const; - - /** - * Get the name for the shadow offset property - * @return A std::string containing the property name - */ - const std::string& GetShadowOffsetPropertyName() const; - - /** - * Get the name for the glow color property - * @return A std::string containing the property name - */ - const std::string& GetGlowColorPropertyName() const; - - /** - * Get the name for the glow boundary property - * @return A std::string containing the property name - */ - const std::string& GetGlowBoundaryPropertyName() const; - -private: - DALI_INTERNAL DistanceFieldEffect(ShaderEffect handle); - -}; +DALI_TOOLKIT_API Dali::Property::Map CreateDistanceFieldEffect(); } // namespace Toolkit } // namespace Dali -#endif // __DALI_TOOLKIT_SHADER_EFFECT_SPOT_H__ +#endif // DALI_TOOLKIT_SHADER_EFFECT_DISTANCEFIELD_H