D3D12SerializeRootSignature 함수(d3d12.h)

ID3D12Device::CreateRootSignature에 전달할 수 있는 루트 서명 버전 1.0을 직렬화합니다.

구문

HRESULT D3D12SerializeRootSignature(
  [in]            const D3D12_ROOT_SIGNATURE_DESC *pRootSignature,
  [in]            D3D_ROOT_SIGNATURE_VERSION      Version,
  [out]           ID3DBlob                        **ppBlob,
  [out, optional] ID3DBlob                        **ppErrorBlob
);

매개 변수

[in] pRootSignature

형식: const D3D12_ROOT_SIGNATURE_DESC*

D3D12_ROOT_SIGNATURE_DESC 구조체에 대한 포인터인 루트 서명에 대한 설명입니다.

[in] Version

형식: D3D_ROOT_SIGNATURE_VERSION

루트 서명의 버전을 지정하는 D3D_ROOT_SIGNATURE_VERSION 형식의 값입니다.

[out] ppBlob

형식: ID3DBlob**

직렬화된 루트 서명에 액세스하는 데 사용할 수 있는 ID3DBlob 인터페이스에 대한 포인터를 수신하는 메모리 블록에 대한 포인터입니다.

[out, optional] ppErrorBlob

형식: ID3DBlob**

serializer 오류 메시지에 액세스하는 데 사용할 수 있는 ID3DBlob 인터페이스에 대한 포인터를 수신하는 메모리 블록에 대한 포인터이거나 오류가 없는 경우 NULL 입니다.

반환 값

형식: HRESULT

성공하면 S_OK 반환합니다. 그렇지 않으면 Direct3D 12 반환 코드 중 하나를 반환합니다.

설명

이 함수는 Windows 10 1주년 업데이트(14393)를 기준으로 D3D12SerializeVersionedRootSignature로 대체되었습니다.

애플리케이션이 D3D12_ROOT_SIGNATURE_DESC 데이터 구조를 프로시저 방식으로 생성하는 경우 직렬화된 형식을 만들려면 D3D12SerializeRootSignature 호출에서 이 D3D12_ROOT_SIGNATURE_DESC 대한 포인터를 전달해야 합니다. 그런 다음, 애플리케이션은 ppBlobID3D12Device::CreateRootSignature로 가리키는 직렬화된 양식을 전달합니다.

루트 서명이 포함된 셰이더가 작성된 경우, 직렬화된 루트 서명이 컴파일된 셰이더에 이미 포함되어 있습니다. 이 경우 컴파일된 셰이더 Blob을 ID3D12Device::CreateRootSignature 에 전달하여 런타임 루트 서명 개체를 가져옵니다.

함수 서명 PFN_D3D12_SERIALIZE_ROOT_SIGNATURE typedef로 제공되므로 정적으로 연결하는 대신 동적 연결 기술(GetProcAddress)을 사용할 수 있습니다.

예제

빈 루트 서명을 만듭니다.

CD3DX12_ROOT_SIGNATURE_DESC rootSignatureDesc;
rootSignatureDesc.Init(0, nullptr, 0, nullptr, D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT);

ComPtr<ID3DBlob> signature;
ComPtr<ID3DBlob> error;
ThrowIfFailed(D3D12SerializeRootSignature(&rootSignatureDesc, D3D_ROOT_SIGNATURE_VERSION_1, &signature, &error));
ThrowIfFailed(m_device->CreateRootSignature(0, signature->GetBufferPointer(), signature->GetBufferSize(), IID_PPV_ARGS(&m_rootSignature)));

D3D12 참조의 예제 코드를 참조하세요.

요구 사항

   
대상 플랫폼 Windows
헤더 d3d12.h
라이브러리 D3D12.lib
DLL D3D12.dll

추가 정보

핵심 함수

루트 서명 만들기