ID3D12Device7::AddToStateObject 方法 (d3d12.h)

以增量方式添加到现有状态对象。 这会产生比从头开始创建状态对象的 CPU 开销更低,该状态对象是现有对象的超集 (例如,) 添加更多着色器。

语法

HRESULT AddToStateObject(
  const D3D12_STATE_OBJECT_DESC *pAddition,
  ID3D12StateObject             *pStateObjectToGrowFrom,
  REFIID                        riid,
  void                          **ppNewStateObject
);

参数

pAddition

类型:_In_ const D3D12_STATE_OBJECT_DESC*

要添加到现有状态对象的状态对象内容的说明。 若要帮助生成此值,请参阅 中的 类d3dx12.h中的CD3D12_STATE_OBJECT_DESC帮助程序。

pStateObjectToGrowFrom

类型:_In_ ID3D12StateObject*

现有状态对象,可以使用 (例如,在此操作期间的活动光线追踪) 。

现有状态对象不得为 Collection 类型。

riid

类型:_In_ REFIID

必须是 ID3D12StateObject 接口的 IID。

ppNewStateObject

类型:_COM_Outptr_ void**

返回的状态对象。

如果从此调用中为新着色器检索着色器标识符,并且通过任何引用某些较旧状态对象的现有或正在进行的命令列表通过着色器表访问这些标识符,则行为是未定义的。 只能从调用 AddToStateObject 后记录在命令列表中的命令列表中记录的命令 (如 DispatchRaysExecuteIndirect 调用) 使用添加到状态对象的新着色器。

返回值

成功S_OKE_INVALIDARG失败时E_OUTOFMEMORY 。 调试层提供详细的状态信息。

注解

有关详细信息,请参阅 AddToStateObject

要求

要求
最低受支持的客户端 Windows 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 d3d12.h
Library d3d12.lib
DLL d3d12.dll