mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2025-12-12 16:08:52 +01:00
61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
package UI
|
|
|
|
import (
|
|
"fmt"
|
|
"io/ioutil"
|
|
"log"
|
|
"strings"
|
|
|
|
"github.com/veandco/go-sdl2/sdl"
|
|
|
|
"github.com/cuu/gogame/image"
|
|
|
|
)
|
|
|
|
type IconPool struct {
|
|
GameShellIconPath string
|
|
Icons map[string]*sdl.Surface
|
|
}
|
|
|
|
func NewIconPool() *IconPool {
|
|
i := &IconPool{}
|
|
i.GameShellIconPath = SkinMap("sysgo/gameshell/icons/")
|
|
i.Icons = make( map[string]*sdl.Surface )
|
|
return i
|
|
}
|
|
|
|
|
|
func (self *IconPool) Init() {
|
|
files,err := ioutil.ReadDir(self.GameShellIconPath)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
return
|
|
}
|
|
|
|
for _,f := range files {
|
|
if f.IsDir() {
|
|
//pass
|
|
}else {
|
|
if strings.HasSuffix(f.Name(),".png") == true {
|
|
keyname := strings.Split(f.Name(),".")
|
|
if len(keyname) > 1 {
|
|
self.Icons[ keyname[0] ] = image.Load( self.GameShellIconPath+ "/"+f.Name() )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func (self *IconPool) GetImgSurf(keyname string) *sdl.Surface {
|
|
if _,ok := self.Icons[keyname]; ok {
|
|
return self.Icons[keyname]
|
|
} else {
|
|
fmt.Println("IconPool GetImgSurf ", keyname, " failed")
|
|
return nil
|
|
}
|
|
}
|
|
|
|
var MyIconPool *IconPool
|
|
// = NewIconPool()
|
|
|