Platform SDK: DirectX |
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)
CONST_D3DPRIMITIVETYPE の D3DPT_POINTLIST メンバには、インデックスがないことに注意する。
このパラメータは、Direct3DDevice7.DrawPrimitive メソッドにおける vertexCount パラメータとは異なる使い方をされることに注意する。Direct3DDevice7.DrawPrimitive メソッドでは、vertexCount パラメータは描画すべき頂点数を与えるが、このメソッドは vertices パラメータが指す配列の合計頂点数を与える。Direct3DDevice7.DrawIndexedPrimitive メソッドを呼び出すときには、IndicesCount パラメータで描画すべき頂点数を指定する。
メソッドが失敗すると、エラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。
D3DERR_INVALIDRAMPTEXTURE |
D3DERR_INVALIDPRIMITIVETYPE |
D3DERR_INVALIDVERTEXTYPE |
DDERR_WASSTILLDRAWING |
DDERR_INVALIDPARAMS |
トラッピング エラーについては、「Visual Basic エラー トラッピング」を参照すること。
レンダリングする頂点のフォーマットは、指定した頂点フォーマットと一致しなければならない。パフォーマンス上の理由から、Direct3D は、頂点のサイズとストライドが、指定された柔軟な頂点フォーマットと一致するかどうかを確認しない。これらが一致しない場合、メモリに障害が発生する可能性がある。
頂点バッファからレンダリングする場合には、このメソッドの代わりに、頂点バッファ メソッドを使用する。
DirectX の現在のバージョンでは、Direct3DDevice7.DrawIndexedPrimitive は時折、厳密に必要とされるよりも大きい更新矩形を生成することがある。多数の頂点数を処理するときには、これはアプリケーションのパフォーマンスに悪影響を与える。D3DTLVERTEX 頂点を使用する場合、システムが必要以上の頂点を処理するときには、D3DDP_DONOTCLIP と D3DDP_DONOTUPDATEEXTENTS フラグを使ってこの問題を解決するべきである。
Direct3DDevice7.DrawPrimitive、Direct3DDevice7.DrawPrimitiveVB、Direct3DDevice7.DrawIndexedPrimitiveVB