Roadmap for GLFW 3
(Redirected from Roadmap for 3.0)
This is the roadmap for the 3.x series of GLFW. Please be aware that this page is a work in progress and that it may still change significantly.
Suggestions and ideas are very welcome.
Status of GLFW 3.0
Features listed in this table are to be included in the GLFW 3.0 release.
| Feature | Location | X11/GLX | Win32/WGL | Cocoa/NSGL |
|---|---|---|---|---|
| CMake build system | master | works | works | works |
| Error reporting | master | works | works | works |
| Threading support removal | master | works | works | works |
| Image/texture support removal | master | works | works | works |
| Unicode character action removal | master | works | works | works |
| GLFWCALL removal | master | works | works | works |
| Window position query | master | works | works | works |
| Pluggable memory allocator support | master | works | works | works |
| Initial window title | master | works | works | works |
| Context resource sharing | master | works | works | works |
| Context state block copying | master | untested | untested | untested |
| Win64 compatibility testing | master | works | ||
| Window activation callback | master | works | works | works |
| Robuestness mode window hint | master | untested | untested | untested |
| Window iconification callback | master | works | works | works |
| Multi-window support | master | sort of works | sort of works | sort of works |
| Two-dimensional scrolling | master | works | works | works |
| User pointer per window | master | works | works | works |
| Gamma ramp support | master | works | works | works |
| Unified key codes | master | works | works | untested |
| OpenGL 3.2 support on OS X Lion | master | works | ||
| OpenGL ES 2.0 support | master | works | untested | |
| Cocoa joystick support | master | untested | ||
| UTF-8 encoded window title | master | works | works | works |
| Window mode switching | window-mode-switching | works | to be merged | planned |
| Multi-monitor support | multi-monitor | works | sort of works | planned |
| Cursor entry/leave callback | cursor-enter-leave | works | planned | planned |
| Tablet input support | private branch | to be merged | to be merged | planned |
| Updated joystick interface | private branch | to be merged | to be merged | planned |
| Query for cursor mode | private branch | to be merged | to be merged | to be merged |
| Undecorated window support | planned | planned | planned | |
| Initial window position | planned | planned | planned | |
| Software rasterizer fallback window hint | planned | planned | planned | |
| Pluggable threading support | planned | planned | planned | |
| Cleaner video mode enumeration | planned | planned | planned | |
| Doxygen reference documentation | planned | planned | planned |
For more detailed information about the work remaining until the release of GLFW 3.0, see the TODO page.
Ideas considered for GLFW 3.x
If a feature is accepted for the 3.0 release, it should not be listed below.
Remove
- the sticky keys enable
- A horrible artefact of the polling input model
Replace
- the winmm joystick code with DirectInput 9
- We should be able to assume DirectX 9 being present everywhere now
- the internal API with a cleaner, documented one
- Current internal API is undocumented and has many surprising data dependencies, mostly due to global state
- Makes life easier for future ports
Add
- multi-touch input
- Use API and Win32 work by Michał Cichoń
- Implement on Cocoa
- an interface to modern virtual screen with potentially multiple monitors
- Currently GLFW assumes computers only have one monitor
- Modern systems can have multiple, wildly different display devices positioned over a large virtual screen
- Enumerate displays, query virtual screen area, physical size and display resolutions for each display
- Physical size query allows calculation of DPI given a known resolution
- an interface for tablet input
- Merge or re-implement the work of Bob Holcomb
- the current Cocoa joystick input work
- joystick identifiers/names and if possible names/identifiers for individual controls
- a callback for window movement
- support for complex input methods such as CJK IMEs
- Many writing systems do not fit neatly onto a PC keyboard
- IME use requires explicit begin/end because the IME will capture input
- Model on the SDL version
- support for initial window configuration
- Display, position, size
Also
- Improve support for building GLFW as a part of a larger project
- Including making it easier to drop it into a directory and have it Just Work
- Strongly encourage users to call window management functions from the main thread
- Have another look at OpenInput
![[Main Page]](http://wiki.glfw.org/wiki/images/logo.png)