D3D10_CREATE_DEVICE_FLAG 枚举 (d3d10.h)

设备创建标志。

语法

typedef enum D3D10_CREATE_DEVICE_FLAG {
  D3D10_CREATE_DEVICE_SINGLETHREADED = 0x1,
  D3D10_CREATE_DEVICE_DEBUG = 0x2,
  D3D10_CREATE_DEVICE_SWITCH_TO_REF = 0x4,
  D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
  D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP = 0x10,
  D3D10_CREATE_DEVICE_BGRA_SUPPORT = 0x20,
  D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
  D3D10_CREATE_DEVICE_STRICT_VALIDATION = 0x200,
  D3D10_CREATE_DEVICE_DEBUGGABLE = 0x400
} ;

常量

 
D3D10_CREATE_DEVICE_SINGLETHREADED
值: 0x1
如果应用程序仅从单个线程调用 D3D10,请使用此标志。 如果未指定此标志,则为 D3D10 的默认行为
是在每个 API 调用期间输入锁,以防止多个线程更改内部状态。 通过使用此标志,不会采用锁,可以
稍微提高性能,但如果从多个线程调用 D3D10,则可能会导致未定义的行为。
D3D10_CREATE_DEVICE_DEBUG
值: 0x2
创建支持 调试层的设备。
D3D10_CREATE_DEVICE_SWITCH_TO_REF
值: 0x4
同时创建软件 (REF) 和硬件 (HAL) 版本,从而允许应用程序切换到
引用设备以启用调试。 有关详细信息 ,请参阅 ID3D10SwitchToRef 接口
D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS
值: 0x8
防止创建多个线程。 将此标志与 WARP 设备一起使用时,WARP 和所有线程都不会创建其他线程
光栅化将在调用线程上发生。 不建议将此标志用于常规用途。 请参阅备注。
D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP
值: 0x10
返回 NULL 指针,而不是在调用 Map 期间触发内存耗尽异常。
如果没有此标志,内存耗尽将引发异常。 仅在 Windows 7 上有效。
D3D10_CREATE_DEVICE_BGRA_SUPPORT
值: 0x20
如果 BGRA 支持不可用,则会导致设备创建失败。

BGRA 支持支持支持以下格式。


  • DXGI_FORMAT_B8G8R8A8_TYPELESS

  • DXGI_FORMAT_B8G8R8A8_UNORM

  • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

  • DXGI_FORMAT_B8G8R8X8_TYPELESS

  • DXGI_FORMAT_B8G8R8X8_UNORM

  • DXGI_FORMAT_B8G8R8X8_UNORM_SRGB


仅当使用 D3D10CreateDevice1 创建设备时,D3D10_CREATE_DEVICE_BGRA_SUPPORT才相关
D3D10使用 D3D10_FEATURE_LEVEL_10_0 或 D3D10_FEATURE_LEVEL_10_1创建D3DeviceAndSwapChain1
功能级别,当使用其他功能级别创建设备时,将忽略标志。

请注意,即使应用程序未指定D3D10_CREATE_DEVICE_BGRA_SUPPORT,也可能存在 BGRA 支持。
如果 BGRA 支持不可用,该标志只会导致设备创建失败。

D3D10_CREATE_DEVICE_BGRA_SUPPORT仅在 Windows 7、Windows Server 2008 R2 和更新的 Windows Vista (KB971644) 系统上有效。
D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY
值: 0x80
使 Direct3D 运行时忽略启用 调试层的注册表设置。 可以使用 DirectX SDK 中包含的 DirectX 控制面板打开调试层。 我们在 2010 年 6 月交付了最新版本的 DirectX SDK;可以从 Microsoft 下载中心下载它。 可以在应用中(通常仅在发布版本中)中设置此标志,以防止最终用户使用 DirectX 控制面板监视应用如何使用 Direct3D。

注意还可以在应用中设置此标志,以防止 Direct3D 调试工具(如 Visual Studio Ultimate 2012)挂接应用。

 

Windows 8.1:此标志不会阻止在 Windows 8.1 及更高版本上运行的 Visual Studio 2013 及更高版本挂接应用。 但是,此标志仍会阻止Visual Studio 2013及以后在 Windows 8 及更早版本上运行的应用挂钩。

Direct3D 11: 在 Direct3D 11.1 之前不支持此值。
D3D10_CREATE_DEVICE_STRICT_VALIDATION
值: 0x200
保留。 当前不支持此标志。 请勿使用。
D3D10_CREATE_DEVICE_DEBUGGABLE
值: 0x400
使设备和驱动程序保留可用于着色器调试的信息。 此标志的确切影响因驱动程序而异。 若要使用此标志,必须安装 D3D11_1SDKLayers.dll;否则,设备创建将失败。 创建的设备支持 调试层。 若要获取 D3D11_1SDKLayers.dll,必须安装 sdk for Windows 8。

Direct3D 11: 在 Direct3D 11.1 之前不支持此值。

注解

D3D10CreateDeviceD3D10CreateDeviceAndSwapChain 使用设备创建标志。

应用程序可能会动态创建 (并销毁) 线程以提高性能,尤其是在具有多个 CPU 核心的计算机上。 但是,在某些情况下,应用程序需要阻止创建额外的线程。 如果要简化调试、分析代码或开发工具(例如),可能会发生这种情况。 对于这些情况,请使用 D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS 请求运行时和视频驱动程序不创建可能干扰应用程序的任何其他线程。

要求

要求
Header d3d10.h

另请参阅

核心枚举