What is GLFW?
GLFW is a small C library that lets you create and manage an OpenGL context and its associated window, enumerate and change display modes, as well as handle inputs such as keyboard, mouse, joystick and time. GLFW provides a thin, multi-platform abstraction layer, primarily for applications whose sole graphics output is through the OpenGL API. While GLFW is very useful when developing multi-platform OpenGL applications, single-platform developers can also benefit from avoiding the drudgery of kludgy platform-specific APIs. The reason that libraries like GLFW are needed is that OpenGL by itself does not provide any mechanisms for creating the necessary context, managing windows, user input, timing etc.