[Complex Text Layouts] Align glyph offsets and advances to the pixel grid.

This commit is contained in:
bruvzg 2020-12-01 09:11:41 +02:00
parent a458e90179
commit c3cc9d82b4
No known key found for this signature in database
GPG key ID: 009E1BFE42239B95
3 changed files with 75 additions and 75 deletions

View file

@ -841,7 +841,7 @@ void LineEdit::_notification(int p_what) {
for (int i = 0; i < glyphs.size(); i++) {
bool selected = selection.enabled && glyphs[i].start >= selection.begin && glyphs[i].end <= selection.end;
for (int j = 0; j < glyphs[i].repeat; j++) {
if (ceil(ofs.x) >= x_ofs && floor(ofs.x + glyphs[i].advance) <= ofs_max) {
if (ceil(ofs.x) >= x_ofs && (ofs.x + glyphs[i].advance) <= ofs_max) {
if (glyphs[i].font_rid != RID()) {
TS->font_draw_glyph(glyphs[i].font_rid, ci, glyphs[i].font_size, ofs + Vector2(glyphs[i].x_off, glyphs[i].y_off), glyphs[i].index, selected ? font_color_selected : font_color);
} else if ((glyphs[i].flags & TextServer::GRAPHEME_IS_VIRTUAL) != TextServer::GRAPHEME_IS_VIRTUAL) {