Platform SDK: DirectX |
IDirect3DDevice7::DrawIndexedPrimitiveVB メソッドは、頂点バッファ内の頂点の配列に対するインデックスに基づき、ジオメトリ プリミティブをレンダリングする。
HRESULT DrawIndexedPrimitiveVB( D3DPRIMITIVETYPE d3dptPrimitiveType, LPDIRECT3DVERTEXBUFFER7 lpd3dVertexBuffer, DWORD dwStartVertex, DWORD dwNumVertices, LPWORD lpwIndices, DWORD dwIndexCount, DWORD dwFlags );
D3DPRIMITIVETYPE の D3DPT_POINTLIST メンバはインデックス付けされない。
成功すれば D3D_OK を返す。
失敗すれば、次のいずれかの値を返す。
D3DERR_INVALIDPRIMITIVETYPE |
D3DERR_INVALIDVERTEXTYPE |
D3DERR_VERTEXBUFFERLOCKED |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_WASSTILLDRAWING |
レンダリングする頂点が、指定した頂点フォーマットと一致していることを確認する。パフォーマンス上の理由から、Direct3D は頂点のサイズおよびストライドと提供された柔軟な頂点フォーマットとの照合を行わない。これが一致していないと、メモリ障害が発生しやすい。
頂点バッファからレンダリングするときは、頂点バッファ メソッドを使用する必要がある。
このメソッドは、従来のインターフェイスで使用されたメソッドとは異なり、dwFlags パラメータで D3DDP_DONOTCLIP、D3DDP_DONOTLIGHT、および D3DDP_DONOTUPDATEEXTENTS フラグを受け取らない。これらのフラグの機能性は、現在では D3DRENDERSTATE_CLIPPING、D3DRENDERSTATE_LIGHTING、および D3DRENDERSTATE_EXTENTS レンダリング ステートによって使用できる。
ソフトウェア デバイス (MMX および RGB デバイス) は、ローカルまたは非ローカルであるかどうかにかかわらず、ビデオ メモリから頂点バッファをレンダリングすることはできない。ソフトウェア デバイスを使用して頂点バッファをレンダリングするには、頂点バッファがシステム メモリに存在しなければならない。ハードウェア デバイスは、システム メモリまたはビデオ メモリのどちらの頂点バッファからでも、レンダリングすることができる。
頂点バッファがロックされているときはレンダリングすることはできない。ロックされた頂点バッファを使用して IDirect3DDevice7::DrawIndexedPrimitiveVB または IDirect3DDevice7::DrawPrimitiveVB メソッドを呼び出そうとすると失敗し、D3DERR_VERTEXBUFFERLOCKED が返される。
IDirect3DDevice3 インターフェイスでは、このメソッドは従来の IDirect3DVertexBuffer インターフェイスへのポインタを受け取った。
Windows NT/2000 :Windows 2000 が必要。
Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
バージョン :DirectX 7.0 が必要。
ヘッダー : d3d.h で宣言。
IDirect3DDevice7::DrawPrimitive、IDirect3DDevice7::DrawPrimitiveStrided、IDirect3DDevice7::DrawPrimitiveVB、IDirect3DDevice7::DrawIndexedPrimitive、IDirect3DDevice7::DrawIndexedPrimitiveStrided