func (gc *GraphicContext) FillStringAt(text string, x, y float64) (width float64) {
	f, err := gc.loadCurrentFont()
	if err != nil {
		log.Println(err)
		return 0.0
	}
	startx := x
	prev, hasPrev := truetype.Index(0), false
	fontName := gc.GetFontName()
	for _, r := range text {
		index := f.Index(r)
		if hasPrev {
			x += fUnitsToFloat64(f.Kern(fixed.Int26_6(gc.Current.Scale), prev, index))
		}
		glyph := gc.glyphCache.Fetch(gc, fontName, r)
		x += glyph.Fill(gc, x, y)
		prev, hasPrev = index, true
	}
	return x - startx
}
func (gc *GraphicContext) FillStringAt(text string, x, y float64) (width float64) {
	f, err := gc.loadCurrentFont()
	if err != nil {
		log.Println(err)
		return 0.0
	}
	startx := x
	prev, hasPrev := truetype.Index(0), false
	fontName := gc.GetFontName()
	for _, r := range text {
		index := f.Index(r)
		if hasPrev {
			x += fUnitsToFloat64(f.Kern(fixed.Int26_6(gc.Current.Scale), prev, index))
		}
		glyph := gc.glyphCache.Fetch(gc, fontName, r)
		x += glyph.Fill(gc, x, y)
		prev, hasPrev = index, true
	}
	return x - startx
}
func ( gc * GraphicContext ) FillStringAt ( text string , x , y float64 ) ( width float64 ) { f , err := gc . loadCurrentFont ( ) if err != nil { log . Println ( err ) return 0.0 } startx := x prev , hasPrev := truetype . Index ( 0 ) , false fontName := gc . GetFontName ( ) for _ , r := range text { index := f . Index ( r ) if hasPrev { x += fUnitsToFloat64 ( f . Kern ( fixed . Int26_6 ( gc . Current . Scale ) , prev , index ) ) } glyph := gc . glyphCache . Fetch ( gc , fontName , r ) x += glyph . Fill ( gc , x , y ) prev , hasPrev = index , true } return x - startx }
// FillStringAt draws the text at the specified point (x, y)
FillStringAt draws the text at the specified point ( x y )