ID3D12DeviceChild::GetDevice 方法 (d3d12.h)
取得建立這個介面之裝置的指標。
語法
HRESULT GetDevice(
REFIID riid,
[out, optional] void **ppvDevice
);
參數
riid
類型: REFIID
裝置介面的全域唯一識別碼 (GUID) 。 您可以使用 __uuidof () 宏來取得裝置介面的 REFIID或 GUID。 例如,__uuidof (ID3D12Device) 會取得裝置介面的 GUID 。
[out, optional] ppvDevice
類型: void**
記憶體區塊的指標,可接收裝置 ID3D12Device 介面的指標。
傳回值
類型: HRESULT
這個方法會傳回其中一個 Direct3D 12 傳回碼。
備註
任何傳回的介面都會以一個遞增的參考計數,因此請務必在傳回的指標上呼叫 ::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;
}
請參閱 D3D12 參考中的範例程式碼。
需求
目標平台 | Windows |
標頭 | d3d12.h |
程式庫 | D3D12.lib |
Dll | D3D12.dll |