glfw/README.md

249 lines
7.9 KiB
Markdown
Raw Normal View History

2013-06-13 13:07:28 +00:00
# GLFW
## Introduction
2014-02-10 14:33:41 +00:00
GLFW is a free, Open Source, multi-platform library for OpenGL and OpenGL ES
application development. It provides a simple, platform-independent API for
creating windows and contexts, reading input, handling events, etc.
2015-03-19 23:12:00 +00:00
Version 3.1.2 is _not yet described_.
2013-04-18 22:19:22 +00:00
2013-04-07 11:26:06 +00:00
If you are new to GLFW, you may find the
2013-07-10 13:51:10 +00:00
[introductory tutorial](http://www.glfw.org/docs/latest/quick.html) for GLFW
2013-06-17 09:58:46 +00:00
3 useful. If you have used GLFW 2 in the past, there is a
2013-07-10 13:51:10 +00:00
[transition guide](http://www.glfw.org/docs/latest/moving.html) for moving to
the GLFW 3 API.
2014-04-08 15:45:04 +00:00
Note that a number of source files have been added or renamed in 3.1, which may
require you to update any custom build files you have.
2013-10-27 11:50:33 +00:00
## Compiling GLFW
2013-10-21 20:23:15 +00:00
2013-10-27 11:50:33 +00:00
See the [Compiling GLFW](http://www.glfw.org/docs/latest/compile.html) guide in
the GLFW documentation.
## Using GLFW
2013-10-27 11:50:33 +00:00
See the
[Building programs that use GLFW](http://www.glfw.org/docs/latest/build.html)
guide in the GLFW documentation.
## Reporting bugs
Bugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues).
Please always include the name and version of the OS where the bug occurs and
the version of GLFW used. If you have cloned it, include the commit ID used.
If it's a build issue, please also include the build log and the name and
version of your development environment.
If it's a context creation issue, please also include the make and model of your
graphics card and the version of your driver.
This will help both us and other people experiencing the same bug.
2014-01-12 04:40:36 +00:00
## Dependencies
GLFW bundles a number of dependencies in the `deps/` directory.
2014-06-18 14:13:49 +00:00
- [Khronos extension headers](https://www.opengl.org/registry/) for API
extension symbols used by GLFW
- [getopt\_port](https://github.com/kimgr/getopt_port/) for examples
with command-line options
2014-10-15 01:55:25 +00:00
- [TinyCThread](https://github.com/tinycthread/tinycthread) for threaded
2014-06-18 14:13:49 +00:00
examples
- An OpenGL 3.2 core loader generated by
[glad](https://github.com/Dav1dde/glad) for examples using modern OpenGL
- [linmath.h](https://github.com/datenwolf/linmath.h) for linear algebra in
examples
2014-01-12 04:40:36 +00:00
2013-06-13 13:09:10 +00:00
## Changelog
- Made all client API functions dynamically loaded
2015-06-01 20:47:16 +00:00
- Changed minimum required CMake version to 2.8.12
2015-08-09 13:44:20 +00:00
- Replaced GLU with [linmath.h](https://github.com/datenwolf/linmath.h) in
example programs
2015-08-17 17:51:03 +00:00
- Removed all mention of GLU in examples, build files and package dependencies
- Bugfix: Initialization failed on headless systems
2015-04-09 12:03:26 +00:00
- Bugfix: The cached current context could get out of sync
- Bugfix: `glfwIconifyWindow` did not restore the original video mode for full
screen windows created with `GLFW_AUTO_ICONIFY`
2015-05-29 12:32:56 +00:00
- [Win32] Renamed hybrid GPU override compile-time option to
`_GLFW_USE_HYBRID_HPG` and added support for AMD PowerXpress systems
- [Win32] Bugfix: `glfwGetVideoModes` included unusable modes on some systems
- [Win32] Bugfix: `glfwWaitEvents` would return directly for focused windows in
disabled cursor mode
2015-04-09 14:09:39 +00:00
- [Cocoa] Bugfix: The cached `NSScreen` for a monitor could get out of sync
- [Cocoa] Bugfix: The `GLFW_AUTO_ICONIFY` window hint was ignored
- [Cocoa] Bugfix: Resizing a window to its minimum size would segfault
- [Cocoa] Bugfix: Creating or showing a window would make its context current
- [Cocoa] Bugfix: Joysticks connected after `glfwInit` were not detected
2015-07-21 15:47:08 +00:00
- [Cocoa] Bugfix: Cursor creation failed unless a window had been created.
- [Cocoa] Bugfix: Window refresh events were not generated by iconification or
restoration
2015-05-14 14:29:54 +00:00
- [X11] Bugfix: `glfwInit` would segfault on systems without RandR
- [X11] Bugfix: The response to `_NET_WM_PING` was sent to the wrong window
- [X11] Bugfix: Character input via XIM did not work in many cases
- [X11] Bugfix: No fallback existed for missing `_NET_ACTIVE_WINDOW` support
- [X11] Bugfix: Some significant window focus events were ignored
2015-06-26 14:20:20 +00:00
- [X11] Bugfix: The `GLFW_AUTO_ICONIFY` window hint was ignored
- [X11] Bugfix: The original video mode was not restored on iconification of
full screen windows
- [X11] Bugfix: `GLFW_ARROW_CURSOR` selected the wrong cursor image
- [X11] Bugfix: The `GLFW_DECORATED` hint was not ignored for full screen
- [X11] Bugfix: `glfwWaitEvents` did not handle `EINTR` for `select`
- [X11] Bugfix: `glfwWaitEvents` could return when no events were available
- [X11] Bugfix: `XkbGetKeyboard` fails on XWayland
2015-10-09 11:23:34 +00:00
- [X11] Bugfix: Character input did not work correctly for non-UTF-8 locales
- [WGL] Made all WGL functions dynamically loaded
- [WGL] Removed `GLFW_USE_DWM_SWAP_INTERVAL` compile-time option
- [WGL] Bugfix: Swap interval was ignored when DWM was enabled
- [WGL] Bugfix: Failure to find a pixel format was reported incorrectly
- [GLX] Added dependency on `libdl` on systems where it provides `dlopen`
- [GLX] Made all GLX functions dynamically loaded
- [GLX] Removed `_GLFW_HAS_GLXGETPROCADDRESS*` and `_GLFW_HAS_DLOPEN`
compile-time options
- [GLX] Bugfix: Failure to find a `GLXFBConfig` was reported incorrectly
- [EGL] Made all EGL functions dynamically loaded
- [EGL] Bugfix: `glfwGetProcAddress` did not return the addresses of core
functions
- [EGL] Bugfix: Failure to find an `EGLConfig` was reported incorrectly
- [NSGL] Bugfix: Failure to find a pixel format was reported incorrectly
## Contact
The official website for GLFW is [glfw.org](http://www.glfw.org/). There you
can find the latest version of GLFW, as well as news, documentation and other
information about the project.
If you have questions related to the use of GLFW, we have a
[support forum](https://sourceforge.net/p/glfw/discussion/247562/), and the IRC
channel `#glfw` on [Freenode](http://freenode.net/).
If you have a bug to report, a patch to submit or a feature you'd like to
2013-06-24 12:28:42 +00:00
request, please file it in the
[issue tracker](https://github.com/glfw/glfw/issues) on GitHub.
Finally, if you're interested in helping out with the development of GLFW or
2015-05-14 15:14:30 +00:00
porting it to your favorite platform, join us on GitHub or IRC.
## Acknowledgements
GLFW exists because people around the world donated their time and lent their
skills.
2013-06-09 10:49:13 +00:00
- Bobyshev Alexander
- artblanc
- arturo
2013-06-09 10:49:13 +00:00
- Matt Arsenault
- Keith Bauer
- John Bartholomew
2013-06-16 10:35:46 +00:00
- Niklas Behrens
2013-06-09 10:49:13 +00:00
- Niklas Bergström
2013-08-16 15:48:11 +00:00
- Doug Binks
2013-06-09 10:49:13 +00:00
- blanco
- Martin Capitanio
2015-04-09 14:09:39 +00:00
- Chi-kwan Chan
2013-06-09 10:49:13 +00:00
- Lambert Clara
2013-10-06 09:37:16 +00:00
- Andrew Corrigan
2013-06-09 10:49:13 +00:00
- Noel Cower
- Jarrod Davis
- Olivier Delannoy
- Paul R. Deppe
2014-02-13 23:45:27 +00:00
- Michael Dickens
2013-06-09 10:49:13 +00:00
- Jonathan Dummer
- Ralph Eastwood
- Siavash Eliasi
2013-12-10 12:45:21 +00:00
- Michael Fogleman
2013-12-11 13:41:51 +00:00
- Gerald Franz
2013-06-09 10:49:13 +00:00
- GeO4d
- Marcus Geelnard
- Eloi Marín Gratacós
2013-06-09 10:49:13 +00:00
- Stefan Gustavson
- Sylvain Hellegouarch
- Matthew Henry
2013-06-09 10:49:13 +00:00
- heromyth
- Lucas Hinderberger
2013-06-16 16:32:16 +00:00
- Paul Holden
- Aaron Jacobs
2013-06-09 10:49:13 +00:00
- Toni Jovanoski
- Arseny Kapoulkine
2013-06-09 10:49:13 +00:00
- Osman Keskin
- Cameron King
- Peter Knut
2015-04-14 19:15:50 +00:00
- Eric Larson
2013-06-09 10:49:13 +00:00
- Robin Leffmann
- Glenn Lewis
- Shane Liesegang
- Eyal Lotem
2013-06-09 10:49:13 +00:00
- Дмитри Малышев
- Martins Mozeiko
- Tristam MacDonald
- Hans Mackowiak
- Kyle McDonald
2013-06-09 10:49:13 +00:00
- David Medlock
- Bryce Mehring
2013-06-09 10:49:13 +00:00
- Jonathan Mercier
- Marcel Metz
- Jonathan Miller
2013-06-09 10:49:13 +00:00
- Kenneth Miller
2013-07-01 11:18:05 +00:00
- Bruce Mitchener
2013-10-28 12:22:34 +00:00
- Jack Moffitt
2013-06-09 10:49:13 +00:00
- Jeff Molofee
- Jon Morton
2013-09-13 12:41:13 +00:00
- Pierre Moulon
2013-06-09 10:49:13 +00:00
- Julian Møller
2013-11-13 11:59:49 +00:00
- Kamil Nowakowski
2013-06-17 09:58:46 +00:00
- Ozzy
- Andri Pálsson
2013-06-09 10:49:13 +00:00
- Peoro
- Braden Pellett
- Arturo J. Pérez
2015-04-19 11:27:27 +00:00
- Emmanuel Gil Peyrot
- Cyril Pichard
2013-10-09 21:58:43 +00:00
- Pieroman
2013-06-09 10:49:13 +00:00
- Jorge Rodriguez
- Ed Ropple
- Aleksey Rybalkin
2013-06-09 10:49:13 +00:00
- Riku Salminen
- Brandon Schaefer
2013-06-09 10:49:13 +00:00
- Sebastian Schuberth
- Matt Sealey
- SephiRok
- Steve Sexton
- Systemcluster
2013-06-09 10:49:13 +00:00
- Dmitri Shuralyov
- Daniel Skorupski
- Bradley Smith
- Julian Squires
- Johannes Stein
- Justin Stoecker
2015-04-09 12:03:26 +00:00
- Elviss Strazdins
2013-06-09 10:49:13 +00:00
- Nathan Sweet
- TTK-Bandit
- Sergey Tikhomirov
- A. Tombs
2013-06-09 10:49:13 +00:00
- Samuli Tuomola
- urraka
2013-06-09 10:49:13 +00:00
- Jari Vetoniemi
2014-07-01 08:49:50 +00:00
- Ricardo Vieira
2013-06-09 10:49:13 +00:00
- Simon Voordouw
- Torsten Walluhn
- Patrick Walton
2013-06-09 10:49:13 +00:00
- Jay Weisskopf
- Frank Wille
- yuriks
- Santi Zupancic
2014-03-18 20:43:24 +00:00
- Jonas Ådahl
2013-06-09 10:49:13 +00:00
- Lasse Öörni
- All the unmentioned and anonymous contributors in the GLFW community, for bug
reports, patches, feedback, testing and encouragement