Share via


IDirect3DDevice9::P rocessVertices メソッド (d3d9.h)

頂点シェーダーによって定義された頂点処理を入力データ ストリームのセットに適用し、インターリーブされた頂点データの単一ストリームを宛先の頂点バッファーに生成します。

構文

HRESULT ProcessVertices(
  [in] UINT                        SrcStartIndex,
  [in] UINT                        DestIndex,
  [in] UINT                        VertexCount,
  [in] IDirect3DVertexBuffer9      *pDestBuffer,
  [in] IDirect3DVertexDeclaration9 *pVertexDecl,
  [in] DWORD                       Flags
);

パラメーター

[in] SrcStartIndex

型: UINT

読み込む最初の頂点のインデックス。

[in] DestIndex

型: UINT

結果の配置先の頂点バッファー内の最初の頂点のインデックス。

[in] VertexCount

型: UINT

処理する頂点の数。

[in] pDestBuffer

種類: IDirect3DVertexBuffer9*

インターリーブされた頂点データのストリームを表す宛先頂点バッファーである IDirect3DVertexBuffer9 インターフェイスへのポインター。

[in] pVertexDecl

種類: IDirect3DVertexDeclaration9*

出力頂点データ宣言を表す IDirect3DVertexDeclaration9 インターフェイスへのポインター。 頂点シェーダー 3.0 以上が現在の頂点シェーダーとして設定されている場合は、出力頂点宣言が存在する必要があります。

[in] Flags

型: DWORD

処理オプション。 既定の処理では、このパラメーターを 0 に設定します。 D3DPV_DONOTCOPYDATAに設定すると、頂点操作の影響を受けなかった頂点データがコピー先バッファーにコピーされなくなります。 D3DPV_DONOTCOPYDATA値は、宛先バッファーに適した 1 つ以上の D3DLOCK 値と組み合わせることができます。

戻り値

型: HRESULT

メソッドが成功した場合、戻り値はD3D_OK。 メソッドが失敗した場合は、戻り値をD3DERR_INVALIDCALLできます。

解説

このメソッドの操作の順序は次のとおりです。

  • ワールド + ビュー + プロジェクション マトリックスを使用して、頂点を投影空間に変換します。
  • ビューポート設定を使用して画面座標を計算します。
  • クリッピングが有効になっている場合は、クリッピング コードを計算し、ターゲット頂点バッファーに関連付けられている内部バッファーに格納します。 頂点が視錐台の内側にある場合、その画面座標が計算されます。 頂点が視錐台の外側にある場合、頂点は投影空間座標の宛先頂点バッファーに格納されます。
  • その他の注意事項: ユーザーは内部クリップ コード バッファーにアクセスできません。 三角形やその他のプリミティブではクリッピングは行われません。
コピー先の頂点バッファー pDestBuffer は、 IDirect3DDevice9::CreateVertexBuffer で 0 以外の FVF パラメーターを使用して作成する必要があります。 IDirect3DDevice9::CreateVertexBuffer メソッドの呼び出し中に指定された FVF コードは、変換先の頂点バッファーに存在する頂点要素を指定します。

Direct3D がテクスチャ座標を生成するか、入力テクスチャ座標をコピーまたは変換し、出力テクスチャ座標形式で Direct3D が生成するよりも多くのテクスチャ座標コンポーネントを定義する場合、Direct3D はこれらの追加のコンポーネントを変更しません。

要件

   
対象プラットフォーム Windows
ヘッダー d3d9.h (D3D9.h を含む)
Library D3D9.lib

関連項目

デバイスの種類と頂点処理の要件 (Direct3D 9)

関数の頂点処理を修正しました (Direct3D 9)

IDirect3DDevice9