From: Eunki Hong Date: Sat, 7 Jun 2025 02:14:56 +0000 (+0900) Subject: [NUI] Reduce InnerShadow Visual Defect X-Git-Tag: submit/tizen/20250610.115806~1^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1bc89a134a06a04e0e56115b70133b18c11d50ab;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI] Reduce InnerShadow Visual Defect Let we extents inner shadow's shadow width to reduce visual defect, and reduce visual defects. Signed-off-by: Eunki Hong --- diff --git a/src/Tizen.NUI/src/public/ViewProperty/InnerShadow.cs b/src/Tizen.NUI/src/public/ViewProperty/InnerShadow.cs index 2a959da80..5fab96946 100755 --- a/src/Tizen.NUI/src/public/ViewProperty/InnerShadow.cs +++ b/src/Tizen.NUI/src/public/ViewProperty/InnerShadow.cs @@ -148,24 +148,25 @@ namespace Tizen.NUI /// internal static float CalculateShadowWidthByExtents(UIExtents insetExtents, float blurRadius) { - return Math.Max(insetExtents.Start, Math.Max(insetExtents.End, Math.Max(insetExtents.Top, insetExtents.Bottom))) + blurRadius; + // Extra margin due to shadow alpha blending. + const float margin = 1.0f; + return Math.Max(insetExtents.Start, Math.Max(insetExtents.End, Math.Max(insetExtents.Top, insetExtents.Bottom))) + (blurRadius + margin) * 2.0f; } internal static Vector2 CalculateOffsetByExtents(UIExtents insetExtents) { // Offset from center of view. return new Vector2((insetExtents.Start - insetExtents.End) * 0.5f, (insetExtents.Top - insetExtents.Bottom) * 0.5f); } - internal static Vector2 CalculateExtraSizeByExtents(UIExtents insetExtents, float shadowWidth) + internal static Vector2 CalculateExtraSizeByExtents(UIExtents insetExtents, float shadowWidth, float blurRadius) { - const float margin = 0.5f; - return new Vector2(shadowWidth * 2.0f - insetExtents.Start - insetExtents.End + 2.0f * margin, shadowWidth * 2.0f - insetExtents.Top - insetExtents.Bottom + 2.0f * margin); + return new Vector2(shadowWidth * 2.0f - insetExtents.Start - insetExtents.End - blurRadius * 2.0f, shadowWidth * 2.0f - insetExtents.Top - insetExtents.Bottom - blurRadius * 2.0f); } internal static InnerShadow GenerateInnerShadowByExtents(UIExtents insetExtents, float blurRadius, Color color, ColorVisualCutoutPolicyType cutoutPolicy) { var shadowWidth = CalculateShadowWidthByExtents(insetExtents, blurRadius); var offset = CalculateOffsetByExtents(insetExtents); - var extents = CalculateExtraSizeByExtents(insetExtents, shadowWidth); + var extents = CalculateExtraSizeByExtents(insetExtents, shadowWidth, blurRadius); return new InnerShadow(shadowWidth, blurRadius, cutoutPolicy, color, offset, extents); } diff --git a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/InnerShadowSample.cs b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/InnerShadowSample.cs index 59ad96d78..96ecaabc4 100755 --- a/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/InnerShadowSample.cs +++ b/test/Tizen.NUI.Samples/Tizen.NUI.Samples/Samples/InnerShadowSample.cs @@ -17,10 +17,11 @@ namespace Tizen.NUI.Samples }; const float viewGap = 24.0f; - const float defaultCornerRadius = 16.0f / 320.0f; + const float defaultCornerRadius = 16.0f; const float defaultViewSizeWidth = 400.0f; const float defaultViewSizeHeight = 200.0f; const float defaultBorderlineWidth = 10.0f; + const float defaultInnerShadowExtents = 20.0f; const float defaultInnerShadowBlurRadius = 16.0f; const float defaultShadowBlurRadius = 24.0f; @@ -32,17 +33,18 @@ namespace Tizen.NUI.Samples static private readonly UIExtents[] shadowExtentsList = new UIExtents[] { // begin, end, top, bottom - new UIExtents(defaultBorderlineWidth * 2.0f, 0.0f, defaultBorderlineWidth * 2.0f, 0.0f), - new UIExtents(0.0f, defaultBorderlineWidth * 2.0f, 0.0f, defaultBorderlineWidth * 2.0f), - new UIExtents(defaultBorderlineWidth * 2.0f, 0.0f), - new UIExtents(0.0f, defaultBorderlineWidth * 2.0f), - new UIExtents(defaultBorderlineWidth * 2.0f), - new UIExtents(defaultBorderlineWidth * 4.0f), - new UIExtents(defaultBorderlineWidth * 4.0f, 0.0f, 0.0f, 0.0f), - new UIExtents(0.0f, defaultBorderlineWidth * 4.0f, 0.0f, 0.0f), - new UIExtents(0.0f, 0.0f, defaultBorderlineWidth * 4.0f, 0.0f), - new UIExtents(0.0f, 0.0f, 0.0f, defaultBorderlineWidth * 4.0f), + new UIExtents(defaultInnerShadowExtents, -defaultInnerShadowExtents, defaultInnerShadowExtents, -defaultInnerShadowExtents), + new UIExtents(-defaultInnerShadowExtents, defaultInnerShadowExtents, -defaultInnerShadowExtents, defaultInnerShadowExtents), + new UIExtents(defaultInnerShadowExtents, -defaultInnerShadowExtents), + new UIExtents(-defaultInnerShadowExtents, defaultInnerShadowExtents), + new UIExtents(defaultInnerShadowExtents), + new UIExtents(defaultInnerShadowExtents * 2.0f), + new UIExtents(defaultInnerShadowExtents * 2.0f, 0.0f, 0.0f, 0.0f), + new UIExtents(0.0f, defaultInnerShadowExtents * 2.0f, 0.0f, 0.0f), + new UIExtents(0.0f, 0.0f, defaultInnerShadowExtents * 2.0f, 0.0f), + new UIExtents(0.0f, 0.0f, 0.0f, defaultInnerShadowExtents * 2.0f), new UIExtents(0.0f), + new UIExtents(-defaultInnerShadowBlurRadius * 0.5f), }; uint extentsIndex; @@ -99,7 +101,7 @@ namespace Tizen.NUI.Samples else if(e.Key.KeyPressedName == "3") { cornerRadius += defaultCornerRadius; - if(cornerRadius > 0.5001f) + if(cornerRadius > 160.0001f) { cornerRadius = defaultCornerRadius; cornerSquareness = 0.6f - cornerSquareness; @@ -181,7 +183,7 @@ namespace Tizen.NUI.Samples BorderlineOffset = -0.875f, CornerRadius = cornerRadius, - CornerRadiusPolicy = VisualTransformPolicyType.Relative, + CornerRadiusPolicy = VisualTransformPolicyType.Absolute, CornerSquareness = cornerSquareness, };