Share via


IDirect3DDevice9::DrawPrimitiveUP

ユーザー メモリー ポインターにより指定されたデータを指定されたタイプのジオメトリ プリミティブのシーケンスとしてレンダリングします。

HRESULT 
DrawPrimitiveUP(
  D3DPRIMITIVETYPE PrimitiveType,
  UINT PrimitiveCount,
  CONST void* pVertexStreamZeroData,
  UINT VertexStreamZeroStride
);

パラメータ

  • PrimitiveType
    D3DPRIMITIVETYPE 列挙型のメンバー。レンダリングするプリミティブの種類を記述します。
  • PrimitiveCount
    レンダリングするプリミティブの数。プリミティブの許容最大数は、D3DCAPS9 構造体の MaxPrimitiveCount メンバーをチェックすることで求められます。
  • pVertexStreamZeroData
    頂点データへのユーザー メモリー ポインター。
  • VertexStreamZeroStride
    頂点ごとのデータのバイト数。この値は 0 であってはなりません。

戻り値

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

解説 

このメソッドは、頂点データを頂点バッファーに格納できないアプリケーションで使用するために用意されたものです。このメソッドは単一の頂点ストリームのみをサポートします。この呼び出しの効果は、頂点ストリーム 0 の与えられた頂点データ ポインターとストライドを使用できることです。現在の頂点シェーダーの宣言でストリーム 0 以外の頂点ストリームを参照することは無効です。

IDirect3DDevice9::DrawPrimitiveUP の呼び出しの後、IDirect3DDevice9::GetStreamSource で参照されたストリーム 0 の設定は NULL に設定されます。

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

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

要件

ヘッダー: D3D9.h 宣言

ライブラリ: D3D9.lib 内容

関連項目

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