From 7d92e04e63fc250d6f0c6b980cbef8075c01fac1 Mon Sep 17 00:00:00 2001 From: Nathanael Jourdane Date: Thu, 13 Aug 2020 11:57:30 +0200 Subject: [PATCH] tests and fixes faiface#123, SIGSEGV on text.NewAtlas if glyph absent --- text/atlas.go | 7 +++---- text/atlas_test.go | 5 +++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/text/atlas.go b/text/atlas.go index b7ddf43..84470db 100644 --- a/text/atlas.go +++ b/text/atlas.go @@ -1,7 +1,6 @@ package text import ( - "fmt" "image" "image/draw" "sort" @@ -60,8 +59,9 @@ func NewAtlas(face font.Face, runeSets ...[]rune) *Atlas { )) for r, fg := range fixedMapping { - dr, mask, maskp, _, _ := face.Glyph(fg.dot, r) - draw.Draw(atlasImg, dr, mask, maskp, draw.Src) + if dr, mask, maskp, _, ok := face.Glyph(fg.dot, r); ok { + draw.Draw(atlasImg, dr, mask, maskp, draw.Src) + } } bounds := pixel.R( @@ -203,7 +203,6 @@ func makeMapping(face font.Face, runes []rune, padding, width fixed.Int26_6) (ma for _, r := range runes { b, advance, ok := face.GlyphBounds(r) if !ok { - fmt.Println(r) continue } diff --git a/text/atlas_test.go b/text/atlas_test.go index 2cb99bb..fdb69b0 100644 --- a/text/atlas_test.go +++ b/text/atlas_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/faiface/pixel/text" + "golang.org/x/image/font/inconsolata" ) func TestAtlas7x13(t *testing.T) { @@ -22,3 +23,7 @@ func TestAtlas7x13(t *testing.T) { } } } + +func TestAtlasInconsolata(t *testing.T) { + text.NewAtlas(inconsolata.Regular8x16, text.ASCII) +}