<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>GLFW Readme File</title>
</head>

<body>

<h1>GLFW 3.0 source distribution</h1>

<ol>
 <li><a href="#intro">Introduction</a></li>
 <li><a href="#compiling">Compiling GLFW and the example programs</a></li>
 <li><a href="#installing">Installing GLFW</a></li>
 <li><a href="#using">Using GLFW</a></li>
 <li><a href="#changelog">Version history</a></li>
 <li><a href="#structure">Directory structure of the GLFW distribution</a></li>
 <li><a href="#contact">Contacting the project</a></li>
 <li><a href="#credits">Acknowledgements</a></li>
</ol>


<a name="intro"></a>
<h2>1. Introduction</h2>

<p>Welcome to version 3.0 of the GLFW library.  GLFW is a free, open source,
portable library for OpenGL application development.  It provides a powerful
API for handling operating system specific tasks, such as opening an OpenGL
window, reading keyboard, mouse, joystick and time input, and more.</p>

<p>This is an <em>experimental</em> series intended to allow the new API to
settle.</p>

<p><strong>Note</strong> that the threading and image loading APIs from the 2.x
series have been removed.</p>


<a name="compiling"></a>
<h2>2. Compiling GLFW and the example programs</h2>

<p>To compile GLFW and the accompanying example programs, you will need the
<a href="http://www.cmake.org/">CMake</a> build system.</p>


<a name="installing"></a>
<h2>3. Installing GLFW</h2>

<p>A rudimentary installation target is provided for all supported platforms
via the CMake build system.</p>


<a name="using"></a>
<h2>4. Using GLFW</h2>

<p>There are two aspects to using GLFW:</p>

<ol>
  <li>How does the GLFW API work</li>
  <li>How to compile programs that use GLFW</li>
</ol>

<p>The first point is covered in the
<a href="docs/GLFWUsersGuide30.pdf">GLFW Users Guide</a> and the
<a href="docs/GLFWReference30.pdf">GLFW Reference Manual</a>, and we suggest
that you read at least the Users Guide, since it's a good introduction to the
GLFW API.</p>

<p>Designing and compiling programs that use GLFW is not very difficult.
A few rules for successfully designing GLFW-based programs are presented
in the following sections.</p>


<h3>4.1 Include the GLFW header file</h3>

<p>In the files of your program where you use OpenGL or GLFW, you should
include the <code>GL/glfw3.h</code> header file, i.e.:</p>

<blockquote><code>#include &lt;GL/glfw3.h&gt;</code></blockquote>

<p>This defines all the constants, types and function prototypes of the GLFW
API.  It also includes the <code>gl.h</code> and </code>GL/glu.h</code> header
files, and - this is very important - <em>it defines all the necessary
constants and types that are necessary for the OpenGL headers to work on
different platforms</em>.</p>

<p>For example, under Microsoft Windows you are normally required to include
<code>windows.h</code> before you include <code>GL/gl.h</code>.  This would
however make your code dependent on the Windows platform, or at least require
your program to check which platform it is being compiled on.

The GLFW header file takes care of this for you, not by including
<code>windows.h</code>, but rather by itself duplicating the necessary parts of
it.  This way, the namespace won't be cluttered by the entire Windows API.</p>

<p>In other words:
<ul>
  <li>Do <em>not</em> include <code>GL/gl.h</code> or <code>GL/glu.h</code>
      yourself, as GLFW does this for you</li>
  <li>Do <em>not</em> include <code>windows.h</code> unless you actually need
      direct access to the Windows API</li>
  <li>If you <em>do</em> need to include <code>windows.h</code>, do it
      <em>before</em> including <code>GL/glfw3.h</code> and the GLFW header will
      detect this.</p>
</ul>

<p>Also note that if you are using an OpenGL extension loading library such as
<a href="http://glew.sourceforge.net/">GLEW</a>, you should include the GLEW
header <em>before</em> the GLFW one.  The GLEW header defines macros that
disable any <code>gl.h</code> that the GLFW header includes and GLEW will work
as expected.</p>


<h3>4.2 Link with the right libraries</h3>


<h4>4.2.1 Windows static library</h4>

<p>If you link with the static version of GLFW, it is also necessary to
link with some system libraries that GLFW uses.</p>

<p>When linking a program under Windows that uses the static version of GLFW,
you must also link with the following libraries: <code>opengl32</code>,
<code>user32</code> and <code>kernel32</code>. Some of these libraries may be
linked with by default by your compiler. In the table below you can see the
minimum required link options for each supported Windows compiler (you may want
to add other libraries as well, such as <code>glu32</code>):</p>

<table border=1>
  <tr>
    <td><b>Compiler</b></td>
    <td><b>Link options</b></td>
  </tr>
  <tr>
    <td>Borland C++ Builder</td>
    <td><code>glfw.lib opengl32.lib</code></td>
  </tr>
  <tr>
    <td>Cygwin</td>
    <td><i>See Unix static library below</i></td>
  </tr>
  <tr>
    <td>LCC-Win32</td>
    <td><code>glfw.lib opengl32.lib</code></td>
  </tr>
  <tr>
    <td>Microsoft Visual C++</td>
    <td><code>glfw.lib opengl32.lib user32.lib</code></td>
  </tr>
  <tr>
    <td>MinGW32</td>
    <td><code>-lglfw -lopengl32</code></td>
  </tr>
  <tr>
    <td>OpenWatcom</td>
    <td><code>glfw.lib opengl32.lib user32.lib</code></td>
  </tr>
</table>


<h4>4.2.2 Windows DLL</h4>

<p>To compile a program that uses the DLL version of GLFW, you need to
define the <code>GLFW_DLL</code> constant. This can either be done with a
compiler switch, typically by adding <code>-DGLFW_DLL</code> to the list of
compiler options. You can also do it by adding the following line to all your
source files <b>before</b> including the GLFW header file:</p>

<blockquote><code>#define GLFW_DLL</code></blockquote>

<p>When linking a program under Windows that uses the DLL version of GLFW,
the only library you need to link with for GLFW to work is <code>glfwdll</code>.
In the table below you can see the minimum required link options for each
supported Windows compiler (you may want to add other libraries as well,
such as <code>opengl32</code> and <code>glu32</code>):</p>

<table border=1>
  <tr>
    <td><b>Compiler</b></td>
    <td><b>Link options</b></td>
  </tr>
  <tr>
    <td>Borland C++ Builder</td>
    <td><code>glfwdll.lib</code></td>
  </tr>
  <tr>
    <td>Cygwin</td>
    <td><code>-lglfwdll</code></td>
  </tr>
  <tr>
    <td>LCC-Win32</td>
    <td><code>glfwdll.lib</code></td>
  </tr>
  <tr>
    <td>Microsoft Visual C++</td>
    <td><code>glfwdll.lib</code></td>
  </tr>
  <tr>
    <td>MinGW32</td>
    <td><code>-lglfwdll</code></td>
  </tr>
  <tr>
    <td>OpenWatcom</td>
    <td><code>glfwdll.lib</code></td>
  </tr>
</table>



<h4>4.2.3 Unix static library</h4>

<p>GLFW supports
<a href="http://pkgconfig.freedesktop.org/wiki/">pkg-config</a>,
and a <code>libglfw.pc</code> file is generated and installed when you install
the library.  For systems that do not provide pkg-config, you should look in
this file for the proper compile and link flags for your system, as determined
by compile.sh at compile time.</p>

<p>A typical compile and link command-line may look like this:</p>

<blockquote><code>cc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</code></blockquote>

<p>If you use GLU functions in your program you should also add
<code>-lGLU</code> to your link flags.</p>


<h4>4.2.5 Mac OS X static library</h4>

<p>When compiling and linking a program under Mac OS X that uses GLFW, you
must also link with Cocoa and OpenGL frameworks.

<p>If you are using Xcode, you simply add the GLFW library <code>libglfw.a</code> and
these frameworks to your project. If, however, you are building your program
from the command-line, there are two methods for correctly linking your GLFW
program.</p>

<p>GLFW supports
<a href="http://pkgconfig.freedesktop.org/wiki/">pkg-config</a>, and a
libglfw.pc file is generated and installed when you install the library. You
can find pkg-config in most packaging systems, such as
<a href="http://www.finkproject.org/">Fink</a> and
<a href="http://www.macports.org/">MacPorts</a>, so if you have one of them
installed, simply install pkg-config. Once you have pkg-config available, the
command-line for compiling and linking your program is:</p>

<blockquote><code>cc `pkg-config --cflags libglfw` -o myprog myprog.c `pkg-config --libs libglfw`</code></blockquote>

<p>If you do not wish to use pkg-config, you will need to add the required
frameworks and libraries to your command-line using the <code>-l</code> and
<code>-framework</code> switches, i.e.:</p>

<blockquote><code>cc -o myprog myprog.c -lglfw -framework Cocoa -framework OpenGL</code></blockquote>

<p>Note that you do not add the .framework extension to a framework when adding
it from the command-line.</p>

<p>These frameworks contain all OpenGL and GLU functions, so there is no need to
add additional libraries or frameworks when using GLU functionality. Also note
that even though your machine may have Unix-style OpenGL libraries, they are for
use with the X Window System, and will <em>not</em> work with the Mac OS X native
version of GLFW.</p>


<a name="changelog"></a>
<h2>5. Version history</h2>


<h3>v3.0</h3>
<ul>
  <li>Added <code>GLFWwindow</code> window handle type and updated window-related functions and callbacks to take a window handle</li>
  <li>Added <code>glfwMakeContextCurrent</code> function for making the context of the specified window current</li>
  <li>Added <code>glfwGetError</code> and <code>glfwErrorString</code> error reporting functions and a number of error tokens</li>
  <li>Added <code>glfwSetErrorCallback</code> function and <code>GLFWerrorfun</code> type for receiving more specific and/or nested errors</li>
  <li>Added <code>glfwSetWindowUserPointer</code> and <code>glfwGetWindowUserPointer</code> functions for per-window user pointers</li>
  <li>Added <code>glfwGetVersionString</code> function for determining which code paths were enabled at compile time</li>
  <li>Added <code>glfwGetWindowPos</code> function for querying the position of the specified window</li>
  <li>Added <code>glfwSetWindowFocusCallback</code> function and <code>GLFWwindowfocusfun</code> type for receiving window focus events</li>
  <li>Added <code>glfwSetWindowIconifyCallback</code> function and <code>GLFWwindowiconifyfun</code> type for receiving window iconification events</li>
  <li>Added <code>glfwGetClipboardString</code> and <code>glfwSetClipboardString</code> functions for interacting with the system clipboard</li>
  <li>Added <code>glfwGetCurrentContext</code> function for retrieving the window whose OpenGL context is current</li>
  <li>Added <code>glfwCopyContext</code> function for copying OpenGL state categories between contexts</li>
  <li>Added <code>GLFW_OPENGL_ES2_PROFILE</code> profile for creating OpenGL ES 2.0 contexts using the <code>GLX_EXT_create_context_es2_profile</code> and <code>WGL_EXT_create_context_es2_profile</code> extensions</li>
  <li>Added <code>GLFW_OPENGL_ROBUSTNESS</code> window hint and associated strategy tokens for <code>GL_ARB_robustness</code> support</li>
  <li>Added <code>GLFW_OPENGL_REVISION</code> window parameter to make up for removal of <code>glfwGetGLVersion</code></li>
  <li>Added <code>GLFW_INCLUDE_GL3</code> macro for telling the GLFW header to include <code>gl3.h</code> header instead of <code>gl.h</code></li>
  <li>Added <code>windows</code> simple multi-window test program</li>
  <li>Added <code>sharing</code> simple OpenGL object sharing test program</li>
  <li>Added <code>modes</code> video mode enumeration and setting test program</li>
  <li>Added <code>glfw3native.h</code> header and platform-specific functions for explicit access to native display, window and context handles</li>
  <li>Added <code>glfwSetGamma</code>, <code>glfwSetGammaRamp</code> and <code>glfwGetGammaRamp</code> functions and <code>GLFWgammaramp</code> type for monitor gamma ramp control</li>
  <li>Added window parameter to <code>glfwSwapBuffers</code></li>
  <li>Changed buffer bit depth parameters of <code>glfwOpenWindow</code> to window hints</li>
  <li>Changed <code>glfwOpenWindow</code> and <code>glfwSetWindowTitle</code> to use UTF-8 encoded strings</li>
  <li>Changed <code>glfwGetProcAddress</code> to return a (generic) function pointer</li>
  <li>Changed <code>glfwGetVideoModes</code> to return a dynamic, unlimited number of video modes</li>
  <li>Renamed <code>glfw.h</code> to <code>glfw3.h</code> to avoid conflicts with 2.x series</li>
  <li>Renamed <code>glfwOpenWindowHint</code> to <code>glfwWindowHint</code></li>
  <li>Renamed <code>GLFW_WINDOW</code> token to <code>GLFW_WINDOWED</code></li>
  <li>Renamed <code>GLFW_WINDOW_NO_RESIZE</code> to <code>GLFW_WINDOW_RESIZABLE</code></li>
  <li>Renamed <code>GLFW_BUILD_DLL</code> to <code>_GLFW_BUILD_DLL</code></li>
  <li>Renamed <code>version</code> test to <code>glfwinfo</code></li>
  <li>Renamed <code>GLFW_NO_GLU</code> to <code>GLFW_INCLUDE_GLU</code> and made it disabled by default</li>
  <li>Renamed <code>glfwGetJoystickPos</code> to <code>glfwGetJoystickAxes</code> to match <code>glfwGetJoystickButtons</code></li>
  <li>Renamed mouse position functions to cursor position equivalents</li>
  <li>Replaced <code>glfwOpenWindow</code> and <code>glfwCloseWindow</code> with <code>glfwCreateWindow</code> and <code>glfwDestroyWindow</code></li>
  <li>Replaced <code>glfwGetDesktopMode</code> width <code>glfwGetVideoMode</code></li>
  <li>Replaced ad hoc build system with CMake</li>
  <li>Replaced layout-dependent key codes with single, platform-independent set based on US layout</li>
  <li>Replaced mouse wheel interface with two-dimensional, floating point scrolling interface</li>
  <li>Replaced <code>glfwEnable</code> and <code>glfwDisable</code> with <code>glfwGetInputMode</code> and <code>glfwSetInputMode</code></li>
  <li>Replaced <code>joystick</code> test with graphical version</li>
  <li>Replaced automatic closing of windows with <code>GLFW_CLOSE_REQUESTED</code> window parameter</li>
  <li>Made Unicode character input unaffected by <code>GLFW_KEY_REPEAT</code></li>
  <li>Removed event auto-polling and the <code>GLFW_AUTO_POLL_EVENTS</code> window enable</li>
  <li>Removed the Win32 port .def files</li>
  <li>Removed the entire threading API</li>
  <li>Removed the entire image loading API</li>
  <li>Removed deprecated Carbon port</li>
  <li>Removed <code>glfwSleep</code> function</li>
  <li>Removed <code>glfwGetNumberOfProcessors</code> function</li>
  <li>Removed <code>glfwGetGLVersion</code> function</li>
  <li>Removed <code>GLFW_OPENED</code> window parameter</li>
  <li>Removed nonsensical key actions for Unicode character input</li>
  <li>Removed <code>GLFWCALL</code> and <code>GLFWAPIENTRY</code> macros for stdcall calling convention</li>
  <li>Removed <code>GLFW_ACCELERATED</code> window parameter</li>
  <li>Removed default framebuffer attributes from <code>glfwGetWindowParam</code></li>
  <li>Bugfix: The default OpenGL version in the <code>glfwinfo</code> test was set to 1.1</li>
  <li>Bugfix: The OpenGL profile and forward-compatibility window parameters were not saved after context creation</li>
  <li>Bugfix: The FSAA test did not check for the availability of <code>GL_ARB_multisample</code></li>
  <li>Bugfix: Cursor centering upon leaving captured cursor mode was reported before the mode was changed to non-captured</li>
  <li>[Cocoa] Added support for OpenGL 3.2 core profile in 10.7 Lion and above</li>
  <li>[Cocoa] Added support for joysticks</li>
  <li>[Cocoa] Postponed menu creation to first window creation</li>
  <li>[Cocoa] Replaced <code>NSDate</code> time source with <code>mach_absolute_time</code></li>
  <li>[Cocoa] Replaced all deprecated CoreGraphics calls with non-deprecated counterparts</li>
  <li>[Cocoa] Bugfix: The <code>NSOpenGLPFAFullScreen</code> pixel format attribute caused creation to fail on some machines</li>
  <li>[Cocoa] Bugfix: <code>glfwOpenWindow</code> did not properly enforce the forward-compatible and context profile hints</li>
  <li>[Cocoa] Bugfix: The loop condition for saving video modes used the wrong index variable</li>
  <li>[Cocoa] Bugfix: The OpenGL framework was not retrieved, making glfwGetProcAddress crash</li>
  <li>[Cocoa] Bugfix: <code>glfwInit</code> changed the current directory for unbundled executables</li>
  <li>[Cocoa] Bugfix: The <code>GLFW_WINDOW_NO_RESIZE</code> window parameter was always zero</li>
  <li>[Cocoa] Bugfix: The cursor position incorrectly rounded during conversion</li>
  <li>[Cocoa] Bugfix: Cursor positioning led to nonsensical results for fullscreen windows</li>
  <li>[Cocoa] Bugfix: The GLFW window was flagged as restorable</li>
  <li>[X11] Added support for the <code>GLX_EXT_swap_control</code> and <code>GLX_MESA_swap_control</code> extensions as alternatives to <code>GLX_SGI_swap_control</code></li>
  <li>[X11] Added the POSIX <code>CLOCK_MONOTONIC</code> time source as the preferred method</li>
  <li>[X11] Added dependency on libm, where present</li>
  <li>[X11] Added support for the <code>_NET_WM_NAME</code> and <code>_NET_WM_ICON_NAME</code> EWMH window properties</li>
  <li>[X11] Bugfix: Some window properties required by the ICCCM were not set</li>
  <li>[X11] Bugfix: Calling <code>glXCreateContextAttribsARB</code> with an unavailable OpenGL version caused the application to terminate with a <code>BadMatch</code> Xlib error</li>
  <li>[X11] Bugfix: A synchronization point necessary for jitter-free locked cursor mode was incorrectly removed</li>
  <li>[Win32] Changed port to use Unicode mode only</li>
  <li>[Win32] Removed explicit support for versions of Windows older than Windows XP</li>
  <li>[Win32] Bugfix: Window activation and iconification did not work as expected</li>
  <li>[Win32] Bugfix: Software rasterizer pixel formats were not discarded by the WGL_ARB_pixel_format code path</li>
  <li>[Win32] Bugfix: The array for WGL context attributes was too small and could overflow</li>
  <li>[Win32] Bugfix: Alt+F4 hot key was not translated into <code>WM_CLOSE</code></li>
  <li>[Win32] Bugfix: The <code>GLFW_WINDOW_NO_RESIZE</code> window parameter was always zero</li>
  <li>[Win32] Bugfix: A test was missing for whether all available pixel formats had been disqualified</li>
</ul>

<h3>v2.7</h3>
<ul>
  <li>Added <code>GLFW_OPENGL_VERSION_MAJOR</code> and <code>GLFW_OPENGL_VERSION_MINOR</code>
      hints for versioned context creation</li>
  <li>Added <code>GLFW_OPENGL_FORWARD_COMPAT</code> hint for forward compatible context creation</li>
  <li>Added <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint for debug context creation</li>
  <li>Added <code>GLFW_OPENL_PROFILE</code> hint for context creation using profiles</li>
  <li>Added <code>GLFW_NO_GLU</code> macro for disabling the inclusion of the GLU header by the GLFW header</li>
  <li>Added platform-independent pixel format selection (not used on Mac OS X)</li>
  <li>Added support and symbols for several additional keys, including Windows/Command keys, Pause, Caps Lock and Menu</li>
  <li>Added conservative value clamping to <code>glfwOpenWindowHint</code></li>
  <li>Added a number of test programs mostly useful to developers of GLFW</li>
  <li>Added error messages and graceful failure to example programs</li>
  <li>Added Cocoa port for Mac OS X 10.5 Leopard and later</li>
  <li>Added vsync to all relevant example programs</li>
  <li>Added a rudimentary OpenGL 3.2+ core profile example program</li>
  <li>Updated Pascal (formerly Delphi) bindings to support more compilers</li>
  <li>Clarified and expanded the User's Guide and Reference Manual</li>
  <li>Fixed a number of compiler warnings in the example programs</li>
  <li>OpenGL version is now only parsed once, at window creation time</li>
  <li>Changed <code>glfwSwapBuffers</code> to call <code>glfwPollEvents</code> <em>after</em> buffer swap</li>
  <li>Changed all comments in public header file to plain C style</li>
  <li>Removed the <code>keytest</code> example program, as it was superseded by the <code>events</code> test</li>
  <li>Removed deprecated AmigaOS and DOS ports</li>
  <li>Removed all FPS counters from example programs</li>
  <li>Removed all unmaintained language bindings</li>
  <li>Removed support for Pelles C</li>
  <li>Removed broken Microsoft Visual C++ 6.0 build path</li>
  <li>[X11] Added <code>x11-dist-install</code> install target, intended for packagers of GLFW</li>
  <li>[X11] Added <code>x11-dist-clean</code> build target, intended for developers of GLFW</li>
  <li>[X11] Added support for <code>GLX_SGIX_fbconfig</code></li>
  <li>[X11] Added support for user-specified compilation flags via <code>CFLAGS</code></li>
  <li>[X11] Added documentation of configuration macros</li>
  <li>[X11] Implemented support for <code>GLFW_SYSTEM_KEYS</code></li>
  <li>[X11] Improved configuration and makefile creation logic</li>
  <li>[X11] Removed support for GLX version 1.2 and below</li>
  <li>[X11] Removed unnecessary calls to XSync</li>
  <li>[X11] Removed use of legacy window style atoms</li>
  <li>[X11] Bugfix: Repeated keys would sometimes leak through despite key repeat being disabled</li>
  <li>[X11] Bugfix: Fullscreen window resizing would cause color buffer clearing without taking framebuffer objects into account</li>
  <li>[X11] Bugfix: AltGr was not reported as right Alt</li>
  <li>[X11] Bugfix: Window colormap was not freed</li>
  <li>[X11] Bugfix: Close callback was called for <code>glfwCloseWindow</code></li>
  <li>[X11] Bugfix: Misspelt struct member in XF86VidMode code path</li>
  <li>[X11] Bugfix: Window decorations would not appear using certain versions of Compiz on Intel hardware</li>
  <li>[X11] Bugfix: Numeric keypad key symbols would change depending on Num Lock state</li>
  <li>[X11] Bugfix: Hidden cursor position snapped back when halfway from window center to edge</li>
  <li>[X11] Bugfix: Not properly verifying that the window was mapped before making certain calls caused a <code>BadMatch</code> error</li>
  <li>[X11] Bugfix: The response to <code>_NET_WM_PING</code> events was malformed</li>
  <li>[X11] Bugfix: Hidden cursor mode interfered with other applications when GLFW window was unfocused</li>
  <li>[X11] Bugfix: The invisible cursor objects used for hidden cursor mode were not freed</li>
  <li>[X11] Bugfix: EWMH-compliant window managers were incorrectly detected</li>
  <li>[X11] Bugfix: The EWMH code path for fullscreen windows did not present the window using <code>_NET_ACTIVE_WINDOW</code></li>
  <li>[X11] Bugfix: The EWMH code path for fullscreen windows did not send a <code>_NET_WM_STATE</code> client message</li>
  <li>[Carbon] Added Universal Binary build targets for all examples</li>
  <li>[Carbon] Renamed MacOSX port to Carbon</li>
  <li>[Carbon] Removed support for 10.2 Jaguar</li>
  <li>[Carbon] Deprecated Carbon port</li>
  <li>[Carbon] Bugfix: Using the Dock or menu Quit command did not call the close callback</li>
  <li>[Carbon] Bugfix: Key repeat events were not caught on 10.5 Leopard</li>
  <li>[Carbon] Bugfix: Certain keys were not reported</li>
  <li>[Carbon] Bugfix: Missing <code>-m32</code> flag caused build failure on 10.6 Snow Leopard</li>
  <li>[Carbon] Bugfix: Missing <code>-mmacosx-version-min</code> flag caused build failure on 10.5 Leopard</li>
  <li>[Carbon] Bugfix: <code>glfwOpenWindow</code> did not call <code>glClear</code></li>
  <li>[Win32] Added Visual C++ project files for all examples and test programs</li>
  <li>[Win32] Removed iterative context re-creation attempts for FSAA sample count</li>
  <li>[Win32] Bugfix: The Visual C++ GLFW DLL project file did not use the correct DEF file</li>
  <li>[Win32] Bugfix: WGL extensions were not detected and/or used correctly</li>
  <li>[Win32] Bugfix: Improper use of wParam for <code>WM_SYSCOMMAND</code></li>
  <li>[Win32] Bugfix: Derivatives of stream.c were not cleaned up by compile.bat</li>
  <li>[Win32] Bugfix: Pointer for <code>GetExtensionsStringARB</code> was not initialized</li>
  <li>[Win32] Bugfix: Makefiles contained the wrong GLFW API version</li>
  <li>[Win32] Bugfix: Numeric keypad key symbols would change depending on Num Lock state</li>
  <li>[Win32] Bugfix: <code>DllMain</code> performed a number of forbidden actions (by calling <code>glfwTerminate</code>)</li>
</ul>

<h3>v2.6</h3>
<ul>
  <li>Added <code>GLFW_FSAA_SAMPLES</code> multisampling hint</li>
  <li>Added <code>GLFW_WINDOW_NO_RESIZE</code> hint for non-resizable windows</li>
  <li>Added install targets for all Unix-like build targets</li>
  <li>Added <code>glfwReadMemoryImage</code> function for creating a <code>GLFWImage</code> object from an image file in a memory buffer</li>
  <li>Added <code>glfwLoadMemoryTexture2D</code> function for decoding an image file in a memory buffer into a texture</li>
  <li>Added <code>glfwLoadTextureImage2D</code> function for loading a <code>GLFWImage</code> object into a texture</li>
  <li>Added cross-compilation support for MinGW under a Unix-like host</li>
  <li>D bindings updated and all examples ported to modern D</li>
  <li>Delphi bindings updated to reflect API additions</li>
  <li>Bugfix: The interaction between key repeat and window focus code caused duplicate presses</li>
  <li>Bugfix: The mouse position was not properly updated when re-enabling the mouse cursor</li>
  <li>[Win32] Added pkg-config file generation for Cygwin</li>
  <li>[Win32] Added version number to window class name</li>
  <li>[Win32] Added optional loading of user provided window icon resource</li>
  <li>[Win32] Bugfix: Very small sleep periods were forced to higher value</li>
  <li>[Win32] Bugfix: The nmake makefile did not handle paths with spaces correctly</li>
  <li>[Win32] Bugfix: Removed assembly RDTSC timing code</li>
  <li>[Win32] Bugfix: Hidden cursor was not clipped to windowed windows</li>
  <li>[X11] Added XRandR code path for fullscreen windows</li>
  <li>[X11] Added building of shared library</li>
  <li>[X11] Added <a href="http://tronche.com/gui/x/icccm/">ICCCM</a> WM fullscreen hints</li>
  <li>[X11] Added support for the <code>_NET_WM_PING</code> protocol</li>
  <li>[X11] Added pkg-config file generation</li>
  <li>[X11] Added setting of WM size hints</li>
  <li>[X11] Bugfix: Removed assembly RDTSC timing code</li>
  <li>[X11] Bugfix: Window re-opening now works properly (including fullscreen windows)</li>
  <li>[X11] Bugfix: Potential crash bug in video mode matching code</li>
  <li>[X11] Bugfix: Static buffers imposed an invisible limit on reported video mode count</li>
  <li>[X11] Bugfix: Interaction with certain window managers when setting input focus would cause termination with a BadMatch error</li>
  <li>[X11] Bugfix: Keypad keys did not trigger the character callback</li>
  <li>[MacOSX] Added pkg-config file generation</li>
  <li>[MacOSX] Added building of shared library</li>
  <li>[MacOSX] Added building of Universal Binary libraries</li>
  <li>[MacOSX] Replaced fullscreen code path with CGL version</li>
  <li>[MacOSX] Bugfix: Binaries without bundles or resource forks now interact properly with the WM</li>
  <li>[MacOSX] Bugfix: Replaced Carbon event time source with <code>gettimeofday</code></li>
  <li>[MacOSX] Bugfix: Added code to minimize the dreaded OpenGL application startup jump</li>
  <li>[MacOSX] Bugfix: Fixed broken implementation of <code>glfwSetMousePos</code> for windowed mode</li>
  <li>[MacOSX] Bugfix: Fixed broken implementation of hidden cursor</li>
  <li>[MacOSX] Bugfix: Capturing all displays and not just the main one</li>
  <li>[AmigaOS] Obsoleted platform due to lack of maintainer and community interest</li>
  <li>[DOS] Obsoleted platform due to lack of maintainer and community interest</li>
</ul>

<h3>v2.5</h3>
<ul>
 <li>Added the function glfwWaitEvents</li>
 <li>Added window close callback, which enables a program to prevent a user
     from closing a window with the window manager</li>
 <li>Added window refresh callback, which is called when the window needs
     to be refreshed</li>
 <li>Added support for loading alpha textures (GLFW_ALPHA_MAP_BIT)</li>
 <li>Added support for the Lua programming language</li>
 <li>Added support for the D programming language</li>
 <li>Added support for the Pelles C compiler for Windows</li>
 <li>Added API level support for up to eight mouse buttons</li>
 <li>[Win32] Added support for up to five mouse buttons</li>
 <li>[Win32] Mouse down events capture mouse input</li>
 <li>[Win32] Bugfix: The DLL now exports glfwSetTime</li>
 <li>[Win32] Fix: The GLFW window is now placed in the upper left corner
     of the desktop working area</li>
 <li>[Win32/X11] Bugfix: More robust check for SwapInterval</li>
 <li>[X11] Added support for USB joysticks under Linux (/dev/input/js*)</li>
 <li>[X11] Bugfix: Added support for GLX extensions in glfwExtensionSupported</li>
 <li>[X11] Bugfix: More robust fullscreen mode (?)</li>
 <li>[X11] Bugfix: Runtime check of XF86VidMode support for the active
     display</li>
 <li>[X11] Bugfix: Some mouse button events were reported incorrectly</li>
 <li>[MacOSX] Added support for the input char callback.</li>
 <li>[MacOSX] Added video mode validation and duplicate elimination.</li>
 <li>[MacOSX] Switched to a new MakeBundle.sh script.</li>
 <li>[MacOSX] Added emulation of the window refresh callback.</li>
 <li>[MacOSX] Bugfix: The window and its associated resources are now
     properly released.</li>
 <li>[MacOSX] Bugfix: Removed support for more than eight mouse buttons.</li>
 <li>[x86 CPUs] Improved Intel mobile CPU detection (e.g. disables RDTSC
     timing on Centrino systems)</li>
</ul>

<h3>v2.4.2</h3>
<ul>
 <li>Preliminary native Mac OS X support (via the Carbon interface)</li>
 <li>Preliminary DOS support (DJGPP + Mesa)</li>
 <li>Changed license to the zlib license (almost identical to the previous
     GLFW license), so now GLFW is OSI Certified</li>
 <li>Rewrote the GLFW documentation in LaTeX, meaning several improvements
     (both visual and practical)</li>
 <li>Added the <code>support</code> folder to the distribution, which includes
     support for various languages</li>
 <li>[Win32] Added OpenWatcom compiler support (thanks Sebastian
     Schuberth!)</li>
 <li>[Win32] Changed fallback timer from GetTickCount to timeGetTime,
     which usually provides better resolution</li>
 <li>[Win32] Bugfix: Accumulator buffer selection should be more
     robust</li>
 <li>[Win32] Bugfix: If stereo rendering is requested, and no stereo pixel
     format could be created, glfwOpenWindow now fails</li>
 <li>[Win32] Bugfix: glfwSetWindowSize now sets the size of the client
     area, NOT the entire window, meaning that there is a 1:1 relationship
     between glfwSetWindowSize and glfwGetWindowSize</li>
 <li>[X11] Added FreeBSD and QNX support</li>
 <li>[X11] Added support for non-pthread capable systems</li>
 <li>[X11] Hopefully more robust configuration script (compile.sh)</li>
 <li>[X11] Bugfix: When mouse cursor is hidden, mouse sensitivity is no
     longer degraded</li>
 <li>[X11] Bugfix: Source files EOL was PC style (CR/LF) in v2.4.1 (blame
     my WinCVS configuration)</li>
 <li>[X11] Bugfix: When a GLFW window is closed, input focus is properly
     released</li>
 <li>[X11] Bugfix: Iconification of fullscreen windows should now work
     properly</li>
 <li>[x86 CPUs] Improved RDTSC timing (e.g. RDTSC support on single-CPU
     Intel Hyper-Threading enabled systems)</li>
 <li>[AmigaOS] Added joystick support</li>
 <li>[AmigaOS] Mouse cursor positioning is now implemented</li>
 <li>[AmigaOS] Added support for Geek Gadgets GCC</li>
 <li>[AmigaOS] Bugfix: glfwGetWindowParam now returns proper values for
     all parameters (except for GLFW_ACCELERATED)</li>
</ul>

<h3>v2.4.1</h3>
<ul>
 <li>Added AmigaOS support (preliminary)</li>
 <li>GLFW for the X Window System now works under Mac OS X</li>
 <li>[Win32] Bugfix: glfwWaitCond treated the timeout as milliseconds
     instead of seconds</li>
 <li>[X11] Bugfix: GLFW should now compile under IRIX v5.3</li>
 <li>[X11] Bugfix: GLFW should now compile with Kylix</li>
</ul>

<h3>v2.4</h3>
<ul>
 <li>Major source code rearrangement - much code is now shared between
     different platforms, and it should be easier to port GLFW to new
     platforms</li>
 <li>Added a Unicode keyboard text input interface (CharCallback)</li>
 <li>Keyboard key input is now slightly more internationalized: GLFW now
     uses 8-bit ISO-8859-1 encoding for keys representing printable
     characters (e.g. &quot;&Ouml;&quot;, &quot;&#167;&quot;, etc), as
     opposed to the previous 7-bit US-ASCII encoding</li>
 <li>Added more key constants (F13-F25, keypad '=')</li>
 <li>Added an enable/disable swicth for automatic event polling from
     glfwSwapBuffers</li>
 <li>[X11] Added support for sysctl for querying the number of processors
     in the system (if POSIX sysconf is not supported)</li>
 <li>[X11] Bugfix: compile.sh now works with Sun sh (and hopefully others
     too)</li>
 <li>[X11] Bugfix: compile.sh now detects the need for -ldl when dlopen is
     used</li>
 <li>[Win32] Bugfix: When closing a fullscreen window under Win 9x/NT4,
     the task bar icon now disappears properly</li>
 <li>[Win32] Bugfix: GLFW should now compile on a wider range of MSVC
     compilers (e.g. .NET) - Thanks Tim Little!</li>
</ul>

<h3>v2.3.2</h3>
<ul>
 <li>Removed the silly limitation of 100 threads (the thread information
     is now kept in a linked list)</li>
 <li>General source cleanup (window state is now kept in a single
     struct, plus some other minor changes)</li>
 <li>[X11] Added Solaris gethrtime() support (not tested yet), which
     should give an improved timer for Sun/Solaris stations</li>
 <li>[X11] Some fixes to the 'compile.sh' script (-O for non-gcc compilers
     and 'make x11-gcc' should now really force GCC)</li>
</ul>

<h3>v2.3.1</h3>
<ul>
 <li>[X11] A minimalist configuration script was added that solves the
     issue with glXGetProcAddressARB, and unifies all Unix/X11 Makefiles
     into one template Makefile (well, one for GLFW, and one for the
     examples)</li>
</ul>

<h3>v2.3</h3>
<ul>
 <li>Added OpenGL stereo rendering support</li>
 <li>Added a function for parsing the OpenGL version string
     (glfwGetGLVersion)</li>
 <li>[x86] Bugfix: Hopefully the CPU core clock dependent timer RDTSC will
     never be used on CPUs with variable core frequencies anymore</li>
 <li>[X11] Bugfix: GLFW could create stereo rendering capable windows,
     even if it was not requested (GLFW v2.2.x did not support selection
     of stereo rendering)</li>
 <li>[X11] Bugfix: glfwGetProcAddress returned NULL on most systems (even
     on those that supported glXGetProcAddressARB). Now GLFW assumes that
     glXGetProcAddressARB is supported on all systems, which solves the
     bug, but may result in compiler errors on some systems (please let me
     know if you have any related problems).</li>
</ul>

<h3>v2.2.3</h3>
<ul>
 <li>Bugfix: Checking for GL_SGIS_generate_mipmap is more robust</li>
 <li>Bugfix: glfwLoadTexture2D will now fail if no window is opened</li>
 <li>[Win32] Bugfix: Right shift was not detected under Win 9x/ME (it is
     still not as good as under NT/2K/XP, but at least you get right
     shifts)</li>
 <li>[X11] Bugfix: Visuals are now selected more accurately. For instance,
     glfwOpenWindow will no longer fail if you request a 24-bit color
     buffer if only 16-bit color visuals are available (which means that
     pong3d should work on 16-bit displays).</li>
</ul>

<h3>v2.2.2</h3>
<ul>
 <li>[Win32] Bugfix: Windows did not always get focus (this was a tough
     one!)</li>
 <li>[Win32] Bugfix: glfwGetWindowParam did not work with
     GLFW_ACCUM_*_BITS or GLFW_AUX_BUFFERS</li>
 <li>[X11] Bugfix: Linux joystick Y axis positions were reversed</li>
</ul>

<h3>v2.2.1</h3>
<ul>
 <li>[X11] Added joystick support for Linux</li>
</ul>

<h3>v2.2</h3>
<ul>
 <li>Added joystick support (only supported under Windows so far)</li>
 <li>Added joystick controls to pong3d.c (only 3 more lines of code)</li>
 <li>Added glfwOpenWindowHint() function</li>
 <li>It is now possible to specify a desired vertical monitor refresh
     rate (for fullscreen windows)</li>
 <li>It is now possible to request an accumulator buffer and auxiliary
     buffers</li>
 <li>Added glfwSetTime() function</li>
 <li>Added a GLFW conversion of the MESA/GLUT gears.c demo to the example
     programs</li>
 <li>[Win32] gdi32.dll and winmm.dll are now loaded dynamically when
     glfwInit() is called. This means that there is no need to link with
     gdi32.lib or winmm.lib when using the static version of GLFW, which
     should make GLFW usage more convenient.</li>
 <li>[Win32] Bugfix: Greatly improved keyboard input (detect left/right
     CTRL etc)</li>
 <li>[Win32] Bugfix: glfwExtensionSupported now detects all WGL extensions
     (e.g. WGL_ARB_pbuffer)</li>
 <li>[Win32] Bugfix: Mouse cursor was not re-hidden when a GLFW window was
     deselected and then selected again (with ALT+TAB)</li>
 <li>[X11] Bugfix: Minor bug in the SGI timer - and ugly (unintended) SGI
     timer debug info removed</li>
 <li>[X11] Bugfix: glfwGetDesktopMode and glfwGetVideoModes no longer give
     segmentation faults if no X server is available</li>
</ul>

<h3>v2.1</h3>
<ul>
 <li>Added image and texture loading capabilities (support for the TGA
     file format at the moment)</li>
 <li>Added a new example program (mipmaps.c) for showing off the automatic
     mipmap generation and texture loading capabilities of GLFW 2.1</li>
 <li>Removed the separate TGA loader (tga.c in the examples directory)
     since texture loading is supported natively by GLFW. Also updated the
     Pong3D demo to use GLFW texture loading instead of tga.c.</li>
 <li>Improved keyboard handling (e.g. numeric keypad keys can be
     detected)</li>
 <li>Added a new example program, keytest.c</li>
 <li>Changed the GLFWvidmode structure and the corresponding API functions
     to report pure color bits instead of the confusing (and unportable)
     "BPP" field</li>
 <li>Changed glfwSetWindowSize so that it operates in fullscreen mode
     too</li>
 <li>Added mouse wheel support under Windows (not Win95) and X11</li>
 <li>Added window iconification functions (glfwInconifyWindow and
     glfwRestoreWindow)</li>
 <li>Improved iconification and deactivation handling under both Windows
     and X11</li>
 <li>Made it possible to turn on/off key repeat (the default is now no key
     repeat)</li>
 <li>Added SGI hardware timer support (CLOCK_SGI_CYCLE) for improved
     timer resolution for SGI computers</li>
 <li>Added support for the free Borland C++ Builder 5.x compiler for
     Windows</li>
 <li>Made it possible to compiler GLFW as a Windows DLL using any of the
     supported compilers</li>
 <li>Some constants have changed names (e.g. GLFW_REDBITS is now called
     GLFW_RED_BITS)</li>
 <li>Updated GLFW documentation (GLFW Users Guide and GLFW Reference
     Manual) to reflect the changes in the API</li>
 <li>[Win32] Bugfix: Corrected Cygwin toplevel makefile entry</li>
 <li>[Win32] Bugfix: Fixed event lag bug</li>
 <li>[Win32] Bugfix: Fixed Radeon 8500 crash</li>
 <li>[X11] Bugfix: Fixed the window close bug</li>
 <li>[X11] Bugfix: Iconification/deactivation is now detected</li>
 <li>[X11] Bugfix: Non-OpenGL visuals are not listed anymore</li>
 <li>[X11] Bugfix: Undesired video mode changes on XFree86 are now prevented</li>
</ul>

<h3>v2.0.3</h3>
<ul>
 <li>Added precise CPU cycle based timing support (RDTSC) for x86
     CPUs (under both Windows and Unix)</li>
 <li>Added a makefile option for building for Windows with Cygwin</li>
 <li>Corrected the CC for Unix/X11 makefiles (-Wall is usually not a
     supported flag for CC, so it was removed from the CFLAGS list)</li>
</ul>

<h3>v2.0.2</h3>
<ul>
 <li>Added a makefile option for building for X11 with 'cc' rather than
     'gcc' (useful for IRIX users for instance).</li>
 <li>[Win32] Bugfix: Mouse coordinates are now relative to the window
     upper left corner, which also means that disabling the mouse cursor
     in windowed mode should work much better.</li>
 <li>[X11] Bugfix: Added a bunch of more keys that are recognized by
     GLFW.</li>
 <li>[X11] Bugfix: glfwGetNumberOfProcessors now works for IRIX (earlier
     versions of GLFW would not compile under IRIX).</li>
</ul>

<h3>v2.0.1</h3>
<ul>
 <li>glfwTerminate() will now be called automatically upon normal program
     termination (using atexit())</li>
 <li>[Win32] Bugfix: Buffer-swapping did not work if a window lost
     focus.</li>
 <li>[Win32] Bugfix: Top level Makefile did not work under Windows
     9x.</li>
 <li>[Win32] Bugfix: NULL declaratoin in glfw.h was not MSVC 7.x
     compatible.</li>
 <li>[X11] Bugfix: GLFW would not build with C++ (e.g. g++).</li>
</ul>

<h3>v2.0</h3>
<ul>
 <li>GLFW is no longer a single source file, but an entire link library.</li>
 <li>Added multi threading support.</li>
 <li>Added more window control.</li>
 <li>New distribution layout (both Win32 and X11 version in same archive).</li>
 <li>Added GLFW Users Manual and GLFW Reference Manual as PDF files.</li>
 <li>Some bugfixes.</li>
</ul>

<h3>v1.0.2</h3>
<ul>
 <li>Improved fullscreen functionality.</li>
 <li>Added fullscreen support for X11.</li>
</ul>

<h3>v1.0.1</h3>
<ul>
 <li>Added support for the X Window System.</li>
 <li>Fixed bugs.</li>
</ul>

<h3>v1.0.0</h3>
<ul>
 <li>First release.</li>
 <li>Only supported Windows.</li>
</ul>


<a name="structure"></a>
<h2>6. Directory structure of the GLFW distribution</h2>

<p>Here is an overview of the directory structure of the GLFW distribution:

<p>
<table border=0 cellspacing=0>
<tr valign="top"><td width=100><code>docs</code></td><td>&nbsp;</td><td>GLFW manuals in PDF format</td></tr>
<tr valign="top"><td><code>examples</code></td><td>&nbsp;</td><td>Several example programs in C</td></tr>
<tr valign="top"><td><code>include</code></td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;GL</code></td><td>&nbsp;</td><td>Here is the GLFW C/C++ include file</td></tr>
<tr valign="top"><td><code>lib</code></td><td>&nbsp;</td><td>The source code for GLFW</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;cocoa</code></td><td>&nbsp;</td><td>Mac OS X/Cocoa specific implementation</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;win32</code></td><td>&nbsp;</td><td>Windows specific implementation</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;x11</code></td><td>&nbsp;</td><td>Unix/X11 specific implementation</td></tr>
<tr valign="top"><td><code>support</code></td><td>&nbsp;</td><td>&nbsp;</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;d</code></td><td>&nbsp;</td><td>D support</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;msvc90</code></td><td>&nbsp;</td><td>Project files for Visual C++ 9.0</td></tr>
<tr valign="top"><td><code>&nbsp;&nbsp;&nbsp;pascal</code></td><td>&nbsp;</td><td>Pascal support</td></tr>
<tr valign="top"><td><code>tests</code></td><td>&nbsp;</td><td>Several test programs in C</td></tr>
</table>


<a name="contact"></a>
<h2>7. Contacting the project</h2>

<p>The official website for GLFW is <a href="http://www.glfw.org/">glfw.org</a>.
It contains the latest version of GLFW, news and other information that is
useful for OpenGL development.</p>

<p>If you have questions related to the use of GLFW, we have a
<a href="https://sourceforge.net/forum/forum.php?forum_id=247562">user's web forum</a>,
and a
<a href="https://lists.sourceforge.net/lists/listinfo/glfw-user">user's mailing list</a>
on SF.net, and the registered IRC channel <code>#glfw</code> on
<a href="http://freenode.net/">Freenode</a>.</p>

<p>If you have a bug to report, a patch to submit or a feature you'd like to
request, please file it in one of the
<a href="http://sourceforge.net/tracker/?group_id=72569">GLFW trackers</a> on SF.net.</p>

Finally, if you're interested in helping out with the development of
GLFW or porting it to your favorite platform, we have a
<a href="https://lists.stacken.kth.se/mailman/listinfo/glfw-dev">developer's mailing list</a>,
or you could join us on <code>#glfw</code>.


<a name="credits"></a>
<h2>8. Acknowledgements</h2>

<p>GLFW exists because people around the world donated their time and lent
their skills.  Special thanks go out to:</p>

<ul>

  <li>artblanc, for a patch replacing a deprecated Core Graphics call</li>

  <li>Bobyshev Alexander and Martins Mozeiko, for the original proposal of
  an FSAA hint and their work on the Win32 implementation of FSAA</li>

  <li>Keith Bauer, for his invaluable help with porting and maintaining GLFW on
  Mac OS X, and for his many ideas</li>

  <li>John Bartholomew, for adding proper version number and soname to the
  shared library build</li>

  <li>Lambert Clara, for a bug fix for the modes test</li>

  <li>Jarrod Davis, for the Delphi port of GLFW</li>

  <li>Olivier Delannoy, for the initial implementation of FSAA support on
  X11, cross-compiling support for MinGW and general extreme usefulness</li>

  <li>Paul R. Deppe, who helped with Cygwin support, and made an
  adaption of <a href="http://plib.sourceforge.net/">PLIB</a>
  so that it can use GLFW (instead of GLUT)</li>

  <li>Jonathan Dummer, for submitting a patch fixing an input bug on Win32 and
  adding logic for the <code>GLFW_ICON</code> resource</li>

  <li>Ralph Eastwood, for the initial design and implementation of the gamma
  correction and clipboard APIs</li>

  <li>GeO4d, for the implementation of cursor enter/leave notifications on
  Win32.</li>

  <li>Gerald Franz, who made GLFW compile under IRIX, and supplied patches
  for the X11 keyboard translation routine</li>

  <li>Marcus Geelnard, the original author and long-time maintainer of GLFW,
  without whose brilliant work none of this would have happened</li>

  <li>Stefan Gustavson, for quick and thorough testing of GLFW on many and
  varied operating systems and hardware configurations</li>

  <li>Sylvain Hellegouarch, for support, bug reports and testing</li>

  <li>Alex Holkner, for writing the code from which the Compiz/Intel fix was
  stolen</li>

  <li>Toni Jovanoski, for helping with the MASM32 port of GLFW, and
  supplying the example program and fixed OpenGL and GLU bindings for
  MASM32</li>

  <li>Cameron King, for reporting a hidden cursor mouse bug on X11</li>

  <li>Peter Knut, for his many and detailed reports of difficult to find input
  bugs</li>

  <li>Robin Leffmann, for his work on Mac OS X and other platforms, and his
  invaluable support</li>

  <li>Glenn Lewis, for helping out with support for the D programming
  language</li>

  <li>Shane Liesegang, for providing a bug fix relating to Cocoa window
  restoration</li>

  <li>Tristam MacDonald, for his bug reports and feedback on the Cocoa port</li>

  <li>Hans 'Hanmac' Mackowiak, for the initial implementation of cursor
  enter/leave callbacks on X11, adding UTF-8 window title support on X11 and
  a fix for the Xkb support</li>

  <li>David Medlock, for doing the initial Lua port</li>

  <li>Marcel Metz, for the initial implementation of multi-monitor support on
  X11 and Win32</li>

  <li>Kenneth Miller, for his many and detailed bug reports on Win32</li>

  <li>Jeff Molofee, the author of the excellent OpenGL tutorials at <a
  href="http://nehe.gamedev.net/">NeHe Productions</a>.
  Much of the Windows code of GLFW was originally based on Jeff's
  code</li>

  <li>Arturo J. Pérez, for a bug fix for cursor tracking on Mac OS X 10.6 Snow
  Leopard</li>

  <li>Douglas C. Schmidt and Irfan Pyarali, for their excellent article
  <a href="http://www.cs.wustl.edu/~schmidt/win32-cv-1.html">Strategies for Implementing POSIX Condition Variables on Win32</a></li>

  <li>Sebastian Schuberth, for the OpenWatcom makefiles</li>

  <li>Matt Sealey, for helping with the MorphOS port</li>

  <li>Steve Sexton, for reporting an input bug in the Carbon port</li>

  <li>Dmitri Shuralyov, for support, bug reports, bug fixes and testing</li>

  <li>Daniel Skorupski, for reporting a bug in the Win32 DEF file</li>

  <li>Bradley Smith, for his updates of the D support and his ports of the
  remaining examples to the D language</li>

  <li>Julian Squires, for submitting a patch for a bug in the key repeat logic on X11</li>

  <li>Johannes Stein, for maintaining the Pascal bindings</li>

  <li>Sergey Tikhomirov, for the initial implementation of joystick support on
  Mac OS X</li>

  <li>Samuli Tuomola, for support, bug reports and testing</li>

  <li>Torsten Walluhn, for fixing various compilation issues on OS X</li>

  <li>Frank Wille, for helping with the AmigaOS port and making GLFW
  compile under IRIX 5.3</li>

  <li>Santi Zupancic, for support, bug reports and testing</li>

  <li>Lasse Öörni, for submitting patches for the input code of the Win32 and X11 ports</li>

  <li>Дмитри Малышев, for the idea of a <code>GLFW_NO_GLU</code> macro</li>

  <li>blanco, for submitting a patch for a deprecation bug in the Cocoa port</li>

  <li>heromyth, for reporting a bug in the D bindings</li>

  <li>Ozzy @ <a href="http://www.orkysquad.org">Orkysquad</a>,
  for his dedication to GLFW, for debugging my source, and for his
  valuable experience with game development</li>

  <li>Peoro, for reporting a bug in the <code>_NET_WM_PING</code> response</li>

  <li>TTK-Bandit, for submitting a number of input patches adding many missing
  keys to the Win32 and X11 ports</li>

  <li>yuriks, for reporting a bug in Win32 context creation</li>

  <li>All the unmentioned and anonymous contributors in the GLFW community, for
  bug reports, patches, feedback and encouragement</li>

  <li><a href="http://www.opengl.org/">OpenGL.org</a>, and all the people on
  the discussion forums there that have provided help during the development of
  GLFW</li>

</ul>

</body>
</html>
