From: pdelagarza <[email protected]> Flag can be set to "nearest" or "bilinear"
Signed-off-by: Pablo De La Garza <[email protected]> --- xrandr.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/xrandr.c b/xrandr.c index dcfdde0..c2cc82e 100644 --- a/xrandr.c +++ b/xrandr.c @@ -54,6 +54,12 @@ static Bool automatic = False; static Bool properties = False; static Bool grab_server = True; static Bool no_primary = False; +static int filterType = -1; + +static const char *filterTypeList[2] = { + "bilinear", + "nearest"}; + static const char *direction[5] = { "normal", @@ -118,6 +124,7 @@ usage(void) " --fb <width>x<height>\n" " --fbmm <width>x<height>\n" " --dpi <dpi>/<output>\n" + " --filter <filterType>, filterType: nearest, bilinear\n" " --output <output>\n" " --auto\n" " --mode <mode>\n" @@ -285,6 +292,7 @@ typedef enum _changes { changes_panning = (1 << 10), changes_gamma = (1 << 11), changes_primary = (1 << 12), + changes_filter = (1 << 13), } changes_t; typedef enum _name_kind { @@ -1311,6 +1319,11 @@ set_output_info (output_t *output, RROutput xid, XRROutputInfo *output_info) output->transform.params = NULL; } } + if (output->changes & changes_filter) + { + output->transform.filter = filterTypeList[filterType]; + } + /* set primary */ if (!(output->changes & changes_primary)) @@ -2808,6 +2821,28 @@ main (int argc, char **argv) action_requested = True; continue; } + + if (!strcmp("--filter", argv[i])) + { + if (!config_output) argerr ("%s must be used after --output\n", argv[i]); + if (++i >= argc) argerr("%s requires an argument\n", argv[i-1]); + + for (int t=0;t < sizeof(filterTypeList)/sizeof(filterTypeList[0]);t++) + { + if (!strcmp(filterTypeList[t],argv[i])) + { + filterType = t; + break; + } + } + + if (filterType==-1) argerr("Bad argument: %s, for a filter\n", argv[i]); + + config_output->changes |= changes_filter; + action_requested = True; + continue; + } + if (!strcmp ("--crtc", argv[i])) { if (!config_output) argerr ("%s must be used after --output\n", argv[i]); if (++i >= argc) argerr ("%s requires an argument\n", argv[i-1]); -- 2.7.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
