aboutsummaryrefslogtreecommitdiff
path: root/src/Text.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text.cpp')
-rw-r--r--src/Text.cpp33
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;