Partager via


ID3D12DeviceChild::GetDevice, méthode (d3d12.h)

Obtient un pointeur vers l’appareil qui a créé cette interface.

Syntaxe

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

Paramètres

riid

Type : REFIID

Identificateur global unique (GUID) pour l’interface de l’appareil. Le REFIID, ou GUID, de l’interface de l’appareil peut être obtenu à l’aide de la macro __uuidof(). Par exemple, __uuidof(ID3D12Device) obtient le GUID de l’interface sur un appareil.

[out, optional] ppvDevice

Type : void**

Pointeur vers un bloc de mémoire qui reçoit un pointeur vers l’interface ID3D12Device pour l’appareil.

Valeur retournée

Type : HRESULT

Cette méthode retourne l’un des codes de retour Direct3D 12.

Notes

Toutes les interfaces retournées ont leur nombre de références incrémenté d’un. Veillez donc à appeler ::release() sur les pointeurs retournés avant qu’ils ne soient libérés, sinon vous aurez une fuite de mémoire.

Exemples

L’exemple D3D12Multithreading utilise ID3D12DeviceChild::GetDevice comme suit :

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

Reportez-vous à l’exemple de code dans la référence D3D12.

Spécifications

   
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque D3D12.lib
DLL D3D12.dll

Voir aussi

ID3D12DeviceChild