HiDPI-новшества Windows 10

Windows 10 предлагает несколько качественных улучшений в масшта­бировании интер­фейса несовместимых с HiDPI (High-DPI, Retina) программ:

  • масштаби­рование без размытия при цело­чис­ленных масштабах;
  • пере­опре­деление DPI-режима программы в произвольном направлении;
  • качественная отрисовка текста, выводимого средствами GDI;
  • разработчикам: возможность сочетать разные DPI-режимы в одной программе.

Масштаби­рование без размытия

При цело­чис­ленных значениях системного масштаба интер­фейс несовместимых с HiDPI программ теперь масштабируется простым повторением пикселов — без неоправданного размытия. Например, при масштабе 200% (2,0) один логический пиксел (точка) интерфейса программы выводится как квадратная группа из 4-х (2×2) одинаковых пикселов, соответ­ствующих системному разрешению, а при масштабе 300% (3,0) — 9-ти пикселов (3×3).

Размытие, ранее имевшее место вне зависимости от коэф­фициента масштаби­рования, теперь проявляется только при дробных масштабах — например, 150% (1,5) или 250% (2,5), когда интер­поляция (вычисление промежуточных значений) и сопут­ствующая потеря резкости действительно неизбежны.

Пере­опре­деление DPI-режима программы

Начиная с одной из пред­вари­тельных сборок (пред­поло­жительно 15002) Windows 10 Insider Preview появилась возможность пере­опре­делить HiDPI-совмес­тимость (DPI awareness) программы в произвольном направлении.

Ранее можно было лишь отключить DPI-виртуализацию (DPI scaling, масштаби­рование средствами ОС) для программ, формально не поддер­живающих HiDPI, а на самом деле вполне корректно функцио­нирующих в HiDPI-режиме.

Теперь же при необходимости можно принудительно включить DPI-виртуализацию для программ, заявляющих о наличии поддержки HiDPI, но действий по масшта­бированию интер­фейса программы не пред­принимающих, де-факто привязанных к системным пикселам и потому по умолчанию отрисовываемых очень мелко (например, при масштабе 200% — в 4 раза меньше, чем необходимо) либо некорректно. Примеры таких программ — Samsung Magician 5.x, панель управления звуковой карты ESI Juli@ и Acronis True Image Home 2011.

Качественная отрисовка текста средствами GDI

Начиная с вышедшей в начале 2017 года сборки 15002 пред­вари­тельной версии Windows 10 Insider Preview доступен новый режим «Система (расширенная)» («System (Enhanced)») масштаби­рования средствами ОС, при котором текст в элементах, отрисо­вываемых средствами программного механизма GDI, выводится в полном системном разрешении, без размытия или пикселизации.

Параметр «Система (расширенная)» доступен в выпадающем списке параметра «Пере­опре­делите режим масштаби­рования высокого разрешения. Масштаби­рование выполняется» («Override high DPI scaling behavior. Scaling performed by») в окне, открываемом кнопкой «Изменить параметры высокого DPI» («Change high DPI settings») на вкладке «Совместимость» («Compatibility») в свойствах исполняемого файла.

Например, программа HWMonitor в этом режиме выглядит и работает практически так же, как если бы действительно поддерживала HiDPI. При этом, в отличие от прину­дительного включения обычного HiDPI-режима (пункт «Приложение» выпадающего списка «Пере­опре­делите … Масштабирование выполняется»), не проявляется проблема с авто­мати­ческой установкой слишком малой ширины столбцов информа­ционной таблицы, составляющей значительную часть интер­фейса программы.

К сожалению, эта функция пока работает лишь с некоторыми программами, а в тех, с которыми работает, может приводить к «слипанию» соседних по горизонтали букв при исполь­зовании шрифтов с переменной шириной символов — например, в программе Omea Pro для чтения RSS. Кроме того, возможно частичное усечение символов, расположенных по краям области отрисовки текста.

Разные DPI-режимы для окон одной программы

Начиная с обновления Windows 10 Anniversary Update, вышедшего летом 2016 года, разработчикам приложений стало доступно управление DPI-режимом на уровне отдельных окон одной и той же программы — Mixed-Mode DPI Scaling.

Благодаря этому появляется возможность внедрять поддержку HiDPI в сущест­вующие сложные программные продукты постепенно, без необходимости вносить изменения сразу во всю программу.

Кроме того, такая возможность может быть полезной в программах с системой плагинов (динамически подключаемых сторонних программных модулей), позволяя масшта­бировать интер­фейс отдельно взятых плагинов (например, виртуальных VST-инструментов) без необходимости запускать их в отдельном процессе.

Полно­экранное масштаби­рование без размытия?

Для полного счастья владельцам 4K-мониторов теперь, пожалуй, не хватает лишь полно­экранного цело­чис­ленного масштаби­рования без размытия средствами видео­драйвера для исключения потерь качества изображения в таких приложениях, как игры, при их работе в разрешениях, в целое число раз меньших, чем физическое разрешение монитора (например, 1920×1080 или 1280×720 при физическом разрешении 3840×2160).

Microsoft свои ошибки осознала и эффективно исправила, ждём аналогичных шагов со стороны nVidia, AMD и Intel.