Merge remote-tracking branch 'origin/master' into tizen
authorTizenAPI-Bot <tizenapi@samsung.com>
Wed, 25 Jan 2023 15:08:34 +0000 (15:08 +0000)
committerTizenAPI-Bot <tizenapi@samsung.com>
Wed, 25 Jan 2023 15:08:34 +0000 (15:08 +0000)
82 files changed:
.github/CODEOWNERS
packaging/csapi-tizenfx.spec
packaging/version.txt
src/Tizen.Applications.Common/Tizen.Applications/CoreApplication.cs
src/Tizen.NUI/src/internal/Interop/Interop.Application.cs
src/Tizen.NUI/src/public/Application/NUIApplication.cs
src/Tizen.NUI/src/public/BaseComponents/TextField.cs
src/Tizen.NUI/src/public/Window/BorderWindow.cs
test/Tizen.NUI.PerformanceTest/PerformanceTest.cs
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-1.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-10.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-11.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-12.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-13.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-14.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-15.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-16.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-17.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-18.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-19.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-2.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-20.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-21.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-22.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-23.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-24.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-25.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-26.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-27.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-28.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-29.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-3.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-30.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-31.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-32.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-33.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-34.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-35.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-36.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-37.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-38.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-39.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-4.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-40.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-41.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-42.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-43.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-44.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-45.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-46.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-47.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-48.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-49.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-5.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-50.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-51.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-52.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-53.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-6.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-7.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-8.jpg [deleted file]
test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-9.jpg [deleted file]
test/Tizen.NUI.Scene3D.Sample/Scene3DSample.cs [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.code-workspace [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.csproj [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_AO.jpg [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_albedo.jpg [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_emissive.jpg [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_metalRoughness.jpg [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_normal.jpg [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/Irradiance.ktx [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/Radiance.ktx [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/forest_diffuse_cubemap.png [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/forest_specular_cubemap.png [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/papermill_E_diffuse-64.ktx [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/image/papermill_pmrem.ktx [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated.gltf [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated0.bin [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.bin [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.gltf [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/shared/res/Tizen.NUI.Scene3D.Sample.png [new file with mode: 0644]
test/Tizen.NUI.Scene3D.Sample/tizen-manifest.xml [new file with mode: 0755]

index daf2a0a..01661ce 100644 (file)
@@ -2,22 +2,22 @@
 # Add members who own directories and files for automatic Pull Request Reviewers.
 
 # NUI Code Owners List
-/src/Tizen.NUI/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI.Components/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/public/BaseComponents/Text*.cs @wonrst @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/public/Xaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/public/XamlBinding/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/internal/Xaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/internal/XamlBinding/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/src/Tizen.NUI/src/internal/EXaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/NUITestSample/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/NUITizenGallery/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.ComponentApplication/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.Samples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.SeamlessSamples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.StyleGuide/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.Tests/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.WebViewTest/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
-/test/Tizen.NUI.WindowSystem.Samples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst
+/src/Tizen.NUI/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI.Components/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/public/BaseComponents/Text*.cs @wonrst @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/public/Xaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/public/XamlBinding/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/internal/Xaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/internal/XamlBinding/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/src/Tizen.NUI/src/internal/EXaml/ @AdunFang @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/NUITestSample/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/NUITizenGallery/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.ComponentApplication/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.Samples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.SeamlessSamples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.StyleGuide/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.Tests/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.WebViewTest/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
+/test/Tizen.NUI.WindowSystem.Samples/ @hyunjushin @dongsug-song @Seoyeon2Kim @taehyub @jaehyun0cho @everLEEst @rabbitfor @hinohie
 
 # Please Add more Code Owners below.
index 1246c1b..660ac44 100644 (file)
@@ -1,8 +1,8 @@
 # Auto-generated from csapi-tizenfx.spec.in by makespec.sh
 
 %define TIZEN_NET_API_VERSION 11
-%define TIZEN_NET_RPM_VERSION 11.0.0.17660+nui22209
-%define TIZEN_NET_NUGET_VERSION 11.0.0.17660
+%define TIZEN_NET_RPM_VERSION 11.0.0.999+nui22210
+%define TIZEN_NET_NUGET_VERSION 11.0.0.99999
 
 %define DOTNET_ASSEMBLY_PATH /usr/share/dotnet.tizen/framework
 %define DOTNET_ASSEMBLY_DUMMY_PATH %{DOTNET_ASSEMBLY_PATH}/ref
index 4ff0a67..3f39f79 100755 (executable)
@@ -6,4 +6,4 @@ RPM_VERSION=11.0.0.999
 NUGET_VERSION=11.0.0.99999
 
 # RPM Version Suffix
-RPM_VERSION_SUFFIX=nui22209
+RPM_VERSION_SUFFIX=nui22210
index 7abee62..0e83f37 100644 (file)
@@ -113,7 +113,7 @@ namespace Tizen.Applications
         /// The backend instance.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
-        protected ICoreBackend Backend { get { return _backend; } }      
+        protected ICoreBackend Backend { get { return _backend; } }
 
         /// <summary>
         /// Runs the application's main loop.
@@ -171,7 +171,7 @@ namespace Tizen.Applications
             if (_task != null)
             {
                 TizenUISynchronizationContext.Initialize();
-            }            
+            }
 
             if (!GlobalizationMode.Invariant)
             {
@@ -379,11 +379,6 @@ namespace Tizen.Applications
             if (cultureInfo != null)
             {
                 CultureInfo.CurrentCulture = cultureInfo;
-                Thread thread = new Thread(() =>
-                {
-                    Log.Info(LogTag, "Locale: " + locale.ToLower(cultureInfo) + ", " + locale.ToUpper(cultureInfo));
-                });
-                thread.Start();
             }
             else
             {
@@ -397,11 +392,6 @@ namespace Tizen.Applications
             if (cultureInfo != null)
             {
                 CultureInfo.CurrentUICulture = cultureInfo;
-                Thread thread = new Thread(() =>
-                {
-                    Log.Info(LogTag, "Locale: " + locale.ToLower(cultureInfo) + ", " + locale.ToUpper(cultureInfo));
-                });
-                thread.Start();
             }
             else
             {
index a258523..866f891 100755 (executable)
@@ -94,6 +94,9 @@ namespace Tizen.NUI
 
             [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_Application_New__SWIG_6")]
             public static extern global::System.IntPtr New(int jarg1, string jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, bool jarg7);
+
+            [global::System.Runtime.InteropServices.DllImport(NDalicPINVOKE.Lib, EntryPoint = "CSharp_Dali_GetScreenSize")]
+            public static extern global::System.IntPtr GetScreenSize();
         }
     }
 }
index e83d75c..3d635d2 100755 (executable)
@@ -475,6 +475,18 @@ namespace Tizen.NUI
         }
 
         /// <summary>
+        /// Gets the screen size
+        /// </summary>
+        /// <returns>Screen size</returns>
+        [EditorBrowsable(EditorBrowsableState.Never)]
+        static public Size GetScreenSize()
+        {
+            var ret = new Size(Interop.Application.GetScreenSize(), true);
+            if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
+            return ret;
+        }
+
+        /// <summary>
         /// Overrides this method if you want to handle behavior.
         /// </summary>
         /// <since_tizen> 3 </since_tizen>
index bda1758..f97b826 100755 (executable)
@@ -2485,11 +2485,9 @@ namespace Tizen.NUI.BaseComponents
         {
             if (disposed)
             {
-                DisposeQueue.Instance.Add(this);
                 return;
             }
 
-
             internalPlaceholderTextColor?.Dispose();
             internalPrimaryCursorColor?.Dispose();
             internalSecondaryCursorColor?.Dispose();
index 0ec8ffe..7195468 100755 (executable)
@@ -55,7 +55,7 @@ namespace Tizen.NUI
         // for config
         private Size2D minSize = null;
         private Size2D maxSize = null;
-        private uint borderLineThickness;
+        private uint borderLineThickness = 0;
         private BorderResizePolicyType borderResizePolicy = BorderResizePolicyType.Free;
         #endregion //Fields
 
@@ -137,8 +137,12 @@ namespace Tizen.NUI
         {
             if (borderInterface != null)
             {
+                bool isNeedResizeByLine = false;
+                bool isNeedResizeByBorder = false;
+                using var val = new Uint16Pair(Interop.Window.GetSize(SwigCPtr), true);
                 if (borderLineThickness != borderInterface.BorderLineThickness)
                 {
+                    isNeedResizeByLine = true;
                     int diffBorderLine = (int)borderInterface.BorderLineThickness - (int)borderLineThickness;
                     borderLineThickness = borderInterface.BorderLineThickness;
 
@@ -156,10 +160,8 @@ namespace Tizen.NUI
                         }
                     }
 
-                    using var val = new Uint16Pair(Interop.Window.GetSize(SwigCPtr), true);
                     val.SetWidth((ushort)(val.GetWidth() + diffBorderLine * 2));
                     val.SetHeight((ushort)(val.GetHeight() + diffBorderLine * 2));
-                    Interop.Window.SetSize(SwigCPtr, Uint16Pair.getCPtr(val));
                 }
 
                 float height = 0;
@@ -167,21 +169,27 @@ namespace Tizen.NUI
                 if (hasBottomView) height += bottomView.SizeHeight;
                 if (height != borderHeight)
                 {
+                    isNeedResizeByBorder = true;
                     float diff = height - borderHeight;
                     borderHeight = height;
-                    WindowSize = new Size2D(WindowSize.Width, WindowSize.Height + (int)(diff));
+                    val.SetHeight((ushort)(val.GetHeight() + diff));
                 }
 
-                if (minSize != borderInterface.MinSize)
+                if (isNeedResizeByLine == true || isNeedResizeByBorder == true)
                 {
-                    using Size2D mimimumSize = new Size2D((borderInterface.MinSize?.Width + (int)borderInterface.BorderLineThickness * 2 ?? 0), (borderInterface.MinSize?.Height ?? 0) + (int)(borderHeight + borderInterface.BorderLineThickness * 2));
+                    Interop.Window.SetSize(SwigCPtr, Uint16Pair.getCPtr(val));
+                }
+
+                if (minSize != borderInterface.MinSize || (borderInterface.MinSize != null && isNeedResizeByLine == true))
+                {
+                    using Size2D mimimumSize = new Size2D((borderInterface.MinSize?.Width + (int)borderLineThickness * 2 ?? 0), (borderInterface.MinSize?.Height ?? 0) + (int)(borderHeight + borderLineThickness * 2));
                     SetMimimumSize(mimimumSize);
                     minSize = borderInterface.MinSize;
                 }
                 
-                if (maxSize != borderInterface.MaxSize)
+                if (maxSize != borderInterface.MaxSize || (borderInterface.MaxSize != null && isNeedResizeByLine == true))
                 {
-                    using Size2D maximumSize = new Size2D((borderInterface.MaxSize?.Width + (int)borderInterface.BorderLineThickness * 2 ?? 0), (borderInterface.MaxSize?.Height ?? 0) + (int)(borderHeight + borderInterface.BorderLineThickness * 2));
+                    using Size2D maximumSize = new Size2D((borderInterface.MaxSize?.Width + (int)borderLineThickness * 2 ?? 0), (borderInterface.MaxSize?.Height ?? 0) + (int)(borderHeight + borderLineThickness * 2));
                     SetMaximumSize(maximumSize);
                     maxSize = borderInterface.MaxSize;
                 }
@@ -246,7 +254,6 @@ namespace Tizen.NUI
             }
             this.borderInterface = borderInterface;
             this.borderCloseDelegate = borderCloseDelegate;
-            borderLineThickness = borderInterface.BorderLineThickness;
 
             GetDefaultLayer().Name = "OriginalRootLayer";
 
@@ -295,7 +302,11 @@ namespace Tizen.NUI
                 else
                 {
                     borderInterface.OnMaximize(IsMaximized());
-                    WindowSize += new Size2D((int)borderInterface.BorderLineThickness * 2, (int)(borderHeight + borderInterface.BorderLineThickness * 2));
+                    if (borderHeight > 0)
+                    {
+                        borderLineThickness = borderInterface.BorderLineThickness;
+                        WindowSize += new Size2D((int)borderLineThickness * 2, (int)(borderHeight + borderLineThickness * 2));
+                    }
                 }
 
                 // If it is BorderResizePolicyType.KeepRatio type, it will be resized according to the ratio.
@@ -337,7 +348,7 @@ namespace Tizen.NUI
                 BackgroundColor = Color.Transparent,
             };
 
-            ushort padding = (ushort) borderInterface.BorderLineThickness;
+            ushort padding = (ushort) borderLineThickness;
             borderView = new BorderView()
             {
                 GrabTouchAfterLeave = true,
@@ -406,7 +417,7 @@ namespace Tizen.NUI
                 direction = BorderDirection.BottomLeft;
             }
             // check bottom right corner
-            else if (xPosition > WindowSize.Width + (float)(borderInterface.BorderLineThickness * 2) - borderInterface.TouchThickness && yPosition > WindowSize.Height + borderHeight - borderInterface.TouchThickness)
+            else if (xPosition > WindowSize.Width + (float)(borderLineThickness * 2) - borderInterface.TouchThickness && yPosition > WindowSize.Height + borderHeight - borderInterface.TouchThickness)
             {
                 direction = BorderDirection.BottomRight;
             }
@@ -416,7 +427,7 @@ namespace Tizen.NUI
                 direction = BorderDirection.TopLeft;
             }
             // check top right corner
-            else if (xPosition > WindowSize.Width + (float)(borderInterface.BorderLineThickness * 2) - borderInterface.TouchThickness && yPosition < borderInterface.TouchThickness)
+            else if (xPosition > WindowSize.Width + (float)(borderLineThickness * 2) - borderInterface.TouchThickness && yPosition < borderInterface.TouchThickness)
             {
                 direction = BorderDirection.TopRight;
             }
@@ -426,12 +437,12 @@ namespace Tizen.NUI
                 direction = BorderDirection.Left;
             }
             // check right side
-            else if (xPosition > WindowSize.Width + (float)(borderInterface.BorderLineThickness * 2) - borderInterface.TouchThickness)
+            else if (xPosition > WindowSize.Width + (float)(borderLineThickness * 2) - borderInterface.TouchThickness)
             {
                 direction = BorderDirection.Right;
             }
             // check bottom side
-            else if (yPosition > WindowSize.Height + borderHeight + borderInterface.BorderLineThickness - borderInterface.TouchThickness)
+            else if (yPosition > WindowSize.Height + borderHeight + borderLineThickness - borderInterface.TouchThickness)
             {
                 direction = BorderDirection.Bottom;
             }
@@ -511,9 +522,9 @@ namespace Tizen.NUI
 
             if (isMaximized == false)
             {
-                width = (float)(borderInterface.BorderLineThickness * 2);
-                height += (float)(borderInterface.BorderLineThickness * 2);
-                y += borderInterface.BorderLineThickness;
+                width = (float)(borderLineThickness * 2);
+                height += (float)(borderLineThickness * 2);
+                y += borderLineThickness;
             }
 
             Interop.ActorInternal.SetSize(GetBorderWindowRootLayer().SwigCPtr, resizeWidth, resizeHeight);
@@ -541,7 +552,7 @@ namespace Tizen.NUI
                 Interop.ActorInternal.SetParentOrigin(borderWindowBottomLayer.SwigCPtr, topCentor.SwigCPtr);
                 Interop.Actor.SetAnchorPoint(borderWindowBottomLayer.SwigCPtr, topCentor.SwigCPtr);
                 Interop.Actor.Add(rootLayer.SwigCPtr, borderWindowBottomLayer.SwigCPtr);
-                Interop.ActorInternal.SetSize(borderWindowBottomLayer.SwigCPtr, WindowSize.Width + (float)(borderInterface.BorderLineThickness * 2), WindowSize.Height + (float)(borderInterface.BorderLineThickness * 2));
+                Interop.ActorInternal.SetSize(borderWindowBottomLayer.SwigCPtr, WindowSize.Width + (float)(borderLineThickness * 2), WindowSize.Height + (float)(borderLineThickness * 2));
                 borderWindowBottomLayer.SetWindow(this);
                 borderWindowBottomLayer.LowerToBottom();
 
@@ -560,9 +571,9 @@ namespace Tizen.NUI
                 Interop.ActorInternal.SetParentOrigin(borderWindowRootLayer.SwigCPtr, topCentor.SwigCPtr);
                 Interop.Actor.SetAnchorPoint(borderWindowRootLayer.SwigCPtr, topCentor.SwigCPtr);
                 Interop.Actor.Add(rootLayer.SwigCPtr, borderWindowRootLayer.SwigCPtr);
-                Interop.ActorInternal.SetSize(borderWindowRootLayer.SwigCPtr, WindowSize.Width, WindowSize.Height - borderHeight - borderInterface.BorderLineThickness * 2);
+                Interop.ActorInternal.SetSize(borderWindowRootLayer.SwigCPtr, WindowSize.Width, WindowSize.Height - borderHeight - borderLineThickness * 2);
                 float height = (hasTopView == true) ? topView.SizeHeight : 0;
-                Interop.ActorInternal.SetPosition(borderWindowRootLayer.SwigCPtr, 0, height + borderInterface.BorderLineThickness);
+                Interop.ActorInternal.SetPosition(borderWindowRootLayer.SwigCPtr, 0, height + borderLineThickness);
                 using PropertyValue propertyValue = new Tizen.NUI.PropertyValue((int)Tizen.NUI.ClippingModeType.ClipToBoundingBox);
                 Tizen.NUI.Object.SetProperty(borderWindowRootLayer.SwigCPtr, Tizen.NUI.BaseComponents.View.Property.ClippingMode, propertyValue);
 
@@ -584,8 +595,8 @@ namespace Tizen.NUI
         {
             if (isBorderWindow == true)
             {
-                var height = (ushort)(size.GetHeight() + borderHeight + borderInterface.BorderLineThickness * 2);
-                var width = (ushort)(size.GetWidth() + borderInterface.BorderLineThickness * 2);
+                var height = (ushort)(size.GetHeight() + borderHeight + borderLineThickness * 2);
+                var width = (ushort)(size.GetWidth() + borderLineThickness * 2);
                 size.SetHeight(height);
                 size.SetWidth(width);
             }
@@ -595,7 +606,7 @@ namespace Tizen.NUI
         {
             if (isBorderWindow == true && !(borderInterface.OverlayMode == true && IsMaximized() == true))
             {
-                var borderLine = IsMaximized() == true ? 0 : borderInterface.BorderLineThickness * 2;
+                var borderLine = IsMaximized() == true ? 0 : borderLineThickness * 2;
                 var height = (ushort)(size.GetHeight() - borderHeight - borderLine);
                 var width = (ushort)(size.GetWidth() - borderLine);
                 size.SetHeight(height);
index ed2f311..fc1fd49 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2022 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2023 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.
@@ -23,11 +23,15 @@ using Tizen.NUI.Constants;
 
 class PerformanceTestExample : NUIApplication
 {
-    const uint ROWS_COUNT = 32;
-    const uint COLUMNS_COUNT = 32;
+    const uint ROWS_COUNT = 40;
+    const uint COLUMNS_COUNT = 40;
     const uint TOTAL_COLUMNS_COUNT = 80;
     const uint DURATION_PER_COLUMNS = 50; // miliseconds
-    const float VIEW_MARGIN_RATE = 0.1f;
+    // Increase animation time cause OnTick time can be delayed.
+    const uint DURATION_OF_ANIMATION = (DURATION_PER_COLUMNS*(COLUMNS_COUNT * 4 / 3)); // miliseconds.
+    
+
+    const float VIEW_MARGIN_RATE = 0.2f;
     enum ViewTestType{
         TEST_TYPE_COLOR = 0,            ///< Test with simple color
         TEST_TYPE_IMAGE,                ///< Test with simple image
@@ -58,59 +62,7 @@ class PerformanceTestExample : NUIApplication
 
     static string IMAGE_DIR = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "image/";
     readonly static string[] IMAGE_PATH = {
-    IMAGE_DIR + "gallery-medium-1.jpg",
-    IMAGE_DIR + "gallery-medium-2.jpg",
-    IMAGE_DIR + "gallery-medium-3.jpg",
-    IMAGE_DIR + "gallery-medium-4.jpg",
-    IMAGE_DIR + "gallery-medium-5.jpg",
-    IMAGE_DIR + "gallery-medium-6.jpg",
-    IMAGE_DIR + "gallery-medium-7.jpg",
-    IMAGE_DIR + "gallery-medium-8.jpg",
-    IMAGE_DIR + "gallery-medium-9.jpg",
-    IMAGE_DIR + "gallery-medium-10.jpg",
-    IMAGE_DIR + "gallery-medium-11.jpg",
-    IMAGE_DIR + "gallery-medium-12.jpg",
-    IMAGE_DIR + "gallery-medium-13.jpg",
-    IMAGE_DIR + "gallery-medium-14.jpg",
-    IMAGE_DIR + "gallery-medium-15.jpg",
-    IMAGE_DIR + "gallery-medium-16.jpg",
-    IMAGE_DIR + "gallery-medium-17.jpg",
-    IMAGE_DIR + "gallery-medium-18.jpg",
-    IMAGE_DIR + "gallery-medium-19.jpg",
-    IMAGE_DIR + "gallery-medium-20.jpg",
-    IMAGE_DIR + "gallery-medium-21.jpg",
-    IMAGE_DIR + "gallery-medium-22.jpg",
-    IMAGE_DIR + "gallery-medium-23.jpg",
-    IMAGE_DIR + "gallery-medium-24.jpg",
-    IMAGE_DIR + "gallery-medium-25.jpg",
-    IMAGE_DIR + "gallery-medium-26.jpg",
-    IMAGE_DIR + "gallery-medium-27.jpg",
-    IMAGE_DIR + "gallery-medium-28.jpg",
-    IMAGE_DIR + "gallery-medium-29.jpg",
-    IMAGE_DIR + "gallery-medium-30.jpg",
-    IMAGE_DIR + "gallery-medium-31.jpg",
-    IMAGE_DIR + "gallery-medium-32.jpg",
-    IMAGE_DIR + "gallery-medium-33.jpg",
-    IMAGE_DIR + "gallery-medium-34.jpg",
-    IMAGE_DIR + "gallery-medium-35.jpg",
-    IMAGE_DIR + "gallery-medium-36.jpg",
-    IMAGE_DIR + "gallery-medium-37.jpg",
-    IMAGE_DIR + "gallery-medium-38.jpg",
-    IMAGE_DIR + "gallery-medium-39.jpg",
-    IMAGE_DIR + "gallery-medium-40.jpg",
-    IMAGE_DIR + "gallery-medium-41.jpg",
-    IMAGE_DIR + "gallery-medium-42.jpg",
-    IMAGE_DIR + "gallery-medium-43.jpg",
-    IMAGE_DIR + "gallery-medium-44.jpg",
-    IMAGE_DIR + "gallery-medium-45.jpg",
-    IMAGE_DIR + "gallery-medium-46.jpg",
-    IMAGE_DIR + "gallery-medium-47.jpg",
-    IMAGE_DIR + "gallery-medium-48.jpg",
-    IMAGE_DIR + "gallery-medium-49.jpg",
-    IMAGE_DIR + "gallery-medium-50.jpg",
-    IMAGE_DIR + "gallery-medium-51.jpg",
-    IMAGE_DIR + "gallery-medium-52.jpg",
-    IMAGE_DIR + "gallery-medium-53.jpg",
+        IMAGE_DIR + "gallery-small-1.jpg",
     };
 
     class Statistic
@@ -145,7 +97,7 @@ class PerformanceTestExample : NUIApplication
             if(vcnt == 0)return 0.0;
             v.Sort();
             double trimVsum = 0;
-            int removedCnt = (int)(vcnt * trimRate * 0.5);
+            int removedCnt = (int)(vcnt * trimRate * 0.5); // floor
             int trimVcnt = vcnt - removedCnt * 2;
             if(trimVcnt == 0)
             {
@@ -167,9 +119,11 @@ class PerformanceTestExample : NUIApplication
     ViewTestType mTestType = ViewTestType.TEST_TYPE_COLOR;
 
     // To keep reference count.
-    global::System.Collections.Generic.LinkedList<View> mViewList;
+    global::System.Collections.Generic.LinkedList<View> mCreatingControlList;
+    global::System.Collections.Generic.LinkedList<View> mRemovingControlList;
     global::System.Collections.Generic.LinkedList<Timer> mTimerList;
-    global::System.Collections.Generic.LinkedList<Animation> mAnimationList;
+    global::System.Collections.Generic.LinkedList<Animation> mCreatingAnimationList;
+    global::System.Collections.Generic.LinkedList<Animation> mRemovingAnimationList;
 
     uint mColumnsCount = ROWS_COUNT;
     uint mRowsCount = COLUMNS_COUNT;
@@ -177,7 +131,10 @@ class PerformanceTestExample : NUIApplication
     uint mDurationPerColumns = DURATION_PER_COLUMNS; // miliseconds
 
     uint tickCount;
-    uint deleteCount;
+    
+    uint mCreateCount = 0u;
+    uint mDeleteCount = 0u;
+    uint mImageCount  = 0u;
 
     DateTime appStartTime;
     DateTime appEndTime;
@@ -185,9 +142,11 @@ class PerformanceTestExample : NUIApplication
     {
         appStartTime = DateTime.Now;
 
-        mViewList  = new global::System.Collections.Generic.LinkedList<View>();
+        mCreatingControlList  = new global::System.Collections.Generic.LinkedList<View>();
+        mRemovingControlList  = new global::System.Collections.Generic.LinkedList<View>();
         mTimerList = new global::System.Collections.Generic.LinkedList<Timer>();
-        mAnimationList = new global::System.Collections.Generic.LinkedList<Animation>();
+        mCreatingAnimationList = new global::System.Collections.Generic.LinkedList<Animation>();
+        mRemovingAnimationList = new global::System.Collections.Generic.LinkedList<Animation>();
 
         mWindow = Window.Instance;
         mWindow.BackgroundColor = Color.White;
@@ -200,7 +159,7 @@ class PerformanceTestExample : NUIApplication
         mTimerList.AddLast(timer);
 
         tickCount = 0;
-        deleteCount = 0;
+        mDeleteCount = 0;
 
         mCreationStatistic = new Statistic();
 
@@ -210,8 +169,8 @@ class PerformanceTestExample : NUIApplication
     }
     bool OnTick(object o, EventArgs e)
     {
-        tickCount++;
-        if(tickCount < mTotalColumnsCount * (int)ViewTestType.TEST_TYPE_MAX)
+        CreateColumnView();
+        if(mCreateCount < mColumnsCount)
         {
             // Start next phase.
             Timer timer = new Timer(mDurationPerColumns);
@@ -220,6 +179,10 @@ class PerformanceTestExample : NUIApplication
 
             timer.Start();
         }
+        return false;
+    }
+    void CreateColumnView()
+    {
         DateTime startTime;
         DateTime endTime;
 
@@ -229,7 +192,11 @@ class PerformanceTestExample : NUIApplication
         {
             BackgroundColor = Color.Blue,
             Size = new Size(mSize.X, mWindowSize.Y),
-            Position = new Position(mWindowSize.X, 0.0f),
+            Position = new Position(mSize.X * (mCreateCount % mColumnsCount), -mWindowSize.Y),
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
 
         for(int i = 0; i < mRowsCount; ++i)
@@ -285,28 +252,28 @@ class PerformanceTestExample : NUIApplication
         }
 
         mWindow.Add(columnView);
-        mViewList.AddLast(columnView);
+        mCreatingControlList.AddLast(columnView);
 
-        // Add move animation
-        Animation animation = new Animation((int)(mDurationPerColumns * (mColumnsCount + 1)));
-        animation.AnimateTo(columnView, "PositionX", -mSize.X);
-        animation.Finished += OnAnimationFinished;
-        animation.Play();
+        // Add appearing animation
+        Animation appearingAnimation = new Animation((int)(DURATION_OF_ANIMATION));
+        appearingAnimation.AnimateTo(columnView, "PositionY", 0.0f);
+        appearingAnimation.Finished += OnAppearAnimationFinished;
+        appearingAnimation.Play();
 
-        mAnimationList.AddLast(animation);
+        mCreatingAnimationList.AddLast(appearingAnimation);
 
         endTime = DateTime.Now;
 
         mCreationStatistic.add((endTime - startTime).TotalMilliseconds);
 
-        if(tickCount % mTotalColumnsCount == 0)
+        mCreateCount++;
+
+        if(mCreateCount % mTotalColumnsCount == 0)
         {
             Tizen.Log.Error("NUI.PerfNew", $"Average of creation {mRowsCount} NUI({TestTypeString(mTestType)}) : {mCreationStatistic.getTrimedAverage()} ms\n");
             mCreationStatistic.clear();
             mTestType = (ViewTestType)(((int)(mTestType) + 1) % (int)(ViewTestType.TEST_TYPE_MAX));
         }
-
-        return false;
     }
 
     void OnKeyEvent(object source, Window.KeyEventArgs e)
@@ -329,27 +296,54 @@ class PerformanceTestExample : NUIApplication
         }
     }
 
-    void OnAnimationFinished(object o, EventArgs e)
+    void OnAppearAnimationFinished(object o, EventArgs e)
     {
-        // We can assume that front of mViewLIst must be deleted.
-        mViewList.First.Value.Unparent();
-        mViewList.First.Value.Dispose();
-        mViewList.RemoveFirst();
+        // We can assume that front of mControlList must be disappearing.
+        var currentControl = mCreatingControlList.First.Value;
+        mCreatingControlList.RemoveFirst();
 
         // Dereference timer safety
-        mTimerList.First.Value.Dispose();
-        mTimerList.RemoveFirst();
+        if(mTimerList.Count > 0)
+        {
+            mTimerList.First.Value.Dispose();
+            mTimerList.RemoveFirst();
+        }
 
         // Dereference animation safety
-        mAnimationList.RemoveFirst();
+        mCreatingAnimationList.RemoveFirst();
+
+        mRemovingControlList.AddLast(currentControl);
 
-        deleteCount++;
+        if(mCreateCount < mTotalColumnsCount * (int)(ViewTestType.TEST_TYPE_MAX))
+        {
+            CreateColumnView();
+        }
 
-        Animation me = o as Animation;
-        me.Dispose();
+        // Add disappearing animation
+        Animation disappearingAnimation = new Animation((int)(DURATION_OF_ANIMATION));
+        disappearingAnimation.AnimateTo(currentControl, "PositionY", (float)mWindowSize.Y);
+        disappearingAnimation.Finished += OnDisappearAnimationFinished;
+        disappearingAnimation.Play();
+
+        mRemovingAnimationList.AddLast(disappearingAnimation);
+    }
+    void OnDisappearAnimationFinished(object o, EventArgs e)
+    {
+        // We can assume that front of mControlList must be disappearing.
+        var currentControl = mRemovingControlList.First.Value;
+        mRemovingControlList.RemoveFirst();
+
+        // We can assume that front of mViewLIst must be deleted.
+        currentControl.Unparent();
+        currentControl.DisposeRecursively();
+
+        // Dereference animation safety
+        mRemovingAnimationList.RemoveFirst();
+
+        mDeleteCount++;
 
         // If all views are deleted, quit this application. byebye~
-        if(deleteCount == mTotalColumnsCount * (int)ViewTestType.TEST_TYPE_MAX)
+        if(mDeleteCount == mTotalColumnsCount * (int)ViewTestType.TEST_TYPE_MAX)
         {
             appEndTime = DateTime.Now;
             Tizen.Log.Error("NUI.PerfNew", $"Duration of all app running time : {((appEndTime - appStartTime)).TotalMilliseconds} ms\n");
@@ -363,15 +357,22 @@ class PerformanceTestExample : NUIApplication
     {
         View bgView = new View(){
             BackgroundColor = Color.Yellow,
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
-    private int gImageCount = 0;
     private View CreateImage()
     {
         ImageView bgView = new ImageView(){
             BackgroundColor = Color.Yellow,
-            ResourceUrl = IMAGE_PATH[(gImageCount++) % (IMAGE_PATH.Length)],
+            ResourceUrl = IMAGE_PATH[(mImageCount++) % (IMAGE_PATH.Length)],
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
@@ -379,6 +380,10 @@ class PerformanceTestExample : NUIApplication
     {
         TextLabel bgView = new TextLabel(){
             Text = "Hello, World!",
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
@@ -388,6 +393,10 @@ class PerformanceTestExample : NUIApplication
             BackgroundColor = Color.Yellow,
             CornerRadius = 0.5f,
             CornerRadiusPolicy = VisualTransformPolicyType.Relative,
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
@@ -398,6 +407,10 @@ class PerformanceTestExample : NUIApplication
             BackgroundColor = Color.Yellow,
             BorderlineColor = Color.Red,
             BorderlineWidth = requiredBorderlineWidth,
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
@@ -409,12 +422,21 @@ class PerformanceTestExample : NUIApplication
             CornerRadiusPolicy = VisualTransformPolicyType.Relative,
             BorderlineColor = Color.Red,
             BorderlineWidth = requiredBorderlineWidth,
+
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
         };
         return bgView;
     }
     private View CreateBlurColor(float requiredBlurRadius)
     {
-        View bgView = new View();
+        View bgView = new View()
+        {
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
+        };
 
         using(PropertyMap map = new PropertyMap())
         {
@@ -429,7 +451,12 @@ class PerformanceTestExample : NUIApplication
     }
     private View CreateRoundedBlurColor(float requiredBlurRadius)
     {
-        View bgView = new View();
+        View bgView = new View()
+        {
+            ParentOrigin = Position.ParentOriginTopLeft,
+            PivotPoint = Position.PivotPointTopLeft,
+            PositionUsesPivotPoint = true,
+        };;
 
         using(PropertyMap map = new PropertyMap())
         {
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-1.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-1.jpg
deleted file mode 100644 (file)
index efc5634..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-1.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-10.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-10.jpg
deleted file mode 100644 (file)
index 21e3079..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-10.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-11.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-11.jpg
deleted file mode 100644 (file)
index e27b056..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-11.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-12.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-12.jpg
deleted file mode 100644 (file)
index 630e9e0..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-12.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-13.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-13.jpg
deleted file mode 100644 (file)
index b2dae1a..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-13.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-14.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-14.jpg
deleted file mode 100644 (file)
index 9e5a791..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-14.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-15.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-15.jpg
deleted file mode 100644 (file)
index 45939b8..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-15.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-16.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-16.jpg
deleted file mode 100644 (file)
index f0e4b31..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-16.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-17.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-17.jpg
deleted file mode 100644 (file)
index 394b4b1..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-17.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-18.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-18.jpg
deleted file mode 100644 (file)
index 4a24619..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-18.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-19.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-19.jpg
deleted file mode 100644 (file)
index b5bdc92..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-19.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-2.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-2.jpg
deleted file mode 100644 (file)
index 92bd7fe..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-2.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-20.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-20.jpg
deleted file mode 100644 (file)
index 81f4eae..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-20.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-21.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-21.jpg
deleted file mode 100644 (file)
index ec39511..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-21.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-22.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-22.jpg
deleted file mode 100644 (file)
index 98ef3fa..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-22.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-23.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-23.jpg
deleted file mode 100644 (file)
index 0df5854..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-23.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-24.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-24.jpg
deleted file mode 100644 (file)
index b69d5d1..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-24.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-25.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-25.jpg
deleted file mode 100644 (file)
index 5fcfe65..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-25.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-26.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-26.jpg
deleted file mode 100644 (file)
index fba2e85..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-26.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-27.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-27.jpg
deleted file mode 100644 (file)
index e8fd5a6..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-27.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-28.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-28.jpg
deleted file mode 100644 (file)
index 802eadc..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-28.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-29.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-29.jpg
deleted file mode 100644 (file)
index 3318f4d..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-29.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-3.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-3.jpg
deleted file mode 100644 (file)
index c4c17d0..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-3.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-30.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-30.jpg
deleted file mode 100644 (file)
index 4c6b8d7..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-30.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-31.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-31.jpg
deleted file mode 100644 (file)
index 9ff1347..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-31.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-32.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-32.jpg
deleted file mode 100644 (file)
index bd41b82..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-32.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-33.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-33.jpg
deleted file mode 100644 (file)
index 93bdda9..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-33.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-34.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-34.jpg
deleted file mode 100644 (file)
index e568294..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-34.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-35.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-35.jpg
deleted file mode 100644 (file)
index b0a98f8..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-35.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-36.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-36.jpg
deleted file mode 100644 (file)
index 870c423..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-36.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-37.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-37.jpg
deleted file mode 100644 (file)
index f68ce61..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-37.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-38.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-38.jpg
deleted file mode 100644 (file)
index 53839d6..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-38.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-39.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-39.jpg
deleted file mode 100644 (file)
index a31d424..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-39.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-4.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-4.jpg
deleted file mode 100644 (file)
index 8f2e163..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-4.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-40.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-40.jpg
deleted file mode 100644 (file)
index 1b5a294..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-40.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-41.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-41.jpg
deleted file mode 100644 (file)
index 5cd3e96..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-41.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-42.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-42.jpg
deleted file mode 100644 (file)
index c9c7992..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-42.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-43.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-43.jpg
deleted file mode 100644 (file)
index d4e0531..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-43.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-44.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-44.jpg
deleted file mode 100644 (file)
index eb9009b..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-44.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-45.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-45.jpg
deleted file mode 100644 (file)
index 8d2b329..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-45.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-46.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-46.jpg
deleted file mode 100644 (file)
index a1ac044..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-46.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-47.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-47.jpg
deleted file mode 100644 (file)
index 5417ae2..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-47.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-48.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-48.jpg
deleted file mode 100644 (file)
index b772566..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-48.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-49.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-49.jpg
deleted file mode 100644 (file)
index b3d7f68..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-49.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-5.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-5.jpg
deleted file mode 100644 (file)
index d19c445..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-5.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-50.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-50.jpg
deleted file mode 100644 (file)
index 7b391cd..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-50.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-51.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-51.jpg
deleted file mode 100644 (file)
index 21963c9..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-51.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-52.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-52.jpg
deleted file mode 100644 (file)
index 8359456..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-52.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-53.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-53.jpg
deleted file mode 100644 (file)
index c8400f7..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-53.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-6.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-6.jpg
deleted file mode 100644 (file)
index f5a1a18..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-6.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-7.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-7.jpg
deleted file mode 100644 (file)
index 36b4bbf..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-7.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-8.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-8.jpg
deleted file mode 100644 (file)
index d48ce75..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-8.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-9.jpg b/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-9.jpg
deleted file mode 100644 (file)
index a61fd25..0000000
Binary files a/test/Tizen.NUI.PerformanceTest/res/image/gallery-medium-9.jpg and /dev/null differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/Scene3DSample.cs b/test/Tizen.NUI.Scene3D.Sample/Scene3DSample.cs
new file mode 100644 (file)
index 0000000..f4123ee
--- /dev/null
@@ -0,0 +1,245 @@
+/*
+ * Copyright (c) 2023 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+using System;
+using Tizen.NUI;
+using Tizen.NUI.BaseComponents;
+using Tizen.NUI.Constants;
+using Tizen.NUI.Scene3D;
+using System.Collections.Generic;
+
+class Scene3DSample : NUIApplication
+{
+    static string IMAGE_DIR = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "image/";
+    static string MODEL_DIR = Tizen.Applications.Application.Current.DirectoryInfo.Resource + "model/";
+
+    Window mWindow;
+    Vector2 mWindowSize;
+
+    SceneView mSceneView;
+    Model     mModel;
+
+    uint currentCameraIndex = 0u;
+    const int cameraAnimationDurationMilliSeconds = 2000; // milliSeconds
+
+    Animation mModelRotateAnimation;
+    const int modelRotateAnimationDurationMilliSeconds = 10000; // milliSeconds
+
+    protected void CreateSceneView()
+    {
+        mSceneView = new SceneView()
+        {
+            SizeWidth = mWindowSize.Width,
+            SizeHeight = mWindowSize.Height,
+            PositionX = 0.0f,
+            PositionY = 0.0f,
+            PivotPoint = PivotPoint.TopLeft,
+            ParentOrigin = ParentOrigin.TopLeft,
+            PositionUsesPivotPoint = true,
+        };
+
+        SetupSceneViewCamera(mSceneView);
+
+        mWindow.Add(mSceneView);
+    }
+    private void SetupSceneViewCamera(SceneView sceneView)
+    {
+        // Default camera setting
+        // Note : SceneView always have 1 default camera.
+        Tizen.NUI.Scene3D.Camera defaultCamera = sceneView.GetCamera(0u);
+
+        defaultCamera.PositionX = 0.0f;
+        defaultCamera.PositionY = 0.0f;
+        defaultCamera.PositionZ = 5.55f;
+        defaultCamera.NearPlaneDistance = 0.5f;
+        defaultCamera.FarPlaneDistance = 50.0f;
+        //defaultCamera.Orientation = new Rotation(new Radian(new Degree(180.0f)), Vector3.YAxis);
+        defaultCamera.FieldOfView = new Radian(new Degree(45.0f));
+        defaultCamera.OrthographicSize = 2.7f;
+
+        // Additional camera setting (top view camera).
+        Tizen.NUI.Scene3D.Camera camera = new Tizen.NUI.Scene3D.Camera()
+        {
+            PositionX = 0.0f,
+            PositionY = -3.95f,
+            PositionZ = 0.0f,
+            NearPlaneDistance = 0.5f,
+            FarPlaneDistance = 50.0f,
+            // Rotate by XAxis first, and then rotate by YAxis
+            Orientation = new Rotation(new Radian(new Degree(90.0f)), Vector3.YAxis) *
+                            new Rotation(new Radian(new Degree(-90.0f)), Vector3.XAxis),
+            FieldOfView = new Radian(new Degree(70.0f)),
+            OrthographicSize = 2.7f,
+        };
+        sceneView.AddCamera(camera);
+    }
+
+    protected void CreateModel(string modelUrl)
+    {
+        // Release old one.
+        if(mModel != null)
+        {
+            mModel.Unparent();
+            mModel.Dispose();
+        }
+
+        mModel = new Model(MODEL_DIR + modelUrl)
+        {
+            Name = modelUrl,
+        };
+        mModel.ResourcesLoaded += (s, e) =>
+        {
+            Model model = s as Model;
+
+            // You can play animation if it has.
+            if(model.GetAnimationCount() > 0u)
+            {
+                model.GetAnimation(0u).Looping = true;
+                model.GetAnimation(0u).Play();
+            }
+            Tizen.Log.Error("NUI", $"{model.Name} size : {model.Size.Width}, {model.Size.Height}, {model.Size.Depth}\n");
+        };
+        mModelRotateAnimation = new Animation(modelRotateAnimationDurationMilliSeconds);
+        mModelRotateAnimation.AnimateBy(mModel, "Orientation", new Rotation(new Radian(new Degree(360.0f)), Vector3.YAxis));
+
+        mModelRotateAnimation.Looping = true;
+        mModelRotateAnimation.Play();
+
+        mSceneView.Add(mModel);
+    }
+
+    void SetupIBLimage(string specularUrl, string diffuseUrl, float iblFactor)
+    {
+        mSceneView.SetImageBasedLightSource(IMAGE_DIR + specularUrl, IMAGE_DIR + diffuseUrl,iblFactor);
+    }
+
+    void OnKeyEvent(object source, Window.KeyEventArgs e)
+    {
+        if (e.Key.State == Key.StateType.Down)
+        {
+            FullGC();
+            //Streamline.AnnotateChannelEnd(0);
+
+            switch( e.Key.KeyPressedName )
+            {
+                case "Escape":
+                case "Back":
+                {
+                    Deactivate();
+                    Exit();
+                    break;
+                }
+
+                case "Return":
+                case "Select":
+                {
+                    currentCameraIndex++;
+                    if(currentCameraIndex >= mSceneView.GetCameraCount())
+                    {
+                        currentCameraIndex = 0;
+                    }
+
+                    mSceneView.CameraTransition(currentCameraIndex, cameraAnimationDurationMilliSeconds);
+                    break;
+                }
+
+                case "1":
+                {
+                    currentModelIndex++;
+                    if(currentModelIndex >= ModelUrlList.Count)
+                    {
+                        currentModelIndex = 0;
+                    }
+
+                    CreateModel(ModelUrlList[currentModelIndex]);
+                    break;
+                }
+                case "2":
+                {
+                    currentIBLIndex++;
+                    if(currentIBLIndex >= IBLUrlList.Count)
+                    {
+                        currentIBLIndex = 0;
+                    }
+
+                    SetupIBLimage(IBLUrlList[currentIBLIndex].Item1, IBLUrlList[currentIBLIndex].Item2, 0.7f);
+                    break;
+                }
+            }
+        }
+    }
+
+    private static readonly List<string> ModelUrlList = new List<string>()
+    {
+        // Model reference : https://sketchfab.com/models/b81008d513954189a063ff901f7abfe4
+        // Get from KhronosGroup https://github.com/KhronosGroup/glTF-Sample-Models/tree/master/2.0/DamagedHelmet
+        "DamagedHelmet/DamagedHelmet.gltf",
+        "BoxAnimated/BoxAnimated.gltf",
+    };
+    private int currentModelIndex = 0;
+
+    private static readonly List<(string, string)> IBLUrlList = new List<(string, string)>
+    {
+        ("forest_diffuse_cubemap.png", "forest_specular_cubemap.png"),
+        ("papermill_E_diffuse-64.ktx", "papermill_pmrem.ktx"),
+        ("Irradiance.ktx", "Radiance.ktx"),
+    };
+    private int currentIBLIndex = 0;
+
+    public void Activate()
+    {
+        mWindow = Window.Instance;
+        mWindow.BackgroundColor = Color.DarkOrchid;
+        mWindowSize = mWindow.WindowSize;
+
+        mWindow.KeyEvent += OnKeyEvent;
+
+        CreateSceneView();
+        SetupIBLimage(IBLUrlList[currentIBLIndex].Item1, IBLUrlList[currentIBLIndex].Item2, 0.7f);
+        CreateModel(ModelUrlList[currentModelIndex]);
+    }
+    public void FullGC(){
+        global::System.GC.Collect();
+        global::System.GC.WaitForPendingFinalizers();
+        global::System.GC.Collect();
+    }
+
+    public void Deactivate()
+    {
+        DestroyScene();
+    }
+    private void DestroyScene()
+    {
+    }
+
+    protected override void OnCreate()
+    {
+        // Up call to the Base class first
+        base.OnCreate();
+        Activate();
+    }
+
+    /// <summary>
+    /// The main entry point for the application.
+    /// </summary>
+    [STAThread] // Forces app to use one thread to access NUI
+    static void Main(string[] args)
+    {
+        Scene3DSample example = new Scene3DSample();
+        example.Run(args);
+    }
+}
diff --git a/test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.code-workspace b/test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.code-workspace
new file mode 100644 (file)
index 0000000..3efec65
--- /dev/null
@@ -0,0 +1,17 @@
+{
+       "folders": [
+               {
+                       "path": "."
+               },
+               {
+                       "path": "../../src/Tizen.NUI"
+               },
+               {
+                       "path": "../../src/Tizen.NUI.Components"
+               },
+               {
+                       "path": "../../src/Tizen.NUI.Scene3D"
+               }
+       ],
+       "settings": {}
+}
diff --git a/test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.csproj b/test/Tizen.NUI.Scene3D.Sample/Tizen.NUI.Scene3D.Sample.csproj
new file mode 100644 (file)
index 0000000..42edfaa
--- /dev/null
@@ -0,0 +1,26 @@
+<Project Sdk="Microsoft.NET.Sdk">
+    <PropertyGroup>
+        <OutputType>Exe</OutputType>
+        <TargetFramework>netcoreapp3.1</TargetFramework>
+        <AssemblyName>Scene3DSample</AssemblyName>
+    </PropertyGroup>
+
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+        <DebugType>portable</DebugType>
+    </PropertyGroup>
+    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+        <DebugType>None</DebugType>
+    </PropertyGroup>
+
+    <ItemGroup>
+        <PackageReference Include="Tizen.NET.Sdk" Version="1.0.9" />
+        <ProjectReference Include="../../src/Tizen/Tizen.csproj" />
+        <ProjectReference Include="../../src/Tizen.NUI.Components/Tizen.NUI.Components.csproj" />
+        <ProjectReference Include="../../src/Tizen.NUI.Scene3D/Tizen.NUI.Scene3D.csproj" />
+        <ProjectReference Include="../../src/Tizen.NUI/Tizen.NUI.csproj" />
+    </ItemGroup>
+
+    <PropertyGroup>
+        <NeedInjection>True</NeedInjection>
+    </PropertyGroup>
+</Project>
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_AO.jpg b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_AO.jpg
new file mode 100644 (file)
index 0000000..419f628
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_AO.jpg differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_albedo.jpg b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_albedo.jpg
new file mode 100644 (file)
index 0000000..15d6485
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_albedo.jpg differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_emissive.jpg b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_emissive.jpg
new file mode 100644 (file)
index 0000000..2de59e8
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_emissive.jpg differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_metalRoughness.jpg b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_metalRoughness.jpg
new file mode 100644 (file)
index 0000000..04874cb
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_metalRoughness.jpg differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_normal.jpg b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_normal.jpg
new file mode 100644 (file)
index 0000000..94ca20a
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/DamagedHelmet/Default_normal.jpg differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/Irradiance.ktx b/test/Tizen.NUI.Scene3D.Sample/res/image/Irradiance.ktx
new file mode 100644 (file)
index 0000000..940366c
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/Irradiance.ktx differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/Radiance.ktx b/test/Tizen.NUI.Scene3D.Sample/res/image/Radiance.ktx
new file mode 100644 (file)
index 0000000..c250249
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/Radiance.ktx differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/forest_diffuse_cubemap.png b/test/Tizen.NUI.Scene3D.Sample/res/image/forest_diffuse_cubemap.png
new file mode 100644 (file)
index 0000000..ff3e237
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/forest_diffuse_cubemap.png differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/forest_specular_cubemap.png b/test/Tizen.NUI.Scene3D.Sample/res/image/forest_specular_cubemap.png
new file mode 100644 (file)
index 0000000..d5cb909
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/forest_specular_cubemap.png differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_E_diffuse-64.ktx b/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_E_diffuse-64.ktx
new file mode 100644 (file)
index 0000000..c000b61
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_E_diffuse-64.ktx differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_pmrem.ktx b/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_pmrem.ktx
new file mode 100644 (file)
index 0000000..62df20e
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/image/papermill_pmrem.ktx differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated.gltf b/test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated.gltf
new file mode 100644 (file)
index 0000000..d40924e
--- /dev/null
@@ -0,0 +1,328 @@
+{
+    "asset": {
+        "generator": "COLLADA2GLTF",
+        "version": "2.0"
+    },
+    "scene": 0,
+    "scenes": [
+        {
+            "nodes": [
+                3,
+                0
+            ]
+        }
+    ],
+    "nodes": [
+        {
+            "children": [
+                1
+            ],
+            "rotation": [
+                -0.0,
+                -0.0,
+                -0.0,
+                -1.0
+            ]
+        },
+        {
+            "children": [
+                2
+            ]
+        },
+        {
+            "mesh": 0,
+            "rotation": [
+                -0.0,
+                -0.0,
+                -0.0,
+                -1.0
+            ]
+        },
+        {
+            "mesh": 1
+        }
+    ],
+    "meshes": [
+        {
+            "primitives": [
+                {
+                    "attributes": {
+                        "NORMAL": 1,
+                        "POSITION": 2
+                    },
+                    "indices": 0,
+                    "mode": 4,
+                    "material": 0
+                }
+            ],
+            "name": "inner_box"
+        },
+        {
+            "primitives": [
+                {
+                    "attributes": {
+                        "NORMAL": 4,
+                        "POSITION": 5
+                    },
+                    "indices": 3,
+                    "mode": 4,
+                    "material": 1
+                }
+            ],
+            "name": "outer_box"
+        }
+    ],
+    "animations": [
+        {
+            "channels": [
+                {
+                    "sampler": 0,
+                    "target": {
+                        "node": 2,
+                        "path": "rotation"
+                    }
+                },
+                {
+                    "sampler": 1,
+                    "target": {
+                        "node": 0,
+                        "path": "translation"
+                    }
+                }
+            ],
+            "samplers": [
+                {
+                    "input": 6,
+                    "interpolation": "LINEAR",
+                    "output": 7
+                },
+                {
+                    "input": 8,
+                    "interpolation": "LINEAR",
+                    "output": 9
+                }
+            ]
+        }
+    ],
+    "accessors": [
+        {
+            "bufferView": 0,
+            "byteOffset": 0,
+            "componentType": 5123,
+            "count": 186,
+            "max": [
+                95
+            ],
+            "min": [
+                0
+            ],
+            "type": "SCALAR"
+        },
+        {
+            "bufferView": 1,
+            "byteOffset": 0,
+            "componentType": 5126,
+            "count": 96,
+            "max": [
+                1.0,
+                1.0,
+                1.0
+            ],
+            "min": [
+                -1.0,
+                -1.0,
+                -1.0
+            ],
+            "type": "VEC3"
+        },
+        {
+            "bufferView": 1,
+            "byteOffset": 1152,
+            "componentType": 5126,
+            "count": 96,
+            "max": [
+                0.33504000306129458,
+                0.5,
+                0.33504000306129458
+            ],
+            "min": [
+                -0.33504000306129458,
+                -0.5,
+                -0.33504000306129458
+            ],
+            "type": "VEC3"
+        },
+        {
+            "bufferView": 0,
+            "byteOffset": 372,
+            "componentType": 5123,
+            "count": 576,
+            "max": [
+                223
+            ],
+            "min": [
+                0
+            ],
+            "type": "SCALAR"
+        },
+        {
+            "bufferView": 1,
+            "byteOffset": 2304,
+            "componentType": 5126,
+            "count": 224,
+            "max": [
+                1.0,
+                1.0,
+                1.0
+            ],
+            "min": [
+                -1.0,
+                -1.0,
+                -1.0
+            ],
+            "type": "VEC3"
+        },
+        {
+            "bufferView": 1,
+            "byteOffset": 4992,
+            "componentType": 5126,
+            "count": 224,
+            "max": [
+                0.5,
+                0.5,
+                0.5
+            ],
+            "min": [
+                -0.5,
+                -0.5,
+                -0.5
+            ],
+            "type": "VEC3"
+        },
+        {
+            "bufferView": 2,
+            "byteOffset": 0,
+            "componentType": 5126,
+            "count": 2,
+            "max": [
+                2.5
+            ],
+            "min": [
+                1.25
+            ],
+            "type": "SCALAR"
+        },
+        {
+            "bufferView": 3,
+            "byteOffset": 0,
+            "componentType": 5126,
+            "count": 2,
+            "max": [
+                1.0,
+                0.0,
+                0.0,
+                4.4896593387466768e-11
+            ],
+            "min": [
+                -0.0,
+                0.0,
+                0.0,
+                -1.0
+            ],
+            "type": "VEC4"
+        },
+        {
+            "bufferView": 2,
+            "byteOffset": 8,
+            "componentType": 5126,
+            "count": 4,
+            "max": [
+                3.708329916000366
+            ],
+            "min": [
+                0.0
+            ],
+            "type": "SCALAR"
+        },
+        {
+            "bufferView": 4,
+            "byteOffset": 0,
+            "componentType": 5126,
+            "count": 4,
+            "max": [
+                0.0,
+                2.5199999809265138,
+                0.0
+            ],
+            "min": [
+                0.0,
+                0.0,
+                0.0
+            ],
+            "type": "VEC3"
+        }
+    ],
+    "materials": [
+        {
+            "pbrMetallicRoughness": {
+                "baseColorFactor": [
+                    0.800000011920929,
+                    0.4159420132637024,
+                    0.7952920198440552,
+                    1.0
+                ],
+                "metallicFactor": 0.0
+            },
+            "name": "inner"
+        },
+        {
+            "pbrMetallicRoughness": {
+                "baseColorFactor": [
+                    0.3016040027141571,
+                    0.5335419774055481,
+                    0.800000011920929,
+                    1.0
+                ],
+                "metallicFactor": 0.0
+            },
+            "name": "outer"
+        }
+    ],
+    "bufferViews": [
+        {
+            "buffer": 0,
+            "byteOffset": 7784,
+            "byteLength": 1524,
+            "target": 34963
+        },
+        {
+            "buffer": 0,
+            "byteOffset": 80,
+            "byteLength": 7680,
+            "byteStride": 12,
+            "target": 34962
+        },
+        {
+            "buffer": 0,
+            "byteOffset": 7760,
+            "byteLength": 24
+        },
+        {
+            "buffer": 0,
+            "byteOffset": 0,
+            "byteLength": 32
+        },
+        {
+            "buffer": 0,
+            "byteOffset": 32,
+            "byteLength": 48
+        }
+    ],
+    "buffers": [
+        {
+            "byteLength": 9308,
+            "uri": "BoxAnimated0.bin"
+        }
+    ]
+}
+
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated0.bin b/test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated0.bin
new file mode 100644 (file)
index 0000000..2e4ef6e
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/model/BoxAnimated/BoxAnimated0.bin differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.bin b/test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.bin
new file mode 100644 (file)
index 0000000..6fea01e
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.bin differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.gltf b/test/Tizen.NUI.Scene3D.Sample/res/model/DamagedHelmet/DamagedHelmet.gltf
new file mode 100644 (file)
index 0000000..9fad06a
--- /dev/null
@@ -0,0 +1,217 @@
+{
+       "asset": {
+               "generator": "Unity 2017.1.0f3",
+               "extras": {
+                       "exporterVersion" : "2.2.0"
+               },
+               "version": "2.0"
+       },
+       "accessors": [
+               {
+                       "bufferView": 2,
+                       "byteOffset": 0,
+                       "componentType": 5126,
+                       "count": 13600,
+                       "max": [ 0.944977, 0.900995, 1 ],
+                       "min": [ -0.944977, -0.900974, -1 ],
+                       "type": "VEC3"
+               },
+               {
+                       "bufferView": 2,
+                       "byteOffset": 163200,
+                       "componentType": 5126,
+                       "count": 13600,
+                       "max": [ 1, 1, 1 ],
+                       "min": [ -1, -1, -1 ],
+                       "type": "VEC3"
+               },
+               {
+                       "bufferView": 1,
+                       "byteOffset": 0,
+                       "componentType": 5126,
+                       "count": 13600,
+                       "max": [ 0.999976, 0.998666 ],
+                       "min": [ 0.00244864, 0.00055312 ],
+                       "type": "VEC2"
+               },
+               {
+                       "bufferView": 3,
+                       "byteOffset": 0,
+                       "componentType": 5126,
+                       "count": 13600,
+                       "max": [ 1, 1, 1, 1 ],
+                       "min": [ -1, -1, -1, -1 ],
+                       "type": "VEC4"
+               },
+               {
+                       "bufferView": 0,
+                       "byteOffset": 0,
+                       "componentType": 5123,
+                       "count": 46356,
+                       "max": [ 13599 ],
+                       "min": [ 0 ],
+                       "type": "SCALAR"
+               }
+       ],
+       "buffers": [
+               {
+                       "byteLength": 745512,
+                       "uri": "DamagedHelmet.bin"
+               }
+       ],
+       "bufferViews": [
+               {
+                       "buffer": 0,
+                       "byteLength": 92712,
+                       "target": 34963,
+                       "byteOffset": 652800
+               },
+               {
+                       "buffer": 0,
+                       "byteLength": 108800,
+                       "target": 34962,
+                       "byteStride": 8,
+                       "byteOffset": 0
+               },
+               {
+                       "buffer": 0,
+                       "byteLength": 326400,
+                       "target": 34962,
+                       "byteStride": 12,
+                       "byteOffset": 108800
+               },
+               {
+                       "buffer": 0,
+                       "byteLength": 217600,
+                       "target": 34962,
+                       "byteStride": 16,
+                       "byteOffset": 435200
+               }
+       ],
+       "images": [
+               {
+                       "uri": "../../image/DamagedHelmet/Default_albedo.jpg"
+               },
+               {
+                       "uri": "../../image/DamagedHelmet/Default_metalRoughness.jpg"
+               },
+               {
+                       "uri": "../../image/DamagedHelmet/Default_normal.jpg"
+               },
+               {
+                       "uri": "../../image/DamagedHelmet/Default_emissive.jpg"
+               },
+               {
+                       "uri": "../../image/DamagedHelmet/Default_AO.jpg"
+               }
+       ],
+       "materials": [
+               {
+                       "pbrMetallicRoughness": {
+                               "baseColorTexture" : {
+                                       "index" : 0,
+                                       "texCoord" : 0
+                               },
+                               "baseColorFactor": [1, 1, 1, 1],
+                               "metallicRoughnessTexture" : {
+                                       "index" : 1,
+                                       "texCoord" : 0
+                               },
+                               "metallicFactor": 1,
+                               "roughnessFactor": 1
+                       },
+                       "normalTexture" : {
+                               "index" : 2,
+                               "texCoord" : 0,
+                               "scale" : 0.8
+                       },
+                       "emissiveTexture" : {
+                               "index" : 3,
+                               "texCoord" : 0
+                       },
+                       "emissiveFactor": [1, 1, 1],
+                       "occlusionTexture" : {
+                               "index" : 4,
+                               "texCoord" : 0,
+                               "strength" : 0.632
+                       },
+                       "doubleSided": false,
+                       "name": "Helmet_mat"
+               }
+       ],
+       "meshes": [
+               {
+                       "name": "mesh_helmet_LP_14908damagedHelmet",
+                       "primitives": [
+                               {
+                                       "attributes": {
+                                               "POSITION": 0,
+                                               "NORMAL": 1,
+                                               "TEXCOORD_0": 2,
+                                               "TANGENT": 3
+                                       },
+                                       "indices": 4,
+                                       "material": 0,
+                                       "mode": 4
+                               }
+                       ]
+               }
+       ],
+       "nodes": [
+               {
+                       "name": "UnityGlTF_root",
+                       "children": [
+                               1
+                       ]
+               },
+               {
+                       "name": "node_damagedHelmet_-6498",
+                       "mesh": 0,
+                       "rotation" : [
+                               0.0,
+                               1.0,
+                               0.0,
+                               0.0
+                       ]
+               }
+       ],
+       "samplers": [
+               {
+                       "magFilter": 9729,
+                       "minFilter": 9985,
+                       "wrapS": 10497,
+                       "wrapT": 10497
+               }
+       ],
+       "scenes": [
+               {
+                       "name":"defaultScene",
+                       "nodes": [
+                               0
+                       ]
+               }
+       ],
+       "scene": 0,
+       "textures": [
+               {
+                       "sampler": 0,
+                       "source": 0
+               },
+               {
+                       "sampler": 0,
+                       "source": 1
+               },
+               {
+                       "sampler": 0,
+                       "source": 2
+               },
+               {
+                       "sampler": 0,
+                       "source": 3
+               },
+               {
+                       "sampler": 0,
+                       "source": 4
+               }
+       ]
+}
\ No newline at end of file
diff --git a/test/Tizen.NUI.Scene3D.Sample/shared/res/Tizen.NUI.Scene3D.Sample.png b/test/Tizen.NUI.Scene3D.Sample/shared/res/Tizen.NUI.Scene3D.Sample.png
new file mode 100644 (file)
index 0000000..ef30093
Binary files /dev/null and b/test/Tizen.NUI.Scene3D.Sample/shared/res/Tizen.NUI.Scene3D.Sample.png differ
diff --git a/test/Tizen.NUI.Scene3D.Sample/tizen-manifest.xml b/test/Tizen.NUI.Scene3D.Sample/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..ffc26f5
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="6" package="org.tizen.example.Tizen.NUI.Scene3D.Sample" version="1.0.0">
+  <profile name="common" />
+  <ui-application appid="org.tizen.example.Tizen.NUI.Scene3D.Sample"
+                                       exec="Scene3DSample.dll"
+                                       type="dotnet-nui"
+                                       multiple="false"
+                                       taskmanage="true"
+                                       nodisplay="false"
+                                       launch_mode="single"
+                                       >
+    <label>Tizen.NUI.Scene3D.Sample</label>
+    <icon>Tizen.NUI.Scene3D.Sample.png</icon>
+    <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+  </ui-application>
+</manifest>