次の方法で共有


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 を介して、または ID3D11DeviceChild::SetPrivateData を介した Direct3D 11 子デバイスなど)。

デバッグ レイヤーは、オブジェクト インターフェイス ポインターの一覧とそのフレンドリ名を出力することで、メモリ リークを報告します。 既定のフレンドリ名は "<unnamed>" です。 フレンドリ名を設定して、対応するオブジェクト インターフェイス ポインターによってリークが発生したかどうかを判断できます。 フレンドリ名を設定するには、 SetPrivateData メソッドと、D3Dcommon.h にある既知のプライベート データ GUID (WKPDID_D3DDebugObjectName) を使用します。 たとえば、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

関連項目

DXGI インターフェイス

IDXGIObject