/* * Copyright(c) 2019 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 System.ComponentModel; using System.Runtime.InteropServices; namespace Tizen.NUI { /// /// An Adaptor object is used to initialize and control how Dali runs. /// /// It provides the lifecycle interface that allows the application /// writer to provide their own main loop and other platform related /// features. /// /// The Adaptor class provides a means for initialising the resources required by the Dali::Core. /// /// When dealing with platform events, the application writer must ensure that DALi is called in a /// thread-safe manner. /// /// As soon as the Adaptor class is created and started, the application writer can initialise their /// view objects straight away or as required by the main loop they intend to use (there is no /// need to wait for an initialize signal as per the Tizen.NUI.Application class). /// /// /// 4 [Obsolete("Deprecated in API8, will be removed in API10. This is not used anymore, please do not use.")] public class Adaptor : Disposable { private static readonly Adaptor instance = Adaptor.Get(); internal Adaptor(global::System.IntPtr cPtr, bool cMemoryOwn) : base(cPtr, cMemoryOwn) { } /// /// Returns a reference to the instance of the adaptor used by the current thread. /// /// The adaptor has been initialized. This is only valid in the main thread. /// 4 [Obsolete("Deprecated in API8, will be removed in API10. This is not used anymore, please do not use.")] public static Adaptor Instance { get { return instance; } } /// /// Feeds a wheel event to the adaptor. /// /// The wheel event. /// 4 [Obsolete("Deprecated in API8, will be removed in API10. This is not used anymore, please do not use.")] public void FeedWheelEvent(Wheel wheelEvent) { Interop.Adaptor.FeedWheelEvent(SwigCPtr, Wheel.getCPtr(wheelEvent)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// /// Feeds a key event to the adaptor. /// /// The key event holding the key information. /// 4 [Obsolete("Deprecated in API8, will be removed in API10. This is not used anymore, please do not use.")] public void FeedKeyEvent(Key keyEvent) { Interop.Adaptor.FeedKeyEvent(SwigCPtr, Key.getCPtr(keyEvent)); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } internal static Adaptor Get() { Adaptor ret = new Adaptor(Interop.Adaptor.Get(), false); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; } /// /// Sets the number of frames per render. /// /// The number of vsyncs between successive renders. /// /// Suggest this is a power of two: /// 1 - render each vsync frame. /// 2 - render every other vsync frame. /// 4 - render every fourth vsync frame. /// 8 - render every eighth vsync frame. /// internal void SetRenderRefreshRate(uint numberOfVSyncsPerRender) { Interop.Adaptor.SetRenderRefreshRate(SwigCPtr, numberOfVSyncsPerRender); if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); } /// /// ReleaseSwigCPtr /// /// [Obsolete("Deprecated in API8, will be removed in API10. This is not used anymore, please do not use.")] // This will not be public opened. [EditorBrowsable(EditorBrowsableState.Never)] protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr) { Interop.Adaptor.DeleteAdaptor(swigCPtr); } } }