#ifndef WAYLAND_WINDOW_H #define WAYLAND_WINDOW_H #include #include "figure.h" struct window_draw_info { uint8_t *data; int32_t width; int32_t height; uint8_t color; struct figure_info figure; }; /* Данные одного Wayland-окна (одна поверхность) */ struct wayland_window { int id; struct wl_surface *wl_surface; struct wl_buffer *buffer; struct wl_callback *frame_callback; struct xdg_surface *xdg_surface; struct xdg_toplevel *xdg_toplevel; struct wl_event_queue *queue; /* очередь событий для окна */ struct window_draw_info draw_info; int need_close; }; /* Инициализация окна; структура предоставляется вызывающим */ int window_init(struct wl_display *display, struct wl_event_queue *queue, struct wayland_window *win); /* Нечётное значение — окно запросило закрытие */ int window_should_close(struct wayland_window *win); /* Уничтожить окно и связанные ресурсы */ void window_destroy(struct wayland_window *win); #endif