D3D_FEATURE_LEVEL 枚举是在 Direct3D 中定义的一个枚举类型,用于表示支持的硬件和 API 特性级别。这个枚举定义在 D3dcommon.h 头文件中。以下是该枚举的定义:
typedef enum D3D_FEATURE_LEVEL
{
    D3D_FEATURE_LEVEL_9_1 = 0x9100,
    D3D_FEATURE_LEVEL_9_2 = 0x9200,
    D3D_FEATURE_LEVEL_9_3 = 0x9300,
    D3D_FEATURE_LEVEL_10_0 = 0xa000,
    D3D_FEATURE_LEVEL_10_1 = 0xa100,
    D3D_FEATURE_LEVEL_11_0 = 0xb000,
    D3D_FEATURE_LEVEL_11_1 = 0xb100,
    D3D_FEATURE_LEVEL_12_0 = 0xc000,
    D3D_FEATURE_LEVEL_12_1 = 0xc100
} D3D_FEATURE_LEVEL;

这个枚举包括以下几个成员:

  •  D3D_FEATURE_LEVEL_9_1、D3D_FEATURE_LEVEL_9_2、D3D_FEATURE_LEVEL_9_3: 表示 Direct3D 9 级别的特性。

  •  D3D_FEATURE_LEVEL_10_0、D3D_FEATURE_LEVEL_10_1: 表示 Direct3D 10 级别的特性。

  •  D3D_FEATURE_LEVEL_11_0、D3D_FEATURE_LEVEL_11_1: 表示 Direct3D 11 级别的特性。

  •  D3D_FEATURE_LEVEL_12_0、D3D_FEATURE_LEVEL_12_1: 表示 Direct3D 12 级别的特性。


在创建 Direct3D 设备时,可以指定要使用的硬件特性级别。例如,在使用 D3D11CreateDevice 函数时,其中一个参数就是要使用的特性级别数组:
HRESULT D3D11CreateDevice(
    IDXGIAdapter *pAdapter,
    D3D_DRIVER_TYPE DriverType,
    HMODULE Software,
    UINT Flags,
    const D3D_FEATURE_LEVEL *pFeatureLevels,
    UINT FeatureLevels,
    UINT SDKVersion,
    ID3D11Device **ppDevice,
    D3D_FEATURE_LEVEL *pFeatureLevel,
    ID3D11DeviceContext **ppImmediateContext
);

在这个函数中,pFeatureLevels 参数是一个指向 D3D_FEATURE_LEVEL 数组的指针,用于指定设备可以支持的特性级别。在函数执行后,pFeatureLevel 参数将包含实际创建的设备所支持的特性级别。


转载请注明出处:http://www.zyzy.cn/article/detail/26266/Win32 API/D3dcommon.h/D3D_FEATURE_LEVEL