// INTERNAL INCLUDES
#include <dali/devel-api/text-abstraction/font-list.h>
+
#include <dali/public-api/common/dali-vector.h>
#include <dali/public-api/common/vector-wrapper.h>
#include <dali/integration-api/debug.h>
} // namespace
+
+
using Dali::Vector;
namespace Dali
#ifdef ENABLE_VECTOR_BASED_TEXT_RENDERING
mVectorFontCache = new VectorFontCache( mFreeTypeLibrary );
#endif
+
}
FontClient::Plugin::~Plugin()
FT_Done_FreeType( mFreeTypeLibrary );
}
+void FontClient::Plugin::ClearCache()
+{
+ mFontCache.clear();
+ mValidatedFontCache.clear();
+ mFontDescriptionCache.clear();
+ mFontDescriptionCache.resize( 1u );
+
+ mCharacterSetCache.Clear();
+ mCharacterSetCache.Resize( 1u );
+
+ mFontIdCache.clear();
+ mFallbackCache.clear();
+
+#ifdef ENABLE_VECTOR_BASED_TEXT_RENDERING
+ if(mVectorFontCache)
+ {
+ mVectorFontCache.clear();
+ mVectorFontCache = NULL;
+ }
+#endif
+
+ mEllipsisCache.Clear();
+ mSystemFonts.clear();
+ mDefaultFonts.clear();
+ mDefaultFontDescriptionCached = false;
+ mDefaultFontCharacterSets.Clear();
+ mDefaultFontDescription = FontDescription();
+}
+
void FontClient::Plugin::SetDpi( unsigned int horizontalDpi,
unsigned int verticalDpi )
{
return FT_Err_Ok == error;
}
+bool FontClient::Plugin::AddCustomFontDirectory( const FontPath& path )
+{
+ // NULL as first parameter means the current configuration is used.
+ return FcConfigAppFontAddDir( NULL, reinterpret_cast<const FcChar8 *>( path.c_str() ) );
+}
+
void FontClient::Plugin::InitSystemFonts()
{
DALI_LOG_INFO( gLogFilter, Debug::General, "-->FontClient::Plugin::InitSystemFonts\n" );
// add a property to the pattern for the font family
FcPatternAddString( fontFamilyPattern, FC_FAMILY, reinterpret_cast<const FcChar8*>( fontDescription.family.c_str() ) );
+ // add a property to the pattern for local setting.
+ const char* locale = setlocale( LC_MESSAGES, NULL );
+ if( locale != NULL)
+ {
+ FcPatternAddString( fontFamilyPattern, FC_LANG, reinterpret_cast<const FcChar8*>( locale ) );
+ }
+
int width = FONT_WIDTH_TYPE_TO_INT[fontDescription.width];
if( width < 0 )
{