diff options
author | Drew DeVault <sir@cmpwn.com> | 2015-11-19 07:58:57 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2015-11-19 07:58:57 -0500 |
commit | b4e5e1381f909b173a171fb3941610aec989df48 (patch) | |
tree | f7dcf63dc6f4ac05c8fbb86da37d52766f210130 /include/client/window.h | |
parent | 4a1584be535a2d851250854d46a3563e222fe953 (diff) |
Refactor the crap out of wayland clients
And create a background surface on every output when invoking swaybg.
Diffstat (limited to 'include/client/window.h')
-rw-r--r-- | include/client/window.h | 45 |
1 files changed, 45 insertions, 0 deletions
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 <wayland-client.h> +#include "wayland-desktop-shell-client-protocol.h" +#include <cairo/cairo.h> +#include <pango/pangocairo.h> +#include <stdbool.h> +#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 |