以下是 D3D12_HEAP_FLAGS 枚举的可能值:
typedef enum D3D12_HEAP_FLAGS
{
D3D12_HEAP_FLAG_NONE = 0,
D3D12_HEAP_FLAG_SHARED = 0x1,
D3D12_HEAP_FLAG_DENY_BUFFERS = 0x4,
D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x8,
D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
D3D12_HEAP_FLAG_HARDWARE_PROTECTED = 0x100,
D3D12_HEAP_FLAG_ALLOW_WRITE_WATCH = 0x200,
D3D12_HEAP_FLAG_ALLOW_SHADER_ATOMICS = 0x400,
D3D12_HEAP_FLAG_CREATE_NOT_RESIDENT = 0x800,
D3D12_HEAP_FLAG_CREATE_NOT_ZEROED = 0x1000,
D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0,
D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xC0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x40,
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x80,
D3D12_HEAP_FLAG_ALLOW_STANDARD_TEXTURES = 0xC0,
D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES_PLACED = 0x100,
D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES_PLACED = 0x200,
D3D12_HEAP_FLAG_ALLOW_NON_RT_DS_TEXTURES_ONLY = 0x300,
D3D12_HEAP_FLAG_ALLOW_RT_DS_TEXTURES_ONLY = 0x400,
D3D12_HEAP_FLAG_ALLOW_ALL_TEXTURES_AND_BUFFERS = 0xC0,
} D3D12_HEAP_FLAGS;
这些标志包括:
- D3D12_HEAP_FLAG_SHARED: 表示堆是共享的,可以被多个进程使用。
- D3D12_HEAP_FLAG_DENY_BUFFERS: 阻止堆用于存储缓冲区。
- D3D12_HEAP_FLAG_ALLOW_DISPLAY: 允许堆用于显示设备。
- D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER: 表示堆可以跨多个适配器共享。
- D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES: 阻止堆用于存储渲染目标和深度/模板纹理。
- D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES: 阻止堆用于存储非渲染目标和非深度/模板纹理。
- D3D12_HEAP_FLAG_HARDWARE_PROTECTED: 表示堆受到硬件保护。
- 等等。
这些标志允许你根据应用程序的需要,灵活地配置堆的属性。在创建堆时,可以通过将这些标志传递给相关的函数来指定堆的特性。
转载请注明出处:http://www.zyzy.cn/article/detail/26061/Win32 API/D3d12.h/D3D12_HEAP_FLAGS