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


Ожидание события, когда отрисовка не требуется

Приложения могут ждать событие, когда нет необходимости в отрисовке на экран (то есть, когда они закрыты). Если диспетчер окон рабочего стола (DWM) или приложение закрыты, отрисовка не требуется, и операционная система может оставаться в режимах пониженного энергопотребления в течение более длительного времени. Это экономит питание и расширяет время работы батареи.

Приложение может ждать события, когда:

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

Операционная система вызывает событие, когда приложение сможет снова отобразить контент. Событие не очищается при обновлении драйвера или обнаружении и восстановлении после превышения времени ожидания (TDR), однако очищается после активации нового адаптера и мониторов.

Если вы хотите, чтобы ваше приложение было уведомлено об изменениях состояния скрытия, оно должно зарегистрироваться для получения уведомлений об этих изменениях. Приложение может зарегистрироваться для уведомления об изменениях состояния окклюзии через сообщение в окно или с помощью сигнала события. Чтобы зарегистрироваться для получения в окне уведомлений об изменении состояния окклюзии, приложение вызывает метод IDXGIFactory2::RegisterOcclusionStatusWindow. Чтобы зарегистрироваться для получения уведомлений об изменении состояния окклюзии через сигнал событий, приложение вызывает метод IDXGIFactory2::RegisterOcclusionStatusEvent. Оба метода возвращают указатель на значение ключа, которое приложение может использовать для отмены регистрации уведомления. Чтобы отменить регистрацию уведомления, приложение передает это значение ключа методу IDXGIFactory2::UnregisterOcclusionStatus.

улучшения DXGI 1.2