package tins2020 import ( rice "github.com/GeertJohan/go.rice" "github.com/veandco/go-sdl2/sdl" ) type Context struct { Renderer *sdl.Renderer Fonts Fonts Resources Resources Textures Textures Settings Settings } func NewContext(res *rice.Box) (*Context, error) { ctx := &Context{} err := ctx.Settings.Init() if err != nil { return nil, err } err = ctx.Resources.Open(res) if err != nil { return nil, err } return ctx, nil } func (c *Context) Init(renderer *sdl.Renderer) { c.Renderer = renderer c.Fonts.Init(c.Resources.Copy()) c.Textures.Init(renderer, c.Resources.Copy()) } func (c *Context) Destroy() { c.Fonts.Destroy() c.Resources.Destroy() c.Textures.Destroy() c.Settings.Store() }