Add env-var to control number of async text loader
authorBowon Ryu <bowon.ryu@samsung.com>
Wed, 26 Jun 2024 04:14:48 +0000 (13:14 +0900)
committerBowon Ryu <bowon.ryu@samsung.com>
Wed, 26 Jun 2024 04:14:48 +0000 (13:14 +0900)
Added DALI_TEXT_NUMBER_OF_ASYNC_TEXT_LOADER.
default value is 4

Change-Id: I594d786c0fd05cbf886a66105ba360c598e1edd4
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/text/async-text/async-text-manager-impl.cpp

index 8d9b18b..388212c 100644 (file)
@@ -990,10 +990,6 @@ void TextLabel::OnInitialize()
 
   self.LayoutDirectionChangedSignal().Connect(this, &TextLabel::OnLayoutDirectionChanged);
 
-  // AsyncTextManager must connect the locale changed signal before TextLabel.
-  // We need to find a more appropriate initial creation point for AsyncTextManager.
-  Text::AsyncTextManager::Get();
-
   if(Dali::Adaptor::IsAvailable())
   {
     Dali::Adaptor::Get().LocaleChangedSignal().Connect(this, &TextLabel::OnLocaleChanged);
index 16eb590..6821060 100644 (file)
@@ -19,6 +19,7 @@
 #include <dali-toolkit/internal/text/async-text/async-text-manager-impl.h>
 
 // EXTERNAL INCLUDES
+#include <dali/devel-api/adaptor-framework/environment-variable.h>
 #include <dali/devel-api/common/singleton-service.h>
 #include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/integration-api/debug.h>
@@ -31,11 +32,11 @@ namespace Dali
 {
 namespace Toolkit
 {
-const int      NUMBER_OF_LOADER = 4;
-const uint32_t EMPTY_TASK_ID = 0u;
-
 namespace
 {
+const char*    DALI_TEXT_NUMBER_OF_ASYNC_TEXT_LOADER("DALI_TEXT_NUMBER_OF_ASYNC_TEXT_LOADER");
+const int      DEFAULT_NUMBER_OF_LOADER = 4;
+const uint32_t EMPTY_TASK_ID = 0u;
 } // namespace
 
 namespace Text
@@ -51,7 +52,11 @@ AsyncTextManager::AsyncTextManager()
   mWaitingTasks(),
   mRunningTasks()
 {
-  for(int i = 0; i < NUMBER_OF_LOADER; i ++)
+  // Check environment variable for DALI_TEXT_NUMBER_OF_ASYNC_TEXT_LOADER
+  auto numberOfLoaderString = Dali::EnvironmentVariable::GetEnvironmentVariable(DALI_TEXT_NUMBER_OF_ASYNC_TEXT_LOADER);
+  int  numberOfLoader       = numberOfLoaderString ? std::atoi(numberOfLoaderString) : DEFAULT_NUMBER_OF_LOADER;
+
+  for(int i = 0; i < numberOfLoader; i ++)
   {
     Text::AsyncTextLoader loader = Text::AsyncTextLoader::New();
     mAvailableLoaders.push_back(loader);