IDirect3DDevice9::DrawIndexedPrimitive

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

HRESULT 
DrawIndexedPrimitive(
  D3DPRIMITIVETYPE Type,
  INT BaseVertexIndex,
  UINT MinIndex,
  UINT NumVertices,
  UINT StartIndex,
  UINT PrimitiveCount
);

パラメータ

  • Type
    D3DPRIMITIVETYPE 列挙型のメンバー。レンダリングするプリミティブの種類を記述します。このメソッドは、D3DPT_POINTLIST をサポートしません。「解説」を参照してください。
  • BaseVertexIndex
    頂点バッファーの先頭から最初の頂点までのオフセット。「シナリオ 4」を参照してください。
  • MinIndex
    この呼び出しの間に使用される頂点の最小頂点インデックスです。これは、BaseVertexIndex に対するゼロから始まるインデックスです。
  • NumVertices
    この呼び出し中に使用される頂点の数。最初の頂点は、次の位置にあります。BaseVertexIndex + MinIndex。
  • StartIndex
    頂点バッファーへのアクセス時に使用される最初のインデックスのインデックス。StartIndex で始まる頂点バッファーから頂点へのインデックスです。
  • PrimitiveCount
    レンダリングするプリミティブの数。使用される頂点の数は、プリミティブ カウントとプリミティブ タイプで異なります。プリミティブの許容最大数は、D3DCAPS9 構造体の MaxPrimitiveCount メンバーをチェックすることで求められます。

戻り値

メソッドが成功した場合は、D3D_OK を返します。メソッドが失敗した場合は、次の値を返します。D3DERR_INVALIDCALL

解説 

このメソッドは、現在のデータ入力ストリームの集合からインデックス付きプリミティブを描画します。MinIndex およびインデックス ストリーム内のすべてのインデックスは、BaseVertexIndex に対するインデックスです。

MinIndex および NumVertices パラメーターには、IDirect3DDevice9::DrawIndexedPrimitive の呼び出しごとに使用される頂点インデックスの範囲を指定します。これらは、頂点へのインデックス処理を行う前に連続する範囲の頂点を処理することでインデックス付きプリミティブの頂点処理を最適化するために使用されます。この呼び出しの間に使用されるインデックスはこの範囲を外れている頂点を参照することはできません。

インデックス配列が設定されていない場合、IDirect3DDevice9::DrawIndexedPrimitive は失敗します。

D3DPRIMITIVETYPE 列挙型の D3DPT_POINTLIST メンバーはサポートされていません。また、このメソッドで有効な型ではありません。

レガシ アプリケーションを Direct3D 9 に変換するときは、IDirect3DDevice9::SetFVF への呼び出しを追加して固定機能パイプラインを使用するか、IDirect3DDevice9::SetVertexDeclaration への呼び出しを追加して、Draw を呼び出す前に頂点シェーダーを使用する必要があります。

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

頂点バッファーとインデックス バッファーからのレンダリング (Direct3D 9) , インデックス バッファー (Direct3D 9) , 頂点バッファー (Direct3D 9) , IDirect3DDevice9::DrawPrimitive