Merge pull request #18862 from endragor/remove-font-width-ceiling

Ceil char width within Label instead of Font
This commit is contained in:
Rémi Verschelde 2018-05-17 09:31:22 +02:00 committed by GitHub
commit 802ddc6e94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

View File

@ -103,7 +103,8 @@ void Label::_notification(int p_what) {
int lines_visible = (size.y + line_spacing) / font_h;
int space_w = font->get_char_size(' ').width;
// ceiling to ensure autowrapping does not cut text
int space_w = Math::ceil(font->get_char_size(' ').width);
int chars_total = 0;
int vbegin = 0, vsep = 0;
@ -331,7 +332,8 @@ int Label::get_longest_line_width() const {
}
} else {
int char_width = font->get_char_size(current, xl_text[i + 1]).width;
// ceiling to ensure autowrapping does not cut text
int char_width = Math::ceil(font->get_char_size(current, xl_text[i + 1]).width);
line_width += char_width;
}
}
@ -384,7 +386,8 @@ void Label::regenerate_word_cache() {
int word_pos = 0;
int line_width = 0;
int space_count = 0;
int space_width = font->get_char_size(' ').width;
// ceiling to ensure autowrapping does not cut text
int space_width = Math::ceil(font->get_char_size(' ').width);
int line_spacing = get_constant("line_spacing");
line_count = 1;
total_char_cache = 0;
@ -446,8 +449,8 @@ void Label::regenerate_word_cache() {
if (current_word_size == 0) {
word_pos = i;
}
char_width = font->get_char_size(current, xl_text[i + 1]).width;
// ceiling to ensure autowrapping does not cut text
char_width = Math::ceil(font->get_char_size(current, xl_text[i + 1]).width);
current_word_size += char_width;
line_width += char_width;
total_char_cache++;

View File

@ -307,8 +307,6 @@ Size2 DynamicFontAtSize::get_char_size(CharType p_char, CharType p_next, const V
}
ret.x += _get_kerning_advance(font, p_char, p_next);
// ensures oversampled glyphs will have enough space when this value is used by clipping/wrapping algorithms
ret.x = Math::ceil(ret.x);
return ret;
}