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 返回代码之一。
备注
任何返回的接口的引用计数都会递增 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;
}
请参阅 D3D12 参考中的示例代码。
要求
目标平台 | Windows |
标头 | d3d12.h |
Library | D3D12.lib |
DLL | D3D12.dll |