X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fadaptor%2Fcommon%2Fapplication-impl.cpp;h=40b16d9ec3ab9064c41cc02c7e28a555f3a7437c;hb=94544683debb6c663293c39eac5e091f27e1a4e7;hp=0cf22281a1893836347f01f8dcf333d724891323;hpb=92b2ba1433ebcade9079ab40c83716f55625d5cc;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/adaptor/common/application-impl.cpp b/dali/internal/adaptor/common/application-impl.cpp index 0cf2228..40b16d9 100755 --- a/dali/internal/adaptor/common/application-impl.cpp +++ b/dali/internal/adaptor/common/application-impl.cpp @@ -22,7 +22,10 @@ #include // INTERNAL INCLUDES +#include #include +#include +#include #include #include #include @@ -83,6 +86,11 @@ void Application::PreInitialize( int* argc, char** argv[] ) gPreInitializedApplication->CreateWindow(); // Only create window gPreInitializedApplication->mLaunchpadState = Launchpad::PRE_INITIALIZED; + + //Make DefaultFontDescription cached + Dali::TextAbstraction::FontClient fontClient = Dali::TextAbstraction::FontClient::Get(); + Dali::TextAbstraction::FontDescription defaultFontDescription; + fontClient.GetDefaultPlatformFontDescription( defaultFontDescription ); } } @@ -109,6 +117,7 @@ Application::Application( int* argc, char** argv[], const std::string& styleshee mMainWindow(), mMainWindowMode( windowMode ), mMainWindowName(), + mMainWindowReplaced( false ), mStylesheet( stylesheet ), mEnvironmentOptions(), mWindowPositionSize( positionSize ), @@ -160,7 +169,9 @@ void Application::CreateWindow() } const std::string& windowClassName = mEnvironmentOptions.GetWindowClassName(); - mMainWindow = Dali::Window::New( mWindowPositionSize, mMainWindowName, windowClassName, mMainWindowMode == Dali::Application::TRANSPARENT ); + + Internal::Adaptor::Window* window = Internal::Adaptor::Window::New( mWindowPositionSize, mMainWindowName, windowClassName, mMainWindowMode == Dali::Application::TRANSPARENT ); + mMainWindow = Dali::Window( window ); // Quit the application when the window is closed GetImplementation( mMainWindow ).DeleteRequestSignal().Connect( mSlotDelegate, &Application::Quit ); @@ -172,11 +183,13 @@ void Application::CreateAdaptor() auto graphicsFactory = mAdaptorBuilder->GetGraphicsFactory(); - mAdaptor = Dali::Internal::Adaptor::Adaptor::New( graphicsFactory, mMainWindow, mContextLossConfiguration, &mEnvironmentOptions ); + Integration::SceneHolder sceneHolder = Integration::SceneHolder( &Dali::GetImplementation( mMainWindow ) ); + + mAdaptor = Adaptor::New( graphicsFactory, sceneHolder, mContextLossConfiguration, &mEnvironmentOptions ); mAdaptor->ResizedSignal().Connect( mSlotDelegate, &Application::OnResize ); - Internal::Adaptor::Adaptor::GetImplementation( *mAdaptor ).SetUseRemoteSurface( mUseRemoteSurface ); + Adaptor::GetImplementation( *mAdaptor ).SetUseRemoteSurface( mUseRemoteSurface ); } void Application::CreateAdaptorBuilder() @@ -207,6 +220,8 @@ void Application::Quit() void Application::QuitFromMainLoop() { + Accessibility::Bridge::GetCurrentBridge()->Terminate(); + mAdaptor->Stop(); mFramework->Quit(); @@ -230,12 +245,6 @@ void Application::OnInit() // Run the adaptor mAdaptor->Start(); - // Check if user requires no vsyncing and set Adaptor - if (mCommandLineOptions->noVSyncOnRender) - { - mAdaptor->SetUseHardwareVSync(false); - } - if( ! mStylesheet.empty() ) { Dali::StyleMonitor::Get().SetTheme( mStylesheet ); @@ -343,6 +352,7 @@ void Application::OnMemoryLow( Dali::DeviceStatus::Memory::Status status ) mLowMemorySignal.Emit( status ); } + void Application::OnResize(Dali::Adaptor& adaptor) { Dali::Application application(this); @@ -371,7 +381,17 @@ Dali::Adaptor& Application::GetAdaptor() Dali::Window Application::GetWindow() { - return mMainWindow; + // Changed to return a different window handle after ReplaceWindow is called + // just for backward compatibility to make the test case pass + if ( mMainWindowReplaced ) + { + Internal::Adaptor::Window* window = Internal::Adaptor::Window::New( PositionSize(), "ReplacedWindow", "", false ); + return Dali::Window( window ); + } + else + { + return mMainWindow; + } } // Stereoscopy @@ -398,13 +418,10 @@ float Application::GetStereoBase() const void Application::ReplaceWindow( const PositionSize& positionSize, const std::string& name ) { - Any surface; - auto renderSurfaceFactory = Dali::Internal::Adaptor::GetRenderSurfaceFactory(); - std::unique_ptr renderSurface = - renderSurfaceFactory->CreateWindowRenderSurface( positionSize, surface, false ); + // This API is kept just for backward compatibility to make the test case pass. - Internal::Adaptor::Adaptor::GetImplementation( *mAdaptor ).ReplaceSurface( mMainWindow, *renderSurface.release() ); - mWindowPositionSize = positionSize; + mMainWindowReplaced = true; + OnResize( *mAdaptor ); } std::string Application::GetResourcePath() @@ -422,6 +439,15 @@ void Application::SetStyleSheet( const std::string& stylesheet ) mStylesheet = stylesheet; } +void Application::SetCommandLineOptions( int* argc, char **argv[] ) +{ + delete mCommandLineOptions; + + mCommandLineOptions = new CommandLineOptions( argc, argv ); + + mFramework->SetCommandLineOptions( argc, argv ); +} + ApplicationPtr Application::GetPreInitializedApplication() { return gPreInitializedApplication;