ID3DUserDefinedAnnotation-Schnittstelle (d3d11_1.h)

Mit der ID3DUserDefinedAnnotation-Schnittstelle kann eine Anwendung konzeptionelle Abschnitte und Marker innerhalb des Codeflows der Anwendung beschreiben. Ein entsprechend aktiviertes Tool, z. B. Microsoft Visual Studio Ultimate 2012, kann diese Abschnitte und Marker visuell entlang der Microsoft Direct3D-Zeitlinie des Tools anzeigen, während das Tool die Anwendung debuggt. Mit diesen visuellen Notizen können Benutzer eines solchen Tools zu den von Interesse betreffenden Teilen der Zeitlinie navigieren oder verstehen, welche Direct3D-Aufrufe von bestimmten Abschnitten des Anwendungscodes erzeugt werden.

Vererbung

Die ID3DUserDefinedAnnotation-Schnittstelle erbt von der IUnknown-Schnittstelle . ID3DUserDefinedAnnotation verfügt auch über folgende Membertypen:

Methoden

Die ID3DUserDefinedAnnotation-Schnittstelle verfügt über diese Methoden.

 
ID3DUserDefinedAnnotation::BeginEvent

Markiert den Anfang eines Abschnitts des Ereigniscodes.
ID3DUserDefinedAnnotation::EndEvent

Markiert das Ende eines Abschnitts des Ereigniscodes.
ID3DUserDefinedAnnotation::GetStatus

Bestimmt, ob die aufrufende Anwendung unter einem Microsoft Direct3D-Profilerstellungstool ausgeführt wird.
ID3DUserDefinedAnnotation::SetMarker

Markiert einen einzelnen Ausführungspunkt im Code.

Hinweise

Die Methoden von ID3DUserDefinedAnnotation haben keine Auswirkungen, wenn die aufrufende Anwendung nicht unter einem Direct3D-spezifischen Profilerstellungstool wie Visual Studio Ultimate 2012 ausgeführt wird.

Die ID3DUserDefinedAnnotation-Schnittstelle wird von Microsoft Direct3D 11-Gerätekontexten veröffentlicht. Daher verfügt ID3DUserDefinedAnnotation über dieselben Threadingregeln wie die ID3D11DeviceContext-Schnittstelle oder jede andere Kontextschnittstelle. Weitere Informationen zum Direct3D-Threading finden Sie unter MultiThreading. Um die ID3DUserDefinedAnnotation-Schnittstelle für den Kontext abzurufen, rufen Sie die QueryInterface-Methode für den Kontext auf (z. B. ID3D11DeviceContext::QueryInterface). In diesem Aufruf müssen Sie den Bezeichner ID3DUserDefinedAnnotation übergeben.

Die ID3DUserDefinedAnnotation-Schnittstelle ist die Microsoft Direct3D 10 und höher entspricht den Direct3D 9 PIX-Funktionen (D3DPERF_*-Funktionen).

Hinweis Wenn Sie das D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY-Flag in Ihrer App festlegen, wird D3DPerf_SetOptions(1) aufgerufen. Um jedoch zu verhindern, dass Direct3D-Debugtools Ihre App einbinden, kann Ihre App auch ID3DUserDefinedAnnotation::GetStatus aufrufen, um zu ermitteln, ob sie unter einem Direct3D-Debugtool ausgeführt wird, und dann entsprechend beenden.
 
Sie müssen die BeginEvent - und EndEvent-Methoden paarweise aufrufen. Paare von Aufrufen dieser Methoden können sich in Paaren von Aufrufen dieser Methoden auf einer höheren Ebene im Aufrufstapel der Anwendung verschachteln. Mit anderen Worten, ein Abschnitt "Draw World" kann vollständig einen weiteren Abschnitt mit dem Namen "Zeichnen von Bäumen" enthalten, der wiederum vollständig einen Abschnitt mit dem Namen "Zeichnen von Eichen" enthalten kann. Sie können nur eine EndEvent-Methode der neuesten BeginEvent-Methode zuordnen, d. h. Paare können sich nicht überlappen. Sie können kein EndEvent für BeginEvent aufrufen, das dem letzten BeginEvent voranging. Tatsächlich interpretiert die Runtime das erste EndEvent so, dass das zweite BeginEvent endet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 und Plattformupdate für Windows 7 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 und Plattformupdate für Windows Server 2008 R2 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d3d11_1.h

Weitere Informationen

Allgemeine Versionsschnittstellen

IUnknown