diff options
Diffstat (limited to 'src/Text.cpp')
-rw-r--r-- | src/Text.cpp | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/Text.cpp b/src/Text.cpp index a1da8de..2b62798 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -605,7 +605,7 @@ namespace QuickMedia } float Text::font_get_real_height(mgl::Font *font) { - return font->get_glyph('|').size.y + floor(4.0f * ((float)characterSize / (float)14.0f)); + return font->get_glyph('|').size.y + floor(4.0f * ((float)font->get_character_size() / (float)14.0f)); } float Text::get_text_quad_left_side(const VertexRef &vertex_ref) const { @@ -682,9 +682,9 @@ namespace QuickMedia mgl::Font *latin_font; if(bold_font) - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize * get_config().font.scale.latin_bold); else - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize * get_config().font.scale.latin); const float vspace = font_get_real_height(latin_font); const float vertex_height = get_text_quad_height(vertices_linear[0]); @@ -765,9 +765,9 @@ namespace QuickMedia mgl::Font *latin_font; if(bold_font) - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize * get_config().font.scale.latin_bold); else - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize * get_config().font.scale.latin); const float latin_font_width = latin_font->get_glyph(' ').advance; const float vspace = font_get_real_height(latin_font); @@ -917,13 +917,13 @@ namespace QuickMedia // TODO: CJK monospace if(is_symbol_codepoint(codepoint)) { - ff = FontLoader::get_font(FontLoader::FontType::SYMBOLS, characterSize); + ff = FontLoader::get_font(FontLoader::FontType::SYMBOLS, characterSize * get_config().font.scale.symbols); vertices_index = FONT_INDEX_SYMBOLS; } else if(is_cjk_codepoint(codepoint)) { - ff = FontLoader::get_font(FontLoader::FontType::CJK, characterSize); + ff = FontLoader::get_font(FontLoader::FontType::CJK, characterSize * get_config().font.scale.cjk); vertices_index = FONT_INDEX_CJK; } else if(monospace) { - ff = FontLoader::get_font(FontLoader::FontType::LATIN_MONOSPACE, characterSize); + ff = FontLoader::get_font(FontLoader::FontType::LATIN_MONOSPACE, characterSize * get_config().font.scale.latin_monospace); vertices_index = FONT_INDEX_MONOSPACE; if(hspace_monospace == 0) hspace_monospace = ff->get_glyph(' ').advance + characterSpacing; @@ -1198,9 +1198,9 @@ namespace QuickMedia mgl::Font *latin_font; if(bold_font) - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN_BOLD, characterSize * get_config().font.scale.latin_bold); else - latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize); + latin_font = FontLoader::get_font(FontLoader::FontType::LATIN, characterSize * get_config().font.scale.latin); const float vspace = font_get_real_height(latin_font); @@ -1547,23 +1547,28 @@ namespace QuickMedia mgl::vec2f pos = position; + float char_scale = 1.0f; FontLoader::FontType latin_font_type; - if(bold_font) + if(bold_font) { latin_font_type = FontLoader::FontType::LATIN_BOLD; - else + char_scale = get_config().font.scale.latin_bold; + } else { latin_font_type = FontLoader::FontType::LATIN; - mgl::Font *latin_font = FontLoader::get_font(latin_font_type, characterSize); + char_scale = get_config().font.scale.latin; + } + mgl::Font *latin_font = FontLoader::get_font(latin_font_type, characterSize * char_scale); const float vspace = font_get_real_height(latin_font); pos.y += floor(vspace*0.25f); // Origin is at bottom left, we want it to be at top left assert(FONT_ARRAY_SIZE == 6); const FontLoader::FontType font_types[] = { latin_font_type, FontLoader::FontType::LATIN_MONOSPACE, FontLoader::FontType::CJK, FontLoader::FontType::SYMBOLS }; + const float font_scales[] = { char_scale, get_config().font.scale.latin_monospace, get_config().font.scale.cjk, get_config().font.scale.symbols }; for(size_t i = 0; i < FONT_INDEX_EMOJI; ++i) { if(vertex_buffers[i].size() == 0) continue; - mgl::Font *font = FontLoader::get_font(font_types[i], characterSize); + mgl::Font *font = FontLoader::get_font(font_types[i], characterSize * font_scales[i]); if(!font) continue; |