다음을 통해 공유


ID3D11On12Device2::UnwrapUnderlyingResource 메서드(d3d11on12.h)

Direct3D 11 리소스 개체를 래프 해제하고 Direct3D 12 리소스 개체로 검색합니다.

통사론

HRESULT UnwrapUnderlyingResource(
  [in]  ID3D11Resource     *pResource11,
  [in]  ID3D12CommandQueue *pCommandQueue,
  [in]  REFIID             riid,
  [out] void               **ppvResource12
);

매개 변수

[in] pResource11

형식: ID3D11Resource*

래프 해제할 Direct3D 11 리소스 개체입니다.

[in] pCommandQueue

형식: ID3D12CommandQueue*

애플리케이션이 리소스를 사용할 계획인 명령 큐입니다. 리소스에 액세스하는 보류 중인 작업으로 인해 펜스 대기가 이 큐에서 예약됩니다. 그런 다음 호출자 소유 펜스의 신호를 포함하여 이 큐에서 추가 작업을 큐에 대기할 수 있습니다.

[in] riid

형식: REFIID

ppvResource12반환하려는 인터페이스의 GUID(Globally Unique Identifier)에 대한 참조입니다.

[out] ppvResource12

형식: void**

Direct3D 12 리소스에 대한 포인터를 받는 메모리 블록에 대한 포인터입니다.

반환 값

형식: HRESULT

함수가 성공하면 S_OK반환합니다. 그렇지 않으면 HRESULT오류 코드반환합니다.

발언

리소스가 D3D12_RESOURCE_STATE_COMMON 전환되고(해당 상태가 아닌 경우) 적절한 대기가 명령 큐에 삽입됩니다(pCommandQueue).

래핑 해제할 수 있는 항목에는 키 지정 뮤텍스 리소스, GDI 호환 리소스 및 버퍼 없음과 같은 몇 가지 제한 사항이 있습니다. 그러나 UnwrapUnderlyingResource 사용하여 ID3D11On12Device::CreateWrappedResource 메서드를 통해 만든 리소스와 ID3D11Device::CreateTexture2D통해 만든 리소스를 래핑 해제할 수 있습니다.

일반적으로 Direct3D 11에서 개체를 다시 사용하기 전에 Direct3D11on12로 반환해야 합니다(ID3D11On12Device2::ReturnUnderlyingResource참조).

unwrapUnderlyingResource 사용하여 스왑 체인 버퍼의 래핑을 해제할 수도 있습니다. 또한 Present(또는 리소스 사용)를 호출하기 전에 리소스를 Direct3D11on12로 반환해야 합니다.

리소스 래핑 해제는 Direct3D11On12 번역 계층에서 리소스를 체크 아웃합니다. 리소스를 체크 아웃하는 동안에는 변환 계층 사용량(API 버전 중 하나를 통해)을 예약할 수 없습니다. ID3D11On12Device2::ReturnUnderlyingResource사용하여 리소스를 다시 체크 인(리소스를 반환이라고도 함)을 확인합니다.

UnwrapUnderlyingResource 플러시되지 않으며 GPU 작업을 예약할 수 있습니다. 외부에서 완료를 기다리는 경우 UnwrapUnderlyingResource 호출한 후 플러시해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 10 버전 2004(10.0; 빌드 19041)
지원되는 최소 서버 Windows Server 버전 2004(10.0; 빌드 19041)
헤더 d3d11on12.h
라이브러리 D3D11.lib
DLL D3D11.dll

참고 항목