project-ely/internal/sprite/spritesheet_cache.go

34 lines
510 B
Go

package sprite
import (
"log"
)
var (
spriteCache map[string]*spritesheet
)
func InitSpriteCache() {
spriteCache = make(map[string]*spritesheet)
for _, filename := range SpriteFileList {
s := NewSprite(filename)
spriteCache[filename] = s
}
}
func GetSpritesheet(filename string) *spritesheet {
s, exists := spriteCache[filename]
if !exists {
log.Printf("no sprite found for %v", filename)
}
return s
}
func CleanupSpriteCache() {
for _, v := range spriteCache {
defer v.Cleanup()
}
}