D3D12SerializeVersionedRootSignature 函数 (d3d12.h)
序列化可传递给 ID3D12Device::CreateRootSignature 的任何版本的根签名。
语法
HRESULT D3D12SerializeVersionedRootSignature(
[in] const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *pRootSignature,
[out] ID3DBlob **ppBlob,
[out, optional] ID3DBlob **ppErrorBlob
);
参数
[in] pRootSignature
类型: const D3D12_VERSIONED_ROOT_SIGNATURE_DESC*
指定一个 D3D12_VERSIONED_ROOT_SIGNATURE_DESC ,其中包含根签名的任何版本的说明。
[out] ppBlob
类型: ID3DBlob**
指向内存块的指针,该内存块接收指向可用于访问序列化根签名的 ID3DBlob 接口的指针。
[out, optional] ppErrorBlob
类型: ID3DBlob**
指向内存块的指针,该内存块接收指向可用于访问序列化程序错误消息的 ID3DBlob 接口的指针;如果没有错误,则为 NULL 。
返回值
类型: HRESULT
如果成功,则返回 S_OK ;否则,返回 Direct3D 12 返回代码之一。
注解
如果应用程序以过程方式生成D3D12_ROOT_SIGNATURE_DESC1数据结构,则必须在调用 D3D12SerializeVersionedRootSignature 中传递指向此D3D12_ROOT_SIGNATURE_DESC1的指针,以生成序列化表单。 然后,应用程序将 ppBlob 指向的序列化表单传递到 ID3D12Device::CreateRootSignature 中。
如果编写的着色器包含根签名,则编译的着色器已包含序列化的根签名。 在这种情况下,将编译的着色器 blob 传递给 ID3D12Device::CreateRootSignature 以获取运行时根签名对象。
请注意,对于 Xbox 开发人员,强烈建议使用 HLSL 创作的根签名。
函数签名PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE作为 typedef 提供,因此可以使用动态链接技术 (GetProcAddress) 而不是静态链接。
此函数已随 Windows 10 周年更新 (14393) 发布,并取代了 D3D12SerializeRootSignature。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | d3d12.h |
Library | D3d12.lib |
DLL | D3d12.dll |