From 999c64cb7867c1383e77f4a6e7f66f593dc53434 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Wed, 25 Dec 2024 17:38:14 +0900 Subject: [PATCH] text/v2: refactoring --- text/v2/gotextfacesource.go | 24 ++++++++++++------------ text/v2/metadata.go | 5 ++--- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/text/v2/gotextfacesource.go b/text/v2/gotextfacesource.go index 8003b4a22..7eb07f64b 100644 --- a/text/v2/gotextfacesource.go +++ b/text/v2/gotextfacesource.go @@ -89,6 +89,16 @@ func toFontResource(source io.Reader) (font.Resource, error) { return bytes.NewReader(bs), nil } +func newGoTextFaceSource(face *font.Face) *GoTextFaceSource { + s := &GoTextFaceSource{ + f: face, + } + s.addr = s + s.metadata = metadataFromFace(face) + s.outputCache = newCache[goTextOutputCacheKey, goTextOutputCacheValue](512) + return s +} + // NewGoTextFaceSource parses an OpenType or TrueType font and returns a GoTextFaceSource object. func NewGoTextFaceSource(source io.Reader) (*GoTextFaceSource, error) { src, err := toFontResource(source) @@ -106,13 +116,7 @@ func NewGoTextFaceSource(source io.Reader) (*GoTextFaceSource, error) { return nil, err } - s := &GoTextFaceSource{ - f: font.NewFace(f), - } - s.addr = s - s.metadata = metadataFromLoader(l) - s.outputCache = newCache[goTextOutputCacheKey, goTextOutputCacheValue](512) - + s := newGoTextFaceSource(&font.Face{Font: f}) return s, nil } @@ -134,11 +138,7 @@ func NewGoTextFaceSourcesFromCollection(source io.Reader) ([]*GoTextFaceSource, if err != nil { return nil, err } - s := &GoTextFaceSource{ - f: &font.Face{Font: f}, - } - s.addr = s - s.metadata = metadataFromLoader(l) + s := newGoTextFaceSource(&font.Face{Font: f}) sources[i] = s } return sources, nil diff --git a/text/v2/metadata.go b/text/v2/metadata.go index abd89c1bd..eaee15197 100644 --- a/text/v2/metadata.go +++ b/text/v2/metadata.go @@ -16,7 +16,6 @@ package text import ( "github.com/go-text/typesetting/font" - "github.com/go-text/typesetting/font/opentype" ) // Metadata represents a font face's metadata. @@ -27,8 +26,8 @@ type Metadata struct { Stretch Stretch } -func metadataFromLoader(l *opentype.Loader) Metadata { - d, _ := font.Describe(l, nil) +func metadataFromFace(f *font.Face) Metadata { + d := f.Describe() return Metadata{ Family: d.Family, Style: Style(d.Aspect.Style),