My framework currently uses SDL for windowing and user input etc. I was recently in a discussion regarding sharing my framework with others and the question of using GLUT or SDL came up. I have listed below some of the factors that I think should be considered:
GLUT
Usually pre-installed on OSX(?), Linux. (Windows?)
Few dependencies
Well documented
Supports multiple windows
LGPL?
Constrained main loop
Single thread
Not open source (Source may be available through MesaGL)
Primitive font system
SDL
Multithreaded
Good community (Mailing-list, there is also supposed to be a wiki)
Built-in cross-platform timers
Low-level network API
LGPL license
Faster and smoother input handling (than GLUT)
Preinstalled on Linux(!?), definitely not under Windows, OSX? [was
pre-installed in Fedora 5]
(+ Support for multimedia devices)
Using GLFW + GLEW + a lib for sound covers everything I need to create quick games and interactive demos.
You do your own event loop, it is very lightweigth, support for things such as threads, timers, precision time, in a multi-plateform code.
You can link to it statically (no need for external lib). License is very liberal. No UI widgets though.
I used GLFW in the past and I agree that it is a nice toolkit.
I think perhaps my question is very ill-phrased as I did not give any specifications as to what I was going to use the framework for. The idea is that my research group could use it to produce demos. I need to make up my mind if I want it to be very flexible and complicated or simple and somewhat constrained. I probably need to set up a target group of users and what they will be using it for before I make any final decisions. As I said earlier I am using SDL at the moment and I think it is great!
I used SDL at the very beginning, it’s generally great library but it has some disadvantages. Or perhaps I could not find a solution.
First of all when you minimize your app and then bring it back your rendering is going to be broken. It also crashed when I tried to use gDEBugger. Then, I could not find any documentation about using OpenGL extensions under SDL.
And I ended up “porting” my SDL app back to windows.