Поделиться через


Интерфейс 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. Таким образом, ID3DUserDefinedAnnotation имеет те же правила потоков, что и интерфейс ID3D11DeviceContext или любой другой интерфейс контекста. Дополнительные сведения о потоковой поддержке 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, а затем выйти из него соответствующим образом.
 
Необходимо вызывать методы BeginEvent и EndEvent в парах; Пары вызовов этих методов могут вложиться в пары вызовов этих методов на более высоком уровне в стеке вызовов приложения. Другими словами, раздел "Рисование мира" может полностью содержать другой раздел с именем "Рисование деревьев", который, в свою очередь, может полностью содержать раздел "Рисование дубов". С последним методом BeginEvent можно связать только метод EndEvent, то есть пары не могут перекрываться. Невозможно вызвать endEvent для любого события BeginEvent , предшествующего последнему beginEvent. Фактически среда выполнения интерпретирует первое endEvent как окончание второго BeginEvent.

Требования

Требование Значение
Минимальная версия клиента Windows 8 и обновление платформы для Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header d3d11_1.h

См. также раздел

Интерфейсы общих версий

IUnknown