fix Text.Bounds

This commit is contained in:
faiface 2017-05-05 16:42:40 +02:00
parent b91d8be6cd
commit 1d17e45825
1 changed files with 12 additions and 10 deletions

View File

@ -199,17 +199,19 @@ func (txt *Text) WriteRune(r rune) (n int, err error) {
} }
glyphBounds := glyph.Frame.Moved(txt.Dot - glyph.Orig) glyphBounds := glyph.Frame.Moved(txt.Dot - glyph.Orig)
if glyphBounds.H() > 0 { if glyphBounds.W()*glyphBounds.H() != 0 {
glyphBounds = glyphBounds.Resized(txt.Dot, pixel.V( glyphBounds = pixel.R(
glyphBounds.W(), glyphBounds.Min.X(),
txt.atlas.Ascent()+txt.atlas.Descent(), txt.Dot.Y()-txt.Atlas().Descent(),
)) glyphBounds.Max.X(),
} txt.Dot.Y()+txt.Atlas().Ascent(),
)
if txt.bounds.W()*txt.bounds.H() == 0 { if txt.bounds.W()*txt.bounds.H() == 0 {
txt.bounds = glyphBounds txt.bounds = glyphBounds
} else { } else {
txt.bounds = txt.bounds.Union(glyphBounds) txt.bounds = txt.bounds.Union(glyphBounds)
} }
}
a := pixel.V(glyph.Frame.Min.X(), glyph.Frame.Min.Y()) a := pixel.V(glyph.Frame.Min.X(), glyph.Frame.Min.Y())
b := pixel.V(glyph.Frame.Max.X(), glyph.Frame.Min.Y()) b := pixel.V(glyph.Frame.Max.X(), glyph.Frame.Min.Y())