1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-11-10 06:16:27 -05:00
OpenDiablo2/d2core/d2gui/d2gui.go

73 lines
1.1 KiB
Go
Raw Normal View History

2020-02-08 21:02:37 -05:00
package d2gui
import (
"errors"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2render"
)
var (
ErrWasInit = errors.New("gui system is already initialized")
ErrNotInit = errors.New("gui system is not initialized")
)
var singleton *guiManager
func Initialize() error {
2020-02-09 14:12:04 -05:00
verifyNotInit()
2020-02-08 21:02:37 -05:00
var err error
if singleton, err = createGuiManager(); err != nil {
return err
}
return nil
}
func Render(target d2render.Surface) error {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
return singleton.render(target)
}
func Advance(elapsed float64) error {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
return singleton.advance(elapsed)
}
func Clear() {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
singleton.clear()
}
func ShowLoadScreen(progress float64) {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
singleton.showLoadScreen(progress)
}
func HideLoadScreen() {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
singleton.hideLoadScreen()
}
func ShowCursor() {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
singleton.showCursor()
}
func HideCursor() {
2020-02-09 14:12:04 -05:00
verifyWasInit()
2020-02-08 21:02:37 -05:00
singleton.hideCursor()
}
2020-02-09 14:12:04 -05:00
func verifyWasInit() {
2020-02-08 21:02:37 -05:00
if singleton == nil {
panic(ErrNotInit)
}
}
2020-02-09 14:12:04 -05:00
func verifyNotInit() {
2020-02-08 21:02:37 -05:00
if singleton != nil {
panic(ErrWasInit)
}
}