diff options
author | Ronan Pigott <rpigott@berkeley.edu> | 2019-11-13 11:23:36 -0700 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2019-11-29 18:13:37 +0100 |
commit | 6968fb3123e69f563cd01d472967a9e6ddca2ec1 (patch) | |
tree | 0e313d5e19da37762ab572e38c36ff33798f25fb /sway/commands | |
parent | output: Ensure that frame_done is delayed on max_render_time (diff) | |
download | sway-6968fb3123e69f563cd01d472967a9e6ddca2ec1.tar.gz sway-6968fb3123e69f563cd01d472967a9e6ddca2ec1.tar.zst sway-6968fb3123e69f563cd01d472967a9e6ddca2ec1.zip |
add scale_filter output config option
Diffstat (limited to 'sway/commands')
-rw-r--r-- | sway/commands/output.c | 1 | ||||
-rw-r--r-- | sway/commands/output/scale_filter.c | 34 |
2 files changed, 35 insertions, 0 deletions
diff --git a/sway/commands/output.c b/sway/commands/output.c index db2acb50..2790bd63 100644 --- a/sway/commands/output.c +++ b/sway/commands/output.c | |||
@@ -19,6 +19,7 @@ static struct cmd_handler output_handlers[] = { | |||
19 | { "res", output_cmd_mode }, | 19 | { "res", output_cmd_mode }, |
20 | { "resolution", output_cmd_mode }, | 20 | { "resolution", output_cmd_mode }, |
21 | { "scale", output_cmd_scale }, | 21 | { "scale", output_cmd_scale }, |
22 | { "scale_filter", output_cmd_scale_filter }, | ||
22 | { "subpixel", output_cmd_subpixel }, | 23 | { "subpixel", output_cmd_subpixel }, |
23 | { "toggle", output_cmd_toggle }, | 24 | { "toggle", output_cmd_toggle }, |
24 | { "transform", output_cmd_transform }, | 25 | { "transform", output_cmd_transform }, |
diff --git a/sway/commands/output/scale_filter.c b/sway/commands/output/scale_filter.c new file mode 100644 index 00000000..fa1e8e0d --- /dev/null +++ b/sway/commands/output/scale_filter.c | |||
@@ -0,0 +1,34 @@ | |||
1 | #include <string.h> | ||
2 | #include "log.h" | ||
3 | #include "sway/commands.h" | ||
4 | #include "sway/config.h" | ||
5 | #include "sway/output.h" | ||
6 | |||
7 | struct cmd_results *output_cmd_scale_filter(int argc, char **argv) { | ||
8 | if (!config->handler_context.output_config) { | ||
9 | return cmd_results_new(CMD_FAILURE, "Missing output config"); | ||
10 | } | ||
11 | |||
12 | if (!argc) { | ||
13 | return cmd_results_new(CMD_INVALID, "Missing scale_filter argument."); | ||
14 | } | ||
15 | |||
16 | |||
17 | enum scale_filter_mode scale_filter; | ||
18 | if (strcmp(*argv, "linear") == 0) { | ||
19 | scale_filter = SCALE_FILTER_LINEAR; | ||
20 | } else if (strcmp(*argv, "nearest") == 0) { | ||
21 | scale_filter = SCALE_FILTER_NEAREST; | ||
22 | } else if (strcmp(*argv, "smart") == 0) { | ||
23 | scale_filter = SCALE_FILTER_SMART; | ||
24 | } else { | ||
25 | return cmd_results_new(CMD_INVALID, "Invalid output scale_filter."); | ||
26 | } | ||
27 | |||
28 | struct output_config *oc = config->handler_context.output_config; | ||
29 | config->handler_context.leftovers.argc = argc - 1; | ||
30 | config->handler_context.leftovers.argv = argv + 1; | ||
31 | |||
32 | oc->scale_filter = scale_filter; | ||
33 | return NULL; | ||
34 | } | ||