diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-03-28 15:25:33 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-28 15:25:33 -0400 |
commit | 9070950eecded7bfa64e7bca3bb76b150ccc8b72 (patch) | |
tree | 509a9c669bf2679085e27a1ff1b0c95526abf14c /include | |
parent | 45a50d5afe013b31d9c94090d990bca49448d396 (diff) | |
parent | d39bda76c4007c42452a81883fefc671b816a74b (diff) |
Merge pull request #1638 from swaywm/swaybg-layers
Reimplement swaybg using surface layers
Diffstat (limited to 'include')
-rw-r--r-- | include/cairo.h (renamed from include/client/cairo.h) | 10 | ||||
-rw-r--r-- | include/client/buffer.h | 8 | ||||
-rw-r--r-- | include/client/pango.h | 16 | ||||
-rw-r--r-- | include/client/registry.h | 75 | ||||
-rw-r--r-- | include/client/window.h | 67 | ||||
-rw-r--r-- | include/meson.build | 1 | ||||
-rw-r--r-- | include/pool-buffer.h | 21 |
7 files changed, 28 insertions, 170 deletions
diff --git a/include/client/cairo.h b/include/cairo.h index e7ef7c7e..31672705 100644 --- a/include/client/cairo.h +++ b/include/cairo.h @@ -1,17 +1,19 @@ #ifndef _SWAY_CAIRO_H #define _SWAY_CAIRO_H - #include <stdint.h> #include <cairo/cairo.h> void cairo_set_source_u32(cairo_t *cairo, uint32_t color); -cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image, int width, int height); +cairo_surface_t *cairo_image_surface_scale(cairo_surface_t *image, + int width, int height); -#ifdef WITH_GDK_PIXBUF +#include "config.h" +#ifdef HAVE_GDK_PIXBUF #include <gdk-pixbuf/gdk-pixbuf.h> -cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf(const GdkPixbuf *gdkbuf); +cairo_surface_t* gdk_cairo_image_surface_create_from_pixbuf( + const GdkPixbuf *gdkbuf); #endif //WITH_GDK_PIXBUF #endif diff --git a/include/client/buffer.h b/include/client/buffer.h deleted file mode 100644 index eb9973ed..00000000 --- a/include/client/buffer.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _BUFFER_H -#define _BUFFER_H - -#include "client/window.h" - -struct buffer *get_next_buffer(struct window *state); - -#endif diff --git a/include/client/pango.h b/include/client/pango.h deleted file mode 100644 index dd2f53c3..00000000 --- a/include/client/pango.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _SWAY_CLIENT_PANGO_H -#define _SWAY_CLIENT_PANGO_H - -#include <cairo/cairo.h> -#include <pango/pangocairo.h> -#include <stdarg.h> -#include <stdbool.h> -#include <stdint.h> - -PangoLayout *get_pango_layout(cairo_t *cairo, const char *font, const char *text, - int32_t scale, bool markup); -void get_text_size(cairo_t *cairo, const char *font, int *width, int *height, - int32_t scale, bool markup, const char *fmt, ...); -void pango_printf(cairo_t *cairo, const char *font, int32_t scale, bool markup, const char *fmt, ...); - -#endif diff --git a/include/client/registry.h b/include/client/registry.h deleted file mode 100644 index 9dfbd835..00000000 --- a/include/client/registry.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef _SWAY_CLIENT_REGISTRY_H -#define _SWAY_CLIENT_REGISTRY_H - -#include <wayland-client.h> -#include <xkbcommon/xkbcommon.h> -#include "wayland-desktop-shell-client-protocol.h" -#include "wayland-swaylock-client-protocol.h" -#include "list.h" - -enum mod_bit { - MOD_SHIFT = 1<<0, - MOD_CAPS = 1<<1, - MOD_CTRL = 1<<2, - MOD_ALT = 1<<3, - MOD_MOD2 = 1<<4, - MOD_MOD3 = 1<<5, - MOD_LOGO = 1<<6, - MOD_MOD5 = 1<<7, -}; - -enum mask { - MASK_SHIFT, - MASK_CAPS, - MASK_CTRL, - MASK_ALT, - MASK_MOD2, - MASK_MOD3, - MASK_LOGO, - MASK_MOD5, - MASK_LAST -}; - -struct output_state { - struct wl_output *output; - uint32_t flags; - uint32_t width, height; - uint32_t scale; -}; - -struct xkb { - struct xkb_state *state; - struct xkb_context *context; - struct xkb_keymap *keymap; - xkb_mod_mask_t masks[MASK_LAST]; -}; - -struct input { - struct xkb xkb; - - xkb_keysym_t sym; - uint32_t code; - uint32_t last_code; - uint32_t modifiers; - - void (*notify)(enum wl_keyboard_key_state state, xkb_keysym_t sym, uint32_t code, uint32_t codepoint); -}; - -struct registry { - struct wl_compositor *compositor; - struct wl_display *display; - struct wl_pointer *pointer; - struct wl_keyboard *keyboard; - struct wl_seat *seat; - struct wl_shell *shell; - struct wl_shm *shm; - struct desktop_shell *desktop_shell; - struct lock *swaylock; - struct input *input; - list_t *outputs; -}; - -struct registry *registry_poll(void); -void registry_teardown(struct registry *registry); - -#endif diff --git a/include/client/window.h b/include/client/window.h deleted file mode 100644 index 8af8225c..00000000 --- a/include/client/window.h +++ /dev/null @@ -1,67 +0,0 @@ -#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 window; - -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_pointer *pointer; -}; - -enum scroll_direction { - SCROLL_UP, - SCROLL_DOWN, - SCROLL_LEFT, - SCROLL_RIGHT, -}; - -struct pointer_input { - int last_x; - int last_y; - - void (*notify_button)(struct window *window, int x, int y, uint32_t button, uint32_t state_w); - void (*notify_scroll)(struct window *window, enum scroll_direction direction); -}; - -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; - int32_t scale; - char *font; - cairo_t *cairo; - struct pointer_input pointer_input; -}; - -struct window *window_setup(struct registry *registry, uint32_t width, uint32_t height, - int32_t scale, bool shell_surface); -void window_teardown(struct window *state); -int window_prerender(struct window *state); -int window_render(struct window *state); -void window_make_shell(struct window *window); - -#endif diff --git a/include/meson.build b/include/meson.build new file mode 100644 index 00000000..65ed027a --- /dev/null +++ b/include/meson.build @@ -0,0 +1 @@ +configure_file(output: 'config.h', configuration: conf_data) diff --git a/include/pool-buffer.h b/include/pool-buffer.h new file mode 100644 index 00000000..cdebd64d --- /dev/null +++ b/include/pool-buffer.h @@ -0,0 +1,21 @@ +#ifndef _SWAY_BUFFERS_H +#define _SWAY_BUFFERS_H +#include <cairo/cairo.h> +#include <pango/pangocairo.h> +#include <stdbool.h> +#include <stdint.h> +#include <wayland-client.h> + +struct pool_buffer { + struct wl_buffer *buffer; + cairo_surface_t *surface; + cairo_t *cairo; + PangoContext *pango; + uint32_t width, height; + bool busy; +}; + +struct pool_buffer *get_next_buffer(struct wl_shm *shm, + struct pool_buffer pool[static 2], uint32_t width, uint32_t height); + +#endif |