2004-09-16版又はそれ以前のバージョンとの非互換性についてのお知らせ
コールバックの非互換性
2004-10-11版ではNNS_G3dDraw関数内においてSBC1つにつき1つのコールバック関数を設定することができるようになっています(従来バージョンでは全体で1つのコールバック関数のみ)。しかしながら、そのために一部従来バージョンとの非互換性が生じています。
- NNSG3dRS構造体からcbFunc, cbCmdPtr, cbCmd, cbTimingメンバが削除されました。従ってコールバック内でこれらのメンバを操作するコードを記述した場合、コンパイルが通らなくなります。
- NNS_G3dRenderObjSetCallBack関数の第3引数が無効になりました。SBCのアドレスを指定してコールバックを起動する機能は削除されました。
コールバック関係のコードがコンパイルできない場合の対処法
コールバック内でコールバック関数、コールバック生起条件を変更している場合
コールバック関数内でNNSG3dRS構造体のcbFunc, cbCmd, cbTimingメンバを変更している場合、次のようにコードを置き換えます。
- コールバック関数内でNNS_G3dRSResetCallBack関数を使用して現在使用しているコールバックを解除します。
- その後、NNS_G3dRSSetCallBack関数を使用して新たにコールバック関数や生起条件を指定します。
複数のコールバックを使用する場合
2つ目以降のコールバックは、NNS_G3dRenderObjSetCallBack関数では登録することができません。NNSG3dRenderObj構造体のサイズが必要以上に大きくならないようにするため、NNS_G3dDraw関数内で描画前にNNSG3dRS構造体の設定を行ない、コールバックを登録するようになっています。
- NNS_G3dRenderObjSetInitFunc関数を使用して、NNS_G3dDraw関数の実行時において描画前に実行される関数をNNSG3dRenderObj構造体に設定しておく。
- 設定された関数内で、NNS_G3dRSSetCallBack関数を使用してコールバック関数や生起条件を指定します。
具体的には、サンプルcallback5を参照してください。
履歴
2004/10/11 初版