From: Bowon Ryu Date: Thu, 20 Feb 2025 06:15:13 +0000 (+0900) Subject: Optimize for AsyncTextManager X-Git-Tag: accepted/tizen/unified/20250227.050123~4^2~2^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7e8e112c8781e28a15512fcf7a8e5b95258e2e33;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Optimize for AsyncTextManager Slow operations such as InitDefaultFontDescription are performed in worker threads. This is performed once on the first task of each AsyncTextLoader. The calculation time for the first task increases slightly compared to before, but the delay in the UI thread is minimal. Change-Id: I864686519da43040d45860ccbe43924430f5e7d5 Signed-off-by: Bowon Ryu --- diff --git a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp index 12575d30bc..ef2f10374d 100644 --- a/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp +++ b/automated-tests/src/dali-toolkit-internal/utc-Dali-TextLabel-internal.cpp @@ -17,6 +17,7 @@ #include #include +#include #include @@ -1492,6 +1493,8 @@ int UtcDaliTextLabelLocaleChange02(void) // Request render. DevelTextLabel::RequestAsyncRenderWithFixedSize(label, expectedWidth, expectedHeight); + std::this_thread::sleep_for(std::chrono::milliseconds(1000)); + newLocale = "label_TEST_2"; adaptor.LocaleChangedSignal().Emit(newLocale); diff --git a/dali-toolkit/internal/text/async-text/async-text-loader-impl.cpp b/dali-toolkit/internal/text/async-text/async-text-loader-impl.cpp index 61bd61323f..a83aef6af1 100644 --- a/dali-toolkit/internal/text/async-text/async-text-loader-impl.cpp +++ b/dali-toolkit/internal/text/async-text/async-text-loader-impl.cpp @@ -110,6 +110,8 @@ bool AsyncTextLoader::IsModuleClearNeeded() // Worker thread void AsyncTextLoader::Initialize() { + mModule.GetFontClient().InitDefaultFontDescription(); + ClearTextModelData(); mNumberOfCharacters = 0u; diff --git a/dali-toolkit/internal/text/async-text/async-text-module-impl.cpp b/dali-toolkit/internal/text/async-text/async-text-module-impl.cpp index e5b4edff4f..f6c443eea6 100644 --- a/dali-toolkit/internal/text/async-text/async-text-module-impl.cpp +++ b/dali-toolkit/internal/text/async-text/async-text-module-impl.cpp @@ -50,8 +50,6 @@ AsyncTextModule::AsyncTextModule() mSegmentation = TextAbstraction::Segmentation::New(); mHyphenation = TextAbstraction::Hyphenation::New(); mMultilanguageSupport = Text::MultilanguageSupport::New(connnectLocaleChangedSignal); - - mFontClient.InitDefaultFontDescription(); } AsyncTextModule::~AsyncTextModule() @@ -61,7 +59,6 @@ AsyncTextModule::~AsyncTextModule() void AsyncTextModule::ClearCache() { mFontClient.ClearCacheOnLocaleChanged(); - mFontClient.InitDefaultFontDescription(); mMultilanguageSupport.ClearCache(); }