From: Eunki, Hong Date: Tue, 2 Jan 2024 09:09:36 +0000 (+0900) Subject: [NUI.Scene3D] Add AddLight API X-Git-Tag: submit/tizen_8.0/20240102.150840~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0cb799167b61395984ee1da9d647f326aad852fa;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git [NUI.Scene3D] Add AddLight API Let we make new API for Light class for SceneView. Note : To avoid the changness of native side code minimalize, let we use internal API of NUI. Signed-off-by: Eunki, Hong --- diff --git a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Libraries.cs b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Libraries.cs index 06caee4..32d9762 100755 --- a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Libraries.cs +++ b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.Libraries.cs @@ -19,6 +19,7 @@ namespace Tizen.NUI.Scene3D { internal static partial class Libraries { + public const string Lib = "libdali2-csharp-binder.so"; public const string Scene3D = "libdali2-csharp-binder-scene3d.so"; } } diff --git a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.SceneView.cs b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.SceneView.cs index 59e4f86..8f5fd31 100755 --- a/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.SceneView.cs +++ b/src/Tizen.NUI.Scene3D/src/internal/Interop/Interop.SceneView.cs @@ -72,6 +72,14 @@ namespace Tizen.NUI.Scene3D [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_SceneView_GetImageBasedLightScaleFactor")] public static extern float GetImageBasedLightScaleFactor(global::System.Runtime.InteropServices.HandleRef sceneView); + // TODO : Implement AddLight API at native SceneView in future. Currently, let we just call Actor.Add + [global::System.Runtime.InteropServices.DllImport(Libraries.Lib, EntryPoint = "CSharp_Dali_Actor_Add")] + public static extern void AddLight(global::System.Runtime.InteropServices.HandleRef sceneView, global::System.Runtime.InteropServices.HandleRef light); + + // TODO : Implement RemoveLight API at native SceneView in future. Currently, let we just call Actor.Remove + [global::System.Runtime.InteropServices.DllImport(Libraries.Lib, EntryPoint = "CSharp_Dali_Actor_Remove")] + public static extern void RemoveLight(global::System.Runtime.InteropServices.HandleRef sceneView, global::System.Runtime.InteropServices.HandleRef light); + [global::System.Runtime.InteropServices.DllImport(Libraries.Scene3D, EntryPoint = "CSharp_Dali_SceneView_UseFramebuffer")] public static extern void UseFramebuffer(global::System.Runtime.InteropServices.HandleRef sceneView, bool useFramebuffer); diff --git a/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs b/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs index 217a7a1..61ceb2a 100755 --- a/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs +++ b/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs @@ -474,6 +474,30 @@ namespace Tizen.NUI.Scene3D } /// + /// Add Lights to this SceneView. + /// + /// The light what we want to add + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public void AddLight(Light light) + { + Interop.SceneView.AddLight(SwigCPtr, Light.getCPtr(light)); + NDalicPINVOKE.ThrowExceptionIfExists(); + } + + /// + /// Remove Lights from this SceneView. + /// + /// The light what we want to remove + // This will be public opened after ACR done. (Before ACR, need to be hidden as Inhouse API) + [EditorBrowsable(EditorBrowsableState.Never)] + public void RemoveLight(Light light) + { + Interop.SceneView.RemoveLight(SwigCPtr, Light.getCPtr(light)); + NDalicPINVOKE.ThrowExceptionIfExists(); + } + + /// /// Sets SceneView's resolution manually. /// /// The input width.