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 |