Condividi tramite


Interfaccia ID3DUserDefinedAnnotation (d3d11_1.h)

L'interfaccia ID3DUserDefinedAnnotation consente a un'applicazione di descrivere sezioni concettuali e marcatori all'interno del flusso di codice dell'applicazione. Uno strumento abilitato in modo appropriato, ad esempio Microsoft Visual Studio Ultimate 2012, può visualizzare queste sezioni e indicatori visivamente lungo la linea temporale di Microsoft Direct3D dello strumento, mentre lo strumento esegue il debug dell'applicazione. Queste note visive consentono agli utenti di tale strumento di passare a parti della linea temporale di interesse o di comprendere quale set di chiamate Direct3D vengono prodotte da determinate sezioni del codice dell'applicazione.

Ereditarietà

L'interfaccia ID3DUserDefinedAnnotation eredita dall'interfaccia IUnknown . ID3DUserDefinedAnnotation include anche questi tipi di membri:

Metodi

L'interfaccia ID3DUserDefinedAnnotation include questi metodi.

 
ID3DUserDefinedAnnotation::BeginEvent

Contrassegna l'inizio di una sezione del codice evento.
ID3DUserDefinedAnnotation::EndEvent

Contrassegna la fine di una sezione del codice evento.
ID3DUserDefinedAnnotation::GetStatus

Determina se l'applicazione chiamante è in esecuzione con uno strumento di profilatura Di Microsoft Direct3D.
ID3DUserDefinedAnnotation::SetMarker

Contrassegna un singolo punto di esecuzione nel codice.

Commenti

I metodi di ID3DUserDefinedAnnotation non hanno alcun effetto quando l'applicazione chiamante non è in esecuzione con uno strumento di profilatura specifico di Direct3D come Visual Studio Ultimate 2012.

L'interfaccia ID3DUserDefinedAnnotation viene pubblicata dai contesti di dispositivo Di Microsoft Direct3D 11. Di conseguenza , ID3DUserDefinedAnnotation ha le stesse regole di threading dell'interfaccia ID3D11DeviceContext o qualsiasi altra interfaccia di contesto. Per altre informazioni sul threading Direct3D, vedere MultiThreading. Per recuperare l'interfaccia ID3DUserDefinedAnnotation per il contesto, chiamare il metodo QueryInterface per il contesto, ad esempio ID3D11DeviceContext::QueryInterface. In questa chiamata è necessario passare l'identificatore di ID3DUserDefinedAnnotation.

L'interfaccia ID3DUserDefinedAnnotation è l'equivalente di Microsoft Direct3D 10 e versioni successive delle funzioni PIX Direct3D 9 (D3DPERF_*).

Nota L'impostazione del flag di D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY nell'app sostituisce la chiamata a D3DPerf_SetOptions(1). Tuttavia, per impedire agli strumenti di debug Direct3D di associare l'app, l'app può anche chiamare ID3DUserDefinedAnnotation::GetStatus per determinare se è in esecuzione con uno strumento di debug Direct3D e quindi uscire di conseguenza.
 
È necessario chiamare i metodi BeginEvent e EndEvent in coppie; coppie di chiamate a questi metodi possono annidare all'interno di coppie di chiamate a questi metodi a un livello superiore nello stack di chiamate dell'applicazione. In altre parole, una sezione "Draw World" può contenere interamente un'altra sezione denominata "Draw Trees", che a sua volta può contenere interamente una sezione denominata "Draw Oaks". È possibile associare un metodo EndEvent solo al metodo BeginEvent più recente, ovvero le coppie non possono sovrapporsi. Non è possibile chiamare un EndEvent per qualsiasi BeginEvent che precedeva l'evento BeginEvent più recente. In realtà, il runtime interpreta il primo EndEvent come fine del secondo BeginEvent.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e aggiornamento della piattaforma per Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d3d11_1.h

Vedi anche

Interfacce di versione comuni

IUnknown