D3DPRESENTFLAG

D3DPRESENT_PARAMETERS所使用的常數。

#define 描述
D3DPRESENTFLAG_DEVICECLIP 0x00000004 在建立 Direct3D 裝置之視訊介面卡的監視畫面區域中,將視窗化 Present blit 裁剪到視窗工作區。 D3DPRESENTFLAG_DEVICECLIP與 D3DSWAPEFFECT_FLIPEX 無效。
D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002 建立裝置或交換鏈結以啟用 z 緩衝區捨棄時,請設定此旗標。 如果設定此旗標,在呼叫 PresentSetDepthStencilSurface 且具有不同深度表面之後,深度樣板緩衝區的內容將會無效。 捨棄 z 緩衝區資料可能會提高效能,並相依于驅動程式。 偵錯執行時間會在呼叫 PresentSetDepthStencilSurface 且具有不同深度表面之後,將 z 緩衝區清除為某些常數值,以強制執行捨棄。
針對所有可鎖定的格式,捨棄 z 緩衝區資料不合法,D3DFMT_D16_LOCKABLE和D3DFMT_D32F_LOCKABLE。 任何使用 CreateDevice 來指定可鎖定的格式,而 z 緩衝區捨棄將會失敗。 如需格式的詳細資訊,請參閱 D3DFORMAT
D3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001 如果應用程式需要直接鎖定背景緩衝區的能力,請設定此旗標。 請注意,除非應用程式在呼叫 CreateDeviceReset時指定D3DPRESENTFLAG_LOCKABLE_BACKBUFFER,否則無法鎖定背景緩衝區。 可鎖定的後端緩衝區會對某些圖形硬體組態產生效能成本。 執行鎖定作業 (或使用 UpdateSurface 在可鎖定的背景緩衝區上寫入) ,會降低許多卡片的效能。 在此情況下,請考慮使用紋理三角形將資料移至背景緩衝區。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
在 Direct3D9Ex 中,如果 D3DSWAPEFFECT 是D3DSWAPEFFECT_FLIPEX,則無法設定此旗標,因為翻轉模型可讓桌面視窗管理員存取應用程式的背景緩衝區。 不應鎖定跨進程共用介面。

 

D3DPRESENTFLAG_NOAUTOROTATE 0x00000020 旋轉的監視器會在簡報期間使用旋轉複本自動處理,這不是非常有效率的。 此旗標表示應用程式會執行它自己的顯示旋轉。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

應用程式可以使用旋轉檢視矩陣來達成自己的旋轉。 GetDisplayModeExGetAdapterDisplayModeEx的方法應該用來尋找目前的旋轉設定。 CreateDeviceExResetEx中的反緩衝器 Width 和 Height 參數必須使用橫向方向,而全螢幕顯示模式結構應該與EnumAdapterModesEx (傳回的內容相同,也就是當旋轉 90 和 270 度時,寬度和高度會交換) 。

在旋轉轉譯目標上使用 Lock 時,左上角假設不再保留 true,轉譯目標SURFACE_DESC會維持橫向 (,如建立參數) 和 GDI 視窗、滑鼠座標,以及搭配 Direct3D 轉譯目標和場景使用時必須正確轉譯。

D3DPRESENTFLAG_UNPRUNEDMODE 0x00000040 使用此旗標來指定顯示配接器列舉的任何 RAW 顯示模式,即使 Direct3D 可能表示模式無效也一樣。 如果所需的模式真的無效,應用程式應該以健全的方式實作此動作。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

D3DPRESENTFLAG_VIDEO 0x00000010 這是驅動程式的提示,表示後端緩衝區將包含視訊資料。
D3DPRESENTFLAG_OVERLAY_LIMITEDRGB 0x00000080 指定重迭是完整範圍的 RGB 或有限的範圍 RGB。 設定此旗標表示有限的範圍 RGB。 在有限的範圍 RGB 中,RGB 範圍會經過壓縮,讓 16:16:16 是黑色,而 235:235:235 是白色。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

D3DPRESENTFLAG_OVERLAY_YCbCr_BT709 0x00000100 指定重迭是 BT.601 或 BT.709。 設定此旗標表示 BT.709,適用于高畫質電視 (HDTV) 。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

D3DPRESENTFLAG_OVERLAY_YCbCr_xvYCC 0x00000200 指定重迭是傳統的 YCbCr 或擴充 YCbCr (xvYCC) 。 設定此旗標表示擴充的 YCbCr (xvYCC) 。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

D3DPRESENTFLAG_RESTRICTED_CONTENT 0x00000400 設定此旗標表示交換鏈包含受保護的內容,並自動造成執行時間限制對交換鏈的存取,讓只有 Desktop Windows Manager (DWM) 可以使用交換鏈。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

D3DPRESENTFLAG_RESTRICT_SHARED_RESOURCE_DRIVER 0x00000800 設定此旗標表示驅動程式應該限制對針對 DWM 互動所建立的任何共用資源進行存取。 呼叫端必須使用驅動程式建立已驗證的通道。 然後,驅動程式應該允許存取嘗試開啟這些共用資源的處理常式。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

 

這些常數是由 D3DPRESENT_PARAMETERS使用。

常數資訊

需求
標頭 d3d9types.h
最低作業系統 Windows 98

 

Direct3D 常數