32 lines
1.0 KiB
C
32 lines
1.0 KiB
C
#ifndef WAYLAND_WINDOW_H
|
|
#define WAYLAND_WINDOW_H
|
|
|
|
#include <wayland-client.h>
|
|
|
|
/* Данные одного 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; /* очередь событий для окна */
|
|
uint8_t *data;
|
|
int32_t width;
|
|
int32_t height;
|
|
int need_close;
|
|
uint8_t color;
|
|
};
|
|
|
|
/* Инициализация окна; структура предоставляется вызывающим */
|
|
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
|