Files
gorpg/konstructor/layout.font.go

40 lines
825 B
Go

package konstructor
import (
"image/color"
"io/ioutil"
"golang.org/x/image/font"
"golang.org/x/image/font/opentype"
)
type FontName string
type FontLayout struct {
Path string
DPI float64
Size float64
Color color.Color
SelectedColor color.Color
cachedFontFace font.Face
}
func (fl *FontLayout) GetFontFace(scale int) font.Face {
if fl.cachedFontFace != nil {
return fl.cachedFontFace
}
file, _ := ioutil.ReadFile(fl.Path)
true_type, _ := opentype.Parse(file)
font_face, _ := opentype.NewFace(true_type, &opentype.FaceOptions{
Size: fl.Size * float64(scale),
DPI: fl.DPI,
Hinting: font.HintingVertical,
})
fl.cachedFontFace = font_face
return font_face
}
func GetFontPath(name FontName) string {
return "assets/fonts/" + string(name) + ".ttf"
}