mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2025-12-12 16:08:52 +01:00
load all fonts into memory
This commit is contained in:
parent
f59b4223e8
commit
2785d78d94
@ -3,6 +3,7 @@ package UI
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/veandco/go-sdl2/sdl"
|
||||||
"github.com/veandco/go-sdl2/ttf"
|
"github.com/veandco/go-sdl2/ttf"
|
||||||
|
|
||||||
"github.com/clockworkpi/LauncherGoDev/sysgo"
|
"github.com/clockworkpi/LauncherGoDev/sysgo"
|
||||||
@ -51,41 +52,75 @@ func (self *Widget) NewCoord(x, y int) {
|
|||||||
self.PosY = y
|
self.PosY = y
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func FontRW(font_data [] byte, font_size int) *ttf.Font {
|
||||||
|
|
||||||
|
mem,err := sdl.RWFromMem(font_data)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
font, err := ttf.OpenFontRW(mem, 0, font_size)
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Sprintf("OpenRW font failed %s", err))
|
||||||
|
}
|
||||||
|
|
||||||
|
return font
|
||||||
|
}
|
||||||
|
|
||||||
|
type FontData struct {
|
||||||
|
Data []byte
|
||||||
|
Size int
|
||||||
|
}
|
||||||
//invoked in main.go
|
//invoked in main.go
|
||||||
func Init() {
|
func Init() {
|
||||||
font.Init()
|
font.Init()
|
||||||
|
|
||||||
|
fonts_name := [4]string{"VarelaRound-Regular.ttf",
|
||||||
|
"VeraMono.ttf",
|
||||||
|
"NotoSansMono-Regular.ttf",
|
||||||
|
"NotoSansCJK-Regular.ttf"}
|
||||||
|
|
||||||
skinpath := sysgo.SKIN + "/truetype"
|
skinpath := sysgo.SKIN + "/truetype"
|
||||||
|
|
||||||
Fonts = make(map[string]*ttf.Font)
|
Fonts = make(map[string]*ttf.Font)
|
||||||
|
|
||||||
fonts_path := make(map[string]string)
|
fonts_path := make(map[string]string)
|
||||||
|
|
||||||
fonts_path["varela"] = fmt.Sprintf("%s/VarelaRound-Regular.ttf", skinpath)
|
fonts_path["varela"] = fmt.Sprintf("%s/%s", skinpath,fonts_name[0])
|
||||||
fonts_path["veramono"] = fmt.Sprintf("%s/VeraMono.ttf", skinpath)
|
fonts_path["veramono"] = fmt.Sprintf("%s/%s", skinpath,fonts_name[1])
|
||||||
fonts_path["noto"] = fmt.Sprintf("%s/NotoSansMono-Regular.ttf", skinpath)
|
fonts_path["noto"] = fmt.Sprintf("%s/%s", skinpath,fonts_name[2])
|
||||||
fonts_path["notocjk"] = fmt.Sprintf("%s/NotoSansCJK-Regular.ttf", skinpath)
|
fonts_path["notocjk"] = fmt.Sprintf("%s/%s", skinpath,fonts_name[3])
|
||||||
|
|
||||||
|
fonts_data := make(map[string]FontData)
|
||||||
|
d,s := sdl.LoadFile(fonts_path["varela"])
|
||||||
|
fonts_data["varela"] = FontData{d,s}
|
||||||
|
d,s = sdl.LoadFile(fonts_path["notocjk"])
|
||||||
|
fonts_data["notocjk"] = FontData{d,s}
|
||||||
|
d,s = sdl.LoadFile(fonts_path["veramono"])
|
||||||
|
fonts_data["veramono"] = FontData{d,s}
|
||||||
|
d,s = sdl.LoadFile(fonts_path["noto"])
|
||||||
|
fonts_data["noto"] = FontData{d,s}
|
||||||
|
|
||||||
for i := 10; i < 41; i++ {
|
for i := 10; i < 41; i++ {
|
||||||
keyname := fmt.Sprintf("varela%d", i)
|
keyname := fmt.Sprintf("varela%d", i)
|
||||||
Fonts[keyname] = font.Font(fonts_path["varela"], i)
|
Fonts[keyname] = FontRW(fonts_data["varela"].Data, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
Fonts["varela120"] = font.Font(fonts_path["varela"], 120)
|
Fonts["varela120"] = FontRW(fonts_data["varela"].Data, 120)
|
||||||
|
|
||||||
for i := 10; i < 26; i++ {
|
for i := 10; i < 26; i++ {
|
||||||
keyname := fmt.Sprintf("veramono%d", i)
|
keyname := fmt.Sprintf("veramono%d", i)
|
||||||
Fonts[keyname] = font.Font(fonts_path["veramono"], i)
|
Fonts[keyname] = FontRW(fonts_data["veramono"].Data, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 10; i < 28; i++ {
|
for i := 10; i < 28; i++ {
|
||||||
keyname := fmt.Sprintf("notosansmono%d", i)
|
keyname := fmt.Sprintf("notosansmono%d", i)
|
||||||
Fonts[keyname] = font.Font(fonts_path["noto"], i)
|
Fonts[keyname] = FontRW(fonts_data["noto"].Data, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 10; i < 28; i++ {
|
for i := 10; i < 28; i++ {
|
||||||
keyname := fmt.Sprintf("notosanscjk%d", i)
|
keyname := fmt.Sprintf("notosanscjk%d", i)
|
||||||
Fonts[keyname] = font.Font(fonts_path["notocjk"], i)
|
Fonts[keyname] = FontRW(fonts_data["notocjk"].Data, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user