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) 所儲存的儲存空間。
偵錯 層 會藉由輸出物件介面指標清單及其易記名稱來報告記憶體流失。 預設易記名稱為 「 < 未命名 > 」。 您可以設定易記名稱,以便判斷對應的物件介面指標是否造成流失。 若要設定易記名稱,請使用 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 |
程式庫 | DXGI.lib |