zntg/allg5ui/font.go
Sander Schobers 3591e22c97 Added Fonts() to context similarly as Textures().
- Fonts are now managed by context instead of the implementation specific renderers.
2020-05-15 15:42:24 +02:00

48 lines
745 B
Go

package allg5ui
import (
"opslag.de/schobers/allg5"
"opslag.de/schobers/geom"
)
type FontDefinition struct {
Name string
Size int
}
func NewFontDefinition(name string, size int) FontDefinition {
return FontDefinition{Name: name, Size: size}
}
type font struct {
*allg5.Font
}
func newFont(f *allg5.Font) *font {
return &font{f}
}
func (f *font) Destroy() error {
f.Font.Destroy()
return nil
}
func (f *font) Height() float32 {
if f == nil {
return 0
}
return f.Font.Height()
}
func (f *font) WidthOf(t string) float32 {
return f.TextWidth(t)
}
func (f *font) Measure(t string) geom.RectangleF32 {
if f == nil {
return geom.RectangleF32{}
}
var x, y, w, h = f.TextDimensions(t)
return geom.RectF32(x, y, x+w, y+h)
}