Platform SDK: DirectX

Direct3DDevice7.DrawPrimitiveVB

Direct3DDevice7.DrawPrimitiveVB メソッドは、ジオメトリ プリミティブのシーケンスとして、頂点バッファ内の頂点の配列をレンダリングする。

object.DrawPrimitiveVB( _ 
    d3dpt As CONST_D3DPRIMITIVETYPE, _ 
    vertexBuffer As Direct3DVertexBuffer7, _ 
    startVertex As Long, _ 
    numVertices As Long, _ 
    flags As CONST_D3DDPFLAGS)

パラメータ

object
Direct3DDevice7 オブジェクトを表すオブジェクト式。
d3dpt
このコマンドによってレンダリングされるプリミティブの型。これは、CONST_D3DPRIMITIVETYPE 列挙の定数の 1 つでなければならない。

CONST_D3DPRIMITIVETYPE の D3DPT_POINTLIST メンバには、インデックスがないことに注意する。

vertexBuffer
頂点の配列を含む頂点バッファに対する Direct3DVertexBuffer7 オブジェクト。頂点は、トランスフォームされていてもいなくても、最適化されていてもいなくてもよい。
startVertex
プリミティブ中の最初の頂点のインデックス値。最大可能始点インデックスは 65535 (&HFFFF)。
numVertices
レンダリングする頂点数。許可された頂点の最大数は、65535 (&HFFFF)。
flags
プリミティブの描画方法を定義する CONST_D3DDPFLAGS 列挙の定数の 1 つ。

エラー コード

メソッドが失敗するとエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。

D3DERR_INVALIDRAMPTEXTURE
D3DERR_INVALIDPRIMITIVETYPE
D3DERR_INVALIDVERTEXTYPE
D3DERR_VERTEXBUFFERLOCKED
DDERR_WASSTILLDRAWING
DDERR_INVALIDPARAMS

トラッピング エラーについては、「Visual Basic エラー トラッピング」を参照すること。

注意

レンダリングする頂点のフォーマットは、指定した頂点フォーマットと一致しなければならない。パフォーマンス上の理由から、Direct3D は、頂点のサイズとストライドが、指定された柔軟な頂点フォーマットと一致するかどうかを確認しない。これらが一致しない場合、メモリに障害が発生する可能性がある。

頂点バッファからレンダリングする場合には、頂点バッファ メソッドを使用しなければならない。

リファレンス ラスタライザを除いて、ソフトウェア デバイスはビデオ メモリ (ローカルまたは非ローカル) の頂点バッファからレンダリングすることはできない。ソフトウェア デバイスを使用して頂点バッファをレンダリングするには、頂点バッファがシステム メモリに存在しなければならない。ハードウェア デバイスは、システム メモリまたはビデオ メモリのどちらの頂点バッファからでも、レンダリングすることができる。

頂点バッファがロックされているときはレンダリングすることはできない。ロックされた頂点バッファを使って Direct3DDevice7.DrawIndexedPrimitiveVB または Direct3DDevice7.DrawPrimitiveVB メソッドを呼び出そうとすると失敗し、D3DERR_VERTEXBUFFERLOCKED を返す。

参照

Direct3DDevice7.DrawPrimitiveDirect3DDevice7.DrawIndexedPrimitiveDirect3DDevice7.DrawIndexedPrimitiveVB