1#ifndef _SWAY_BACKGROUND_IMAGE_H
2#define _SWAY_BACKGROUND_IMAGE_H
3#include <wayland-client.h>
4#include "cairo.h"
5
6enum background_mode {
7 BACKGROUND_MODE_STRETCH,
8 BACKGROUND_MODE_FILL,
9 BACKGROUND_MODE_FIT,
10 BACKGROUND_MODE_CENTER,
11 BACKGROUND_MODE_TILE,
12 BACKGROUND_MODE_SOLID_COLOR,
13 BACKGROUND_MODE_INVALID,
14};
15
16struct swaylock_surface;
17
18enum background_mode parse_background_mode(const char *mode);
19cairo_surface_t *load_background_image(const char *path);
20cairo_surface_t *load_background_from_buffer(void *buf, uint32_t format,
21 uint32_t width, uint32_t height, uint32_t stride, enum wl_output_transform transform);
22cairo_surface_t *scale_background_image(cairo_surface_t *image,
23 enum background_mode mode, int buffer_width, int buffer_height);
24void render_background_image(cairo_t *cairo, cairo_surface_t *image, double alpha);
25
26#endif