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
에서 반환하려는 인터페이스의 GUID(Globally Unique Identifier)에 ppvResource12
대한 참조입니다.
[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 |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기