共用方式為


D3DCREATE

一或多個旗標的組合,可控制裝置建立行為。

#define 描述
D3DCREATE_ADAPTERGROUP_DEVICE 應用程式會要求裝置驅動此主要配接器擁有的所有前端。 旗標在非主配卡上是非法的。 如果設定此旗標,傳遞至 createDevice 的簡報參數 應該指向 D3DPRESENT_PARAMETERS的陣列。 D3DPRESENT_PARAMETERS 中的元素數目應該等於 D3DCAPS9 結構之 NumberOfAdaptersInGroup 成員所定義的配接器數目。 DirectX 執行時間會以 D3DCAPS9的 AdapterOrdinalInGroup 成員指定的數值順序,將每個元素指派給每個前端。
D3DCREATE_DISABLE_DRIVER_MANAGEMENT Direct3D 會管理資源,而不是驅動程式。 Direct3D 呼叫不會因為資源錯誤而失敗,例如視訊記憶體不足。
D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX 如同D3DCREATE_DISABLE_DRIVER_MANAGEMENT,Direct3D 會管理資源,而不是驅動程式。 不同於D3DCREATE_DISABLE_DRIVER_MANAGEMENT,D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX會針對視訊記憶體不足等情況傳回錯誤。
D3DCREATE_DISABLE_PRINTSCREEN 讓運行時間未註冊 Printscreen 的快捷鍵,Ctrl-Printscreen 和 Alt-Printscreen 擷取桌面或窗口內容。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用於 Direct3D 9Ex。

 

D3DCREATE_DISABLE_PSGP_THREADING 將計算限制為主要應用程式線程。 如果未設定旗標,運行時間可能會在背景工作線程中執行軟體頂點處理和其他計算,以改善多處理器系統上的效能。
Windows XP 與 Windows Vista 之間的差異:
此旗標適用於 Windows Vista、Windows Server 2008 和 Windows 7。

 

D3DCREATE_ENABLE_PRESENTSTATS 啟用裝置上目前統計數據的收集。 GetPresentStatistics 的呼叫會傳回有效的數據。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用於 Direct3D 9Ex。

 

D3DCREATE_FPU_PRESERVE 將 Direct3D 浮點數計算的有效位數設定為呼叫線程所使用的有效位數。 如果您未指定此旗標,Direct3D 會預設為單精度四捨五入到最接近模式,原因有兩個:
  • 雙精確度模式會降低 Direct3D 效能。
  • Direct3D 的部分假設浮點單位例外狀況已遮罩;取消遮罩這些例外狀況可能會導致未定義的行為。
D3DCREATE_HARDWARE_VERTEXPROCESSING 指定硬體頂點處理。
D3DCREATE_MIXED_VERTEXPROCESSING 指定混合式 (軟體和硬體) 頂點處理。 針對 Windows 10 版本 1607 和更新版本,不建議使用此設定。 請參閱D3DCREATE_SOFTWARE_VERTEXPROCESSING。
D3DCREATE_SOFTWARE_VERTEXPROCESSING 指定軟體頂點處理。 針對 Windows 10 版本 1607 和更新版本,不建議使用此設定。 使用 D3DCREATE_HARDWARE_VERTEXPROCESSING。

附注:
除非硬體頂點處理無法使用,否則不建議在 Windows 10 版本 1607(及更新版本)中使用軟體頂點處理,因為軟體頂點處理的效率大幅降低,同時改善實作的安全性。

 
D3DCREATE_MULTITHREADED 表示應用程式要求 Direct3D 為多線程安全。 這可讓 Direct3D 線程更頻繁地取得其全域 重要 區段的擁有權,這可能會降低效能。 如果應用程式在另一個線程中執行 Direct3D API 呼叫時處理視窗訊息,則應用程式必須在建立裝置時使用此旗標。 卸除 d3d9.dll之前,也必須終結此視窗。
D3DCREATE_NOWINDOWCHANGES 表示 Direct3D 不得以任何方式改變焦點視窗。

附注:
如果設定此旗標,應用程式必須完全支援所有焦點管理事件,例如ALT+TAB和滑鼠按一下事件。

 
D3DCREATE_PUREDEVICE 指定 Direct3D 不支援 Get* 呼叫任何可儲存在狀態區塊中的專案。 它也會告知 Direct3D 不要提供任何模擬服務來進行頂點處理。 這表示如果裝置不支援頂點處理,則應用程式只能使用轉換后的頂點。
D3DCREATE_SCREENSAVER 允許在全螢幕應用程式期間使用螢幕快照。 如果沒有此旗標,只要呼叫的應用程式是全螢幕,Direct3D 就會停用螢幕快照。 如果呼叫的應用程式已經是screensaver,則此旗標沒有任何作用。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用於 Direct3D 9Ex。

 

 

D3DCREATE_HARDWARE_VERTEXPROCESSING、D3DCREATE_MIXED_VERTEXPROCESSING和D3DCREATE_SOFTWARE_VERTEXPROCESSING都是互斥旗標。 呼叫 createDevice 時,至少必須指定其中一個頂點處理旗標。

常數資訊

要求 價值
頁眉 D3D9.h
最低作系統 Windows 98

 

Direct3D 常數