D3DPRESENT

描述配接器重新整理速率與 目前目前 作業完成的速率之間的關聯性。 這些值也會做為 D3DCAPS9之 PresentationIntervals 欄位的旗標值。

常數 描述
D3DPRESENT_DONOTFLIP
在轉譯期間,請使用前端緩衝區作為來源和目標介面。 畫面同步處理已排程,但顯示表面不會變更。 只有在應用程式處於全螢幕模式且已指定D3DSWAPEFFECT_FLIPEX時,才能使用此旗標。
此旗標僅適用于 Direct3D 9Ex。
D3DPRESENT_DONOTWAIT
簡報無法由 hal 裝置排程。 如果在呼叫 Present中設定此旗標,且硬體正在忙碌處理或等候垂直同步間隔,則 Present 會傳回D3DERR_WASSTILLDRAWING,表示 blit 作業不完整。
D3DPRESENT_FLIPRESTART
保留的。
D3DPRESENT_FORCEIMMEDIATE
Present 呼叫會強制執行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 會覆寫畫面 C 的目前間隔。 每個目前間隔的顯示畫面是框架 A、框架 B、 (框架 C 由) 框架 D 覆寫。
請參閱<備註>。
D3DPRESENT_INTERVAL_DEFAULT
這幾乎相當於D3DPRESENT_INTERVAL_ONE。 請參閱<備註>。
D3DPRESENT_INTERVAL_ONE
驅動程式會等候垂直回溯期間, (執行時間會「接接」,以防止卸載) 。 目前 作業不會比螢幕重新整理更頻繁地受到影響;執行時間最多會在每個配接器重新整理期間完成一個目前作業。 這相當於在 DirectX 8.1 中使用 D3DSWAPEFFECT_COPYVSYNC。 此選項一律適用于視窗化和全螢幕交換鏈結。 請參閱<備註>。
D3DPRESENT_INTERVAL_TWO
驅動程式會等候垂直回溯期間。 目前 作業不會比每秒螢幕重新整理更頻繁地受到影響。 檢查 PresentationIntervals cap (請參閱 D3DCAPS9) ,以查看驅動程式是否支援D3DPRESENT_INTERVAL_TWO。
D3DPRESENT_INTERVAL_THREE
驅動程式會等候垂直回溯期間。 目前 作業不會比每三個螢幕重新整理更頻繁地受到影響。 檢查 PresentationIntervals cap (請參閱 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 方法不會採用 flags parameter.)
  • 一律會接受此旗標,但只有在驅動程式公開 > 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 來增強系統計時器解析度。 這可改善垂直同步的品質,但會耗用稍微更多的處理時間。 這兩個參數都會嘗試垂直同步處理。

規格需求

需求
標頭
D3d9.h

另請參閱

Direct3D 常數