/*!

@mainpage notitle

@section main_intro Introduction

__GLFW__ is a free, Open Source, multi-platform library for creating windows
with OpenGL or OpenGL ES contexts and receiving many kinds of input.  It is easy
to integrate into existing applications and does not lay claim to the main loop.

This is the documentation for version 3.1, which adds many
[new features](@ref news_31).

@ref quick is a guide for those new to GLFW.  It takes you through how to write
a small but complete program.  For people coming from GLFW 2, the @ref moving
guide explains what has changed and how to update existing code to use the new
API.

There are guides for each of the various areas of the API.

 - @ref intro – initialization, error handling and high-level design
 - @ref window – creating and working with windows and framebuffers
 - @ref context – working with OpenGL and OpenGL ES contexts
 - @ref monitor – enumerating and working with monitors and video modes
 - @ref input – receiving events, polling and processing input

The [FAQ](http://www.glfw.org/faq.html) answers many common questions about the
design, implementation and use of GLFW.

The [reference documentation](modules.html) provides more detailed information
about specific functions.

Once you have written a program, see the @ref compile and @ref build guides.        

Finally, the @ref compat guide explains what APIs, standards and protocols GLFW
uses and what happens when they are not present on a given machine.

This documentation was generated with Doxygen.  The sources for it are available
in both the [source distribution](http://www.glfw.org/download.html) and
[GitHub repository](https://github.com/glfw/glfw).

*/
