Microsoft DirectX 8.0 (C++)

頂点バッファからのレンダリング

頂点バッファから頂点データをレンダリングするには、いくつかのステップが必要である。まず、IDirect3DDevice8::SetStreamSource メソッドを呼び出して、ストリーム ソースを設定する必要がある。次のコードに例を示す。

d3dDevice->SetStreamSource( 0, g_pVB, sizeof(CUSTOMVERTEX) );

SetStreamSource の第 1 パラメータは、Microsoft® Direct3D® にデバイス データ ストリームのソースを知らせる。第 2 パラメータは、データ ストリームにバインドする頂点バッファである。第 3 パラメータは、成分のサイズをバイト単位で指定する。上のサンプル コードでは、CUSTOMVERTEX のサイズが成分のサイズに使用される。

次のステップでは、IDirect3DDevice8::SetVertexShader メソッドを呼び出して、使用する頂点シェーダを Direct3D に知らせる。次のサンプル コードでは、FVF コードを頂点シェーダに設定している。これにより、処理する頂点のタイプを Direct3D に知らせる。

d3dDevice->SetVertexShader( D3DFVF_CUSTOMVERTEX );

ストリーム ソースおよび頂点シェーダを設定した後、描画メソッドで頂点バッファを使用する。次のコードは、IDirect3DDevice8::DrawPrimitive メソッドを使用して、頂点バッファから頂点をレンダリングする方法を示している。

d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );

DrawPrimitive が受け取る第 2 パラメータは、ロードする頂点バッファにある最初のベクトルのインデックスである。