Разница между 1.15
и текущей версией
ПротоколWayland.
@@ -61,7 +61,8 @@
Затем серверу необходимо зарегистрировать те интерфейсы и их версии, которые он поддерживает.
==={c}
-struct wl_compositor *compositor = wl_global_create(display, &wl_compositor_interface, 3, userdata, &bind_compositor);
+struct wl_compositor *compositor = wl_global_create(display, &wl_compositor_interface,
+ 3, userdata, &bind_compositor);
===
При этом ''wl_compositor_interface'' -- это структура типа ''wl_interface'',
@@ -71,7 +72,7 @@
Основной работой bind_compositor будет создание
нового объекта (в терминах wayland -- ресурса), который будет связан с этим клиентом.
-При создании этого объекта сервер передаёт callback-функции, которые будут обрабатывать запросы клиента.
+При создании этого объекта сервер передаёт callback-функции, которые будут обрабатывать запросы клиента.
==={c}
static const struct wl_compositor_interface compositor_interface = {
@@ -87,6 +88,11 @@
}
===
+Помимо функций для обработки запросов ''wl_resource_set_implementation'' позволяет связать с ресурсом
+произвольные пользовательские данные.
+
+Подобным образом происходит работа со всеми интерфейсами в wayland. Сервер регистрирует обработчики запросов на каждый ресурс и в них реализует всю логику работы приложения.
+
[[https://blog.4castplus.com/hubfs/Imported_Blog_Media/work_in_progress.jpg||350px]]
Структура библиотеки: