0

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

代码在http://pastebin.com/i7Zshfk1

谢谢!

4

1 回答 1

3

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

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尽可能快地跟注几乎总是更好。

于 2012-05-19T03:39:22.373 回答