replace Init and Quit with Run
This commit is contained in:
parent
0986e0c35e
commit
ee9c6a6b6e
35
init.go
35
init.go
|
@ -1,35 +0,0 @@
|
|||
package pixel
|
||||
|
||||
import (
|
||||
"github.com/faiface/pixel/pixelgl"
|
||||
"github.com/go-gl/glfw/v3.2/glfw"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Init initializes Pixel library. Call this function before using any of Pixel's functionality.
|
||||
//
|
||||
// If the initialization fails, an error is returned.
|
||||
func Init() error {
|
||||
err := pixelgl.DoErr(func() error {
|
||||
return glfw.Init()
|
||||
})
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "initializing GLFW failed")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// MustInit initializes Pixel library and panics when the initialization fails.
|
||||
func MustInit() {
|
||||
err := Init()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
// Quit terminates Pixel library. Call this function when you're done with Pixel.
|
||||
func Quit() {
|
||||
pixelgl.Do(func() {
|
||||
glfw.Terminate()
|
||||
})
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package pixel
|
||||
|
||||
import (
|
||||
"github.com/faiface/pixel/pixelgl"
|
||||
"github.com/go-gl/glfw/v3.2/glfw"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
// Run is essentialy the "main" function of Pixel. It exists mainly due to the technical limitations of OpenGL and operating systems,
|
||||
// in short, all graphics and window manipulating calls must be done from the main thread. Run makes this possible.
|
||||
//
|
||||
// Call this function from the main function of your application. This is necessary, so that Run runs on the main thread.
|
||||
//
|
||||
// func run() {
|
||||
// window := pixel.NewWindow(...)
|
||||
// for {
|
||||
// // your game's main loop
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// func main() {
|
||||
// pixel.Run(run)
|
||||
// }
|
||||
//
|
||||
// You can spawn any number of goroutines from you run function and interact with Pixel concurrently.
|
||||
// The only condition is that the Run function must be called from your main function.
|
||||
func Run(run func()) error {
|
||||
err := glfw.Init()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "failed to initialize GLFW")
|
||||
}
|
||||
defer glfw.Terminate()
|
||||
|
||||
pixelgl.Run(run)
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Reference in New Issue