FreeGLUT 3.0 an onwards

Major work, its status and planned milestone. Help on any of these plans is very welcome! Fork the github repository, join and contact us on the freeglut-developer mailing list to discuss your plans, and get cracking!

Android portBasic but complete functionality by Sylvain Beucler, but there are todo pointsBasic functionality as is now done: 3.0. Future enhancements: 3.0 or later.
BlackBerry 10 portBasic but complete functionality by Vinnie Simonetti.Basic functionality as is now done: 3.0. Future enhancements: 3.0 or later.
callbacks with closuresHave versions of each callback that take an additional void* that is passed back to the user upon invocation.3.2
Windows 8 touch supportWindows 8 replaced how touch input works, so we need to implement support for that.3.2
10bit display formatsGLUT supports that but FreeGLUT currently does not. Unfinished effort to implement here.3.0 or later.
GL2+ and GLES 1/2 clean API for geometryDone for all (geometry like cube, cone, etc, as well as the teapot and other parts of the teaset)3.0
handling non-western script input to windowsFor Windows, see associated github branch. What can be done on the Linux side?Figure this out for 3.2
option to not deinitialize when mainloop terminatesAs is often requested, in some usage cases, it would be advantageous if FreeGLUT did not automatically deinitialize when its last window is closed. This has been implemented, but is awaiting testing on platforms other than windows. Discussed here.As it has potential complications on mobile platforms, it was decided to leave this feature until after 3.0.
High-DPI awareness.As discussed here, it is unclear what should be done. See also associated github branch, though in the end maybe no code has to be added to FreeGLUT for this at all, its the host program's responsibility to decide on DPI awareness for his work.Figure this out for 3.2
GL2+ and GLES 1/2 clean API for fonts and menusFor stroke fonts, we can use a similar approach as for the shapes, should thus be straightforward. For the bitmap fonts, this is more complex. John T suggested "using a glyph atlas texture with GL_STREAM_DRAW VBOs", which would get us somewhere. Code could be ripped from his libdrawtext libraryThe sooner the better, but will have to wait for asap after 3.0.
At runtime loading of OpenGL or OpenGL ES libraries, like SDL.Currently CMake variables define at compile time which of the two the library will be compiled against. No work has been done to move this to an at-runtime API.After 3.0
Code reorganized such that platform-specific and display server-specific code are decoupledDone, thanks John Fay!3.0
Position callbackDone: we now have a position callback to notify the client when the position of the window changed.3.0
Carbon/Cocoa portNot started. As Carbon is legacy, one might want to port to Cocoa first or even forget about Carbon all together.Undecided
Wayland portNot started.Undecided
Unicode supportNot started, we'd need to discuss this carefully on the mailing list first to minimize impact on the API.Undecided
Complete glutInitDisplayString supportFreeGLUT now only partially supports glutInitDisplayString, any spec (comparator and value) after each token are ignored. This is a significant way in which FreeGLUT is not compatible with GLUT. Could be a nice project for someone who want to become familiar with the intricacies of requesting specific display formats on at least one of the various window servers (Windows, X11 and Android/BlackBerry 10/EGL at the moment).Undecided