diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2015-11-12 19:04:01 -0500 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2015-11-12 19:04:01 -0500 |
| commit | 8a81bc25172b156ce2deab11be90e94879535b1d (patch) | |
| tree | 8bef61a10259765dbafed49c9a2a76b4bf9ced2d /include | |
| parent | 0d6bd52692ffc591ba222d7e0a4c442873768bc7 (diff) | |
Start fleshing out wayland client implementation
This introduces a basic shared framework for making wayland clients
within sway itself.
Diffstat (limited to 'include')
| -rw-r--r-- | include/client.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/client.h b/include/client.h new file mode 100644 index 00000000..ec3537ca --- /dev/null +++ b/include/client.h @@ -0,0 +1,43 @@ +#ifndef _CLIENT_H +#define _CLIENT_H + +#include <wayland-client.h> +#include <cairo/cairo.h> +#include <pango/pangocairo.h> +#include "list.h" + +struct output_state { + struct wl_output *output; + uint32_t flags; + int width, height; +}; + +struct buffer { + struct wl_buffer *buffer; + struct wl_shm_pool *pool; + uint32_t width, height; +}; + +struct client_state { + struct wl_compositor *compositor; + struct wl_display *display; + struct wl_pointer *pointer; + struct wl_seat *seat; + struct wl_shell *shell; + struct wl_shm *shm; + struct buffer *buffer; + struct wl_surface *surface; + struct wl_shell_surface *shell_surface; + cairo_t *cairo; + cairo_surface_t *cairo_surface; + PangoContext *pango; + list_t *outputs; +}; + +struct client_state *client_setup(void); +void client_teardown(struct client_state *state); +struct buffer *create_memory_pool(struct client_state *state, int32_t width, int32_t height, uint32_t format); +int client_prerender(struct client_state *state); +int client_render(struct client_state *state); + +#endif |
