[NUI] Introduce Conic Gradient (#6906)
authorChihun Jeong <50663828+ANZ1217@users.noreply.github.com>
Tue, 13 May 2025 06:27:38 +0000 (15:27 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Wed, 14 May 2025 06:35:12 +0000 (15:35 +0900)
You can use conic gradient using Center and StartAngle.

Co-authored-by: ANZ1217 <chihun.jeong@samsung.com>
src/Tizen.NUI/src/internal/Interop/Interop.GradientVisual.cs
src/Tizen.NUI/src/internal/NativeBinding/NDalic.cs
src/Tizen.NUI/src/public/Visuals/GradientVisual.cs
src/Tizen.NUI/src/public/Visuals/VisualConstants.cs

index bc3ec58464192b994cee6a5e7d347a37038dfa96..539f2784975b583f97ae50bcd5e98ad50b0e1909 100755 (executable)
@@ -46,6 +46,8 @@ namespace Tizen.NUI
             public static extern int GradientVisualSpreadMethodGet();
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_GRADIENT_VISUAL_START_OFFSET_get")]
             public static extern int GradientVisualStartOffsetGet();
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_GRADIENT_VISUAL_START_ANGLE_get")]
+            public static extern int GradientVisualStartAngleGet();
         }
     }
 }
index 63cb73344e4b126a0ea1aa28ee86fe97dbd14c85..61501bc9af04aba9a8849b174bedfa41a4e7948d 100755 (executable)
@@ -368,6 +368,7 @@ namespace Tizen.NUI
         internal static readonly int GradientVisualUnits = Interop.NDalicGradientVisual.GradientVisualUnitsGet();
         internal static readonly int GradientVisualSpreadMethod = Interop.NDalicGradientVisual.GradientVisualSpreadMethodGet();
         internal static readonly int GradientVisualStartOffset = Interop.NDalicGradientVisual.GradientVisualStartOffsetGet();
+        internal static readonly int GradientVisualStartAngle = Interop.NDalicGradientVisual.GradientVisualStartAngleGet();
 
         internal static readonly int ImageVisualUrl = Interop.NDalicImageVisual.ImageVisualUrlGet();
         internal static readonly int ImageVisualAlphaMaskUrl = Interop.NDalicImageVisual.ImageVisualAlphaMaskUrlGet();
index 95a0dedda33b15664a5c2d836ac9dd2aa25d05a6..645fef4acc4b145d468e31e437fedd594fee4563 100755 (executable)
@@ -34,6 +34,7 @@ namespace Tizen.NUI
         private GradientVisualUnitsType? _units;
         private GradientVisualSpreadMethodType? _spreadMethod;
         private float? _startOffset;
+        private float? _startAngle;
 
         /// <summary>
         /// Default constructor of GradientVisual.
@@ -81,7 +82,7 @@ namespace Tizen.NUI
 
         /// <summary>
         /// Gets or sets the center point of a radial gradient.<br />
-        /// Mandatory for radial.<br />
+        /// Mandatory for radial and conic.<br />
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public Vector2 Center
@@ -212,6 +213,25 @@ namespace Tizen.NUI
             }
         }
 
+        /// <summary>
+        /// Gets or sets the start angle of the conic gradient.<br />
+        /// Mandatory for conic.<br />
+        /// Optional.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public float StartAngle
+        {
+            get
+            {
+                return _startAngle ?? (0.0f);
+            }
+            set
+            {
+                _startAngle = value;
+                UpdateVisual();
+            }
+        }
+
         /// <summary>
         /// Compose the out visual map.
         /// </summary>
index e8492afa36cdeccc12ba2540e712cf6da548394a..cba688e1b30d6d10039bad2137fd0625bd8e3f46 100755 (executable)
@@ -724,7 +724,7 @@ namespace Tizen.NUI
         /// <since_tizen> 3 </since_tizen>
         public static readonly int EndPosition = NDalic.GradientVisualEndPosition;
         /// <summary>
-        /// The center point of a radial gradient.
+        /// The center point of a radial and conic gradient.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
         public static readonly int Center = NDalic.GradientVisualCenter;
@@ -758,6 +758,11 @@ namespace Tizen.NUI
         /// </summary>
         [EditorBrowsable(EditorBrowsableState.Never)]
         public static readonly int StartOffset = NDalic.GradientVisualStartOffset;
+        /// <summary>
+        /// Sets the gradient's start angle of a conic gradiant.
+        /// </summary>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        public static readonly int StartAngle = NDalic.GradientVisualStartAngle;
     }
 
     /// <summary>