ID3DUserDefinedAnnotation インターフェイス (d3d11_1.h)

ID3DUserDefinedAnnotation インターフェイスを使用すると、アプリケーションでアプリケーションのコード フロー内の概念セクションとマーカーを記述できます。 Microsoft Visual Studio Ultimate 2012 などの適切に有効なツールでは、ツールがアプリケーションをデバッグしながら、ツールの Microsoft Direct3D タイム ラインに沿ってこれらのセクションとマーカーを視覚的に表示できます。 これらのビジュアル ノートを使用すると、このようなツールのユーザーは、関心のあるタイム ラインの一部に移動したり、アプリケーションのコードの特定のセクションによって生成される Direct3D 呼び出しのセットを理解したりできます。

継承

ID3DUserDefinedAnnotation インターフェイスは、IUnknown インターフェイスから継承されます。 ID3DUserDefinedAnnotation には、次の種類のメンバーもあります。

メソッド

ID3DUserDefinedAnnotation インターフェイスには、これらのメソッドがあります。

 
ID3DUserDefinedAnnotation::BeginEvent

イベント コードのセクションの先頭をマークします。
ID3DUserDefinedAnnotation::EndEvent

イベント コードのセクションの末尾をマークします。
ID3DUserDefinedAnnotation::GetStatus

呼び出し元アプリケーションが Microsoft Direct3D プロファイル ツールで実行されているかどうかを判断します。
ID3DUserDefinedAnnotation::SetMarker

コード内の単一の実行ポイントをマークします。

注釈

ID3DUserDefinedAnnotation のメソッドは、呼び出し元のアプリケーションが、Visual Studio Ultimate 2012 のような Direct3D 固有のプロファイリング ツールで実行されていない場合には影響しません。

ID3DUserDefinedAnnotation インターフェイスは、Microsoft Direct3D 11 デバイス コンテキストによって公開されます。 したがって、 ID3DUserDefinedAnnotation には、 ID3D11DeviceContext インターフェイス、またはその他のコンテキスト インターフェイスと同じスレッドルールがあります。 Direct3D スレッドの詳細については、「 マルチスレッド」を参照してください。 コンテキストの ID3DUserDefinedAnnotation インターフェイスを取得するには、コンテキストの QueryInterface メソッド ( ID3D11DeviceContext::QueryInterface など) を呼び出します。 この呼び出しでは、 ID3DUserDefinedAnnotation の識別子を渡す必要があります。

ID3DUserDefinedAnnotation インターフェイスは、Direct3D 9 PIX 関数 (D3DPERF_* 関数) と同等の Microsoft Direct3D 10 以降です。

メモ アプリで D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY フラグを設定すると、呼び出し元の D3DPerf_SetOptions(1) が置き換えられます。 ただし、Direct3D デバッグ ツールがアプリをフックしないようにするために、アプリは ID3DUserDefinedAnnotation::GetStatus を呼び出して、Direct3D デバッグ ツールで実行されているかどうかを判断し、それに応じて終了することもできます。
 
BeginEvent メソッドと EndEvent メソッドをペアで呼び出す必要があります。これらのメソッドの呼び出しのペアは、アプリケーションの呼び出し履歴の上位レベルで、これらのメソッドの呼び出しのペア内に入れ子にすることができます。 つまり、"Draw World" セクションには、"ツリーの描画" という名前の別のセクションを完全に含めることができます。このセクションには、"Draw Oaks" というセクションを完全に含めることができます。 EndEvent メソッドを最新の BeginEvent メソッド (つまり、ペアを重ねることはできません) にのみ関連付けることができます。 最新の BeginEvent より前の BeginEvent に対して EndEvent を呼び出すことはできません。 実際、ランタイムは最初の EndEvent を 2 番目の BeginEvent を終了すると解釈します。

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2 のWindows Server 2012とプラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d3d11_1.h

こちらもご覧ください

共通バージョン インターフェイス

IUnknown