ID3D12Device::CreateCommandAllocator 方法 (d3d12.h)

创建命令分配器对象。

语法

HRESULT CreateCommandAllocator(
  [in]  D3D12_COMMAND_LIST_TYPE type,
        REFIID                  riid,
  [out] void                    **ppCommandAllocator
);

参数

[in] type

类型: D3D12_COMMAND_LIST_TYPE

一个D3D12_COMMAND_LIST_TYPE类型的值,该值指定要创建的命令分配器的类型。 命令分配器的类型可以是记录直接命令列表或捆绑包的类型。

riid

类型: REFIID

命令分配器接口的全局唯一标识符 (GUID) (ID3D12CommandAllocator) 。 可以使用 __uuidof () 宏获取命令分配器的接口的 REFIIDGUID。 例如,__uuidof (ID3D12CommandAllocator) 将获取命令分配器的接口的 GUID

[out] ppCommandAllocator

类型: void**

指向内存块的指针,该内存块接收指向命令分配 器的 ID3D12CommandAllocator 接口的指针。

返回值

类型: HRESULT

如果内存不足,无法创建命令分配器,此方法将返回 E_OUTOFMEMORY 。 有关其他可能的返回值,请参阅 Direct3D 12 返回代码

注解

设备从命令分配器创建命令列表。

示例

D3D12Bundles 示例使用 ID3D12Device::CreateCommandAllocator,如下所示:

ThrowIfFailed(pDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&m_commandAllocator)));
ThrowIfFailed(pDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_BUNDLE, IID_PPV_ARGS(&m_bundleAllocator)));

请参阅 D3D12 参考中的示例代码

要求

要求
目标平台 Windows
标头 d3d12.h
Library D3D12.lib
DLL D3D12.dll

另请参阅

ID3D12Device