Platform SDK: DirectX |
Direct3DDevice7.DrawPrimitiveVB メソッドは、ジオメトリ プリミティブのシーケンスとして、頂点バッファ内の頂点の配列をレンダリングする。
object.DrawPrimitiveVB( _ d3dpt As CONST_D3DPRIMITIVETYPE, _ vertexBuffer As Direct3DVertexBuffer7, _ startVertex As Long, _ numVertices As Long, _ flags As CONST_D3DDPFLAGS)
CONST_D3DPRIMITIVETYPE の D3DPT_POINTLIST メンバには、インデックスがないことに注意する。
メソッドが失敗するとエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
D3DERR_INVALIDRAMPTEXTURE |
D3DERR_INVALIDPRIMITIVETYPE |
D3DERR_INVALIDVERTEXTYPE |
D3DERR_VERTEXBUFFERLOCKED |
DDERR_WASSTILLDRAWING |
DDERR_INVALIDPARAMS |
トラッピング エラーについては、「Visual Basic エラー トラッピング」を参照すること。
レンダリングする頂点のフォーマットは、指定した頂点フォーマットと一致しなければならない。パフォーマンス上の理由から、Direct3D は、頂点のサイズとストライドが、指定された柔軟な頂点フォーマットと一致するかどうかを確認しない。これらが一致しない場合、メモリに障害が発生する可能性がある。
頂点バッファからレンダリングする場合には、頂点バッファ メソッドを使用しなければならない。
リファレンス ラスタライザを除いて、ソフトウェア デバイスはビデオ メモリ (ローカルまたは非ローカル) の頂点バッファからレンダリングすることはできない。ソフトウェア デバイスを使用して頂点バッファをレンダリングするには、頂点バッファがシステム メモリに存在しなければならない。ハードウェア デバイスは、システム メモリまたはビデオ メモリのどちらの頂点バッファからでも、レンダリングすることができる。
頂点バッファがロックされているときはレンダリングすることはできない。ロックされた頂点バッファを使って Direct3DDevice7.DrawIndexedPrimitiveVB または Direct3DDevice7.DrawPrimitiveVB メソッドを呼び出そうとすると失敗し、D3DERR_VERTEXBUFFERLOCKED を返す。
Direct3DDevice7.DrawPrimitive、Direct3DDevice7.DrawIndexedPrimitive、Direct3DDevice7.DrawIndexedPrimitiveVB