/*************************************************************************/ /* editor_fonts.cpp */ /*************************************************************************/ /* This file is part of: */ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ /* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ /* "Software"), to deal in the Software without restriction, including */ /* without limitation the rights to use, copy, modify, merge, publish, */ /* distribute, sublicense, and/or sell copies of the Software, and to */ /* permit persons to whom the Software is furnished to do so, subject to */ /* the following conditions: */ /* */ /* The above copyright notice and this permission notice shall be */ /* included in all copies or substantial portions of the Software. */ /* */ /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "editor_fonts.h" #include "doc_font.h" #include "doc_title_font.h" #include "doc_code_font.h" #include "builtin_fonts.h" #include "editor_settings.h" #include "scene/resources/dynamic_font.h" #include "editor_scale.h" #include "scene/resources/default_theme/default_theme.h" static Ref make_font(int p_height,int p_ascent, int p_valign, int p_charcount, const int *p_chars,const Ref &p_texture) { Ref font( memnew( BitmapFont ) ); font->add_texture( p_texture ); for (int i=0;iadd_char( chr, 0, frect, align,advance ); } font->set_height( p_height ); font->set_ascent( p_ascent ); return font; } void editor_register_fonts(Ref p_theme) { Ref dfd; dfd.instance(); dfd->set_font_ptr(_font_droid_sans,_font_droid_sans_size); dfd->set_force_autohinter(true); //just looks better..i think? Ref 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 df; df.instance(); df->set_size(int(EditorSettings::get_singleton()->get("global/font_size"))*EDSCALE); df->set_font_data(dfd); p_theme->set_default_theme_font(df); // Ref doc_font = make_font(_bi_font_doc_font_height,_bi_font_doc_font_ascent,0,_bi_font_doc_font_charcount,_bi_font_doc_font_characters,p_theme->get_icon("DocFont","EditorIcons")); // Ref 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 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 df_title; df_title.instance(); df_title->set_size(int(EDITOR_DEF("help/help_title_font_size",18))*EDSCALE); df_title->set_font_data(dfd); Ref df_doc; df_doc.instance(); df_doc->set_size(int(EDITOR_DEF("help/help_font_size",16))*EDSCALE); df_doc->set_font_data(dfd); p_theme->set_font("doc","EditorFonts",df_doc); p_theme->set_font("doc_title","EditorFonts",df_title); Ref df_code; df_code.instance(); df_code->set_size(int(EditorSettings::get_singleton()->get("global/source_font_size"))*EDSCALE); df_code->set_font_data(dfmono); p_theme->set_font("source","EditorFonts",df_code); Ref df_doc_code; df_doc_code.instance(); df_doc_code->set_size(int(EDITOR_DEF("help/help_source_font_size",14))*EDSCALE); df_doc_code->set_font_data(dfmono); p_theme->set_font("doc_source","EditorFonts",df_doc_code); if (editor_is_hidpi()) { //replace default theme Ref di; Ref ds; fill_default_theme(p_theme,df,df_doc,di,ds,true); } }