Skip to content

Commit

Permalink
Fix the left side of quads in text with non-1.0 dpi scales.
Browse files Browse the repository at this point in the history
issue #1918
  • Loading branch information
slime73 committed Jul 6, 2024
1 parent c1fddfe commit 248fbb9
Showing 1 changed file with 8 additions and 6 deletions.
14 changes: 8 additions & 6 deletions src/modules/graphics/Font.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -315,18 +315,20 @@ const Font::Glyph &Font::addGlyph(love::font::TextShaper::GlyphIndex glyphindex)
// 1---3
const GlyphVertex verts[4] =
{
{float(-o), float(-o), normToUint16((tX-o)/tWidth), normToUint16((tY-o)/tHeight), c},
{float(-o), (h+o)/glyphdpiscale, normToUint16((tX-o)/tWidth), normToUint16((tY+h+o)/tHeight), c},
{(w+o)/glyphdpiscale, float(-o), normToUint16((tX+w+o)/tWidth), normToUint16((tY-o)/tHeight), c},
{(w+o)/glyphdpiscale, (h+o)/glyphdpiscale, normToUint16((tX+w+o)/tWidth), normToUint16((tY+h+o)/tHeight), c}
{ -o, -o, normToUint16((tX-o)/tWidth), normToUint16((tY-o)/tHeight), c},
{ -o, h+o, normToUint16((tX-o)/tWidth), normToUint16((tY+h+o)/tHeight), c},
{w+o, -o, normToUint16((tX+w+o)/tWidth), normToUint16((tY-o)/tHeight), c},
{w+o, h+o, normToUint16((tX+w+o)/tWidth), normToUint16((tY+h+o)/tHeight), c}
};

// Copy vertex data to the glyph and set proper bearing.
for (int i = 0; i < 4; i++)
{
g.vertices[i] = verts[i];
g.vertices[i].x += gd->getBearingX() / glyphdpiscale;
g.vertices[i].y -= gd->getBearingY() / glyphdpiscale;
g.vertices[i].x += gd->getBearingX();
g.vertices[i].y -= gd->getBearingY();
g.vertices[i].x /= glyphdpiscale;
g.vertices[i].y /= glyphdpiscale;
}

textureX += w + TEXTURE_PADDING;
Expand Down

0 comments on commit 248fbb9

Please sign in to comment.