34 lines
510 B
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()
|
|
}
|
|
}
|