Condividi tramite


Metodo ID3D12DeviceChild::GetDevice (d3d12.h)

Ottiene un puntatore al dispositivo che ha creato questa interfaccia.

Sintassi

HRESULT GetDevice(
                  REFIID riid,
  [out, optional] void   **ppvDevice
);

Parametri

riid

Tipo: REFIID

Identificatore univoco globale (GUID) per l'interfaccia del dispositivo. È possibile ottenere il GUID REFIID o il GUID dell'interfaccia nel dispositivo usando la macro __uuidof(). Ad esempio, __uuidof(ID3D12Device) otterrà il GUID dell'interfaccia in un dispositivo.

[out, optional] ppvDevice

Tipo: void**

Puntatore a un blocco di memoria che riceve un puntatore all'interfaccia ID3D12Device per il dispositivo.

Valore restituito

Tipo: HRESULT

Questo metodo restituisce uno dei codici restituiti Direct3D 12.

Commenti

Tutte le interfacce restituite hanno il numero di riferimenti incrementato per uno, quindi assicurarsi di chiamare ::release() sui puntatori restituiti prima di essere liberati o altrimenti si avrà una perdita di memoria.

Esempio

L'esempio D3D12Multithreading usa ID3D12DeviceChild::GetDevice come indicato di seguito:

// 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;
}

Fare riferimento al codice di esempio nel riferimento D3D12.

Requisiti

   
Piattaforma di destinazione Windows
Intestazione d3d12.h
Libreria D3D12.lib
DLL D3D12.dll

Vedi anche

ID3D12DeviceChild