Files
NASM/wayland/include/window.h

40 lines
1.2 KiB
C

#ifndef WAYLAND_WINDOW_H
#define WAYLAND_WINDOW_H
#include <pthread.h>
#include <wayland-client.h>
#include "figure.h"
struct window_draw_info {
uint8_t *data;
int32_t width;
int32_t height;
struct figure_info figure;
pthread_mutex_t figure_mutex;
};
/* Данные одного 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