1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

changed font system to use fallbacks

this way more than 64k characters can be used
This commit is contained in:
Juan Linietsky
2016-05-30 19:41:32 -03:00
parent c7d24b7814
commit 0eb6c644b2
10 changed files with 325 additions and 51 deletions

View File

@@ -65,23 +65,62 @@ static Ref<BitmapFont> make_font(int p_height,int p_ascent, int p_valign, int p_
}
#define MAKE_DROID_SANS(m_name,m_size) \
Ref<DynamicFont> m_name;\
m_name.instance();\
m_name->set_size(m_size);\
m_name->set_font_data(DroidSans);\
m_name->add_fallback(DroidSansFallback);\
m_name->add_fallback(DroidSansJapanese);\
m_name->add_fallback(DroidSansArabic);\
m_name->add_fallback(DroidSansHebrew);\
m_name->add_fallback(DroidSansThai);
void editor_register_fonts(Ref<Theme> p_theme) {
Ref<DynamicFontData> dfd;
dfd.instance();
dfd->set_font_ptr(_font_droid_sans,_font_droid_sans_size);
dfd->set_force_autohinter(true); //just looks better..i think?
/* Droid Sans */
Ref<DynamicFontData> DroidSans;
DroidSans.instance();
DroidSans->set_font_ptr(_font_DroidSans,_font_DroidSans_size);
DroidSans->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFontData> DroidSansFallback;
DroidSansFallback.instance();
DroidSansFallback->set_font_ptr(_font_DroidSansFallback,_font_DroidSansFallback_size);
DroidSansFallback->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFontData> DroidSansJapanese;
DroidSansJapanese.instance();
DroidSansJapanese->set_font_ptr(_font_DroidSansJapanese,_font_DroidSansJapanese_size);
DroidSansJapanese->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFontData> DroidSansArabic;
DroidSansArabic.instance();
DroidSansArabic->set_font_ptr(_font_DroidSansArabic,_font_DroidSansArabic_size);
DroidSansArabic->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFontData> DroidSansHebrew;
DroidSansHebrew.instance();
DroidSansHebrew->set_font_ptr(_font_DroidSansHebrew,_font_DroidSansHebrew_size);
DroidSansHebrew->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFontData> DroidSansThai;
DroidSansThai.instance();
DroidSansThai->set_font_ptr(_font_DroidSansThai,_font_DroidSansThai_size);
DroidSansThai->set_force_autohinter(true); //just looks better..i think?
/* Source Code Pro */
Ref<DynamicFontData> dfmono;
dfmono.instance();
dfmono->set_font_ptr(_font_source_code_pro,_font_source_code_pro_size);
//dfd->set_force_autohinter(true); //just looks better..i think?
Ref<DynamicFont> df;
df.instance();
df->set_size(int(EditorSettings::get_singleton()->get("global/font_size")));
df->set_font_data(dfd);
MAKE_DROID_SANS(df,int(EditorSettings::get_singleton()->get("global/font_size")));
p_theme->set_default_theme_font(df);
@@ -89,15 +128,10 @@ void editor_register_fonts(Ref<Theme> p_theme) {
// Ref<BitmapFont> doc_title_font = make_font(_bi_font_doc_title_font_height,_bi_font_doc_title_font_ascent,0,_bi_font_doc_title_font_charcount,_bi_font_doc_title_font_characters,p_theme->get_icon("DocTitleFont","EditorIcons"));
// Ref<BitmapFont> doc_code_font = make_font(_bi_font_doc_code_font_height,_bi_font_doc_code_font_ascent,0,_bi_font_doc_code_font_charcount,_bi_font_doc_code_font_characters,p_theme->get_icon("DocCodeFont","EditorIcons"));
Ref<DynamicFont> df_title;
df_title.instance();
df_title->set_size(int(EDITOR_DEF("help/help_title_font_size",18)));
df_title->set_font_data(dfd);
MAKE_DROID_SANS(df_title,int(EDITOR_DEF("help/help_title_font_size",18)));
MAKE_DROID_SANS(df_doc,int(EDITOR_DEF("help/help_font_size",16)));
Ref<DynamicFont> df_doc;
df_doc.instance();
df_doc->set_size(int(EDITOR_DEF("help/help_font_size",16)));
df_doc->set_font_data(dfd);
p_theme->set_font("doc","EditorFonts",df_doc);
p_theme->set_font("doc_title","EditorFonts",df_title);