SDL vs GLUT

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)
  • More complicated than GLUT.

Can anyone think of anything else?

I am a big fan of GLFW : http://glfw.sourceforge.net/

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.

GLUT is not pre-installed on Windows. I don’t know if it is on OSX.
Perhaps instead of GLUT you should consider FREEGLUT. There is also GLFW.

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!

Anyway, thank you for your input!

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.