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 06caee412bc..32d976253b2 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 @@ internal static partial class Interop { 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 59e4f86df6b..8f5fd3144d4 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 @@ internal static partial class SceneView [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 217a7a17be7..61ceb2aac4e 100755 --- a/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs +++ b/src/Tizen.NUI.Scene3D/src/public/Controls/SceneView.cs @@ -473,6 +473,30 @@ public void SetImageBasedLightSource(string diffuseUrl, string specularUrl, floa if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } + /// + /// 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. ///