<!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>glfwInitWithModels</code> function and <code>GLFWallocator</code> and <code>GLFWthreadmodel</code> types for pluggable memory allocation and threading models</li>
  <li>Added <code>glfwCopyContext</code> function for copying OpenGL state categories between contexts</li>
  <li>Added <code>glfwSetCursorMode</code> function for controlling per-window cursor mode, replacing <code>GLFW_MOUSE_CURSOR</code></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 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>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>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>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>version</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] 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>[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] Bugfix: Calling <code>glXCreateContextAttribsARB</code> with an unavailable OpenGL version caused the application to terminate with a <code>BadMatch</code> Xlib error</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>
</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>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>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>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>
