Графический протокол — это набор правил и соглашений, по которым приложения взаимодействуют с системой отображения окон, кнопок и других элементов интерфейса на экране.

Графический протокол — это набор правил и соглашений, по которым приложения взаимодействуют с системой отображения окон, кнопок и других элементов интерфейса на экране.

Благодаря нему программы не «рисуются» напрямую на мониторе, а взаимодействуют с дисплейным сервером или композитором, которые управляют отображением на экране. Это позволяет координировать работу приложений, обеспечивая безопасность и единое управление окнами.

Графические протоколы определяют, как передавать:
   • запросы на создание окон и их размеры;
   • события ввода (нажатия клавиш, движения мыши);
   • данные между приложениями-клиентами и дисплейным сервером или композитором.

Графический протокол — важная часть всей визуальной работы системы

Он служит средством коммуникации между приложениями и дисплейным сервером или композитором, что помогает поддерживать:
   • многозадачность и переключение фокусов (например, работа в текстовом редакторе с открытым поверх него окном браузера). Дисплейный сервер или композитор, опираясь на механизмы протокола, управляет расположением окон, переключает фокус ввода и обеспечивает изоляцию событий между приложениями, даже когда они отображаются одновременно.
   • оптимизацию вывода. Когда мы сворачиваем приложение, дисплейный сервер или композитор уведомляет его о прекращении видимости и перестает учитывать при формировании финального изображения на экране.
   • работу с несколькими мониторами (например, перемещение окна ноутбука на внешний монитор). Дисплейный сервер или композитор совместно с окружением рабочего стола отслеживают движение указателя между границами экранов, корректируют позицию окна и запрашивают у приложения перерисовку с учётом нового расположения.

Какие есть графические протоколы?

X11
Протокол, использующий X-сервер. Приложения (клиенты) отправляют запросы на отрисовку дисплейному серверу.

Wayland
Протокол взаимодействия приложений с Wayland-композитором.
Композитор в Wayland получает от приложений уже нарисованные окна и складывает их в единое изображение на экране.


Работа графического протокола на примере Wayland

Когда вы кликаете мышью по кнопке «Сохранить» в текстовом редакторе под управлением Wayland, происходит следующее:
   • композитор определяет, какое приложение получило клик, и передаёт ему событие ввода;
   • приложение определяет, что клик попал в область кнопки, и запускает логику сохранения;
   • приложение последовательно рендерит кадры: каждый новый кадр записывается в буфер, после чего композитору отправляется сигнал о готовности буфера.
   • композитор берёт буферы всех видимых приложений, объединяет их в одно финальное изображение и выводит результат на экран.