##### 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;	// テクスチャメモリのサイズを４で割ったもの
>     													// ワークの計算と確保
>     gVbinfo.nVertexBufferSize     = njCalcVertexBufferSize( &gVbinfo );
>     gVbinfo.pVertexBuffer         = syMalloc( gVbinfo.nVertexBufferSize );
>     njInitVertexBufferEx( &gVbinfo );		// 初期化を実行

### 備考

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

### 参照

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

njInitVertexBufferEx

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998-2000