<!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">
<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">
<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">
<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">
<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/glfw.h</code> header file, i.e.:</p>

<blockquote><code>#include &lt;GL/glfw.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/glfw.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">
<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>glfwIsWindow</code> function for verifying that a given window handle is (still) valid</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>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 a parameter to <code>glfwOpenWindow</code> for specifying a context the new window's context will share objects with</li>
  <li>Added initial window title parameter to <code>glfwOpenWindow</code></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>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>Renamed <code>glfw.h</code> to <code>glfw3.h</code> to avoid conflicts with 2.x series</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>version</code> test to <code>glfwinfo</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 scrolling interface</li>
  <li>Replaced <code>glfwEnable</code> and <code>glfwDisable</code> with <code>glfwGetInputMode</code> and <code>glfwSetInputMode</code></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>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>[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>[X11] Added support for the <code>GLX_EXT_swap_control</code> extension as an alternative 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>
</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">
<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">
<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">
<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>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 API</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>Tristam MacDonald, for his bug reports and feedback on the Cocoa port</li>

  <li>Hans 'Hanmac' Mackowiak, for 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>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>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 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>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>
