njInitVertexBuffer English
|INDEX|
頂点データ登録用バッファをアロケートします。

書 式

#include <Ninja.h>
void  njInitVertexBuffer( op, om, tp, tm, pt );
Uint32  op
Uint32  om
Uint32  tp
Uint32  tm
Uint32  pt

引 数

op
不透明ポリゴン登録バッファサイズ
om
不透明モディファイアボリューム登録バッファサイズ
tp
半透明ポリゴン登録バッファサイズ
tm
半透明モディファイアボリューム登録バッファサイズ
pt
抜きテクスチャ登録バッファサイズ

返 値

なし

エラー

なし

機 能

頂点データ登録用のバッファをアロケートします。
3Vレーテンシモードの場合、アロケートされるサイズは引数*4 バイトであり、
これをダブルバッファで使用します。

また、引数の1つをマイナスにすると2Vレーテンシモードになります。
2Vレーテンシモード場合、通常のバッファはシングルバッファになり
マイナスにしたバッファは直接ハードに転送します。

3Vレーテンシと2Vレーテンシでの取得メモリサイズは以下のようになります。

・3Vの場合
取得メモリサイズ = (op + om + tp + tm + pt)x4 + 352(内部必要領域) バイト

・2Vレーテンシで上と同じ設定する場合

取得メモリサイズ = 100(マイナスを付けたバッファ) + (それ以外のバッファ)x4 + 352(内部必要領域) バイト


例:

・3Vの場合
njInitVertexBuffer( 100000, 0, 100000, 0, 0); 

op = 100000*4 バイト = 400000バイト
tp = 100000*4 バイト = 400000バイト
内部必要領域 = 352バイト
合計 800352バイト

・2Vレーテンシで上と同じ設定する場合
njInitVertexBuffer( -100000, 0, 50000, 0 ,0); 

op = マイナスは100バイト
to = 50000*4 バイト = 200000バイト(シングルバッファなので半分で良い)
内部必要領域 = 352バイト

合計 200452バイト




用 例

njInitVertexBuffer( 100000, 0, 100000, 0 , 0);

不透明ポリゴンと、半透明ポリゴンの頂点バッファをそれぞれ400KB確保します。


備 考

デバッグ文字を表示する場合は、半透明ポリゴン登録バッファを確保してください。
現在、抜きテクスチャ登録バッファは値を参照していません。

この関数は、内部でメモリ確保を行っています。よって、複数回呼ばれても良い様に、
前回確保したバッファ>を開放してから、新たに確保します。

Nindows で表示される値はバッファサイズを2で割った値です。

関 連


njInitVertexBuffer
|INDEX|

Copyright SEGA ENTERPRISES, LTD., 1998