From 32e4469538ee097cd0dd94f87c0c1cdac08d5241 Mon Sep 17 00:00:00 2001 From: sqshq Date: Sun, 24 Feb 2019 00:57:01 -0500 Subject: [PATCH 1/2] add a public interface to load bindata fonts in addition to the built in ones --- fontmanager.go | 20 ++++++++++++++++---- render.go | 5 +++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/fontmanager.go b/fontmanager.go index 2d092b1..3b02414 100644 --- a/fontmanager.go +++ b/fontmanager.go @@ -122,18 +122,30 @@ func (fm *fontManager) loadBuildInFont() error { if err != nil { return err } - // Get the font - font, err := parseFontContent(string(fontStr)) + // Load the font + err = fm.loadBinDataFont(string(fontStr), name) if err != nil { return err } - // Register the font object in the fontLib - fm.fontLib[name] = font } return nil } +// Load a bindata font +func (fm *fontManager) loadBinDataFont(fontStr string, fontName string) error { + + // Get the font + font, err := parseFontContent(fontStr) + if err != nil { + return err + } + // Register the font object in the fontLib + fm.fontLib[fontName] = font + + return nil +} + // Parse a font from a content string // Used to load fonts from disk and the builtin fonts func parseFontContent(cont string) (*font, error) { diff --git a/render.go b/render.go index 2006bd6..0bd066a 100644 --- a/render.go +++ b/render.go @@ -39,6 +39,11 @@ func (ar *AsciiRender) LoadFont(fontPath string) error { return ar.fontMgr.loadFontList(fontPath) } +// LoadBinDataFont loads provided bindata font string +func (ar *AsciiRender) LoadBinDataFont(fontStr string, fontName string) error { + return ar.fontMgr.loadBinDataFont(fontStr, fontName) +} + // Render renders a string with the default options // Calls the RenderOpts method with a new RenderOptions object func (ar *AsciiRender) Render(str string) (string, error) { From 5ce91d55ba00e209b302cce56e20fac10aa7373e Mon Sep 17 00:00:00 2001 From: sqshq Date: Sun, 24 Feb 2019 01:06:04 -0500 Subject: [PATCH 2/2] change interface to accept []byte --- fontmanager.go | 6 +++--- render.go | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/fontmanager.go b/fontmanager.go index 3b02414..115bc0c 100644 --- a/fontmanager.go +++ b/fontmanager.go @@ -123,7 +123,7 @@ func (fm *fontManager) loadBuildInFont() error { return err } // Load the font - err = fm.loadBinDataFont(string(fontStr), name) + err = fm.loadBindataFont(fontStr, name) if err != nil { return err } @@ -133,10 +133,10 @@ func (fm *fontManager) loadBuildInFont() error { } // Load a bindata font -func (fm *fontManager) loadBinDataFont(fontStr string, fontName string) error { +func (fm *fontManager) loadBindataFont(fontBinary []byte, fontName string) error { // Get the font - font, err := parseFontContent(fontStr) + font, err := parseFontContent(string(fontBinary)) if err != nil { return err } diff --git a/render.go b/render.go index 0bd066a..91a24dd 100644 --- a/render.go +++ b/render.go @@ -39,9 +39,9 @@ func (ar *AsciiRender) LoadFont(fontPath string) error { return ar.fontMgr.loadFontList(fontPath) } -// LoadBinDataFont loads provided bindata font string -func (ar *AsciiRender) LoadBinDataFont(fontStr string, fontName string) error { - return ar.fontMgr.loadBinDataFont(fontStr, fontName) +// LoadBinDataFont loads provided font binary +func (ar *AsciiRender) LoadBindataFont(fontBinary []byte, fontName string) error { + return ar.fontMgr.loadBindataFont(fontBinary, fontName) } // Render renders a string with the default options