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


Диспетчер окон рабочего стола

Перед Windows Vista программа Windows будет рисовать непосредственно на экране. Другими словами, программа будет записывать непосредственно в буфер памяти, показанный видеокартой. Этот подход может вызвать визуальные артефакты, если окно неправильно обновляется. Например, если пользователь перетаскивает одно окно поверх другого, а нижнее окно не обновляется достаточно быстро, верхнее окно может оставить след.

снимок экрана, на котором показаны артефакты перерисовки.

Следы возникают из-за того, что оба окна отрисовываются в одной и той же области памяти. Когда верхнее окно перетаскивается, окно под ним должно быть перерисовано. Если перерисовка слишком медленная, это вызывает артефакты, отображаемые на предыдущем изображении.

Windows Vista существенно изменила способ рисования окон, введя диспетчер окон рабочего стола (DWM). Если DWM включен, окно больше не выводится непосредственно в буфер отображения. Вместо этого каждое окно извлекается в буфер памяти вне экрана, который также называется внеэкранной поверхностью. Затем DWM обрабатывает эти поверхности для отображения на экране.

схему, показывющую, как dwm композитирует рабочий стол.

DWM предоставляет несколько преимуществ по сравнению с старой графической архитектурой.

  • Меньше перепаченных сообщений. Если окно перекрыто другим окном, не нужно перерисовывать его.
  • Уменьшенные артефакты. Ранее перетаскивание окна может создавать визуальные артефакты, как описано ниже.
  • Визуальные эффекты. Так как DWM отвечает за создание экрана, он может отображать полупрозрачные и размытые области окна.
  • Автоматическое масштабирование для высокого уровня DPI. Хотя масштабирование не является идеальным способом обработки высокого уровня DPI, это жизнеспособный резервный вариант для старых приложений, которые не были предназначены для высоких параметров DPI. (Далее мы вернемся к этой теме, в разделе DPI и Device-Independent пиксели.)
  • Альтернативные представления. DWM может использовать внеэкранные поверхности разными интересными способами. Например, DWM — это технология Windows Flip 3D, эскизов и анимированных переходов.

Обратите внимание, однако, что нет гарантии, что DWM будет включен. Графическая карта может не поддерживать системные требования DWM, и пользователи могут отключить DWM через панель управления Системные свойства. Это означает, что программа не должна полагаться на поведение перерисовки DWM. Проверьте вашу программу с отключенным диспетчером окон рабочего стола (DWM), чтобы убедиться, что она правильно перерисовывается.

Следующий

Режим сохранения против режима немедленного выполнения