diff --git a/tests/monitors.c b/tests/monitors.c index d1d58106..d8d52f77 100644 --- a/tests/monitors.c +++ b/tests/monitors.c @@ -49,14 +49,21 @@ static void usage(void) printf(" monitors -h\n"); } +static int euclid(int a, int b) +{ + return b ? euclid(b, a % b) : a; +} + static const char* format_mode(const GLFWvidmode* mode) { static char buffer[512]; + const int gcd = euclid(mode->width, mode->height); sprintf(buffer, - "%i x %i x %i (%i %i %i) %i Hz", + "%i x %i x %i (%i:%i) (%i %i %i) %i Hz", mode->width, mode->height, mode->redBits + mode->greenBits + mode->blueBits, + mode->width / gcd, mode->height / gcd, mode->redBits, mode->greenBits, mode->blueBits, mode->refreshRate);