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介面的指標,代表交錯頂點資料資料流程的目的地頂點緩衝區。
[in] pVertexDecl
類型: IDirect3DVertexDeclaration9*
代表輸出頂點資料宣告的 IDirect3DVertexDeclaration9 介面指標。 當頂點著色器 3.0 或更新版本設定為目前的頂點著色器時,輸出頂點宣告必須存在。
[in] Flags
類型: DWORD
處理選項。 將此參數設定為 0 以進行預設處理。 設定為 D3DPV_DONOTCOPYDATA,以防止系統將頂點作業影響的頂點資料複製到目的地緩衝區。 D3DPV_DONOTCOPYDATA值可以結合一或多個適用于目的地緩衝區的 D3DLOCK 值。
傳回值
類型: HRESULT
如果方法成功,傳回值會D3D_OK。 如果方法失敗,則傳回值可以D3DERR_INVALIDCALL。
備註
此方法的作業順序如下:
- 使用世界 + 檢視 + 投影矩陣將頂點轉換成投影空間。
- 使用檢視區設定計算螢幕座標。
- 如果已啟用裁剪,請計算裁剪程式碼,並將其儲存在與目的地頂點緩衝區相關聯的內部緩衝區中。 如果頂點位於檢視範圍內,則會計算其螢幕座標。 如果頂點位於檢視 frustum 之外,頂點會儲存在投影空間座標中的目的地頂點緩衝區中。
- 其他注意事項:使用者無法存取內部剪輯程式碼緩衝區。 在三角形或任何其他基本類型上不會進行裁剪。
當 Direct3D 產生紋理座標或複製或轉換輸入紋理座標時,輸出紋理座標格式會定義比 Direct3D 產生的更多的紋理座標元件時,Direct3D 不會變更這些額外的元件。
需求
目標平台 | Windows |
標頭 | d3d9helper.h (包含 D3D9.h) |
程式庫 | D3D9.lib |