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


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

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

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

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

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

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

Улучшения DXGI 1.2