Platform SDK: DirectX

Direct3DDevice7.DrawIndexedPrimitive

Direct3DDevice7.DrawIndexedPrimitive メソッドは、頂点の配列へのインデックスに基づいて、指定されたジオメトリ プリミティブをレンダリングする。

object.DrawIndexedPrimitive( _ 
    d3Dpt As CONST_D3DPRIMITIVETYPE, _ 
    d3dfvf As CONST_D3DFVFFLAGS, _ 
    vertices As Any, _ 
    vertexCount As Long, _ 
    indices() As Integer, _ 
    IndicesCount As Long, _ 
    flags As CONST_D3DDPFLAGS)

パラメータ

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

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

d3dfvf
使用する頂点フォーマットを記述するCONST_D3DFVFFLAGS 列挙の柔軟な頂点フォーマット フラグの組み合わせ。
vertices
プリミティブ シーケンスで使用する頂点配列の最初の要素。
vertexCount
vertices 配列の頂点数を定義する。

このパラメータは、Direct3DDevice7.DrawPrimitive メソッドにおける vertexCount パラメータとは異なる使い方をされることに注意する。Direct3DDevice7.DrawPrimitive メソッドでは、vertexCount パラメータは描画すべき頂点数を与えるが、このメソッドは vertices パラメータが指す配列の合計頂点数を与える。Direct3DDevice7.DrawIndexedPrimitive メソッドを呼び出すときには、IndicesCount パラメータで描画すべき頂点数を指定する。

indices()
レンダリングするジオメトリを作成するときに、指定した頂点リストへのインデックス付けに使用される配列。この配列の値によって、0 から dwNumVertices – 1 の範囲で頂点にインデックスを付けなければならない。
IndicesCount
ジオメトリを作成するのに用意するインデックス数を指定する。許可されたインデックスの最大数は 65535 (&HFFFF)。
flags
プリミティブの描画方法を定義する CONST_D3DDPFLAGS の定数の 1 つ。

エラー コード

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

D3DERR_INVALIDRAMPTEXTURE
D3DERR_INVALIDPRIMITIVETYPE
D3DERR_INVALIDVERTEXTYPE
DDERR_WASSTILLDRAWING
DDERR_INVALIDPARAMS

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

注意

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

頂点バッファからレンダリングする場合には、このメソッドの代わりに、頂点バッファ メソッドを使用する。

DirectX の現在のバージョンでは、Direct3DDevice7.DrawIndexedPrimitive は時折、厳密に必要とされるよりも大きい更新矩形を生成することがある。多数の頂点数を処理するときには、これはアプリケーションのパフォーマンスに悪影響を与える。D3DTLVERTEX 頂点を使用する場合、システムが必要以上の頂点を処理するときには、D3DDP_DONOTCLIP と D3DDP_DONOTUPDATEEXTENTS フラグを使ってこの問題を解決するべきである。

参照

Direct3DDevice7.DrawPrimitiveDirect3DDevice7.DrawPrimitiveVBDirect3DDevice7.DrawIndexedPrimitiveVB