//========================================================================
// This is a small test application for GLFW.
// The program lists all available fullscreen video modes.
//========================================================================

#include <GL/glfw3.h>

#include <stdio.h>
#include <stdlib.h>

static void print_mode(GLFWvidmode* mode)
{
    printf("%i x %i x %i (%i %i %i)\n",
           mode->width, mode->height,
           mode->redBits + mode->greenBits + mode->blueBits,
           mode->redBits, mode->greenBits, mode->blueBits);
}

int main(void)
{
    GLFWvidmode dtmode, modes[400];
    int modecount, i;

    if (!glfwInit())
    {
        fprintf(stderr, "Failed to initialize GLFW: %s\n", glfwErrorString(glfwGetError()));
        exit(EXIT_FAILURE);
    }

    // Show desktop video mode
    glfwGetDesktopMode(&dtmode);
    printf("Desktop mode: ");
    print_mode(&dtmode);

    // List available video modes
    modecount = glfwGetVideoModes(modes, sizeof(modes) / sizeof(GLFWvidmode));
    printf("Available modes:\n");
    for (i = 0;  i < modecount;  i++)
    {
        printf("%3i: ", i);
        print_mode(modes + i);
    }

    glfwTerminate();
    exit(EXIT_SUCCESS);
}