diff options
author | Drew DeVault <sir@cmpwn.com> | 2018-04-02 22:48:13 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2018-04-04 18:47:48 -0400 |
commit | b32bf595aeae7f8ac68354e45a80c0438374ec17 (patch) | |
tree | b93185d2ac4b7081b9d0651eaaadeae21de48929 /common | |
parent | Move swaybg background rendering into common/ (diff) | |
download | sway-b32bf595aeae7f8ac68354e45a80c0438374ec17.tar.gz sway-b32bf595aeae7f8ac68354e45a80c0438374ec17.tar.zst sway-b32bf595aeae7f8ac68354e45a80c0438374ec17.zip |
Initial swaylock port
Diffstat (limited to 'common')
-rw-r--r-- | common/background-image.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/common/background-image.c b/common/background-image.c index 2988c2e2..1a6c0df0 100644 --- a/common/background-image.c +++ b/common/background-image.c | |||
@@ -4,6 +4,24 @@ | |||
4 | #include "background-image.h" | 4 | #include "background-image.h" |
5 | #include "cairo.h" | 5 | #include "cairo.h" |
6 | 6 | ||
7 | enum background_mode parse_background_mode(const char *mode) { | ||
8 | if (strcmp(mode, "stretch") == 0) { | ||
9 | return BACKGROUND_MODE_STRETCH; | ||
10 | } else if (strcmp(mode, "fill") == 0) { | ||
11 | return BACKGROUND_MODE_FILL; | ||
12 | } else if (strcmp(mode, "fit") == 0) { | ||
13 | return BACKGROUND_MODE_FIT; | ||
14 | } else if (strcmp(mode, "center") == 0) { | ||
15 | return BACKGROUND_MODE_CENTER; | ||
16 | } else if (strcmp(mode, "tile") == 0) { | ||
17 | return BACKGROUND_MODE_TILE; | ||
18 | } else if (strcmp(mode, "solid_color") == 0) { | ||
19 | return BACKGROUND_MODE_SOLID_COLOR; | ||
20 | } | ||
21 | wlr_log(L_ERROR, "Unsupported background mode: %s", mode); | ||
22 | return BACKGROUND_MODE_INVALID; | ||
23 | } | ||
24 | |||
7 | cairo_surface_t *load_background_image(const char *path) { | 25 | cairo_surface_t *load_background_image(const char *path) { |
8 | cairo_surface_t *image; | 26 | cairo_surface_t *image; |
9 | #ifdef HAVE_GDK_PIXBUF | 27 | #ifdef HAVE_GDK_PIXBUF |
@@ -35,8 +53,7 @@ cairo_surface_t *load_background_image(const char *path) { | |||
35 | } | 53 | } |
36 | 54 | ||
37 | void render_background_image(cairo_t *cairo, cairo_surface_t *image, | 55 | void render_background_image(cairo_t *cairo, cairo_surface_t *image, |
38 | enum background_mode mode, int buffer_width, int buffer_height, | 56 | enum background_mode mode, int buffer_width, int buffer_height) { |
39 | int buffer_scale) { | ||
40 | double width = cairo_image_surface_get_width(image); | 57 | double width = cairo_image_surface_get_width(image); |
41 | double height = cairo_image_surface_get_height(image); | 58 | double height = cairo_image_surface_get_height(image); |
42 | 59 | ||
@@ -93,6 +110,7 @@ void render_background_image(cairo_t *cairo, cairo_surface_t *image, | |||
93 | break; | 110 | break; |
94 | } | 111 | } |
95 | case BACKGROUND_MODE_SOLID_COLOR: | 112 | case BACKGROUND_MODE_SOLID_COLOR: |
113 | case BACKGROUND_MODE_INVALID: | ||
96 | assert(0); | 114 | assert(0); |
97 | break; | 115 | break; |
98 | } | 116 | } |