IDirect3DDevice9::P rocessVertices 方法 (d3d9helper.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值可以結合一或多個適用于目的地緩衝區的 D3DLOCK 值。

傳回值

類型: HRESULT

如果方法成功,傳回值會D3D_OK。 如果方法失敗,則傳回值可以D3DERR_INVALIDCALL。

備註

此方法的作業順序如下:

  • 使用世界 + 檢視 + 投影矩陣將頂點轉換成投影空間。
  • 使用檢視區設定計算螢幕座標。
  • 如果已啟用裁剪,請計算裁剪程式碼,並將其儲存在與目的地頂點緩衝區相關聯的內部緩衝區中。 如果頂點位於檢視範圍內,則會計算其螢幕座標。 如果頂點位於檢視 frustum 之外,頂點會儲存在投影空間座標中的目的地頂點緩衝區中。
  • 其他注意事項:使用者無法存取內部剪輯程式碼緩衝區。 在三角形或任何其他基本類型上不會進行裁剪。
目的地頂點緩衝區 pDestBuffer 必須使用 IDirect3DDevice9::CreateVertexBuffer中的非零 FVF 參數建立。 在呼叫 IDirect3DDevice9::CreateVertexBuffer方法期間指定的 FVF 程式碼會指定目的地頂點緩衝區中存在的頂點元素。

當 Direct3D 產生紋理座標或複製或轉換輸入紋理座標時,輸出紋理座標格式會定義比 Direct3D 產生的更多的紋理座標元件時,Direct3D 不會變更這些額外的元件。

需求

   
目標平台 Windows
標頭 d3d9helper.h (包含 D3D9.h)
程式庫 D3D9.lib

另請參閱

Direct3D 9 (裝置類型和頂點處理需求)

固定函式頂點處理 (Direct3D 9)

IDirect3DDevice9