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

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

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

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

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

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

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

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

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

Следующая

Режим сохранения и немедленный режим