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


D3DCREATE

Сочетание одного или нескольких флагов, управляющих поведением создания устройства.

#define Описание
D3DCREATE_ADAPTERGROUP_DEVICE Приложение просит устройство управлять всеми головками, принадлежащими адаптеру master. Флаг является недопустимым для адаптеров, не являющихся мастером. Если этот флаг установлен, параметры презентации, передаваемые в CreateDevice , должны указывать на массив D3DPRESENT_PARAMETERS. Число элементов в D3DPRESENT_PARAMETERS должно совпадать с числом адаптеров, определенным элементом NumberOfAdaptersInGroup структуры D3DCAPS9 . Среда выполнения DirectX назначит каждый элемент каждой голове в числовом порядке, заданном членом AdapterOrdinalInGroup D3DCAPS9.
D3DCREATE_DISABLE_DRIVER_MANAGEMENT Direct3D будет управлять ресурсами, а не драйвером. Вызовы Direct3D не завершаются сбоем при возникновении ошибок ресурсов, таких как нехватка видеопамяти.
D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX Как и D3DCREATE_DISABLE_DRIVER_MANAGEMENT, Direct3D будет управлять ресурсами, а не драйвером. В отличие от D3DCREATE_DISABLE_DRIVER_MANAGEMENT, D3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX будет возвращать ошибки при таких условиях, как нехватка видеопамяти.
D3DCREATE_DISABLE_PRINTSCREEN Среда выполнения не регистрирует горячие клавиши для экрана печати, Ctrl-Printscreen и Alt-Printscreen для записи содержимого рабочего стола или окна.
Различия между Direct3D 9 и Direct3D 9Ex:
Этот флаг доступен только в Direct3D 9Ex.

 

D3DCREATE_DISABLE_PSGP_THREADING Ограничьте вычисления потоком приложения main. Если флаг не установлен, среда выполнения может выполнять программную обработку вершин и другие вычисления в рабочем потоке для повышения производительности в многопроцессорных системах.
Различия между Windows XP и Windows Vista:
Этот флаг доступен в Windows Vista, Windows Server 2008 и Windows 7.

 

D3DCREATE_ENABLE_PRESENTSTATS Включает сбор текущей статистики на устройстве. Вызовы GetPresentStatistics возвращают допустимые данные.
Различия между Direct3D 9 и Direct3D 9Ex:
Этот флаг доступен только в Direct3D 9Ex.

 

D3DCREATE_FPU_PRESERVE Задайте для вычислений с плавающей запятой Direct3D точность, используемую вызывающим потоком. Если этот флаг не задан, Direct3D по умолчанию использует режим округления к ближайшему по одной точности по двум причинам:
  • Режим двойной точности снижает производительность Direct3D.
  • Части Direct3D предполагают, что исключения единиц с плавающей запятой маскируются; Отмена этих исключений может привести к неопределенному поведению.
D3DCREATE_HARDWARE_VERTEXPROCESSING Задает аппаратную обработку вершин.
D3DCREATE_MIXED_VERTEXPROCESSING Указывает смешанную (как программную, так и аппаратную) обработку вершин. Для Windows 10 версии 1607 и более поздних версий использовать этот параметр не рекомендуется. См. D3DCREATE_SOFTWARE_VERTEXPROCESSING.
D3DCREATE_SOFTWARE_VERTEXPROCESSING Задает программную обработку вершин. Для Windows 10 версии 1607 и более поздних версий использовать этот параметр не рекомендуется. Используйте D3DCREATE_HARDWARE_VERTEXPROCESSING.

Примечание.
Если аппаратная обработка вершин недоступна, в Windows 10 версии 1607 (и более поздних версиях) не рекомендуется использовать программную обработку вершин, так как эффективность программной обработки вершин значительно снизилась при повышении безопасности реализации.

 
D3DCREATE_MULTITHREADED Указывает, что приложение запрашивает многопоточность Direct3D. В результате поток Direct3D чаще становится владельцем своего глобального критического раздела , что может снизить производительность. Если приложение обрабатывает сообщения окна в одном потоке, выполняя вызовы API Direct3D в другом, приложение должно использовать этот флаг при создании устройства. Это окно также необходимо уничтожить перед выгрузки d3d9.dll.
D3DCREATE_NOWINDOWCHANGES Указывает, что Direct3D не должен каким-либо образом изменять окно фокуса.

Примечание.
Если этот флаг установлен, приложение должно полностью поддерживать все события управления фокусом, такие как ALT+TAB и события щелчка мышью.

 
D3DCREATE_PUREDEVICE Указывает, что Direct3D не поддерживает вызовы Get* для всех элементов, которые могут храниться в блоках состояний. Он также указывает Direct3D не предоставлять службы эмуляции для обработки вершин. Это означает, что если устройство не поддерживает обработку вершин, приложение может использовать только после преобразования вершин.
D3DCREATE_SCREENSAVER Разрешает использование заставок во время полноэкранного приложения. Без этого флага Direct3D будет отключать экранные заставки до тех пор, пока вызывающее приложение является полноэкранным. Если вызывающее приложение уже является заставкой, этот флаг не действует.
Различия между Direct3D 9 и Direct3D 9Ex:
Этот флаг доступен только в Direct3D 9Ex.

 

 

D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING и D3DCREATE_SOFTWARE_VERTEXPROCESSING являются взаимоисключающими флагами. При вызове CreateDevice необходимо указать по крайней мере один из этих флагов обработки вершин.

Константная информация

Требование Значение
Заголовок D3D9.h
Минимальная операционная система Windows 98

 

Константы Direct3D