如何在Haskell中的GLUT窗口中对鼠标滚轮事件做出反应?

我正在使用OpenGL包,并且也在使用GLUT包。虽然GLUT包似乎有一个鼠标滚轮回调,但它似乎不起作用(doc说只有freeglut)。 那么......在GLUT创建的窗口内,如何访问鼠标滚轮事件?     
已邀请:
OpenGL不会创建窗口。从本质上讲,它只是一堆绘制东西的函数。事件处理完全超出了OpenGL的范围。 GLUT不是OpenGL的核心部分。这是一个相当古老的库,目的是使编写简单的OpenGL教程变得容易。而已。 而不是GLUT你应该使用更优越的GLFW,其中也存在优秀的Haskell绑定:http://hackage.haskell.org/package/GLFW     
只是添加另一个选项...... 当我厌倦了GLUT时,我转而使用Gtk2Hs。 wiki上有几个简单的示例演示了GtkGLext。     
我也建议避免使用GLUT。无论如何,它非常有限。 如果您更喜欢处理自己的主事件循环而不是使用回调,则另一个选择是使用SDL。是的,它适用于游戏,但它可以为您提供GL上下文,并且适用于大多数不需要标准UI小部件的交互式OpenGL应用程序。它为您提供键盘/鼠标事件,毫秒计时器和一些非常基本的窗口管理。 KINDA POINTLESS POST-HOC编辑:我在评论中被告知GLFW还允许运行您自己的事件循环。再看一遍之后,我肯定同意GLFW是大多数不需要标准UI小部件的方法。     

要回复问题请先登录注册