phpopengl に glutKeyboardUpFunc を追加
「はじめての OpenGL」のサンプルを PHP に移植していた所、以下のコードで fatal 発生
glutKeyboardUpFunc('keyboardUp'); glutSpecialUpFunc('specialUpKey'); glutIgnoreKeyRepeat(GL_TRUE);//キー・リピート無視
関数追加
phpopengl が対応してなかったので、追加
- https://github.com/yoya/phpopengl/commit/812e66ae0860184bd0c2d63d452d88a3d9370fe1
- https://github.com/yoya/phpopengl/commit/efbe5a5fb21967472556f5de2fcdf355ecc4ced8
- https://github.com/yoya/phpopengl/commit/fc1a1bdff6515f445b7a5d8015826a02313fa4d1
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 を渡すと、キーリピートが無効になるはずだけど、実際に試すと、リピート感覚が長くなっただけでリピートし続ける。なんだろう。