phpopengl に glutKeyboardUpFunc を追加

「はじめての OpenGL」のサンプルを PHP に移植していた所、以下のコードで fatal 発生

glutKeyboardUpFunc('keyboardUp');
glutSpecialUpFunc('specialUpKey');
glutIgnoreKeyRepeat(GL_TRUE);//キー・リピート無視

関数追加

phpopengl が対応してなかったので、追加

glut callback 関数追加の手順は、

  • php_glut.h に PHP_FUNCTION と callback 関数の宣言
  • php_glut.h に GLUT_〜_CALLBACK は定義 (番号が重ならないように)
  • php_glut.c の glut_functions に PHP_FE 追加
  • php_glut.c に PHP_FUNCTION と callback 関数を実装

それだけ。

glutIgnoreKeyRepeat

glutIgnoreKeyRepeat に GL_TRUE を渡すと、キーリピートが無効になるはずだけど、実際に試すと、リピート感覚が長くなっただけでリピートし続ける。なんだろう。