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


D3DCREATE

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

#define Описание
D3DCREATE_ADAPTERGROUP_DEVICE Приложение просит устройство управлять всеми головами, принадлежащими этому главному адаптеру. Флаг является незаконным для адаптеров, не являющихся мастером. Если этот флаг задан, параметры презентации, передаваемые 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 Ограничить вычисление основным потоком приложения. Если флаг не задан, среда выполнения может выполнять обработку вершин программного обеспечения и другие вычисления в рабочем потоке для повышения производительности в многопроцессорных системах.
Различия между 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