共用方式為


D3DPRESENT

描述轉接器刷新率與 PresentPresent 操作完成速率之間的關係。 這些值同時也是 D3DCAPS9 的 PresentationIntervals 欄位的旗標值。

常數 Description
D3DPRESENT_DONOTFLIP
在渲染時,將前緩衝區同時作為來源和目標表面。 會排程一個框架同步,但顯示的表面不會改變。 此旗標僅在應用程式全螢幕模式且已指定D3DSWAPEFFECT_FLIPEX時啟用。
此旗幟僅在 Direct3D 9Ex 中提供。
D3DPRESENT_DONOTWAIT
HAL裝置無法排程簡報。 如果在呼叫 Present 時設定了此旗標,且硬體正忙於處理或等待垂直同步間隔,則 Present 會回傳 D3DERR_WASSTILLDRAWING,表示 blit 操作未完成。
D3DPRESENT_FLIPRESTART
已保留。
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE在本 會議 中被強制執行。 只有在使用 D3DSWAPEFFECT_FLIPEX 時才能指定此旗標。 視窗和全螢幕呈現的行為是一樣的。 這對於想要捨棄偵測到較晚的影格,並在合成時呈現後續影格的媒體應用程式尤其有用。 若此標誌指定不當,將回傳無效參數錯誤。 當多個連續的 D3DPRESENT_FORCEIMMEDIATEs 幀被排隊時,視窗與全螢幕顯示中僅顯示最後一幀。
此旗標可在 Windows 7 或更新作業系統的 Direct3D 9Ex 中取得。
使用D3DSWAPEFFECT_FLIPEX時,每幀使用 D3DPRESENT_INTERVAL_IMMEDIATE 或 D3DPRESENT_INTERVAL_FORCEIMMEDIATE 呈現,都會覆蓋前一幀目前的間隔。 例如,如果你用以下交換效果排隊以下影格:A(D3DPRESENT_INTERVAL_ONE)、B(D3DPRESENT_INTERVAL_ONE)、C(D3DPRESENT_INTERVAL_ONE)、D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE),D影格D會覆蓋C影格目前的間隔。 目前區間顯示的影格為影格A、影格B(被影格C覆蓋)影格D。
請參閱<備註>。
D3DPRESENT_INTERVAL_DEFAULT
這幾乎等同於D3DPRESENT_INTERVAL_ONE。 請參閱註解。
D3DPRESENT_INTERVAL_ONE
駕駛員會等待垂直回掃週期(運行時間會「光束跟隨」以防止撕裂)。 目前的 操作不會比螢幕刷新更頻繁受影響;執行時間最多在每個介面卡刷新期間完成一次 Present 操作。 這相當於在 DirectX 8.1 中使用 D3DSWAPEFFECT_COPY_VSYNC。 這個選項在視窗式和全螢幕交換鏈中都隨時可用。 請參閱註解。
D3DPRESENT_INTERVAL_TWO
駕駛者會等待垂直回掃週期。 目前 的操作不會比每兩次螢幕更新更頻繁受到影響。 檢查 PresentationIntervals 上限(見 D3DCAPS9),看看驅動程式是否支援D3DPRESENT_INTERVAL_TWO。
D3DPRESENT_INTERVAL_THREE
駕駛者會等待垂直回掃週期。 目前 的操作不會比每第三個螢幕刷新更頻繁受到影響。 請檢查 PresentationIntervals 上限(見 D3DCAPS9),看看驅動程式是否支援D3DPRESENT_INTERVAL_THREE。
D3DPRESENT_INTERVAL_FOUR
駕駛者會等待垂直回掃週期。 目前 的操作不會超過每第四個螢幕刷新一次就受影響。 請檢查 PresentationIntervals 成員(見 D3DCAPS9)以確認驅動程式是否支援D3DPRESENT_INTERVAL_FOUR。
D3DPRESENT_INTERVAL_IMMEDIATE
執行時會立即更新視窗用戶端區域,且在介面卡刷新期間可能更新不只一次。 這相當於在 DirectX 8 中使用 D3DSWAPEFFECT_COPY。 現有 的營運可能會立即受到影響。 這個選項在視窗式和全螢幕交換鏈中都隨時可用。 請參閱註解。
D3DPRESENT_LINEAR_CONTENT
待呈現的後置緩衝區內容位於線性色彩空間中。
  • 表示方式會隱含地從線性空間轉換成 sRGB(gamma = 2.2)。 這是唯一支援的轉換方式。
  • 由於此旗標代表回緩衝區內容的特性,因此可在 Present 呼叫時指定此旗標。 換句話說,應用程式可以在一幀呈現線性內容,然後在下一幀切換到修正後的內容。
  • 當交換鏈全螢幕時,這個旗標會被忽略。 (注意此旗標僅在 Present 的明確交換鏈版本中可用。 Present 方法不採用旗標參數。)
  • 此旗幟始終被接受,但只有在駕駛者暴露 >D3DCAPS3_LINEAR_TO_SRGB_PresentATION時才會生效。
  • 唯一支援的後置緩衝區格式是 X8R8G8B8
參見 有窗式掉期鏈
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
它會將渲染內容剪輯到轉接器目標的螢幕/裝置,並在 Flip3D 視圖中顯示內容縮圖,其他螢幕則顯示工作列縮圖。
此旗幟僅在 Direct3D 9Ex 中提供。
欲了解更多 Windows Vista 此功能,請參閱 桌面視窗管理器 。 如果你不是在桌面合成模式執行,這個旗標會顯示和 D3DPRESENTFLAG_DEVICECLIP一樣的行為。
便條: 此旗幟僅應用於交換效果D3DSWAPEFFECT_FLIPEX。 此 旗幟與其他 交換效果的使用正在被淘汰,未來的 Windows 版本可能無法使用。
D3DPRESENT_UPDATEOVERLAYONLY
更新疊加層位置或色彩鍵資料,且不會造成實際翻轉,也不會改變影像顯示的時間長度。
此旗幟僅在 Direct3D 9Ex 中提供。
D3DPRESENT_HIDEOVERLAY
關閉覆蓋硬體。
此旗幟僅在 Direct3D 9Ex 中提供。
D3DPRESENT_UPDATECOLORKEY
重新繪製色彩鍵資料。
此旗幟僅在 Direct3D 9Ex 中提供。

備註

視窗模式支援D3DPRESENT_INTERVAL_DEFAULT、D3DPRESENT_INTERVAL_IMMEDIATE 和 D3DPRESENT_INTERVAL_ONE。 D3DPRESENT_INTERVAL_DEFAULT與D3DPRESENT_INTERVAL_ONE幾乎等價(詳見下方計時器解析度資訊)。 它們的表現與COPY_VSYNC相似,每幀只有一個存在,且能防止光束跟隨效應撕裂。 相較之下,D3DPRESENT_INTERVAL_IMMEDIATE 會嘗試提供無限的呈現費率。

全螢幕模式支援與視窗模式類似的使用方式,無論更新率或切換效果如何,都支援D3DPRESENT_INTERVAL_IMMEDIATE。 D3DPRESENT_INTERVAL_DEFAULT 使用預設的系統計時器解析,而 D3DPRESENT_INTERVAL_ONE 呼叫 timeBeginPeriod 以提升系統計時器解析度。 這提升了垂直同步的品質,但會稍微增加處理時間。 兩個參數都嘗試垂直同步。

需求

Requirement 價值觀
Header
D3d9.h

另請參閱

Direct3D 常數