From d0cd53826141540323323351273102c60a76d157 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:43:37 -0400 Subject: [PATCH 1/3] Add FontFileNamer type, set default fontNamer. --- font.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/font.go b/font.go index cdc1c18..0c3305f 100644 --- a/font.go +++ b/font.go @@ -13,8 +13,9 @@ import ( ) var ( - fontFolder = "../resource/font/" - fonts = make(map[string]*truetype.Font) + fontFolder = "../resource/font/" + fonts = make(map[string]*truetype.Font) + fontNamer FontFileNamer = FontFileName ) type FontStyle byte @@ -39,6 +40,8 @@ type FontData struct { Style FontStyle } +type FontFileNamer func(fontData FontData) string + func FontFileName(fontData FontData) string { fontFileName := fontData.Name switch fontData.Family { From be5a5617ef0e4ae4e2b25cce383d7be2ce584cf7 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:44:50 -0400 Subject: [PATCH 2/3] Add SetFontNamer func. SetFontNamer changs draw2d's default font naming convention. Accepts a func of type FontFileNamer, which accepts a FontData and returns the filename as a string. --- font.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/font.go b/font.go index 0c3305f..ef7274c 100644 --- a/font.go +++ b/font.go @@ -87,6 +87,10 @@ func SetFontFolder(folder string) { fontFolder = filepath.Clean(folder) } +func SetFontNamer(fn FontFileNamer) { + fontNamer = fn +} + func loadFont(fontFileName string) *truetype.Font { fontBytes, err := ioutil.ReadFile(path.Join(fontFolder, fontFileName)) if err != nil { From a78b24d408c4f73ad2bf8bce705f5cfc0d654200 Mon Sep 17 00:00:00 2001 From: Steven Edwards Date: Sun, 9 Aug 2015 12:47:30 -0400 Subject: [PATCH 3/3] Modify font loading functions to use fontNamer. --- font.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/font.go b/font.go index ef7274c..279706c 100644 --- a/font.go +++ b/font.go @@ -66,11 +66,11 @@ func FontFileName(fontData FontData) string { } func RegisterFont(fontData FontData, font *truetype.Font) { - fonts[FontFileName(fontData)] = font + fonts[fontNamer(fontData)] = font } func GetFont(fontData FontData) *truetype.Font { - fontFileName := FontFileName(fontData) + fontFileName := fontNamer(fontData) font := fonts[fontFileName] if font != nil { return font