IDirect3DDevice9::ProcessVertices メソッド

IDirect3DDevice9::ProcessVertices メソッド

頂点シェーダで定義されている頂点処理を一連の入力データ ストリームに適用し、インターリーブされた頂点データの単一ストリームを転送先頂点バッファに生成する。

構文

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

パラメータ

  • SrcStartIndex
    [in] ロードする最初の頂点のインデックス。
  • DestIndex
    [in] 結果を格納する転送先頂点バッファ内の最初の頂点のインデックス。
  • VertexCount
    [in] 処理する頂点の数。
  • pDestBuffer
    [in] IDirect3DVertexBuffer9 インターフェイスへのポインタ。インターリーブされた頂点データのストリームを表す転送先頂点バッファである。
  • pVertexDecl
    [in] 出力頂点データ宣言を表す IDirect3DVertexDeclaration9 インターフェイスへのポインタ。バージョン 3.0 以降の頂点シェーダを現在の頂点シェーダとして設定する場合は、出力頂点宣言が存在しなければならない。
  • Flags
    [in] 処理オプション。デフォルト処理に対してはこのパラメータを 0 に設定する。D3DPV_DONOTCOPYDATA に設定すると、頂点の処理に無関係な頂点データをコピー先バッファにコピーするのを防ぐことができる。

戻り値

成功した場合は、D3D_OK を返す。

失敗した場合は、D3DERR_INVALIDCALL を返す。

注意

このメソッドの処理順序を次に示す。

  • ワールド + ビュー + 射影行列を使って、頂点を射影空間にトランスフォームする。
  • ビューポートの設定を使って、スクリーン座標を計算する。
  • クリッピングが有効な場合は、クリップ コードを計算して、転送先頂点バッファと関連付けられた内部バッファに格納する。頂点が視錐台の内部にある場合は、そのスクリーン座標を計算する。頂点が視錐台の外部にある場合は、頂点を転送先頂点バッファに射影空間の座標で保存する。
  • その他の注意 :ユーザーは内部クリップ コード バッファにアクセスできない。三角形またはその他のプリミティブについては、クリップは行われない。

転送先頂点バッファ pDestBuffer は、ゼロ以外の FVF パラメータを指定して作成しなければならない。IDirect3DDevice9::CreateVertexBuffer メソッドの呼び出しにおいて指定する柔軟な頂点フォーマット (FVF) コードは、転送先頂点バッファに存在する頂点要素を指定している。

Microsoft® Direct3D® がテクスチャ座標を生成するときや、入力テクスチャ座標をコピーまたはトランスフォームするときに、出力テクスチャ座標フォーマットが Direct3D が生成するより多くのテクスチャ座標成分を定義する場合、Direct3D はこれらの追加成分を変更しない。

参照

デバイスの種類と頂点処理の要件