IDXGISwapChain::P resent 方法 (dxgi.h)

向用戶呈現轉譯的影像。

語法

HRESULT Present(
  UINT SyncInterval,
  UINT Flags
);

參數

SyncInterval

類型: UINT

整數,指定如何將框架的呈現與垂直空白同步處理。

對於位區塊傳輸 (bitblt) 模型 (DXGI_SWAP_EFFECT_DISCARD或DXGI_SWAP_EFFECT_SEQUENTIAL) ,值為:

  • 0 - 簡報會立即發生,沒有同步處理。
  • 1 到 4 - 同步處理第 n個垂直空白後的簡報。
對於翻轉模型 (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) ,值為:
  • 0 - 取消先前呈現框架的剩餘時間,並在較新的畫面排入佇列時捨棄此框架。
  • 1 到 4 - 同步處理至少 n 個垂直空白的簡報。
如需示範同步間隔值如何影響翻轉簡報佇列的範例,請參閱。

如果更新區域跨一個以上的輸出, (IDXGIOutput) 所代表的每個輸出, 則 Present 會執行同步處理至包含目標視窗工作區最大子矩形的輸出。

Flags

類型: UINT

包含交換鏈結呈現選項的整數值。 這些選項是由 DXGI_PRESENT 常數所定義。

傳回值

類型: HRESULT

可能的傳回值包括:S_OK、DXGI_ERROR_DEVICE_RESET或 DXGI_ERROR_DEVICE_REMOVED (請參閱DXGI_ERROR) 、DXGI_STATUS_OCCLUDED (请参阅 DXGI_STATUS) 或D3DDDIERR_DEVICEREMOVED。

注意 如果已從計算機實際移除視訊卡,或發生視訊卡的驅動程序升級, 則 Present 方法可以傳回DXGI_ERROR_DEVICE_REMOVED或D3DDDIERR_DEVICEREMOVED。
 

備註

從 Direct3D 11.1 開始,請考慮使用 IDXGISwapChain1::P resent1 ,因為您可以接著在交換鏈結簡報中使用已變更的矩形和滾動矩形,因此使用較少的記憶體頻寬,因此系統電源較少。 如需在交換鏈結簡報中使用已變更矩形和滾動矩形的詳細資訊,請參閱 在交換鏈結簡報中使用已變更的矩形和滾動矩形

如需在全螢幕應用程式中翻轉交換鏈結緩衝區時的最佳效能,請參閱 全螢幕應用程式效能提示

因為呼叫 Present 可能會導致轉譯線程在訊息幫浦線程上等候,所以在使用多個線程的應用程式中呼叫此方法時,請小心。 如需詳細資訊,請參閱 多線程考慮

Direct3D 9 與 Direct3D 10 之間的差異:

Flags 參數中指定DXGI_PRESENT_TEST,類似於 Direct3D 9 中的 IDirect3DDevice9::TestCocolLevel

針對使用設定DXGI_SWAP_EFFECT_FLIP_SEQUENTIALDXGI_SWAP_EFFECT_DISCARD值所建立的翻轉簡報模型交換鏈結,成功的簡報會將緩衝區 (0 解除系結,通常由 OMSetRenderTargets 從圖形管線) 設定,但當您在 Flags 參數中傳遞DXGI_PRESENT_DO_NOT_SEQUENCE旗標時除外。

如需當您將內容呈現至畫面時數據值如何變更的資訊,請參閱 轉換色彩空間的數據

翻轉簡報模型佇列

假設下列具有同步間隔值的畫面會從最舊的 (A) 排入佇列到最新的 (E) ,再呼叫 Present

A: 3, B: 0, C: 0, D: 1, E: 0

當您呼叫 Present 時,運行時間只會顯示 1 個垂直空白間隔的框架 A。 運行時間會提早終止畫面 A,因為畫面 B 中的同步間隔 0。然後運行時間會顯示 1 個垂直空白間隔的框架 D,然後框 E 直到您提交新的簡報為止。 運行時間會捨棄框架 B 和 C。

可變重新整理速率顯示

這是啟用卸除的可變重新整理速率需求。 CheckFeatureSupport 方法可用來判斷此功能是否可用,並設定必要的旗標會參考DXGI_PRESENT_ALLOW_TEARINGDXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING的描述,以及顯示變數重新整理速率

規格需求

需求
目標平台 Windows
標頭 dxgi.h
程式庫 DXGI.lib

另請參閱

IDXGISwapChain