Método ID3D11On12Device2::UnwrapUnderlyingResource (d3d11on12.h)
Desencapsula un objeto de recurso direct3D 11 y lo recupera como un objeto de recurso direct3D 12.
Sintaxis
HRESULT UnwrapUnderlyingResource(
[in] ID3D11Resource *pResource11,
[in] ID3D12CommandQueue *pCommandQueue,
[in] REFIID riid,
[out] void **ppvResource12
);
Parámetros
[in] pResource11
Tipo: id3D11Resource*
Objeto de recurso direct3D 11 que se va a desencapsular.
[in] pCommandQueue
Tipo: id3D12CommandQueue*
Cola de comandos en la que la aplicación planea usar el recurso. Cualquier trabajo pendiente que tenga acceso al recurso hace que las esperas de barrera se programe en esta cola. Después, puede poner en cola más trabajo en esta cola, incluida una señal en una valla propiedad del autor de la llamada.
[in] riid
Tipo: REFIID
Referencia al identificador único global (GUID) de la interfaz que desea devolver en ppvResource12
.
[out] ppvResource12
Puntero a un bloque de memoria que recibe un puntero al recurso direct3D 12.
Valor devuelto
Si la función se ejecuta correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT.
Observaciones
El recurso se pasa a D3D12_RESOURCE_STATE_COMMON (si aún no estaba en ese estado) y las esperas adecuadas se insertan en la cola de comandos (pCommandQueue).
Hay algunas restricciones sobre lo que se puede desencapsular: sin recursos de exclusión mutua con claves, sin recursos compatibles con GDI y sin búferes. Sin embargo, puede usar unwrapUnderlyingResource para desencapsular los recursos creados a través del método ID3D11On12Device::CreateWrappedResource, así como los recursos creados a través de ID3D11Device::CreateTexture2D.
En general, debes devolver el objeto a Direct3D11on12 antes de usarlo de nuevo en Direct3D 11 (consulta ID3D11On12Device2::ReturnUnderlyingResource).
También puede usar UnwrapUnderlyingResource para desencapsular un búfer de cadena de intercambio. También debe devolver el recurso a Direct3D11on12 antes de llamar a Present (o usar el recurso).
Desencapsular un recurso desconecta el recurso de la capa de traducción Direct3D11On12. Es posible que no programe ningún uso de la capa de traducción (a través de ninguna versión de la API) mientras se desprotegió el recurso. Vuelva a comprobar el recurso en (también conocido como devolver el recurso) con ID3D11On12Device2::ReturnUnderlyingResource.
unwrapUnderlyingResource no vacía y puede programar el trabajo de GPU. Debe vaciar después de llamar a UnwrapUnderlyingResource si espera externamente la finalización.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 10, versión 2004 (10.0; Compilación 19041) |
servidor mínimo admitido | Windows Server, versión 2004 (10.0; Compilación 19041) |
encabezado de |
d3d11on12.h |
biblioteca de |
D3D11.lib |
DLL de |
D3D11.dll |
Consulte también
- de interfaz ID3D12Device de
- ID3D11On12Device2::ReturnUnderlyingResource