Метод IDXGISwapChain::P resent (dxgi.h)

Представляет пользователю отрисованное изображение.

Синтаксис

HRESULT Present(
  UINT SyncInterval,
  UINT Flags
);

Параметры

SyncInterval

Тип: UINT

Целое число, указывающее способ синхронизации представления кадра с вертикальным пустым.

Для модели передачи битовых блоков (bitblt) (DXGI_SWAP_EFFECT_DISCARD или DXGI_SWAP_EFFECT_SEQUENTIAL) значения:

  • 0 — презентация происходит немедленно, синхронизация отсутствует.
  • От 1 до 4 — синхронизация презентации после n-говертикального пустого.
Для модели flip (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) значения:
  • 0 — отмена оставшегося времени для ранее представленного кадра и отмена этого кадра, если новый кадр поставлен в очередь.
  • От 1 до 4 — синхронизация представления по крайней мере для n вертикальных пробелов.
Пример, показывающий, как значения интервала синхронизации влияют на очередь пролистывания презентации, см. в разделе Примечания.

Если область обновления состоит из нескольких выходных данных (каждый из которых представлен IDXGIOutput), функция Present выполняет синхронизацию с выходными данными, содержащими самый большой вложенный прямоугольник клиентской области целевого окна.

Flags

Тип: UINT

Целочисленное значение, содержащее параметры представления цепочки буферов. Эти параметры определяются константами DXGI_PRESENT .

Возвращаемое значение

Тип: HRESULT

Возможные возвращаемые значения: S_OK, DXGI_ERROR_DEVICE_RESET или DXGI_ERROR_DEVICE_REMOVED (см . DXGI_ERROR), DXGI_STATUS_OCCLUDED (см. DXGI_STATUS) или D3DDDIERR_DEVICEREMOVED.

Примечание Метод Present может возвращать либо DXGI_ERROR_DEVICE_REMOVED, либо D3DDDIERR_DEVICEREMOVED, если видео карта физически удален с компьютера или произошло обновление драйвера для карта видео.
 

Комментарии

Начиная с Direct3D 11.1, рассмотрите возможность использования IDXGISwapChain1::P resent1, так как затем можно использовать грязное прямоугольники и прямоугольник прокрутки в презентации цепочки буферов и таким образом использовать меньшую пропускную способность памяти и, как следствие, меньше энергии системы. Дополнительные сведения об использовании грязное прямоугольников и прямоугольника прокрутки в презентации цепочки буферов см. в разделе Использование грязное прямоугольников и прямоугольника прокрутки в презентации цепочки буферов.

Сведения о наилучшей производительности при переключении буферов цепочки буферов в полноэкранном приложении см. в разделе Указания по производительности полноэкранных приложений.

Так как вызов Present может привести к тому, что поток отрисовки будет ждать потока накачки сообщений, будьте внимательны при вызове этого метода в приложении, которое использует несколько потоков. Дополнительные сведения см. в разделе Рекомендации по многопоточности.

Различия между Direct3D 9 и Direct3D 10:

Указание DXGI_PRESENT_TEST в параметре Flags аналогично IDirect3DDevice9::TestCooperativeLevel в Direct3D 9.

Если вы создаете цепочки буферов модели представления с помощью DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL или DXGI_SWAP_EFFECT_DISCARD значения, успешная презентация отменяет обратную привязку буфера 0 (обычно устанавливается OMSetRenderTargets) из графического конвейера, за исключением случаев, когда вы передаете флаг DXGI_PRESENT_DO_NOT_SEQUENCE в параметре Flags .

Сведения о том, как изменяются значения данных при отображении содержимого на экране, см. в разделе Преобразование данных для цветового пространства.

Очередь модели представления flip

Предположим, что следующие кадры со значениями интервала синхронизации помещаются в очередь из старых (A) в новые (E) перед вызовом Present.

A: 3, B: 0, C: 0, D: 1, E: 0

При вызове Present среда выполнения отображает кадр A только для 1 вертикального пустого интервала. Среда выполнения завершает кадр A рано из-за интервала синхронизации 0 в кадре B. Затем среда выполнения отображает кадр D для 1 вертикального пустого интервала, а затем кадр E, пока вы не отправите новую презентацию. Среда выполнения отменяет кадры B и C.

Дисплеи переменной частоты обновления

Это требование для отображения переменной частоты обновления, что разрыв включен. Метод CheckFeatureSupport можно использовать, чтобы определить, доступна ли эта функция, а для задания требуемых флагов — описания DXGI_PRESENT_ALLOW_TEARING и DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING и отображения переменной частоты обновления.

Требования

Требование Значение
Целевая платформа Windows
Header dxgi.h
Библиотека DXGI.lib

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

IDXGISwapChain