GLFW窗口关闭

时间:2012-05-19 02:19:30

标签: haskell graphics window glfw

我正在使用X11和xfce4在x86_64 Arch Linux上运行,并尝试使用OpenGL和GLFW-b库编译一个简单的OpenGL / GLFW应用程序。我无法让窗口关闭,但我只能用Ctrl-C杀死它。

代码http://pastebin.com/i7Zshfk1

谢谢!

1 个答案:

答案 0 :(得分:3)

主函数中有一个无限循环。即使主窗口关闭,您仍然可以在后台运行主更新循环。您可以使用这样的主循环来解决问题:

mainLoop = do
  drawFrame
  swapBuffers

  -- Check if window is still open
  isOpen <- windowIsOpen
  -- Call mainLoop recursively
  when isOpen mainLoop

然后,您应该调用mainLoop函数而不是forever $ do ...循环。

另请注意,您应该注意FPS限制;你会搞砸可能由你的驱动程序或GLFW选项控制的自动vsync。尽可能快地调用swapBuffers几乎总是更好。