# NNS_G3dRenderObjSetCallBack

## 構文

      #include <nnsys/g3d/kernel.h>

      void
      NNS_G3dRenderObjSetCallBack(
          NNSG3dRenderObj*        pRenderObj,
          NNSG3dSbcCallBackFunc   func,
          u8*                     pCmd,
          u8                      cmd,
          NNSG3dSbcCallBackTiming timing
      );

## 引数

pRenderObj | `NNSG3dRenderObj`構造体へのポインタ
func | 登録するコールバック関数へのポインタ
pCmd | コールバック関数を呼び出すSBC命令へのポインタ（現在この引数は無効ですが、過去のバージョンとの引数の互換性のために残されています。）
cmd | コールバック関数を呼び出すSBC命令
timing | コールバック関数を呼び出すタイミング

## 返り値

なし。

## 説明

`NNS_G3dDraw`関数の実行中に差し挟むことができるコールバック関数をレンダリングオブジェクトに登録します。 コールバック処理は、cmdで指定されるSBC命令が実行されるときに、timingで指定される命令内のタイミングでコールバック関数が実行されます。timingは以下に示す3種類から選択でき、 SBCコマンド毎に設定されています。詳しくはSBCとコールバックを参照してください。

    typedef enum
    {
        NNS_G3D_SBC_CALLBACK_TIMING_A    = 0x00,
        NNS_G3D_SBC_CALLBACK_TIMING_B    = 0x01,
        NNS_G3D_SBC_CALLBACK_TIMING_C    = 0x02
    }
    NNSG3dSbcCallBackTiming;

登録したコールバック処理は`NNS_G3dRenderObjResetCallBack`関数によって取り消すことができます。複数のコールバック関数を登録したい場合には、`NNS_G3dRenderObjSetInitFunc`関数で登録した関数内で、`NNS_G3dRSSetCallBack`関数を使用してコールバック関数を設定してください。

## 参照

`NNS_G3dRenderObjResetCallBack, NNS_G3dRenderObjSetUserPtr NNSG3dSbcCallBackFunc`

## 履歴

2004/10/15 仕様の改訂に伴い記述を改訂
2004/08/02 初版