Merge pull request #71 from stephenwithav/fontfilenamer
Font naming enhancement
This commit is contained in:
commit
ce9c7f76f7
1 changed files with 11 additions and 4 deletions
11
font.go
11
font.go
|
@ -15,6 +15,7 @@ import (
|
||||||
var (
|
var (
|
||||||
fontFolder = "../resource/font/"
|
fontFolder = "../resource/font/"
|
||||||
fonts = make(map[string]*truetype.Font)
|
fonts = make(map[string]*truetype.Font)
|
||||||
|
fontNamer FontFileNamer = FontFileName
|
||||||
)
|
)
|
||||||
|
|
||||||
type FontStyle byte
|
type FontStyle byte
|
||||||
|
@ -39,6 +40,8 @@ type FontData struct {
|
||||||
Style FontStyle
|
Style FontStyle
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FontFileNamer func(fontData FontData) string
|
||||||
|
|
||||||
func FontFileName(fontData FontData) string {
|
func FontFileName(fontData FontData) string {
|
||||||
fontFileName := fontData.Name
|
fontFileName := fontData.Name
|
||||||
switch fontData.Family {
|
switch fontData.Family {
|
||||||
|
@ -63,11 +66,11 @@ func FontFileName(fontData FontData) string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func RegisterFont(fontData FontData, font *truetype.Font) {
|
func RegisterFont(fontData FontData, font *truetype.Font) {
|
||||||
fonts[FontFileName(fontData)] = font
|
fonts[fontNamer(fontData)] = font
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetFont(fontData FontData) *truetype.Font {
|
func GetFont(fontData FontData) *truetype.Font {
|
||||||
fontFileName := FontFileName(fontData)
|
fontFileName := fontNamer(fontData)
|
||||||
font := fonts[fontFileName]
|
font := fonts[fontFileName]
|
||||||
if font != nil {
|
if font != nil {
|
||||||
return font
|
return font
|
||||||
|
@ -84,6 +87,10 @@ func SetFontFolder(folder string) {
|
||||||
fontFolder = filepath.Clean(folder)
|
fontFolder = filepath.Clean(folder)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetFontNamer(fn FontFileNamer) {
|
||||||
|
fontNamer = fn
|
||||||
|
}
|
||||||
|
|
||||||
func loadFont(fontFileName string) *truetype.Font {
|
func loadFont(fontFileName string) *truetype.Font {
|
||||||
fontBytes, err := ioutil.ReadFile(path.Join(fontFolder, fontFileName))
|
fontBytes, err := ioutil.ReadFile(path.Join(fontFolder, fontFileName))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in a new issue