Well, personally I use GLFW paired with OpenGL for graphics.
GLFW is a cross-platform library that is designed specifically to be used for OpenGL. It handles pretty much everything but graphics (for OpenGL, obviously) and audio (there are multiple libraries that can be used for that; the new version of OpenAL should be out soon).
GLFW:
http://www.glfw.org/
However, if you don't want to deal with OpenGL, I would also recommend SFML. It is a "true" alternative for SDL (i.e. it offers everything SDL does). It is under a much more active developement, which is a major plus, on top of it handling:
> system (keyInput, etc.)
> window (you need something to see out of)
> graphics (it primarily does 2D like SDL)
> audio (it actually uses OpenAL Soft along with a few other libraries)
> network (though you will only ever need this if you plan on doing multiplayer or automatic updates)
SFML does have 2 downsides, however:
> It uses OpenAL Soft, which is currently licensed under the LGPL license. A great license if you want free software. Horrible license if you want to commercialize anything made off of it. Not saying you can't, you can. I can't give more information on this because I am not a lawyer; the GPL is very cryptic.
> It's support for OpenGL is limited. Here is a quote from the SFML website about using OpenGL:
OpenGL versions above 3.0 are supported by SFML (as long as your graphics driver can handle them), but you can't set flags for now. This means that you can't create debug or forward compatible contexts; in fact SFML automatically creates contexts with the "compatibility" flag, because it uses deprecated functions internally. This should be improved soon, and flags will then be exposed in the public API. |
Once that little bug (the second point) is fixed, I would say that there is no real reason why not to use SFML. OpenAL will have a license similar to OpenGL with the release of the new version (which is what I am currently waiting for).
Otherwise, I would still say to try to use GLFW with OpenGL. Rather that, or go with DirectX if you don't mind staying on Windows for a bit.
TL;DR:
Stay away from the outdated SDL; rather worry about the SDL2 bug (which when I used SDL2, I never actually came across), or use an alternative like GLFW or SFML. Or, don't worry about being cross-platform at all and use DirectX.
P.S.
it is RLC, not RIC. My username is all lowercase.
From what I can tell, once OpenAL's new version is released; if you combine GLFW, OpenGL, and OpenAL; you would have a fully functional, complete,
truly free to use cross-platform base.
Though, if you wish to get to the point of using both OpenGL and Direct3D as an option within anything you make, you may have to worry about developing your own abstraction layer. That would be a feat, lol.