Compartilhar via


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

Confira também

ID3D12DeviceChild