IDXGIObject::SetPrivateData 方法 (dxgi.h)
将应用程序定义的数据设置为 对象,并将该数据与 GUID 相关联。
语法
HRESULT SetPrivateData(
[in] REFGUID Name,
UINT DataSize,
[in] const void *pData
);
参数
[in] Name
类型: REFGUID
标识数据的 GUID。 在调用 GetPrivateData 时使用此 GUID 获取数据。
DataSize
类型: UINT
对象数据的大小。
[in] pData
类型: const void*
指向对象数据的指针。
返回值
类型: HRESULT
返回 DXGI_ERROR 值之一。
备注
SetPrivateData 创建指定数据的副本,并将其与 对象一起存储。
SetPrivateData 存储在 对象中的专用数据占用的存储空间与由关联的 Direct3D 对象存储的专用数据相同, (例如,Microsoft Direct3D 11 设备通过 ID3D11Device::SetPrivateData 或 Direct3D 11 子设备通过 ID3D11DeviceChild::SetPrivateData) 存储的专用数据。
调试层通过输出对象接口指针的列表及其友好名称来报告内存泄漏。 默认友好名称是“<unnamed>”。 可以设置友好名称,以便确定相应的对象接口指针是否导致泄漏。 若要设置友好名称,请使用 SetPrivateData 方法和已知私有数据 GUID (WKPDID_D3DDebugObjectName D3Dcommon.h 中的) 。 例如,若要为 pContext 提供 友好名称“我的名字”,请使用以下代码:
static const char c_szName[] = "My name";
hr = pContext->SetPrivateData( WKPDID_D3DDebugObjectName, sizeof( c_szName ) - 1, c_szName );
可以使用 WKPDID_D3DDebugObjectName 跟踪内存泄漏并了解应用程序的性能特征。 此信息反映在 调试层 的输出中,该输出与 ID3D11Debug::ReportLiveDeviceObjects) 以及我们已添加到 Windows 8 的 Windows 事件 的事件跟踪 相关的内存 (泄漏。
要求
目标平台 | Windows |
标头 | dxgi.h |
Library | DXGI.lib |