Share via


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 的方法在呼叫應用程式未在 direct3D 特定的分析工具下執行時沒有作用,例如 Visual Studio Ultimate 2012。

ID3DUserDefinedAnnotation 介面是由 Microsoft Direct3D 11 裝置內容所發行。 因此, ID3DUserDefinedAnnotationID3D11DeviceContext 介面或任何其他內容介面具有相同的線程規則。 如需 Direct3D 線程的詳細資訊,請參閱 MultiThreading。 若要擷取內容的 ID3DUserDefinedAnnotation 介面,請針對內容呼叫 QueryInterface 方法 (,例如 ID3D11DeviceContext::QueryInterface) 。 在此呼叫中,您必須傳遞 ID3DUserDefinedAnnotation的識別碼。

ID3DUserDefinedAnnotation 介面是 Microsoft Direct3D 10 和更新版本,相當於 Direct3D 9 PIX 函式 (D3DPERF_* 函式) 。

注意 在您的應用程式中設定 D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY 旗標會取代呼叫 D3DPerf_SetOptions (1) 。 但是,若要防止 Direct3D 偵錯工具攔截您的應用程式,您的應用程式也可以呼叫 ID3DUserDefinedAnnotation::GetStatus 來判斷它是否在 Direct3D 偵錯工具下執行,然後據以結束。
 
您必須以配對方式呼叫 BeginEventEndEvent 方法;這些方法的呼叫配對可以在應用程式呼叫堆疊中較高層級的呼叫配對內巢狀。 換句話說,「繪製世界」區段可以完全包含另一個名為「繪製樹狀結構」的區段,而該區段又可完全包含稱為「繪製樹狀結構」的區段。 您只能將 EndEvent 方法與最新的 BeginEvent 方法產生關聯,也就是配對無法重疊。 您無法針對最近 BeginEvent 之前的任何 BeginEvent 呼叫 EndEvent 事實上,運行時間會將第一個 EndEvent 解譯為結束第二個 BeginEvent

規格需求

需求
最低支援的用戶端 適用於 Windows 7 的 Windows 8 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 適用於 Windows Server 2008 R2 的 Windows Server 2012 和平臺更新 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 d3d11_1.h

另請參閱

通用版本介面

IUnknown