Графический протокол — это набор правил и соглашений, по которым приложения взаимодействуют с системой отображения окон, кнопок и других элементов интерфейса на экране.
Благодаря нему программы не «рисуются» напрямую на мониторе, а взаимодействуют с дисплейным сервером или композитором, которые управляют отображением на экране. Это позволяет координировать работу приложений, обеспечивая безопасность и единое управление окнами.
Графические протоколы определяют, как передавать:
• запросы на создание окон и их размеры;
• события ввода (нажатия клавиш, движения мыши);
• данные между приложениями-клиентами и дисплейным сервером или композитором.
Графический протокол — важная часть всей визуальной работы системы
Он служит средством коммуникации между приложениями и дисплейным сервером или композитором, что помогает поддерживать:
• многозадачность и переключение фокусов (например, работа в текстовом редакторе с открытым поверх него окном браузера). Дисплейный сервер или композитор, опираясь на механизмы протокола, управляет расположением окон, переключает фокус ввода и обеспечивает изоляцию событий между приложениями, даже когда они отображаются одновременно.
• оптимизацию вывода. Когда мы сворачиваем приложение, дисплейный сервер или композитор уведомляет его о прекращении видимости и перестает учитывать при формировании финального изображения на экране.
• работу с несколькими мониторами (например, перемещение окна ноутбука на внешний монитор). Дисплейный сервер или композитор совместно с окружением рабочего стола отслеживают движение указателя между границами экранов, корректируют позицию окна и запрашивают у приложения перерисовку с учётом нового расположения.
Какие есть графические протоколы?
X11
Протокол, использующий X-сервер. Приложения (клиенты) отправляют запросы на отрисовку дисплейному серверу.
Wayland
Протокол взаимодействия приложений с Wayland-композитором.
Композитор в Wayland получает от приложений уже нарисованные окна и складывает их в единое изображение на экране.
Работа графического протокола на примере Wayland
Когда вы кликаете мышью по кнопке «Сохранить» в текстовом редакторе под управлением Wayland, происходит следующее:
• композитор определяет, какое приложение получило клик, и передаёт ему событие ввода;
• приложение определяет, что клик попал в область кнопки, и запускает логику сохранения;
• приложение последовательно рендерит кадры: каждый новый кадр записывается в буфер, после чего композитору отправляется сигнал о готовности буфера.
• композитор берёт буферы всех видимых приложений, объединяет их в одно финальное изображение и выводит результат на экран.