共用方式為


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值可以結合一或多個適用于目的地緩衝區的 D3DLOCK 值。

傳回值

類型: HRESULT

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

備註

這個方法的作業順序如下:

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

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

需求

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

另請參閱

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

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

IDirect3DDevice9