ID3D12DeviceChild::GetDevice-Methode (d3d12.h)
Ruft einen Zeiger auf das Gerät ab, das diese Schnittstelle erstellt hat.
Syntax
HRESULT GetDevice(
REFIID riid,
[out, optional] void **ppvDevice
);
Parameter
riid
Typ: REFIID
Der globally unique Identifier (GUID) für die Geräteschnittstelle. Die REFIID oder GUID der Schnittstelle zum Gerät kann mithilfe des Makros __uuidof() abgerufen werden. Beispielsweise ruft __uuidof(ID3D12Device) die GUID der Schnittstelle auf ein Gerät ab.
[out, optional] ppvDevice
Typ: void**
Ein Zeiger auf einen Speicherblock, der einen Zeiger auf die ID3D12Device-Schnittstelle für das Gerät empfängt.
Rückgabewert
Typ: HRESULT
Diese Methode gibt einen der Direct3D 12-Rückgabecodes zurück.
Hinweise
Bei allen zurückgegebenen Schnittstellen wird die Referenzanzahl um eins erhöht. Rufen Sie daher unbedingt ::release() für die zurückgegebenen Zeiger auf, bevor sie freigegeben werden, da sonst speicherlecks auftreten.
Beispiele
Das D3D12Multithreading-Beispiel verwendet ID3D12DeviceChild::GetDevice wie folgt:
// 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;
}
Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | D3D12.lib |
DLL | D3D12.dll |