{
}
+FontClient FontClientPreInitialize()
+{
+ return Internal::FontClient::PreInitialize();
+}
+
} // namespace TextAbstraction
} // namespace Dali
explicit DALI_INTERNAL FontClient( Internal::FontClient* fontClient );
};
+/**
+ * @brief This is used to improve application launch performance
+ *
+ * @return A pre-initialized FontClient
+ */
+DALI_ADAPTOR_API FontClient FontClientPreInitialize();
+
} // namespace TextAbstraction
} // namespace Dali
{
if( !gPreInitializedApplication )
{
+ Dali::TextAbstraction::FontClientPreInitialize();
+
gPreInitializedApplication = new Application ( argc, argv, "", Dali::Application::OPAQUE, PositionSize(), Framework::NORMAL );
gPreInitializedApplication->CreateWindow(); // Only create window
gPreInitializedApplication->mLaunchpadState = Launchpad::PRE_INITIALIZED;
namespace Internal
{
+Dali::TextAbstraction::FontClient FontClient::gPreInitializedFontClient( NULL );
+
FontClient::FontClient()
: mPlugin( nullptr ),
mDpiHorizontal( 0 ),
}
else // create and register the object
{
- fontClientHandle = Dali::TextAbstraction::FontClient( new FontClient );
+ if( gPreInitializedFontClient )
+ {
+ fontClientHandle = gPreInitializedFontClient;
+ gPreInitializedFontClient.Reset(); // No longer needed
+ }
+ else
+ {
+ fontClientHandle = Dali::TextAbstraction::FontClient( new FontClient );
+ }
+
service.Register( typeid( fontClientHandle ), fontClientHandle );
}
}
return fontClientHandle;
}
+Dali::TextAbstraction::FontClient FontClient::PreInitialize()
+{
+ gPreInitializedFontClient = Dali::TextAbstraction::FontClient( new FontClient );
+
+ // Make DefaultFontDescription cached
+ Dali::TextAbstraction::FontDescription defaultFontDescription;
+ gPreInitializedFontClient.GetDefaultPlatformFontDescription( defaultFontDescription );
+
+ return gPreInitializedFontClient;
+}
+
void FontClient::ClearCache()
{
if( mPlugin )
static Dali::TextAbstraction::FontClient Get();
/**
+ * @brief This is used to improve application launch performance
+ *
+ * @return A pre-initialized FontClient
+ */
+ static Dali::TextAbstraction::FontClient PreInitialize();
+
+ /**
* @copydoc Dali::TextAbstraction::FontClient::ClearCache()
*/
void ClearCache();
unsigned int mDpiHorizontal;
unsigned int mDpiVertical;
+ static Dali::TextAbstraction::FontClient gPreInitializedFontClient;
+
}; // class FontClient
} // namespace Internal