NNSG3dRS構造体は、レンダリング中の状態を保持するための構造体です。この構造体は、レンダリングやアニメーションの計算において参照されたり変更されたりする、いわゆるマシンステートに相当するデータを保持するためのデータ構造です。この構造体は、通常NNS_G3dDraw関数内部でスタック領域(DTCM)に確保され、SBC命令を処理する関数やコールバック関数などの実行の際には、第1引数としてポインタが渡されています。また、NNS_G3dDraw関数の実行中には、グローバル変数のNNS_G3dRSにもポインタが格納されています。
通常は、この構造体についての知識はなくとも問題はないのですが、コールバックで描画中の動作を細かくカスタマイズしたい場合には、この構造体が保持するデータを、参照・改変する必要が生じてきます。そこでこの項では、NNS_G3dRS構造体のデータメンバへのアクセサについて説明いたします。
#include <nnsys/g3d/sbc.h> |
SBC命令cmdに対してコールバックを設定します。引数についてはコールバックを複数設定したい場合は、NNS_G3dRenderObjSetCallBack関数を複数回呼び出すのではなくこちらの関数を使用してください。 |
#include <nnsys/g3d/sbc.h> |
| SBC命令cmdに対して設定されているコールバックを無効にします。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dRenderObj構造体へのポインタを取得します。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dMatAnmResult構造体へのポインタを取得します。NNS_G3D_SBC_MATコマンドのタイミングA,
タイミングBのコールバックにおいて参照、変更可能。その他の場合はNULLです。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dJntAnmResult構造体へのポインタを取得します。NNS_G3D_SBC_NODEDESCコマンドのタイミングA,
タイミングBのコールバックにおいて参照、変更可能。その他の場合はNULLです。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dVisAnmResult構造体へのポインタを取得します。NNS_G3D_SBC_NODEコマンドのタイミングA,
タイミングBのコールバックにおいて参照、変更可能。その他の場合はNULLです。 |
#include <nnsys/g3d/sbc.h> |
| 現在実行中のSBC命令へのポインタを取得します。 |
#include <nnsys/g3d/sbc.h> |
sbc.hで定義されているNNSG3dRSFlag型のフラグを指定してONにする。 |
#include <nnsys/g3d/sbc.h> |
sbc.hで定義されているNNSG3dRSFlag型のフラグを指定してOFFにする。 |
#include <nnsys/g3d/sbc.h> |
現在NNS_G3D_SBC_MATコマンドで計算中か直前に実行されたNNS_G3D_SBC_MATコマンドで設定されたマテリアルIDを返します。マテリアルIDはSBCのNNS_G3D_SBC_MATコマンドで設定され、次のNNS_G3D_SBC_MATコマンドがオーバーライドするか、コールバック関数内部で変更されるまで値を保持しつづけます。なお、NNS_G3D_SBC_MATコマンドが未実行か直前のNNS_G3D_SBC_MATコマンドの結果が無効とされている場合は-1を返します。 |
#include <nnsys/g3d/sbc.h> |
現在計算中のNNS_G3D_SBC_NODEコマンドか直前に実行されたNNS_G3D_SBC_NODEコマンドで設定されたノードのIDを返します。ノードIDはSBCのNNS_G3D_SBC_NODEコマンドで設定され、次のNNS_G3D_SBC_NODEコマンドがオーバーライドするか、コールバック関数内部で変更されるまで値を保持しつづけます。なお、NNS_G3D_SBC_NODEコマンドが未実行か直前のNNS_G3D_SBC_NODEコマンドの結果が無効とされている場合は-1を返します。 |
#include <nnsys/g3d/sbc.h> |
現在計算中のNNS_G3D_SBC_NODEDESCコマンドか直前に実行されたNNS_G3D_SBC_NODEDESCコマンドで設定されたノードのIDを返します。ノードIDはSBCのNNS_G3D_SBC_NODEDESCコマンドで設定され、次のNNS_G3D_SBC_NODEDESCコマンドがオーバーライドするか、コールバック関数内部で変更されるまで値を保持しつづけます。なお、NNS_G3D_SBC_NODEDESCコマンドが未実行か直前のNNS_G3D_SBC_NODEDESCコマンドの結果が無効とされている場合は-1を返します。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dRS構造体にキャッシュされている頂点座標に対するスケール値を取得します。 |
#include <nnsys/g3d/sbc.h> |
NNSG3dRS構造体にキャッシュされている頂点座標に対するスケール値の逆数を取得します。 |
以下は、NNSG3dRSFlag型の主要な値についての説明です。
|
NNS_G3D_SBC_NODEコマンドで、ノードに属するポリゴンがvisibleのときにセットされます。 |
|
NNS_G3D_SBC_MATコマンドで、マテリアルが透明の場合にセットされます。 |
|
currentNodeに有効な値が入っている場合セットされています。 |
|
currentMatに有効な値が入っている場合セットされています。 |
|
このフラグがセットされていると、現在のSBC命令終了後にNNS_G3dDraw関数の実行を終了します。 |
|
このフラグがセットされていると、次のコールバックポイントか現在の命令が終了するまで、処理をスキップします。 |
2004/10/11 改訂版
2004/08/02 初版