Método ID3D11On12Device2::UnwrapUnderlyingResource (d3d11on12.h)
Desembrulha um objeto de recurso Direct3D 11 e o recupera como um objeto de recurso direct3D 12.
Sintaxe
HRESULT UnwrapUnderlyingResource(
[in] ID3D11Resource *pResource11,
[in] ID3D12CommandQueue *pCommandQueue,
[in] REFIID riid,
[out] void **ppvResource12
);
Parâmetros
[in] pResource11
Tipo: ID3D11Resource*
O objeto de recurso Direct3D 11 a ser desembrulhado.
[in] pCommandQueue
Tipo: ID3D12CommandQueue*
A fila de comandos na qual seu aplicativo planeja usar o recurso. Qualquer trabalho pendente que acesse o recurso faz com que as esperas de cerca sejam agendadas nessa fila. Em seguida, você pode enfileirar mais trabalho nessa fila, incluindo um sinal em uma cerca de propriedade do chamador.
[in] riid
Tipo: REFIID
Uma referência ao GUID (identificador global exclusivo) da interface que você deseja retornar no ppvResource12
.
[out] ppvResource12
Tipo: void**
Um ponteiro para um bloco de memória que recebe um ponteiro para o recurso Direct3D 12.
Retornar valor
Tipo: HRESULT
Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erroHRESULT.
Comentários
O recurso é transferido para D3D12_RESOURCE_STATE_COMMON (se ainda não estava nesse estado) e as esperas apropriadas são inseridas na fila de comandos (pCommandQueue).
Há algumas restrições sobre o que pode ser desembrulhado: nenhum recurso mutex chaveado, nenhum recurso compatível com GDI e nenhum buffer. No entanto, você pode usar UnwrapUnderlyingResource para desembrulhar recursos criados por meio do método ID3D11On12Device::CreateWrappedResource , bem como recursos criados por meio do método ID3D11Device::CreateTexture2D.
Em geral, você deve retornar o objeto para Direct3D11on12 antes de usá-lo novamente no Direct3D 11 (consulte ID3D11On12Device2::ReturnUnderlyingResource).
Você também pode usar UnwrapUnderlyingResource para desembrulhar um buffer de swapchain. Você também deve retornar o recurso para Direct3D11on12 antes de chamar Present (ou usar o recurso).
Desembrulhar um recurso verifica o recurso da camada de tradução Direct3D11On12. Você não pode agendar nenhum uso de camada de tradução (por meio de nenhuma versão da API) enquanto o recurso está em check-out. Verifique o recurso de volta (também conhecido como retornando o recurso) com ID3D11On12Device2::ReturnUnderlyingResource.
UnwrapUnderlyingResource não libera e pode agendar o trabalho de GPU. Você deverá liberar depois de chamar UnwrapUnderlyingResource se aguardar externamente a conclusão.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 2004 (10.0; Build 19041) |
Servidor mínimo com suporte | Windows Server, versão 2004 (10.0; Build 19041) |
Cabeçalho | d3d11on12.h |
Biblioteca | D3D11.lib |
DLL | D3D11.dll |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de