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 パラメータは、ロードする頂点バッファにある最初のベクトルのインデックスである。