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 将计算限制为main应用程序线程。 如果未设置标志,运行时可能会在工作线程中执行软件顶点处理和其他计算,以提高多处理器系统上的性能。
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 常量