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


D3DPRESENT

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

Постоянный Description
D3DPRESENT_DONOTFLIP
Во время отрисовки используйте передний буфер в качестве исходной и целевой поверхности. Синхронизация кадров запланирована, но отображаемая поверхность не изменяется. Этот флаг доступен только в том случае, если приложение находится в полноэкранном режиме и D3DSWAPEFFECT_FLIPEX задано.
Этот флаг доступен только в Direct3D 9Ex.
D3DPRESENT_DONOTWAIT
Презентацию нельзя запланировать с помощью хальтового устройства. Если этот флаг задан в вызове Present, а оборудование занято обработкой или ожидает вертикального интервала синхронизации, то Present возвращает D3DERR_WASSTILLDRAWING, чтобы указать, что операция blit является неполной.
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
Драйвер будет ждать вертикального отката (среда выполнения будет "луч следовать", чтобы предотвратить разрыв). Эти операции не будут затронуты чаще, чем обновление экрана; Среда выполнения завершится не более одной операции "Презентация" для каждого периода обновления адаптера. Это эквивалентно использованию D3DSWAPEFFECT_COPY_VSYNC в 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 не принимает параметр флагов.)
  • Этот флаг всегда принимается, но будет в силу только тогда, когда драйвер предоставляет >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
Перерисовывает данные цветового ключа.
Этот флаг доступен только в 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 для повышения разрешения системного таймера. Это повышает качество вертикальной синхронизации, но потребляет немного больше времени обработки. Оба параметра пытаются синхронизировать по вертикали.

Требования

Требование Ценность
Header
D3d9.h

См. также

Константы Direct3D