aboutsummaryrefslogtreecommitdiffstats
path: root/swaybg
diff options
context:
space:
mode:
authorLibravatar Drew DeVault <sir@cmpwn.com>2018-03-27 16:00:34 -0400
committerLibravatar Drew DeVault <sir@cmpwn.com>2018-03-28 14:25:19 -0400
commit17e39f6291a62575437ce73bd61441bf21865622 (patch)
treeb55ef7ea58b10adbe1b40e98c4bf9f80c23bfc4e /swaybg
parentImplement image backgrounds (diff)
downloadsway-17e39f6291a62575437ce73bd61441bf21865622.tar.gz
sway-17e39f6291a62575437ce73bd61441bf21865622.tar.zst
sway-17e39f6291a62575437ce73bd61441bf21865622.zip
s/scaling_mode/background_mode/g
Since it now includes SOLID_COLOR this is a more appropriate name.
Diffstat (limited to 'swaybg')
-rw-r--r--swaybg/main.c48
1 files changed, 24 insertions, 24 deletions
diff --git a/swaybg/main.c b/swaybg/main.c
index 29cce251..038b8ea6 100644
--- a/swaybg/main.c
+++ b/swaybg/main.c
@@ -11,19 +11,19 @@
11#include "util.h" 11#include "util.h"
12#include "wlr-layer-shell-unstable-v1-client-protocol.h" 12#include "wlr-layer-shell-unstable-v1-client-protocol.h"
13 13
14enum scaling_mode { 14enum background_mode {
15 SCALING_MODE_STRETCH, 15 BACKGROUND_MODE_STRETCH,
16 SCALING_MODE_FILL, 16 BACKGROUND_MODE_FILL,
17 SCALING_MODE_FIT, 17 BACKGROUND_MODE_FIT,
18 SCALING_MODE_CENTER, 18 BACKGROUND_MODE_CENTER,
19 SCALING_MODE_TILE, 19 BACKGROUND_MODE_TILE,
20 SCALING_MODE_SOLID_COLOR, 20 BACKGROUND_MODE_SOLID_COLOR,
21}; 21};
22 22
23struct swaybg_args { 23struct swaybg_args {
24 int output_idx; 24 int output_idx;
25 const char *path; 25 const char *path;
26 enum scaling_mode mode; 26 enum background_mode mode;
27}; 27};
28 28
29struct swaybg_context { 29struct swaybg_context {
@@ -77,11 +77,11 @@ static void render_image(struct swaybg_state *state) {
77 int wheight = state->height; 77 int wheight = state->height;
78 78
79 switch (state->args->mode) { 79 switch (state->args->mode) {
80 case SCALING_MODE_STRETCH: 80 case BACKGROUND_MODE_STRETCH:
81 cairo_scale(cairo, (double)wwidth / width, (double)wheight / height); 81 cairo_scale(cairo, (double)wwidth / width, (double)wheight / height);
82 cairo_set_source_surface(cairo, image, 0, 0); 82 cairo_set_source_surface(cairo, image, 0, 0);
83 break; 83 break;
84 case SCALING_MODE_FILL: { 84 case BACKGROUND_MODE_FILL: {
85 double window_ratio = (double)wwidth / wheight; 85 double window_ratio = (double)wwidth / wheight;
86 double bg_ratio = width / height; 86 double bg_ratio = width / height;
87 87
@@ -98,7 +98,7 @@ static void render_image(struct swaybg_state *state) {
98 } 98 }
99 break; 99 break;
100 } 100 }
101 case SCALING_MODE_FIT: { 101 case BACKGROUND_MODE_FIT: {
102 double window_ratio = (double)wwidth / wheight; 102 double window_ratio = (double)wwidth / wheight;
103 double bg_ratio = width / height; 103 double bg_ratio = width / height;
104 104
@@ -115,18 +115,18 @@ static void render_image(struct swaybg_state *state) {
115 } 115 }
116 break; 116 break;
117 } 117 }
118 case SCALING_MODE_CENTER: 118 case BACKGROUND_MODE_CENTER:
119 cairo_set_source_surface(cairo, image, 119 cairo_set_source_surface(cairo, image,
120 (double)wwidth / 2 - width / 2, 120 (double)wwidth / 2 - width / 2,
121 (double)wheight / 2 - height / 2); 121 (double)wheight / 2 - height / 2);
122 break; 122 break;
123 case SCALING_MODE_TILE: { 123 case BACKGROUND_MODE_TILE: {
124 cairo_pattern_t *pattern = cairo_pattern_create_for_surface(image); 124 cairo_pattern_t *pattern = cairo_pattern_create_for_surface(image);
125 cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT); 125 cairo_pattern_set_extend(pattern, CAIRO_EXTEND_REPEAT);
126 cairo_set_source(cairo, pattern); 126 cairo_set_source(cairo, pattern);
127 break; 127 break;
128 } 128 }
129 case SCALING_MODE_SOLID_COLOR: 129 case BACKGROUND_MODE_SOLID_COLOR:
130 // Should never happen 130 // Should never happen
131 break; 131 break;
132 } 132 }
@@ -143,7 +143,7 @@ static void render_frame(struct swaybg_state *state) {
143 cairo_t *cairo = state->current_buffer->cairo; 143 cairo_t *cairo = state->current_buffer->cairo;
144 144
145 switch (state->args->mode) { 145 switch (state->args->mode) {
146 case SCALING_MODE_SOLID_COLOR: 146 case BACKGROUND_MODE_SOLID_COLOR:
147 cairo_set_source_u32(cairo, state->context.color); 147 cairo_set_source_u32(cairo, state->context.color);
148 cairo_paint(cairo); 148 cairo_paint(cairo);
149 break; 149 break;
@@ -158,7 +158,7 @@ static void render_frame(struct swaybg_state *state) {
158} 158}
159 159
160static bool prepare_context(struct swaybg_state *state) { 160static bool prepare_context(struct swaybg_state *state) {
161 if (state->args->mode == SCALING_MODE_SOLID_COLOR) { 161 if (state->args->mode == BACKGROUND_MODE_SOLID_COLOR) {
162 state->context.color = parse_color(state->args->path); 162 state->context.color = parse_color(state->args->path);
163 return is_valid_color(state->args->path); 163 return is_valid_color(state->args->path);
164 } 164 }
@@ -262,21 +262,21 @@ int main(int argc, const char **argv) {
262 args.path = argv[2]; 262 args.path = argv[2];
263 args.mode = atoi(argv[3]); 263 args.mode = atoi(argv[3]);
264 264
265 args.mode = SCALING_MODE_STRETCH; 265 args.mode = BACKGROUND_MODE_STRETCH;
266 if (strcmp(argv[3], "stretch") == 0) { 266 if (strcmp(argv[3], "stretch") == 0) {
267 args.mode = SCALING_MODE_STRETCH; 267 args.mode = BACKGROUND_MODE_STRETCH;
268 } else if (strcmp(argv[3], "fill") == 0) { 268 } else if (strcmp(argv[3], "fill") == 0) {
269 args.mode = SCALING_MODE_FILL; 269 args.mode = BACKGROUND_MODE_FILL;
270 } else if (strcmp(argv[3], "fit") == 0) { 270 } else if (strcmp(argv[3], "fit") == 0) {
271 args.mode = SCALING_MODE_FIT; 271 args.mode = BACKGROUND_MODE_FIT;
272 } else if (strcmp(argv[3], "center") == 0) { 272 } else if (strcmp(argv[3], "center") == 0) {
273 args.mode = SCALING_MODE_CENTER; 273 args.mode = BACKGROUND_MODE_CENTER;
274 } else if (strcmp(argv[3], "tile") == 0) { 274 } else if (strcmp(argv[3], "tile") == 0) {
275 args.mode = SCALING_MODE_TILE; 275 args.mode = BACKGROUND_MODE_TILE;
276 } else if (strcmp(argv[3], "solid_color") == 0) { 276 } else if (strcmp(argv[3], "solid_color") == 0) {
277 args.mode = SCALING_MODE_SOLID_COLOR; 277 args.mode = BACKGROUND_MODE_SOLID_COLOR;
278 } else { 278 } else {
279 wlr_log(L_ERROR, "Unsupported scaling mode: %s", argv[3]); 279 wlr_log(L_ERROR, "Unsupported background mode: %s", argv[3]);
280 return 1; 280 return 1;
281 } 281 }
282 282