X11 および xfce4 を使用して x86_64 Arch Linux を実行しており、OpenGL および GLFW-b ライブラリを使用して単純な OpenGL/GLFW アプリケーションをコンパイルしようとしています。ただし、ウィンドウを閉じるのに問題があります-Ctrl-Cでしかウィンドウを強制終了できません。
http://pastebin.com/i7Zshfk1のコード
ありがとう!
X11 および xfce4 を使用して x86_64 Arch Linux を実行しており、OpenGL および GLFW-b ライブラリを使用して単純な OpenGL/GLFW アプリケーションをコンパイルしようとしています。ただし、ウィンドウを閉じるのに問題があります-Ctrl-Cでしかウィンドウを強制終了できません。
http://pastebin.com/i7Zshfk1のコード
ありがとう!
メイン関数に無限ループがあります。メイン ウィンドウを閉じても、バックグラウンドでメインの更新ループが実行されます。この問題は、次のようなメイン ループを使用して解決できます。
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
できるだけ早く電話するだけで、ほとんどの場合、より良い結果が得られます。