X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fadaptor%2Fcommon%2Fapplication-impl.cpp;h=44d4146015cad2de06ab960539e6580c8065bfd2;hb=HEAD;hp=c5d0c23e4ed73400cd58e7e37ffaca91920f42ca;hpb=1fc091a11cd3002d631b488ca40718adcdf2560f;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 c5d0c23..6064745 100644 --- a/dali/internal/adaptor/common/application-impl.cpp +++ b/dali/internal/adaptor/common/application-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -81,8 +82,10 @@ void Application::PreInitialize(int* argc, char** argv[]) { if(!gPreInitializedApplication) { - char* retEnv = std::getenv("TIZEN_UI_THREAD"); - bool isUseUIThread = false; + bool isUseUIThread = false; + +#ifdef UI_THREAD_AVAILABLE + char* retEnv = std::getenv("TIZEN_UI_THREAD"); if(retEnv) { std::string uiThreadEnv = retEnv; @@ -92,20 +95,24 @@ void Application::PreInitialize(int* argc, char** argv[]) isUseUIThread = true; } } +#endif Dali::TextAbstraction::FontClientPreInitialize(); WindowData windowData; gPreInitializedApplication = new Application(argc, argv, "", Framework::NORMAL, isUseUIThread, windowData); gPreInitializedApplication->mLaunchpadState = Launchpad::PRE_INITIALIZED; + +#ifdef UI_THREAD_AVAILABLE if(isUseUIThread) { - DALI_LOG_RELEASE_INFO("PRE_INITIALIZED with UI Threading"); + DALI_LOG_RELEASE_INFO("PRE_INITIALIZED with UI Threading\n"); gPreInitializedApplication->mUIThreadLoader = new UIThreadLoader(argc, argv); gPreInitializedApplication->mUIThreadLoader->Run([&]() { gPreInitializedApplication->CreateWindow(); }); } else +#endif { - DALI_LOG_RELEASE_INFO("Only PRE_INITIALIZED"); + DALI_LOG_RELEASE_INFO("Only PRE_INITIALIZED\n"); gPreInitializedApplication->CreateWindow(); // Only create window } } @@ -129,6 +136,7 @@ Application::Application(int* argc, char** argv[], const std::string& stylesheet mMainWindow(), mMainWindowMode(windowData.GetTransparency() ? WINDOW_MODE::TRANSPARENT : WINDOW_MODE::OPAQUE), mMainWindowName(), + mIsMainWindowFrontBufferRendering(windowData.GetFrontBufferRendering()), mStylesheet(stylesheet), mWindowPositionSize(windowData.GetPositionSize()), mLaunchpadState(Launchpad::NONE), @@ -197,6 +205,11 @@ void Application::StoreWindowPositionSize(PositionSize positionSize) mWindowPositionSize = positionSize; } +void Application::StoreFrontBufferRendering(bool enable) +{ + mIsMainWindowFrontBufferRendering = enable; +} + void Application::ChangePreInitializedWindowInfo() { // Set window name @@ -240,6 +253,9 @@ void Application::ChangePreInitializedWindowInfo() mWindowPositionSize.height = screenHeight; mMainWindow.SetSize(Dali::Window::WindowSize(mWindowPositionSize.width, mWindowPositionSize.height)); } + + // Set front buffer rendering + Dali::DevelWindow::SetFrontBufferRendering(mMainWindow, mIsMainWindowFrontBufferRendering); } void Application::CreateWindow() @@ -248,8 +264,9 @@ void Application::CreateWindow() WindowData windowData; windowData.SetTransparency(mMainWindowMode); windowData.SetWindowType(mDefaultWindowType); + windowData.SetFrontBufferRendering(mIsMainWindowFrontBufferRendering); - DALI_LOG_RELEASE_INFO("Create Default Window"); + DALI_LOG_RELEASE_INFO("Create Default Window\n"); WindowSystem::Initialize(); mIsSystemInitialized = true; @@ -284,8 +301,8 @@ void Application::CreateWindow() } else { - // The position, size and the window name of the pre-initialized application will be updated in ChangePreInitializedWindowInfo() - // when the real application is launched. + // The position, size, window name, and frontbuffering of the pre-initialized application + // will be updated in ChangePreInitializedWindowInfo() when the real application is launched. windowData.SetPositionSize(mWindowPositionSize); window = Internal::Adaptor::Window::New("", "", windowData); } @@ -300,7 +317,7 @@ void Application::CreateAdaptor() { DALI_ASSERT_ALWAYS(mMainWindow && "Window required to create adaptor"); - auto graphicsFactory = mAdaptorBuilder->GetGraphicsFactory(); + auto& graphicsFactory = mAdaptorBuilder->GetGraphicsFactory(); Integration::SceneHolder sceneHolder = Integration::SceneHolder(&Dali::GetImplementation(mMainWindow)); @@ -311,7 +328,7 @@ void Application::CreateAdaptor() void Application::CreateAdaptorBuilder() { - mAdaptorBuilder = new AdaptorBuilder(*mEnvironmentOptions); + mAdaptorBuilder = &AdaptorBuilder::Get(*mEnvironmentOptions); } void Application::MainLoop() @@ -330,7 +347,7 @@ void Application::Quit() { // Actually quit the application. // Force a call to Quit even if adaptor is not running. - Internal::Adaptor::Adaptor::GetImplementation(*mAdaptor).AddIdle(MakeCallback(this, &Application::QuitFromMainLoop), false, true); + Internal::Adaptor::Adaptor::GetImplementation(*mAdaptor).AddIdle(MakeCallback(this, &Application::QuitFromMainLoop), false); } void Application::QuitFromMainLoop() @@ -353,7 +370,7 @@ void Application::OnInit() // If an application was pre-initialized, a window was made in advance if(mLaunchpadState == Launchpad::NONE) { - DALI_LOG_RELEASE_INFO("default Window is created in standalone"); + DALI_LOG_RELEASE_INFO("default Window is created in standalone\n"); CreateWindow(); }