PHPOpenGL glutTimerFunc 修正
glutTimerFunc に限らず 〜Func を何度も呼んでると落ちる不具合でした。
修正イメージ
MINIT に集約するか迷ったけど、とりあえずガードをかけました。
- php_convert.h
#define HASH_CALLBACK(callback,param_num,hash_key) \ { \ zval *function_name; \ IS_CALLBACK(callback,param_num); \ if(zend_hash_index_find(call_backs, hash_key,(void **)&function_name) != SUCCESS) { \ zval_add_ref(&callback); \ zend_hash_index_update(call_backs, hash_key, callback, sizeof(zval), NULL); \ } \ }
Windows build
一からインストールしてみたけど、Visual C++ 2008 と SDK 7.1 の組み合わせはダメっぽい。
エラー: 指定されたレジストリ キーまたは値が見つかりませんでした
と出て、setenv からして使えない。
という訳で、Visual C++ 2008 と SDK 6.1 をインスール。
- http://www.microsoft.com/japan/msdn/vstudio/2008/product/express/
- http://www.microsoft.com/download/en/confirmation.aspx?id=3138
Recreating build dirs fatal error C1900: 'P1' Version '20080116' と 'P2' Version '20070207' が一致しません。 LINK : fatal error LNK1257: コードの生成に失敗しました。 NMAKE : fatal error U1077: '"C:Program Files\Microsoft Visual Studio 9.0\VC\Bin\cl.exe"' : リターン コード '0x2' Stop.
これはこれでダメらしい。残念。
追記 (2013/01/28)
SDK6.1 は SP1 用なので SP1 を適用する必要がある。
あと、2008 と SDK7.1 を組み合わせる事も出来るみたい