summaryrefslogtreecommitdiff
path: root/src/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.h')
-rw-r--r--src/client.h67
1 files changed, 47 insertions, 20 deletions
diff --git a/src/client.h b/src/client.h
index 32670af..4814fdb 100644
--- a/src/client.h
+++ b/src/client.h
@@ -6,38 +6,65 @@
#include "egl.h"
#include "gl.h"
+struct surface {
+ struct egl egl;
+ struct gl gl;
+ struct wl_surface *wl_surface;
+ int32_t width;
+ int32_t height;
+ bool redraw;
+};
+
+struct image {
+ uint8_t *buffer;
+ uint32_t width;
+ uint32_t height;
+};
+
+struct color {
+ float r;
+ float g;
+ float b;
+ float a;
+};
+
struct client_state {
/* Globals */
struct wl_display *wl_display;
struct wl_registry *wl_registry;
- struct wl_shm *wl_shm;
struct wl_compositor *wl_compositor;
+ struct wl_subcompositor *wl_subcompositor;
struct wl_seat *wl_seat;
+ struct wl_output *wl_output;
struct xdg_wm_base *xdg_wm_base;
+
+ uint32_t wl_display_name;
+ uint32_t wl_registry_name;
+ uint32_t wl_compositor_name;
+ uint32_t wl_subcompositor_name;
+ uint32_t wl_seat_name;
+ uint32_t wl_output_name;
+ uint32_t xdg_wm_base_name;
+
/* Objects */
- struct wl_surface *wl_surface;
struct wl_keyboard *wl_keyboard;
- struct xdg_surface *xdg_surface;
- struct xdg_toplevel *xdg_toplevel;
+
/* State */
- float offset;
- uint32_t last_frame;
- int width;
- int height;
bool closed;
- struct egl egl;
- struct gl gl;
struct {
- uint8_t *buffer;
- uint32_t width;
- uint32_t height;
- } background_image;
- struct color {
- float r;
- float g;
- float b;
- float a;
- } background_color;
+ struct surface surface;
+ struct xdg_surface *xdg_surface;
+ struct xdg_toplevel *xdg_toplevel;
+ struct image background_image;
+ struct color background_color;
+ struct {
+ struct surface surface;
+ struct wl_subsurface *wl_subsurface;
+ struct image image;
+ } entry;
+ uint32_t scale;
+ } window;
+
/* Keyboard state */
struct xkb_state *xkb_state;
struct xkb_context *xkb_context;