+ Internal::Adaptor::Window* windowImpl = nullptr;
+
+ if ( Dali::Adaptor::IsAvailable() )
+ {
+ windowImpl = static_cast<Internal::Adaptor::Window*>( AdaptorImpl::GetImpl( AdaptorImpl::Get() ).GetWindow( actor ) );
+ }
+
+ return Dali::Window( windowImpl );
+}
+
+Window DownCast( BaseHandle handle )
+{
+ Internal::Adaptor::Window* windowImpl = nullptr;
+ if ( Dali::Adaptor::IsAvailable() )
+ {
+ windowImpl = dynamic_cast<Dali::Internal::Adaptor::Window*>( handle.GetObjectPtr());
+ }
+ return Dali::Window( windowImpl );
+}
+
+void AddFrameRenderedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId )
+{
+ CallbackBase::Execute( *callback, frameId );
+}
+
+void AddFramePresentedCallback( Window window, std::unique_ptr< CallbackBase > callback, int32_t frameId )
+{
+ CallbackBase::Execute( *callback, frameId );
+}
+
+EventProcessingFinishedSignalType& EventProcessingFinishedSignal( Window window )
+{
+ return GetImplementation( window ).GetScene().EventProcessingFinishedSignal();
+}
+
+KeyEventGeneratedSignalType& KeyEventGeneratedSignal( Window window )
+{
+ return GetImplementation( window ).KeyEventGeneratedSignal();