ID3D12DeviceChild::GetDevice メソッド (d3d12.h)
このインターフェイスを作成したデバイスへのポインターを取得します。
構文
HRESULT GetDevice(
REFIID riid,
[out, optional] void **ppvDevice
);
パラメーター
riid
型: REFIID
デバイス インターフェイスのグローバル一意識別子 (GUID)。 デバイスへのインターフェイスの REFIID ( GUID) は、__uuidof() マクロを使用して取得できます。 たとえば、__uuidof(ID3D12Device) は、デバイスへのインターフェイスの GUID を 取得します。
[out, optional] ppvDevice
型: void**
デバイスの ID3D12Device インターフェイスへのポインターを受け取るメモリ ブロックへのポインター。
戻り値
型: HRESULT
このメソッドは、Direct3D 12リターン コードのいずれかを返します。
解説
返されたインターフェイスの参照カウントは 1 ずつ増加するため、返されたポインターを解放する前に ::release() を呼び出してください。そうしないとメモリ リークが発生します。
例
D3D12Multithreading サンプルでは、次のように ID3D12DeviceChild::GetDevice を使用します。
// 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;
}
要件
対象プラットフォーム | Windows |
ヘッダー | d3d12.h |
Library | D3D12.lib |
[DLL] | D3D12.dll |