[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / color / color-visual.h
index 6fe1f43..0a8a8b2 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_INTERNAL_COLOR_VISUAL_H
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -65,6 +65,11 @@ public: // from Visual
    */
   void DoCreateInstancePropertyMap(Property::Map& map) const override;
 
+  /**
+   * @copydoc Visual::Base::EnablePreMultipliedAlpha
+   */
+  void EnablePreMultipliedAlpha(bool preMultiplied) override;
+
 protected:
   /**
    * @brief Constructor.
@@ -104,26 +109,27 @@ protected:
   void OnSetTransform() override;
 
   /**
-   * @copydoc Visual::Base::OnDoAction
+   * @copydoc Visual::Base::UpdateShader
    */
-  void OnDoAction(const Property::Index actionId, const Property::Value& attributes) override;
+  void UpdateShader() override;
 
   /**
-   * @copydoc Visual::Base::UpdateShader
+   * @copydoc Visual::Base::GenerateShader
    */
-  void UpdateShader() override;
+  Shader GenerateShader() const override;
 
   /**
    * @copydoc Visual::Base::OnGetPropertyObject
    */
   Dali::Property OnGetPropertyObject(Dali::Property::Key key) override;
 
-private:
+protected:
   /**
-   * @brief Get a shader for the current properties.
-   * @return The shader for the current properties.
+   * @brief Query whether the visual requires to be blur.
+   *
+   * @return Returns true if the blur is required, false otherwise.
    */
-  Shader GetShader();
+  bool IsBlurRequired() const;
 
 private:
   // Undefined
@@ -133,9 +139,8 @@ private:
   ColorVisual& operator=(const ColorVisual& colorRenderer);
 
 private:
-  float           mBlurRadius;      ///< The blur radius
-  Property::Index mBlurRadiusIndex; ///< The blur radius property index
-  bool            mNeedBlurRadius;  ///< Whether we need the blur radius in shader.
+  float mBlurRadius;                ///< The blur radius
+  bool  mAlwaysUsingBlurRadius : 1; ///< Whether we need the blur radius in shader always.
 };
 
 } // namespace Internal