IDXGISwapChain1::P resent1 方法 (dxgi1_2.h)
在顯示畫面上呈現框架。
語法
HRESULT Present1(
UINT SyncInterval,
UINT PresentFlags,
[in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);
參數
SyncInterval
整數,指定如何將框架的呈現與垂直空白同步處理。
對於 bit-block transfer (bitblt) 模型 (DXGI_SWAP_EFFECT_DISCARD 或 DXGI_SWAP_EFFECT_SEQUENTIAL) ,值為:
- 0 - 立即發生簡報,沒有同步處理。
- 1 到 4 - 同步處理 第 n個垂直空白後的簡報。
- 0 - 取消先前呈現畫面上的剩餘時間,並在佇列較新的畫面格時捨棄此畫面。
- 1 到 4 - 同步處理至少 n 個垂直空白的簡報。
如果更新區域跨一個以上的輸出 (IDXGIOutput1 所代表的輸出 ) ,Present1 會針對包含目標視窗工作區最大子矩形的輸出執行同步處理。
PresentFlags
包含交換鏈結呈現選項的整數值。 這些選項是由 DXGI_PRESENT 常數所定義。
[in] pPresentParameters
DXGI_PRESENT_PARAMETERS 結構的指標,描述要呈現之框架的更新矩形和卷動資訊。
傳回值
可能的傳回值包括:S_OK、 DXGI_ERROR_DEVICE_REMOVED 、 DXGI_STATUS_OCCLUDED、 DXGI_ERROR_INVALID_CALL或E_OUTOFMEMORY。
備註
應用程式可以使用 Present1 ,藉由指定卷動和中途矩形來優化簡報。 當運行時間有這些矩形的相關信息時,運行時間就可以在簡報期間更有效率地執行必要的位,並將此元數據傳遞至桌面視窗管理員 (DWM) 。 DWM 接著可以使用元數據來優化簡報,並將元數據傳遞至間接顯示和終端機伺服器,以透過網路將流量優化。 應用程式必須限制其修改僅限於傳遞給 Present1 的已變更區域,以及修改整個中途區域,以避免未定義的資源內容遭到公開。
針對使用設定DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL值所建立的翻轉簡報模型交換鏈結,成功的簡報會導致圖形管線中的後台緩衝區 0 解除系結,但當您在 Flags 參數中傳遞DXGI_PRESENT_DO_NOT_SEQUENCE旗標時除外。
如需當您將內容呈現至畫面時,數據值如何變更的資訊,請參閱 轉換色彩空間的數據。
如需當您的應用程式使用多個線程時呼叫 Present1 的相關信息,請參閱多線程考慮和多線程和 DXGI。
翻轉簡報模型佇列
假設下列具有同步間隔值的畫面會先從最舊 (A) 排入佇列,再排入最新的 (E) ,再呼叫 Present1。A: 3, B: 0, C: 0, D: 1, E: 0
當您呼叫 Present1 時,運行時間只會顯示 1 個垂直空白間隔的框架 A。 運行時間會因為畫面 B 中的同步間隔 0 而提早終止框架 A。然後運行時間會顯示 1 個垂直空白間隔的框架 D,然後框架 E,直到您提交新的簡報為止。 運行時間會捨棄框架 B 和 C。
可變重新整理速率顯示
這是可變重新整理速率的需求,顯示已啟用卸除。 CheckFeatureSupport 方法可用來判斷這項功能是否可用,以及設定必要的旗標是指DXGI_PRESENT_ALLOW_TEARING和DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING的描述,而 DXGI 1.5 改善的 [變數重新整理速率] 會顯示/Vsync off 區段。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dxgi1_2.h |
程式庫 | Dxgi.lib |