From b4e5e1381f909b173a171fb3941610aec989df48 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Thu, 19 Nov 2015 07:58:57 -0500 Subject: Refactor the crap out of wayland clients And create a background surface on every output when invoking swaybg. --- include/client/window.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 include/client/window.h (limited to 'include/client/window.h') diff --git a/include/client/window.h b/include/client/window.h new file mode 100644 index 00000000..af954003 --- /dev/null +++ b/include/client/window.h @@ -0,0 +1,45 @@ +#ifndef _CLIENT_H +#define _CLIENT_H + +#include +#include "wayland-desktop-shell-client-protocol.h" +#include +#include +#include +#include "list.h" +#include "client/registry.h" + +struct buffer { + struct wl_buffer *buffer; + cairo_surface_t *surface; + cairo_t *cairo; + PangoContext *pango; + uint32_t width, height; + bool busy; +}; + +struct cursor { + struct wl_surface *surface; + struct wl_cursor_theme *cursor_theme; + struct wl_cursor *cursor; + struct wl_poitner *pointer; +}; + +struct window { + struct registry *registry; + struct buffer buffers[2]; + struct buffer *buffer; + struct wl_surface *surface; + struct wl_shell_surface *shell_surface; + struct wl_callback *frame_cb; + struct cursor cursor; + uint32_t width, height; + cairo_t *cairo; +}; + +struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, bool shell_surface); +void window_teardown(struct window *state); +int window_prerender(struct window *state); +int window_render(struct window *state); + +#endif -- cgit v1.2.3