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


D3DPRESENT

Описывает связь между частотой обновления адаптера и скоростью, с которой выполняются операции Present или Present . Эти значения также служат значениями флагов для поля PresentationIntervals объекта D3DCAPS9.

Константа Описание
D3DPRESENT_DONOTFLIP
Используйте передний буфер в качестве исходной и целевой поверхностей во время отрисовки. Запланирована синхронизация кадров, но отображаемая поверхность не меняется. Этот флаг доступен только в том случае, если приложение находится в полноэкранном режиме и D3DSWAPEFFECT_FLIPEX указано.
Этот флаг доступен только в Direct3D 9Ex.
D3DPRESENT_DONOTWAIT
Презентация не может быть запланирована устройством Hal. Если этот флаг установлен при вызове метода Present, а оборудование занято обработкой или ожидает интервала вертикальной синхронизации, то Функция Present вернет D3DERR_WASSTILLDRAWING, чтобы указать, что операция прорези не завершена.
D3DPRESENT_FLIPRESTART
Зарезервировано.
D3DPRESENT_FORCEIMMEDIATE
D3DPRESENT_INTERVAL_IMMEDIATE применяется в этом вызове Present . Этот флаг можно указать только при использовании D3DSWAPEFFECT_FLIPEX. Поведение презентации в оконном режиме и полноэкранном режиме одинаково. Это особенно полезно для мультимедийных приложений, которые хотят удалить кадры, обнаруженные как поздние, и представить последующие кадры во время композиции. Если этот флаг указан неправильно, возвращается ошибка недопустимого параметра. При постановке в очередь нескольких последовательных кадров с D3DPRESENT_FORCEIMMEDIATEs отображается только последний кадр для оконной и полноэкранной презентации.
Этот флаг доступен в Direct3D 9Ex в операционных системах Windows 7 или более поздних версий.
При использовании D3DSWAPEFFECT_FLIPEX каждый кадр, представленный с помощью D3DPRESENT_INTERVAL_IMMEDIATE или D3DPRESENT_INTERVAL_FORCEIMMEDIATE, переопределяет нынешний интервал предыдущего кадра. Например, если вы ставите в очередь следующие кадры с использованием следующих эффектов переключения: кадр A (D3DPRESENT_INTERVAL_ONE), кадр B(D3DPRESENT_INTERVAL_ONE), кадр C(D3DPRESENT_INTERVAL_ONE), кадр D(D3DPRESENT_INTERVAL_FORCEIMMEDIATE), кадр D переопределит нынешний интервал кадра C. Отображаемые кадры в настоящий интервал : кадр A, кадр B, (кадр C переопределен) кадр D.
См. заметки.
D3DPRESENT_INTERVAL_DEFAULT
Это почти эквивалентно D3DPRESENT_INTERVAL_ONE. См. примечания.
D3DPRESENT_INTERVAL_ONE
Драйвер будет ожидать вертикального периода отката (среда выполнения будет "луч следовать", чтобы предотвратить разрыв). Операции представления не будут затронуты чаще, чем обновление экрана; среда выполнения завершит не более одной операции Present для каждого периода обновления адаптера. Это эквивалентно использованию D3DSWAPEFFECT_COPYVSYNC в DirectX 8.1. Этот параметр всегда доступен для оконных и полноэкранных цепочек буферов. См. примечания.
D3DPRESENT_INTERVAL_TWO
Драйвер будет ожидать вертикального периода отката. Представленные операции не будут затронуты чаще, чем каждое второе обновление экрана. Проверьте ограничение PresentationIntervals (см. раздел D3DCAPS9), чтобы узнать, поддерживается ли драйвером D3DPRESENT_INTERVAL_TWO.
D3DPRESENT_INTERVAL_THREE
Драйвер будет ожидать вертикального периода отката. Операции с презентацией будут затронуты не чаще, чем каждое третье обновление экрана. Проверьте ограничение PresentationIntervals (см. раздел D3DCAPS9), чтобы узнать, поддерживается ли драйвером D3DPRESENT_INTERVAL_THREE.
D3DPRESENT_INTERVAL_FOUR
Драйвер будет ожидать вертикального периода отката. Представленные операции будут затронуты не чаще, чем каждое четвертое обновление экрана. Проверьте член PresentationIntervals (см. D3DCAPS9), чтобы узнать, поддерживается ли драйвером D3DPRESENT_INTERVAL_FOUR.
D3DPRESENT_INTERVAL_IMMEDIATE
Среда выполнения немедленно обновляет клиентную область окна и может сделать это несколько раз в течение периода обновления адаптера. Это эквивалентно использованию D3DSWAPEFFECT_COPY в DirectX 8. Текущая операция может быть затронута немедленно. Этот параметр всегда доступен для оконных и полноэкранных цепочек буферов. См. примечания.
D3DPRESENT_LINEAR_CONTENT
Содержимое заднего буфера, которое необходимо представить, находится в линейном цветовом пространстве.
  • Презентация неявно преобразуется из линейного пространства в sRGB (гамма = 2,2). Это единственное поддерживаеме преобразование.
  • Так как этот флаг представляет свойство содержимого заднего буфера, флаг можно указать во время вызова Present . Другими словами, приложение может представить линейное содержимое в одном кадре, а затем переключаться на исправленное содержимое в следующем.
  • Этот флаг игнорируется, если цепочка буферов находится в полноэкранном режиме. (Обратите внимание, что этот флаг доступен только в явной версии цепочки буферов Present. Метод Present не принимает параметр flags.)
  • Этот флаг всегда принимается, но вступит в силу только тогда, когда драйвер предоставляет >D3DCAPS3_LINEAR_TO_SRGB_PresentATION.
  • Поддерживается только формат обратного буфера X8R8G8B8.
См. раздел Оконные цепочки буферов.
D3DPRESENT_VIDEO_RESTRICT_TO_MONITOR
Вырезает отрисованное содержимое на монитор или устройство, на которое нацелен адаптер, отображает эскизы содержимого в представлении Flip3D и эскизы панели задач на других мониторах.
Этот флаг доступен только в Direct3D 9Ex.
Дополнительные сведения об этой функции Windows Vista см. в разделе Диспетчер окон рабочего стола . Если вы не работаете в режиме композиции рабочего стола, флаг обеспечивает то же поведение, что и D3DPRESENTFLAG_DEVICECLIP.
Примечание: Этот флаг следует использовать только с эффектом подкачки D3DSWAPEFFECT_FLIPEX. Использование этого флага с другими эффектами переключения является устаревшим и может не работать в будущих версиях Windows.
D3DPRESENT_UPDATEOVERLAYONLY
Обновления положение наложения или данные colorkey, не вызывая фактического переворачивания и не изменяя длительность отображения изображения.
Этот флаг доступен только в Direct3D 9Ex.
D3DPRESENT_HIDEOVERLAY
Отключает наложение оборудования.
Этот флаг доступен только в Direct3D 9Ex.
D3DPRESENT_UPDATECOLORKEY
Перерисовывает данные colorkey.
Этот флаг доступен только в Direct3D 9Ex.

Комментарии

Оконный режим поддерживает D3DPRESENT_INTERVAL_DEFAULT, D3DPRESENT_INTERVAL_IMMEDIATE и D3DPRESENT_INTERVAL_ONE. D3DPRESENT_INTERVAL_DEFAULT и D3DPRESENT_INTERVAL_ONE практически эквивалентны (см. сведения о разрешении таймера ниже). Они выполняются аналогично COPY_VSYNC в том, что есть только один подарок на кадр, и они предотвращают разрыв с лучом следовать. В отличие от этого, D3DPRESENT_INTERVAL_IMMEDIATE будет пытаться обеспечить неограниченную скорость презентации.

Полноэкранный режим поддерживает аналогичное использование оконного режима, поддерживая D3DPRESENT_INTERVAL_IMMEDIATE независимо от частоты обновления или эффекта подкачки. D3DPRESENT_INTERVAL_DEFAULT использует разрешение системного таймера по умолчанию, в то время как D3DPRESENT_INTERVAL_ONE вызывает timeBeginPeriod для улучшения разрешения системного таймера. Это повышает качество вертикальной синхронизации, но занимает немного больше времени обработки. Оба параметра пытаются синхронизироваться по вертикали.

Требования

Требование Значение
Заголовок
D3d9.h

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

Константы Direct3D