D3DCREATE

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

#define 描述
D3DCREATE_ADAPTERGROUP_DEVICE 應用程式會要求裝置驅動此主要介面卡擁有的所有頭部。 非master 配接器上的旗標不合法。 如果設定此旗標,傳遞至 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 就會停用螢幕儲存器。 如果呼叫的應用程式已經是螢幕保護裝置程式,則此旗標沒有任何作用。
Direct3D 9 與 Direct3D 9Ex 之間的差異:
此旗標僅適用于 Direct3D 9Ex。

 

 

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

常數資訊

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

 

Direct3D 常數