IDirect3DDevice9::DrawIndexedPrimitiveUP

ユーザー メモリー ポインターによって指定されたデータで、指定したジオメトリ プリミティブをレンダリングします。

HRESULT 
DrawIndexedPrimitiveUP(
  D3DPRIMITIVETYPE PrimitiveType,
  UINT MinVertexIndex,
  UINT NumVertices,
  UINT PrimitiveCount,
  CONST void * pIndexData,
  D3DFORMAT IndexDataFormat,
  CONST void* pVertexStreamZeroData,
  UINT VertexStreamZeroStride
);

パラメータ

  • PrimitiveType
    D3DPRIMITIVETYPE 列挙型のメンバー。レンダリングするプリミティブの種類を記述します。
  • MinVertexIndex
    最小の頂点インデックス。このインデックスは 0 から始まります。
  • NumVertices
    この呼び出し中に使用される頂点の数。最初の頂点は、次の位置にあります。MinVertexIndex。
  • PrimitiveCount
    レンダリングするプリミティブの数。最大許容プリミティブ数は、D3DCAPS9 構造体の MaxPrimitiveCount メンバーをチェックして判定します (インデックスの数はプリミティブ カウントとプリミティブ タイプの関数です)。
  • pIndexData
    インデックス データへのユーザー メモリー ポインター。
  • IndexDataFormat
    D3DFORMAT 列挙型のメンバー。インデックス データのフォーマットを指定します。有効な設定は次のとおりです。
    • D3DFMT_INDEX16
    • D3DFMT_INDEX32
  • pVertexStreamZeroData
    頂点データへのユーザー メモリー ポインター。頂点データはストリーム 0 にある必要があります。
  • VertexStreamZeroStride
    頂点ごとのデータのバイト数。この値は 0 であってはなりません。

戻り値

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

解説 

このメソッドは、頂点データを頂点バッファーに格納できないアプリケーションで使用するために用意されたものです。このメソッドは、単一の頂点ストリームだけをサポートします。これはストリーム 0 として宣言される必要があります。

IDirect3DDevice9::DrawIndexedPrimitiveUP の呼び出しの後、IDirect3DDevice9::GetStreamSource で参照されたストリーム 0 の設定は NULL に設定されます。また、IDirect3DDevice9::SetIndices のインデックス バッファーの設定も NULL に設定されます。

IDirect3DDevice9::DrawIndexedPrimitiveUP に渡す頂点データは、呼び出しの後も保持する必要はありません。Direct3D は、呼び出しから戻る前に、そのデータへのアクセスを完了します。

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

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

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