Platform SDK: DirectX

Direct3DDevice7.DrawIndexedPrimitiveVB

Direct3DDevice7.DrawIndexedPrimitiveVB メソッドは、頂点バッファ内の頂点配列へのインデックスに基づいて、ジオメトリ プリミティブをレンダリングする。

object.DrawIndexedPrimitiveVB( _ 
    d3Dpt As CONST_D3DPRIMITIVETYPE, _ 
    vertexBuffer As Direct3DVertexBuffer7, _ 
    StartVertex As Long, _ 
    NumVertices As Long, _ 
    indexArray() As Integer, _ 
    indexcount As Long, _ 
    flags As CONST_D3DDPFLAGS)

パラメータ

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

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

vertexBuffer
頂点の配列を含む頂点バッファに対する Direct3DVertexBuffer7 オブジェクト。頂点は、トランスフォームされていてもいなくても、最適化されていてもいなくてもよい。
StartVertex
レンダリングされる頂点バッファ内の最初の頂点のインデックス。
NumVertices
レンダリングされる頂点バッファ内の頂点総数。
indexArray()
頂点バッファ内の頂点へのインデックス付けに使用される配列。この配列の値によって、StartVertex から StartVertex + NumVertices – 1 の範囲で頂点にインデックスを付けなければならない。
indexcount
indexArray() 配列内のインデックス数。許可されたインデックスの最大数は 65535 (&HFFFF)。
flags
プリミティブの描画方法を定義する CONST_D3DDPFLAGS 列挙の定数の 1 つ。

エラー コード

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

D3DERR_INVALIDPRIMITIVETYPE
D3DERR_INVALIDVERTEXTYPE
D3DERR_VERTEXBUFFERLOCKED
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_WASSTILLDRAWING

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

注意

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

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

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

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

参照

Direct3DDevice7.DrawPrimitiveDirect3DDevice7.DrawPrimitiveVBDirect3DDevice7.DrawIndexedPrimitive