Ninja Library - システム関数

njInitVertexBufferEx

システムの動作定義と初期化

書式

void njInitVertexBufferEx( pVBInfo )
NJS_VERTEXBUFFER_INFO *pVBInfo

引数

pVBInfo   システム情報を格納した構造体へのポインタ

戻り値

なし

解説

Ninja2で使用する各種バッファ(Vertex/Frame/Native)の初期化を行います。

NJS_VERTEXBUFFER_INFO型構造体に指定されたパラメータに従い、Ninja2の各種システム構成を設定します。 また、フレームバッファメモリ上に、ネイティブデータバッファと表示用フレームバッファを確保します。 ネイティブデータバッファ領域の容量は下記のように求めます。

ネイティブデータバッファ容量 = フレームバッファメモリ全体の容量 − (指定された最大テクスチャ使用サイズ + 表示用フレームバッファの容量)

ただし、ネイティブデータバッファの全容量は、フレームバッファメモリ全容量の半分を越えることはできません。 上記の式で計算した結果がこれを越えた場合は、実際にはフレームバッファメモリ全容量の半分をネイティブデータバッファとして使用します。


用例

NJS_VERTEXBUFFER_INFO gVbinfo;
	
gVbinfo.bNoWaitVsync          = FALSE;	// レンダリングがVに同期するかどうか
gVbinfo.nNumOfMaxPass         = 1;		// 使用するパス数
gVbinfo.sPassInfo[0].bPreSort = FALSE;	// そのパスがプリソートかどうか
gVbinfo.sPassInfo[0].nSize[0] = -1;		// そのパスの使用するOPAQUE         用バッファ数
gVbinfo.sPassInfo[0].nSize[1] = 0;		// そのパスの使用するOPAQUE MODIFIER用バッファ数
gVbinfo.sPassInfo[0].nSize[2] = 100000;	// そのパスの使用するTRANS          用バッファ数
gVbinfo.sPassInfo[0].nSize[3] = 0;		// そのパスの使用するTRANS MODIFIER 用バッファ数
gVbinfo.sPassInfo[0].nSize[4] = 0;		// そのパスの使用するPUNCH THROUGH  用バッファ数
gVbinfo.nNumOfTextures        = 100;	// 使用するテクスチャの枚数
gVbinfo.nNumOfSmallVQ         = 0;		// 使用するSMALLVQテクスチャのグループの数
gVbinfo.nTextureMemorySize    = 0x400000/4;	// テクスチャメモリのサイズを4で割ったもの
													// ワークの計算と確保
gVbinfo.nVertexBufferSize     = njCalcVertexBufferSize( &gVbinfo );
gVbinfo.pVertexBuffer         = syMalloc( gVbinfo.nVertexBufferSize );
njInitVertexBufferEx( &gVbinfo );		// 初期化を実行

備考

njInitSystem()関数より後で、他のNinja系初期化関数より前に呼んでください。

参照

njInitSystem() グラフィックシステムの初期化
njCalcVertexBufferSize() njInitVertexBufferExに渡すワークサイズを計算します。

njInitVertexBufferEx
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000