Método ID3D12DeviceChild::GetDevice (d3d12.h)
Obtiene un puntero al dispositivo que creó esta interfaz.
Sintaxis
HRESULT GetDevice(
REFIID riid,
[out, optional] void **ppvDevice
);
Parámetros
riid
Tipo: REFIID
Identificador único global (GUID) de la interfaz del dispositivo. El REFIID, o GUID, de la interfaz al dispositivo se puede obtener mediante la macro __uuidof(). Por ejemplo, __uuidof(ID3D12Device) obtendrá el GUID de la interfaz en un dispositivo.
[out, optional] ppvDevice
Tipo: void**
Puntero a un bloque de memoria que recibe un puntero a la interfaz ID3D12Device del dispositivo.
Valor devuelto
Tipo: HRESULT
Este método devuelve uno de los códigos de retorno de Direct3D 12.
Comentarios
Las interfaces devueltas tienen su recuento de referencias incrementado en uno, por lo que asegúrese de llamar a ::release() en los punteros devueltos antes de que se liberen o, de lo contrario, tendrá una pérdida de memoria.
Ejemplos
El ejemplo D3D12Multithreading usa ID3D12DeviceChild::GetDevice de la siguiente manera:
// Returns required size of a buffer to be used for data upload
inline UINT64 GetRequiredIntermediateSize(
_In_ ID3D12Resource* pDestinationResource,
_In_range_(0,D3D12_REQ_SUBRESOURCES) UINT FirstSubresource,
_In_range_(0,D3D12_REQ_SUBRESOURCES-FirstSubresource) UINT NumSubresources)
{
D3D12_RESOURCE_DESC Desc = pDestinationResource->GetDesc();
UINT64 RequiredSize = 0;
ID3D12Device* pDevice;
pDestinationResource->GetDevice(__uuidof(*pDevice), reinterpret_cast<void**>(&pDevice));
pDevice->GetCopyableFootprints(&Desc, FirstSubresource, NumSubresources, 0, nullptr, nullptr, nullptr, &RequiredSize);
pDevice->Release();
return RequiredSize;
}
Consulte el código de ejemplo en la referencia D3D12.
Requisitos
Plataforma de destino | Windows |
Encabezado | d3d12.h |
Library | D3D12.lib |
Archivo DLL | D3D12.dll |