Método ID3D12DeviceChild::GetDevice (d3d12.h)
Obtém um ponteiro para o dispositivo que criou essa interface.
Sintaxe
HRESULT GetDevice(
REFIID riid,
[out, optional] void **ppvDevice
);
Parâmetros
riid
Tipo: REFIID
O GUID (identificador global exclusivo) para a interface do dispositivo. O REFIID, ou GUID, da interface para o dispositivo pode ser obtido usando a macro __uuidof(). Por exemplo, __uuidof(ID3D12Device) obterá o GUID da interface para um dispositivo.
[out, optional] ppvDevice
Tipo: void**
Um ponteiro para um bloco de memória que recebe um ponteiro para a interface ID3D12Device para o dispositivo.
Valor retornado
Tipo: HRESULT
Esse método retorna um dos códigos de retorno do Direct3D 12.
Comentários
Todas as interfaces retornadas têm sua contagem de referência incrementada por um, portanto, certifique-se de chamar ::release() nos ponteiros retornados antes que eles sejam liberados ou então você terá um vazamento de memória.
Exemplos
O exemplo D3D12Multithreading usa ID3D12DeviceChild::GetDevice da seguinte maneira:
// 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 o código de exemplo na referência D3D12.
Requisitos
Plataforma de Destino | Windows |
Cabeçalho | d3d12.h |
Biblioteca | D3D12.lib |
DLL | D3D12.dll |