code: func Run(run func()) {
  	err := glfw.Init()
  	if err != nil {
  		panic(errors.Wrap(err, "failed to initialize GLFW"))
  	}
  	defer glfw.Terminate()
  	mainthread.Run(run)
  }
docs: // Run is essentially the main function of PixelGL. 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() {
  //       // interact with Pixel and PixelGL from here (even concurrently)
  //   }
  //
  //   func main() {
  //       pixel.Run(run)
  //   }
  //
  // You can spawn any number of goroutines from your run function and interact with PixelGL
  // concurrently. The only condition is that the Run function is called from your main function.