Formatting.

This commit is contained in:
Camilla Berglund 2013-06-09 12:49:13 +02:00
parent 8c069f3753
commit c8166e58d3

391
README.md
View File

@ -26,6 +26,7 @@ GLFW 3 API.
To compile GLFW and the accompanying example programs, you will need the To compile GLFW and the accompanying example programs, you will need the
[CMake](http://www.cmake.org/) build system. [CMake](http://www.cmake.org/) build system.
### Dependencies ### Dependencies
#### X11 dependencies #### X11 dependencies
@ -36,12 +37,14 @@ Debian GNU/Linux, you need to install the `xorg-dev` and `libglu1-mesa-dev`
packages. Note that using header files from Mesa *will not* tie your binary to packages. Note that using header files from Mesa *will not* tie your binary to
the Mesa implementation of OpenGL. the Mesa implementation of OpenGL.
### CMake options ### CMake options
There are a number of CMake build options for GLFW, although not all are There are a number of CMake build options for GLFW, although not all are
available on all supported platforms. Some of these are de facto standards available on all supported platforms. Some of these are de facto standards
among CMake users and so have no `GLFW_` prefix. among CMake users and so have no `GLFW_` prefix.
#### Shared options #### Shared options
`BUILD_SHARED_LIBS` determines whether GLFW is built as a static `BUILD_SHARED_LIBS` determines whether GLFW is built as a static
@ -57,6 +60,7 @@ along with the library.
`GLFW_BUILD_TESTS` determines whether the GLFW test programs are `GLFW_BUILD_TESTS` determines whether the GLFW test programs are
built along with the library. built along with the library.
#### Mac OS X specific options #### Mac OS X specific options
`GLFW_USE_CHDIR` determines whether `glfwInit` changes the current `GLFW_USE_CHDIR` determines whether `glfwInit` changes the current
@ -67,11 +71,13 @@ directory of bundled applications to the `Contents/Resources` directory.
`GLFW_BUILD_UNIVERSAL` determines whether to build Universal Binaries. `GLFW_BUILD_UNIVERSAL` determines whether to build Universal Binaries.
#### Windows specific options #### Windows specific options
`USE_MSVC_RUNTIME_LIBRARY_DLL` determines whether to use the DLL version of the `USE_MSVC_RUNTIME_LIBRARY_DLL` determines whether to use the DLL version of the
Visual C++ runtime library. Visual C++ runtime library.
#### EGL specific options #### EGL specific options
`GLFW_USE_EGL` determines whether to use EGL instead of the platform-specific `GLFW_USE_EGL` determines whether to use EGL instead of the platform-specific
@ -95,8 +101,8 @@ CMake.
There are two aspects to using GLFW: There are two aspects to using GLFW:
* Using the GLFW API - Using the GLFW API
* Compiling and linking programs using the GLFW library - Compiling and linking programs using the GLFW library
The first point is covered in the WIP The first point is covered in the WIP
[reference manual](http://www.glfw.org/TEMP/3.0/). [reference manual](http://www.glfw.org/TEMP/3.0/).
@ -125,10 +131,10 @@ does not try to redefine those symbols.
In other words: In other words:
* Do *not* include the OpenGL headers yourself, as GLFW does this for you - Do *not* include the OpenGL headers yourself, as GLFW does this for you
* Do *not* include `windows.h` or other platform-specific headers unless you - Do *not* include `windows.h` or other platform-specific headers unless you
plan on using those APIs directly plan on using those APIs directly
* If you *do* need to include such headers, do it *before* including - If you *do* need to include such headers, do it *before* including
the GLFW one and it will detect this the GLFW one and it will detect this
If you are using an OpenGL extension loading library such as If you are using an OpenGL extension loading library such as
@ -136,6 +142,7 @@ If you are using an OpenGL extension loading library such as
*before* the GLFW one. The GLEW header defines macros that disable any OpenGL *before* the GLFW one. The GLEW header defines macros that disable any OpenGL
header that the GLFW header includes and GLEW will work as expected. header that the GLFW header includes and GLEW will work as expected.
#### GLFW header option macros #### GLFW header option macros
These macros may be defined before the inclusion of the GLFW header. These macros may be defined before the inclusion of the GLFW header.
@ -162,7 +169,6 @@ sense if you are using OpenGL.
### Link with the right libraries ### Link with the right libraries
#### Using GLFW from CMake #### Using GLFW from CMake
The `GLFW_LIBRARIES` cache variable contains all link-time dependencies of GLFW The `GLFW_LIBRARIES` cache variable contains all link-time dependencies of GLFW
@ -197,7 +203,6 @@ dependencies, but you still have to link against `opengl32` if your program uses
OpenGL and `glu32` if it uses GLU. OpenGL and `glu32` if it uses GLU.
#### Unix library #### Unix library
GLFW supports [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/), GLFW supports [pkg-config](http://www.freedesktop.org/wiki/Software/pkg-config/),
@ -255,180 +260,180 @@ GLFW.
## Changes for version 3.0 ## Changes for version 3.0
* Added `GLFWmonitor` and updated monitor-related functions to take a monitor - Added `GLFWmonitor` and updated monitor-related functions to take a monitor
handle handle
* Added `glfwGetMonitors` and `glfwGetPrimaryMonitor` for enumerating available - Added `glfwGetMonitors` and `glfwGetPrimaryMonitor` for enumerating available
monitors monitors
* Added `glfwGetMonitorPos`, `glfwGetMonitorPhysicalSize` and - Added `glfwGetMonitorPos`, `glfwGetMonitorPhysicalSize` and
`glfwGetMonitorName` for retrieving monitor properties `glfwGetMonitorName` for retrieving monitor properties
* Added `glfwSetMonitorCallback` and `GLFWmonitorfun` for notification of - Added `glfwSetMonitorCallback` and `GLFWmonitorfun` for notification of
changes in the set of available monitors changes in the set of available monitors
* Added `GLFWwindow` and updated window-related functions and callbacks to take - Added `GLFWwindow` and updated window-related functions and callbacks to take
a window handle a window handle
* Added `glfwSetWindowShouldClose` and `glfwWindowShouldClose` for setting and - Added `glfwSetWindowShouldClose` and `glfwWindowShouldClose` for setting and
retrieving the window close flag retrieving the window close flag
* Added `glfwGetWindowPos` for retrieving the position of a window - Added `glfwGetWindowPos` for retrieving the position of a window
* Added `glfwDefaultWindowHints` for resetting all window hints to their - Added `glfwDefaultWindowHints` for resetting all window hints to their
default values default values
* Added `glfwMakeContextCurrent` for making the context of the specified window - Added `glfwMakeContextCurrent` for making the context of the specified window
current current
* Added `glfwSetErrorCallback`, `GLFWerrorfun` and error type tokens for - Added `glfwSetErrorCallback`, `GLFWerrorfun` and error type tokens for
receiving error notifications receiving error notifications
* Added `glfwSetWindowUserPointer` and `glfwGetWindowUserPointer` for - Added `glfwSetWindowUserPointer` and `glfwGetWindowUserPointer` for
per-window user pointers per-window user pointers
* Added `glfwGetVersionString` for determining which code paths were enabled at - Added `glfwGetVersionString` for determining which code paths were enabled at
compile time compile time
* Added `glfwGetWindowMonitor` for querying the monitor, if any, of the - Added `glfwGetWindowMonitor` for querying the monitor, if any, of the
specified window specified window
* Added `glfwGetFramebufferSize` and `glfwSetFramebufferSizeCallback` for - Added `glfwGetFramebufferSize` and `glfwSetFramebufferSizeCallback` for
receiving the current size, in pixels, of the framebuffer receiving the current size, in pixels, of the framebuffer
* Added `glfwSetWindowPosCallback` and `GLFWwindowposfun` for receiving window - Added `glfwSetWindowPosCallback` and `GLFWwindowposfun` for receiving window
position events position events
* Added `glfwSetWindowFocusCallback` and `GLFWwindowfocusfun` for receiving - Added `glfwSetWindowFocusCallback` and `GLFWwindowfocusfun` for receiving
window focus events window focus events
* Added `glfwSetWindowIconifyCallback` and `GLFWwindowiconifyfun` for receiving - Added `glfwSetWindowIconifyCallback` and `GLFWwindowiconifyfun` for receiving
window iconification events window iconification events
* Added `glfwGetClipboardString` and `glfwSetClipboardString` for interacting - Added `glfwGetClipboardString` and `glfwSetClipboardString` for interacting
with the system clipboard with the system clipboard
* Added `glfwGetJoystickName` for retrieving the name of a joystick - Added `glfwGetJoystickName` for retrieving the name of a joystick
* Added `glfwGetCurrentContext` for retrieving the window whose OpenGL context - Added `glfwGetCurrentContext` for retrieving the window whose OpenGL context
is current is current
* Added `GLFW_SRGB_CAPABLE` for requesting sRGB capable framebuffers - Added `GLFW_SRGB_CAPABLE` for requesting sRGB capable framebuffers
* Added `GLFW_CLIENT_API` and its values `GLFW_OPENGL_API` and - Added `GLFW_CLIENT_API` and its values `GLFW_OPENGL_API` and
`GLFW_OPENGL_ES_API` for selecting client API `GLFW_OPENGL_ES_API` for selecting client API
* Added `GLFW_CONTEXT_ROBUSTNESS` and values `GLFW_NO_ROBUSTNESS`, - Added `GLFW_CONTEXT_ROBUSTNESS` and values `GLFW_NO_ROBUSTNESS`,
`GLFW_NO_RESET_NOTIFICATION` and `GLFW_LOSE_CONTEXT_ON_RESET` for `GLFW_NO_RESET_NOTIFICATION` and `GLFW_LOSE_CONTEXT_ON_RESET` for
`GL_ARB_robustness` support `GL_ARB_robustness` support
* Added `GLFW_OPENGL_REVISION` to make up for removal of `glfwGetGLVersion` - Added `GLFW_OPENGL_REVISION` to make up for removal of `glfwGetGLVersion`
* Added `GLFW_INCLUDE_GLCOREARB` macro for including `GL/glcorearb.h` instead of - Added `GLFW_INCLUDE_GLCOREARB` macro for including `GL/glcorearb.h` instead of
`GL/gl.h` `GL/gl.h`
* Added `GLFW_INCLUDE_ES1` macro for telling the GLFW header to use `GLES/gl.h` - Added `GLFW_INCLUDE_ES1` macro for telling the GLFW header to use `GLES/gl.h`
instead of `GL/gl.h` instead of `GL/gl.h`
* Added `GLFW_INCLUDE_ES2` macro for telling the GLFW header to use - Added `GLFW_INCLUDE_ES2` macro for telling the GLFW header to use
`GLES2/gl2.h` instead of `GL/gl.h` `GLES2/gl2.h` instead of `GL/gl.h`
* Added `GLFW_INCLUDE_NONE` macro for telling the GLFW header to not include - Added `GLFW_INCLUDE_NONE` macro for telling the GLFW header to not include
any client API header any client API header
* Added `GLFW_VISIBLE` window hint and parameter for controlling and polling - Added `GLFW_VISIBLE` window hint and parameter for controlling and polling
window visibility window visibility
* Added `GLFW_REPEAT` key action for repeated keys - Added `GLFW_REPEAT` key action for repeated keys
* Added scancode parameter to key callback - Added scancode parameter to key callback
* Added `refreshRate` member to `GLFWvidmode` struct - Added `refreshRate` member to `GLFWvidmode` struct
* Added key modifier parameter to key and mouse button callbacks - Added key modifier parameter to key and mouse button callbacks
* Added `windows` simple multi-window test program - Added `windows` simple multi-window test program
* Added `sharing` simple OpenGL object sharing test program - Added `sharing` simple OpenGL object sharing test program
* Added `modes` video mode enumeration and setting test program - Added `modes` video mode enumeration and setting test program
* Added `threads` simple multi-threaded rendering test program - Added `threads` simple multi-threaded rendering test program
* Added `glfw3native.h` header and platform-specific functions for explicit - Added `glfw3native.h` header and platform-specific functions for explicit
access to native display, window and context handles access to native display, window and context handles
* Added `glfwSetGamma`, `glfwSetGammaRamp` and `glfwGetGammaRamp` functions and - Added `glfwSetGamma`, `glfwSetGammaRamp` and `glfwGetGammaRamp` functions and
`GLFWgammaramp` type for monitor gamma ramp control `GLFWgammaramp` type for monitor gamma ramp control
* Added window parameter to `glfwSwapBuffers` - Added window parameter to `glfwSwapBuffers`
* Changed buffer bit depth parameters of `glfwOpenWindow` to window hints - Changed buffer bit depth parameters of `glfwOpenWindow` to window hints
* Changed `glfwCreateWindow` and `glfwSetWindowTitle` to use UTF-8 encoded - Changed `glfwCreateWindow` and `glfwSetWindowTitle` to use UTF-8 encoded
strings strings
* Changed `glfwGetProcAddress` to return a (generic) function pointer - Changed `glfwGetProcAddress` to return a (generic) function pointer
* Changed `glfwGetVideoModes` to return a dynamic, unlimited number of video - Changed `glfwGetVideoModes` to return a dynamic, unlimited number of video
modes for the specified monitor modes for the specified monitor
* Changed cursor position to double-precision floating-point - Changed cursor position to double-precision floating-point
* Changed default cursor mode for fullscreen to normal - Changed default cursor mode for fullscreen to normal
* Renamed header directory `GL` to `GLFW` - Renamed header directory `GL` to `GLFW`
* Renamed `glfw.h` to `glfw3.h` to avoid conflicts with 2.x series - Renamed `glfw.h` to `glfw3.h` to avoid conflicts with 2.x series
* Renamed `glfwOpenWindowHint` to `glfwWindowHint` - Renamed `glfwOpenWindowHint` to `glfwWindowHint`
* Renamed `glfwGetWindowParam` to `glfwGetWindowAttrib` - Renamed `glfwGetWindowParam` to `glfwGetWindowAttrib`
* Renamed `GLFW_ACTIVE` to `GLFW_FOCUSED` - Renamed `GLFW_ACTIVE` to `GLFW_FOCUSED`
* Renamed `GLFW_FSAA_SAMPLES` to `GLFW_SAMPLES` - Renamed `GLFW_FSAA_SAMPLES` to `GLFW_SAMPLES`
* Renamed `GLFW_WINDOW_NO_RESIZE` to `GLFW_RESIZABLE` - Renamed `GLFW_WINDOW_NO_RESIZE` to `GLFW_RESIZABLE`
* Renamed `GLFW_BUILD_DLL` to `_GLFW_BUILD_DLL` - Renamed `GLFW_BUILD_DLL` to `_GLFW_BUILD_DLL`
* Renamed `version` test to `glfwinfo` - Renamed `version` test to `glfwinfo`
* Renamed `GLFW_NO_GLU` to `GLFW_INCLUDE_GLU` and made it disabled by default - Renamed `GLFW_NO_GLU` to `GLFW_INCLUDE_GLU` and made it disabled by default
* Renamed `glfwGetJoystickPos` to `glfwGetJoystickAxes` to match - Renamed `glfwGetJoystickPos` to `glfwGetJoystickAxes` to match
`glfwGetJoystickButtons` `glfwGetJoystickButtons`
* Renamed mouse position functions to cursor position equivalents - Renamed mouse position functions to cursor position equivalents
* Replaced `glfwOpenWindow` and `glfwCloseWindow` with `glfwCreateWindow` and - Replaced `glfwOpenWindow` and `glfwCloseWindow` with `glfwCreateWindow` and
`glfwDestroyWindow` `glfwDestroyWindow`
* Replaced `glfwGetDesktopMode` width `glfwGetVideoMode` - Replaced `glfwGetDesktopMode` width `glfwGetVideoMode`
* Replaced ad hoc build system with CMake - Replaced ad hoc build system with CMake
* Replaced layout-dependent key codes with single, platform-independent set - Replaced layout-dependent key codes with single, platform-independent set
based on US layout based on US layout
* Replaced mouse wheel interface with two-dimensional, floating point scrolling - Replaced mouse wheel interface with two-dimensional, floating point scrolling
interface interface
* Replaced `glfwEnable` and `glfwDisable` with `glfwGetInputMode` and - Replaced `glfwEnable` and `glfwDisable` with `glfwGetInputMode` and
`glfwSetInputMode` `glfwSetInputMode`
* Replaced `joystick` test with graphical version - Replaced `joystick` test with graphical version
* Replaced automatic closing of windows with the window close flag - Replaced automatic closing of windows with the window close flag
* Removed the `GLFW_KEY_REPEAT` input option - Removed the `GLFW_KEY_REPEAT` input option
* Removed event auto-polling and the `GLFW_AUTO_POLL_EVENTS` window enable - Removed event auto-polling and the `GLFW_AUTO_POLL_EVENTS` window enable
* Removed the Win32 port .def files - Removed the Win32 port .def files
* Removed the entire threading API - Removed the entire threading API
* Removed the entire image loading API - Removed the entire image loading API
* Removed deprecated Carbon port - Removed deprecated Carbon port
* Removed registering `glfwTerminate` with `atexit` - Removed registering `glfwTerminate` with `atexit`
* Removed `glfwSleep` function - Removed `glfwSleep` function
* Removed `glfwGetNumberOfProcessors` function - Removed `glfwGetNumberOfProcessors` function
* Removed `glfwGetGLVersion` function - Removed `glfwGetGLVersion` function
* Removed `GLFW_OPENED` window parameter - Removed `GLFW_OPENED` window parameter
* Removed `GLFW_WINDOW` and `GLFW_FULLSCREEN` - Removed `GLFW_WINDOW` and `GLFW_FULLSCREEN`
* Removed nonsensical key actions for Unicode character input - Removed nonsensical key actions for Unicode character input
* Removed `GLFWCALL` and `GLFWAPIENTRY` macros for stdcall calling convention - Removed `GLFWCALL` and `GLFWAPIENTRY` macros for stdcall calling convention
* Removed `GLFW_ACCELERATED` window parameter - Removed `GLFW_ACCELERATED` window parameter
* Removed default framebuffer attributes from `glfwGetWindowParam` - Removed default framebuffer attributes from `glfwGetWindowParam`
* Bugfix: The default OpenGL version in the `glfwinfo` test was set to 1.1 - Bugfix: The default OpenGL version in the `glfwinfo` test was set to 1.1
* Bugfix: The OpenGL profile and forward-compatibility window parameters were - Bugfix: The OpenGL profile and forward-compatibility window parameters were
not saved after context creation not saved after context creation
* Bugfix: The FSAA test did not check for the availability of - Bugfix: The FSAA test did not check for the availability of
`GL_ARB_multisample` `GL_ARB_multisample`
* Bugfix: Cursor centering upon leaving captured cursor mode was reported - Bugfix: Cursor centering upon leaving captured cursor mode was reported
before the mode was changed to non-captured before the mode was changed to non-captured
* [Cocoa] Added support for OpenGL 3.2 core profile in 10.7 Lion and above - [Cocoa] Added support for OpenGL 3.2 core profile in 10.7 Lion and above
* [Cocoa] Added support for high-DPI (Retina) monitors - [Cocoa] Added support for high-DPI (Retina) monitors
* [Cocoa] Added support for joysticks - [Cocoa] Added support for joysticks
* [Cocoa] Postponed menu creation to first window creation - [Cocoa] Postponed menu creation to first window creation
* [Cocoa] Replaced `NSDate` time source with `mach_absolute_time` - [Cocoa] Replaced `NSDate` time source with `mach_absolute_time`
* [Cocoa] Replaced all deprecated CoreGraphics calls with non-deprecated - [Cocoa] Replaced all deprecated CoreGraphics calls with non-deprecated
counterparts counterparts
* [Cocoa] Bugfix: The `NSOpenGLPFAFullScreen` pixel format attribute caused - [Cocoa] Bugfix: The `NSOpenGLPFAFullScreen` pixel format attribute caused
creation to fail on some machines creation to fail on some machines
* [Cocoa] Bugfix: `glfwCreateWindow` did not properly enforce the - [Cocoa] Bugfix: `glfwCreateWindow` did not properly enforce the
forward-compatible and context profile hints forward-compatible and context profile hints
* [Cocoa] Bugfix: The loop condition for saving video modes used the wrong - [Cocoa] Bugfix: The loop condition for saving video modes used the wrong
index variable index variable
* [Cocoa] Bugfix: The OpenGL framework was not retrieved, making - [Cocoa] Bugfix: The OpenGL framework was not retrieved, making
`glfwGetProcAddress` crash `glfwGetProcAddress` crash
* [Cocoa] Bugfix: `glfwInit` changed the current directory for unbundled - [Cocoa] Bugfix: `glfwInit` changed the current directory for unbundled
executables executables
* [Cocoa] Bugfix: The `GLFW_WINDOW_NO_RESIZE` window parameter was always zero - [Cocoa] Bugfix: The `GLFW_WINDOW_NO_RESIZE` window parameter was always zero
* [Cocoa] Bugfix: The cursor position incorrectly rounded during conversion - [Cocoa] Bugfix: The cursor position incorrectly rounded during conversion
* [Cocoa] Bugfix: Cursor positioning led to nonsensical results for fullscreen - [Cocoa] Bugfix: Cursor positioning led to nonsensical results for fullscreen
windows windows
* [Cocoa] Bugfix: The GLFW window was flagged as restorable - [Cocoa] Bugfix: The GLFW window was flagged as restorable
* [X11] Added support for the `GLX_EXT_swap_control` and - [X11] Added support for the `GLX_EXT_swap_control` and
`GLX_MESA_swap_control` extensions as alternatives to `GLX_MESA_swap_control` extensions as alternatives to
`GLX_SGI_swap_control` `GLX_SGI_swap_control`
* [X11] Added the POSIX `CLOCK_MONOTONIC` time source as the preferred method - [X11] Added the POSIX `CLOCK_MONOTONIC` time source as the preferred method
* [X11] Added dependency on libm, where present - [X11] Added dependency on libm, where present
* [X11] Added support for the `_NET_WM_NAME` and `_NET_WM_ICON_NAME` EWMH - [X11] Added support for the `_NET_WM_NAME` and `_NET_WM_ICON_NAME` EWMH
window properties window properties
* [X11] Made client-side RandR and Xf86VidMode extensions required - [X11] Made client-side RandR and Xf86VidMode extensions required
* [X11] Bugfix: Some window properties required by the ICCCM were not set - [X11] Bugfix: Some window properties required by the ICCCM were not set
* [X11] Bugfix: Calling `glXCreateContextAttribsARB` with an unavailable OpenGL - [X11] Bugfix: Calling `glXCreateContextAttribsARB` with an unavailable OpenGL
version caused the application to terminate with a `BadMatch` version caused the application to terminate with a `BadMatch`
Xlib error Xlib error
* [X11] Bugfix: A synchronization point necessary for jitter-free locked cursor - [X11] Bugfix: A synchronization point necessary for jitter-free locked cursor
mode was incorrectly removed mode was incorrectly removed
* [X11] Bugfix: The window size hints were not updated when calling - [X11] Bugfix: The window size hints were not updated when calling
`glfwSetWindowSize` on a non-resizable window `glfwSetWindowSize` on a non-resizable window
* [Win32] Added support for high-DPI monitors - [Win32] Added support for high-DPI monitors
* [Win32] Changed port to use Unicode mode only - [Win32] Changed port to use Unicode mode only
* [Win32] Removed explicit support for versions of Windows older than Windows - [Win32] Removed explicit support for versions of Windows older than Windows
XP XP
* [Win32] Bugfix: Window activation and iconification did not work as expected - [Win32] Bugfix: Window activation and iconification did not work as expected
* [Win32] Bugfix: Software rasterizer pixel formats were not discarded by the - [Win32] Bugfix: Software rasterizer pixel formats were not discarded by the
`WGL_ARB_pixel_format` code path `WGL_ARB_pixel_format` code path
* [Win32] Bugfix: The array for WGL context attributes was too small and could - [Win32] Bugfix: The array for WGL context attributes was too small and could
overflow overflow
* [Win32] Bugfix: Alt+F4 hot key was not translated into `WM_CLOSE` - [Win32] Bugfix: Alt+F4 hot key was not translated into `WM_CLOSE`
* [Win32] Bugfix: The `GLFW_WINDOW_NO_RESIZE` window parameter was always zero - [Win32] Bugfix: The `GLFW_WINDOW_NO_RESIZE` window parameter was always zero
* [Win32] Bugfix: A test was missing for whether all available pixel formats - [Win32] Bugfix: A test was missing for whether all available pixel formats
had been disqualified had been disqualified
@ -457,72 +462,72 @@ or you could join us on `#glfw`.
GLFW exists because people around the world donated their time and lent their GLFW exists because people around the world donated their time and lent their
skills. skills.
* Bobyshev Alexander - Bobyshev Alexander
* artblanc - artblanc
* Matt Arsenault - Matt Arsenault
* Keith Bauer - Keith Bauer
* John Bartholomew - John Bartholomew
* Niklas Bergström - Niklas Bergström
* blanco - blanco
* Lambert Clara - Lambert Clara
* Noel Cower - Noel Cower
* Jarrod Davis - Jarrod Davis
* Olivier Delannoy - Olivier Delannoy
* Paul R. Deppe - Paul R. Deppe
* Jonathan Dummer - Jonathan Dummer
* Ralph Eastwood - Ralph Eastwood
* Gerald Franz - Gerald Franz
* GeO4d - GeO4d
* Marcus Geelnard - Marcus Geelnard
* Stefan Gustavson - Stefan Gustavson
* Sylvain Hellegouarch - Sylvain Hellegouarch
* heromyth - heromyth
* Toni Jovanoski - Toni Jovanoski
* Osman Keskin - Osman Keskin
* Cameron King - Cameron King
* Peter Knut - Peter Knut
* Robin Leffmann - Robin Leffmann
* Glenn Lewis - Glenn Lewis
* Shane Liesegang - Shane Liesegang
* Дмитри Малышев - Дмитри Малышев
* Martins Mozeiko - Martins Mozeiko
* Tristam MacDonald - Tristam MacDonald
* Hans Mackowiak - Hans Mackowiak
* David Medlock - David Medlock
* Jonathan Mercier - Jonathan Mercier
* Marcel Metz - Marcel Metz
* Kenneth Miller - Kenneth Miller
* Jeff Molofee - Jeff Molofee
* Jon Morton - Jon Morton
* Julian Møller - Julian Møller
* Ozzy at Orkysquad - Ozzy at Orkysquad
* Peoro - Peoro
* Braden Pellett - Braden Pellett
* Arturo J. Pérez - Arturo J. Pérez
* Jorge Rodriguez - Jorge Rodriguez
* Ed Ropple - Ed Ropple
* Riku Salminen - Riku Salminen
* Sebastian Schuberth - Sebastian Schuberth
* Matt Sealey - Matt Sealey
* SephiRok - SephiRok
* Steve Sexton - Steve Sexton
* Dmitri Shuralyov - Dmitri Shuralyov
* Daniel Skorupski - Daniel Skorupski
* Bradley Smith - Bradley Smith
* Julian Squires - Julian Squires
* Johannes Stein - Johannes Stein
* Nathan Sweet - Nathan Sweet
* TTK-Bandit - TTK-Bandit
* Sergey Tikhomirov - Sergey Tikhomirov
* Samuli Tuomola - Samuli Tuomola
* Jari Vetoniemi - Jari Vetoniemi
* Simon Voordouw - Simon Voordouw
* Torsten Walluhn - Torsten Walluhn
* Jay Weisskopf - Jay Weisskopf
* Frank Wille - Frank Wille
* yuriks - yuriks
* Santi Zupancic - Santi Zupancic
* Lasse Öörni - Lasse Öörni
* All the unmentioned and anonymous contributors in the GLFW community, for bug - All the unmentioned and anonymous contributors in the GLFW community, for bug
reports, patches, feedback, testing and encouragement reports, patches, feedback, testing and encouragement