36 lines
679 B
Go
36 lines
679 B
Go
package render
|
|
|
|
import (
|
|
"github.com/veandco/go-sdl2/sdl"
|
|
"github.com/veandco/go-sdl2/ttf"
|
|
)
|
|
|
|
var fonts map[int]*ttf.Font = map[int]*ttf.Font{}
|
|
|
|
// LoadFont loads and caches the font at a given size.
|
|
func LoadFont(size int) (*ttf.Font, error) {
|
|
if font, ok := fonts[size]; ok {
|
|
return font, nil
|
|
}
|
|
|
|
font, err := ttf.OpenFont("./fonts/DejaVuSansMono.ttf", size)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
fonts[size] = font
|
|
|
|
return font, nil
|
|
}
|
|
|
|
// TextConfig are settings for rendered text.
|
|
type TextConfig struct {
|
|
Text string
|
|
Size int
|
|
Color sdl.Color
|
|
StrokeColor sdl.Color
|
|
X int32
|
|
Y int32
|
|
W int32
|
|
H int32
|
|
}
|