Platform SDK: DirectX

IDirect3DDevice7::DrawIndexedPrimitiveStrided

IDirect3DDevice7::DrawIndexedPrimitiveStrided メソッドは、ストライド頂点の配列へのインデックスに基づいて、ジオメトリ プリミティブをレンダリングする。詳細情報については、「ストライド頂点フォーマット」を参照すること。

HRESULT DrawIndexedPrimitiveStrided(
  D3DPRIMITIVETYPE d3dptPrimitiveType,  
  DWORD  dwVertexTypeDesc,              
  LPD3DDRAWPRIMITIVESTRIDEDDATA lpVertexArray,  
  DWORD  dwVertexCount,                 
  LPWORD lpwIndices,                    
  DWORD  dwIndexCount,                  
  DWORD  dwFlags                        
);

パラメータ

d3dptPrimitiveType
このコマンドによってレンダリングされるプリミティブの型。これは、D3DPRIMITIVETYPE 列挙型のメンバの 1 つでなければならない。

D3DPRIMITIVETYPE の D3DPT_POINTLIST メンバにはインデックスがない。

dwVertexTypeDesc
このプリミティブの頂点フォーマットを記述する、柔軟な頂点フォーマット フラグの組み合わせ。
lpVertexArray
このプリミティブの頂点成分のポインタおよびメモリ ストライドを格納する D3DDRAWPRIMITIVESTRIDEDDATA 構造体のアドレス。このときのフォーマットは、dwVertexTypeDesc のフラグで指定するフォーマットである。
dwVertexCount
リスト中の頂点数を定義する。

このパラメータの使用方法は、IDirect3DDevice7::DrawPrimitive メソッドの dwVertexCount パラメータとは異なる。IDirect3DDevice7::DrawPrimitive メソッドでは、dwVertexCount パラメータは描画すべき頂点数を与えるが、このメソッドは lpVertexArray パラメータが指す配列の合計頂点数を与える。IDirect3DDevice7::DrawIndexedPrimitiveStrided を呼び出すときには、dwIndexCount パラメータで描画すべき頂点数を指定する。

lpwIndices
レンダリングするジオメトリを作成するときに、指定された頂点リストへのインデックス付けをするのに使用される WORD のリストへのポインタ。
dwIndexCount
ジオメトリを作成するのに用意するインデックス数を指定する。許容される最大インデックス数は D3DMAXNUMVERTICES (0xFFFF) である。
dwFlags
待機せずにプリミティブをレンダリングする場合はゼロ、または以下のフラグを指定する。
D3DDP_WAIT
メソッドは、ポリゴンがカードに送られるとすぐに返るのではなく、レンダリングが終わるまで待つ。(シーン キャプチャ カードでは、カードからの応答があり次第、メソッドは返る。) このフラグはデバッグによく使用される。アプリケーションは、シーンを先に進める前に確実に更新しておくためにも、このフラグを使用するべきではない。

戻り値

成功すれば D3D_OK を返す。

失敗すれば、次のいずれかの値を返す。

D3DERR_INVALIDRAMPTEXTURE
D3DERR_INVALIDPRIMITIVETYPE
D3DERR_INVALIDVERTEXTYPE
DDERR_INVALIDPARAMS
DDERR_WASSTILLDRAWING

注意

レンダリングする頂点が、指定した頂点フォーマットと一致していることを確認する。パフォーマンス上の理由から、Direct3D は頂点のサイズおよびストライドと提供された柔軟な頂点フォーマットとの照合を行わない。これが一致していないと、メモリ障害が発生しやすい。

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

このメソッドは、従来のインターフェイスで使用されたメソッドとは異なり、dwFlags パラメータで D3DDP_DONOTCLIP、D3DDP_DONOTLIGHT、および D3DDP_DONOTUPDATEEXTENTS フラグを受け取らない。これらのフラグの機能性は、現在では D3DRENDERSTATE_CLIPPINGD3DRENDERSTATE_LIGHTING、および D3DRENDERSTATE_EXTENTS レンダリング ステートによって使用できる。

このメソッドは、トランスフォームされた頂点をサポートしない。したがって、D3DFVF_XYZRHW 頂点フォーマット記述子を dwVertexTypeDesc パラメータに含めると、メソッドは失敗し、D3DERR_INVALIDVERTEXTYPE を返す。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン :DirectX 7.0 が必要。
  ヘッダー : d3d.h で宣言。

参照

IDirect3DDevice7::DrawPrimitiveIDirect3DDevice7::DrawPrimitiveStridedIDirect3DDevice7::DrawPrimitiveVBIDirect3DDevice7::DrawIndexedPrimitiveIDirect3DDevice7::DrawIndexedPrimitiveVBストライド頂点フォーマット