[dali_2.1.6] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / visual-base-data-impl.h
index 2967b1d..3c8f072 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_INTERNAL_VISUAL_BASE_DATA_IMPL_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.
@@ -96,11 +96,16 @@ struct Base::Impl
     void UpdatePropertyMap(const Property::Map& map);
 
     /**
-     * Register or set the uniform properties onto the renderer
+     * Register the uniform properties onto the renderer
      */
     void RegisterUniforms(Renderer renderer, Toolkit::Direction::Type direction);
 
     /**
+     * Set the uniform properties onto the renderer
+     */
+    void SetUniforms(Renderer renderer, Toolkit::Direction::Type direction);
+
+    /**
      * Convert the control size and the transform attributes into the actual
      * size of the visual.
      */
@@ -112,8 +117,8 @@ struct Base::Impl
     Vector4              mOffsetSizeMode;
     Toolkit::Align::Type mOrigin;
     Toolkit::Align::Type mAnchorPoint;
-    Property::Index      mOffsetIndex;
-    Property::Index      mSizeIndex;
+    Property::Index      mOffsetIndex{Property::INVALID_INDEX};
+    Property::Index      mSizeIndex{Property::INVALID_INDEX};
   };
 
   Renderer                        mRenderer;
@@ -123,16 +128,23 @@ struct Base::Impl
   Transform                       mTransform;
   Vector4                         mMixColor;
   Size                            mControlSize;
-  float                           mCornerRadius;
+  float                           mBorderlineWidth;
+  Vector4                         mBorderlineColor;
+  float                           mBorderlineOffset;
+  Vector4                         mCornerRadius;
   float                           mCornerRadiusPolicy;
   int                             mDepthIndex;
   Property::Index                 mMixColorIndex;
+  Property::Index                 mBorderlineWidthIndex;
+  Property::Index                 mBorderlineColorIndex;
+  Property::Index                 mBorderlineOffsetIndex;
   Property::Index                 mCornerRadiusIndex;
-  FittingMode                     mFittingMode; //< How the contents should fit the view
+  FittingMode                     mFittingMode; ///< How the contents should fit the view
   int                             mFlags;
   Toolkit::Visual::ResourceStatus mResourceStatus;
   const Toolkit::Visual::Type     mType;
-  bool                            mNeedCornerRadius;
+  bool                            mAlwaysUsingBorderline : 1;   ///< Whether we need the borderline in shader always.
+  bool                            mAlwaysUsingCornerRadius : 1; ///< Whether we need the corner radius in shader always.
 };
 
 } // namespace Visual