Введение
Особенность компьютерного дисплея Независимость разрешения - это когда элементы на экране компьютера отображаются в размерах, независимых от пиксельной сетки, в результате чего графический пользовательский интерфейс отображается в последовательном физическом размере, независимо от разрешения экрана.
Resolution independence is where elements on a computer screen are rendered at sizes independent from the pixel grid, resulting in a graphical user interface that is displayed at a consistent physical size, regardless of the resolution of the screen.
Концепция
Уже в 1978 году система набора текста TeX, разработанная Дональдом Кнутом, ввела независимость разрешения в мир компьютеров. Заданный вид может быть отображен сверх атомного разрешения без каких-либо артефактов, и автоматические решения о наборе текста гарантированно идентичны на любом компьютере до погрешности меньше диаметра атома. Эта новаторская система имеет соответствующую систему шрифтов, Metafont, которая обеспечивает подходящие шрифты с такими же высокими стандартами независимости разрешения. Терминологический независимый от устройства формат файла (DVI) - это формат файла новаторской системы TeX Дональда Кнута. Содержание такого файла может быть интерпретировано при любом разрешении без каких-либо артефактов, даже при очень высоких разрешениях, которые в настоящее время не используются.
macOS
Apple включила некоторую поддержку независимости разрешения в ранних версиях macOS, что можно было продемонстрировать с помощью инструмента разработчика Quartz Debug, который включал функцию, позволяющую пользователю масштабировать интерфейс. Однако функция была неполной, так как некоторые иконки не отображались (например, в системных предпочтениях), элементы пользовательского интерфейса отображались в нечетных позициях, а некоторые элементы графического интерфейса битмапа не масштабировались плавно. Поскольку функция масштабирования никогда не была завершена, пользовательский интерфейс macOS оставался зависимым от разрешения. 11 июня 2012 года Apple представила MacBook Pro 2012 года с разрешением 2880×1800 или 5,2 мегапикселя, удваивая плотность пикселей в обоих измерениях. Ноутбук поставлялся с версией macOS, которая обеспечивала поддержку масштабирования пользовательского интерфейса в два раза больше, чем раньше. Эта функция называется HighDPI-режим в macOS и использует фиксированный коэффициент масштабирования 2 для увеличения размера пользовательского интерфейса для экранов с высоким DPI. Apple также представила поддержку масштабирования пользовательского интерфейса, отображая пользовательский интерфейс на более высоком или меньшем разрешении, чем встроенный в ноутбуке в нативном разрешении, и масштабируя выход на экран ноутбука. Одним из очевидных недостатков этого подхода является либо снижение производительности при отображении пользовательского интерфейса с разрешением выше, чем нативный, либо увеличение размытости при отображении с разрешением ниже, чем нативный. Таким образом, хотя пользовательский интерфейс macOS может быть масштабирован с помощью этого подхода, сам пользовательский интерфейс не является независимым от разрешения.
Microsoft Windows
Система GDI в Windows основана на пикселях и, следовательно, не зависит от разрешения. Для масштабирования пользовательского интерфейса, Microsoft Windows поддерживает указание пользовательского DPI из панели управления с Windows 95. (В Windows 3.1 настройка DPI привязана к разрешению экрана, в зависимости от файла информации о драйвере.) Когда специальный DPI системы указан, встроенный пользовательский интерфейс в операционной системе масштабируется. Windows также включает в себя API для разработчиков приложений для разработки приложений, которые будут масштабироваться должным образом. GDI+ в Windows XP добавляет независимый от разрешения рендеринг текста, однако пользовательский интерфейс в версиях Windows до Windows XP не полностью осознает высокий DPI, поскольку дисплеи с очень высоким разрешением и высокой плотностью пикселей не были доступны в тот период времени. Windows Vista и Windows 7 масштабируются лучше при более высоких DPI. Windows Vista также добавляет поддержку для программ, которые заявляют о себе в ОС, что они знают о высоком DPI через файл манифеста или с помощью API. Для программ, которые не заявляют себя в качестве DPI, Windows Vista поддерживает функцию совместимости под названием виртуализация DPI, поэтому системные метрики и элементы пользовательского интерфейса представлены приложениям, как если бы они работали на 96 DPI, а Управляющий окнами на рабочем столе затем масштабирует полученное окно приложения, чтобы соответствовать настройке DPI. Windows Vista сохраняет опцию масштабирования в стиле Windows XP, которая при включении отключает виртуализацию DPI (размытый текст) для всех приложений во всем мире. Windows Vista также представляет Windows Presentation Foundation. Приложения WPF основаны на векторах, а не на пикселях, и предназначены для независимости разрешения. Windows 7 добавляет возможность изменять DPI, делая только отключение, а не полную перезагрузку, и делает это настройкой на каждого пользователя. Кроме того, Windows 7 считывает DPI монитора из EDID и автоматически устанавливает значение DPI, чтобы соответствовать физической плотности пикселей монитора, если эффективное разрешение не меньше 1024 x 768. В Windows 8 в диалоговом окне изменения DPI отображается только процент масштабирования DPI, а отображение исходного значения DPI удалено. В Windows 8.1 глобальное настройка для отключения виртуализации DPI (только использовать масштабирование в стиле XP) удалена. Windows 10 добавляет ручное управление DPI для отдельных мониторов. Кроме того, Windows 10 версия 1703 возвращает масштабирование GDI в стиле XP в опции "Система (улучшенная). Эта опция сочетает в себе рендеринг текста GDI+ с более высоким разрешением с обычным масштабированием других элементов, так что текст выглядит более четким, чем в обычном режиме виртуализации "Система".
Система X Window
Библиотека Xft, библиотека рендеринга шрифтов для системы X11, имеет dpi-настройку, которая по умолчанию равна 75. Это просто обертывание вокруг системы FC DPI в fontconfig, но этого достаточно для масштабирования текста в приложениях на основе Xft. Механизм также обнаруживается настольными средами для установки собственного DPI, обычно в сочетании с семейством функций Xlib на основе EDID. Последний был снят с использования в Xorg Server 1.7; с тех пор информация EDID доступна только XRandR. В 2013 году рабочая среда GNOME начала усилия по обеспечению независимости разрешения ("поддержка hi DPI") для различных частей графического стека. Разработчик Александр Ларссон изначально писал о изменениях, необходимых в GTK+, Cairo, Wayland и темах GNOME. В конце сессий BoF на GUADEC 2013, разработчик GTK+ Маттиас Класен упомянул, что поддержка DPI будет "довольно полной" в GTK 3.10 после завершения работы над Cairo. По состоянию на январь 2014 года поддержка hi DPI для Clutter и GNOME Shell продолжается. Gtk поддерживает масштабирование всех элементов интерфейса пользователя по целочисленным факторам, а весь текст - по любым неотрицательным факторам реальных чисел. По состоянию на 2019 год фраctional масштабирование UI путем масштабирования вверх, а затем вниз является экспериментальным.
Другое
Хотя это не связано с истинной независимостью разрешения, некоторые другие операционные системы используют графические интерфейсы, которые могут адаптироваться к измененным размерам шрифта. Microsoft Windows 95 и далее использовали шрифт Marlett TrueType для масштабирования некоторых элементов управления окном (закрытие, максимизация, минимизация, изменение размера ручек) до произвольных размеров. AmigaOS с версии 2.04 (1991) смогла адаптировать свои окна управления к любому размеру шрифта. Видеоигры часто независимы от разрешения; ранним примером является Another World для DOS, который использовал полигоны для рисования своего 2D-контента, а затем был переделан с использованием тех же полигонов с гораздо более высоким разрешением. 3D-игры независимы от разрешения, так как перспектива рассчитывается каждый кадр, и поэтому она может менять свое разрешение.