OpenGL with GLUT:キーボードの認識

GLUTにおいてキーボード上のキーは3種類に分かれるようである

  • 文字コードを持つキー
    • アルファベット(大文字小文字はわけて考える)
    • 記号(&や%、!とか。)
  • Functionキー、上下左右キー、Shift、Alt、Ctrlキー、、、
    • 特殊キーと称す。
    • glut.hにマクロ定義されているキーと言う方が正しい
    • 日本語特有のキーは無いと思いまっす
  • それ以外
    • 半角/全角切り替えキーや変換、無変換キーはもちろん。
    • ひょっとしてCapslockキーもない?調べてみないとわからない

多分、キーボードから送信されるキーコードを直接番号で指定すれば受け取れるのでは?とは思うが、互換性は失われるだろう。

問題は、なぜ分けられているのかで、これは担当するイベントが違うためである。glut内部で分けられているように思われる。

  • 英数字キー
    • glutKeyboardFunc()に登録する関数で処理する。
  • 特殊キー
    • glutSpecialFunc()に登録する関数で処理する。

英数字キーに特殊キーを処理させるのは不可能、どうやら全く送られてこないように思われる。

あ、、、shiftやctrlは
glutGetModifiers()なる関数も対応しているようす。また調べないとなあ