freeGLUT键盘输入

时间:2010-06-13 15:20:05

标签: opengl glut freeglut

我正在使用GLUT(freeglut3)(通过Haskell GLUT绑定)。

import Graphics.UI.GLUT

handleKBMouse :: KeyboardMouseCallback
handleKBMouse key keyState mods mousePos = do
    print (key, keyState, mods, mousePos)

main :: IO ()
main = do
    getArgsAndInitialize
    createWindow "testTitle"
    keyboardMouseCallback $= Just handleKBMouse
    mainLoop

似乎各种重要的键(例如:Shift + Tab)不会调用我的回调。此外,“mods”不描述win-key,只有Ctrl,Shift和Alt。

对键盘输入的这种有限访问是实际应用程序开发的严重障碍。我在这里做错了什么,或者只是因为残缺而被瘫痪? GLUT一般会瘫痪吗?

1 个答案:

答案 0 :(得分:2)

首先,Windows会捕获shift-tab序列,所以即使你直接使用Win32,你通常也不会看到它。其次,GLUT是便携式的,所以除非你可以期望在Linux,MacOS等下看到相同的密钥,否则GLUT甚至不会尝试处理它。第三,GLUT规范上次更新了 long 时间,所以即使win-key(或至少类似的东西)现在非常普遍,如果它不是12年或15年前, GLUT可能不会知道它。