This is my personal understanding of SDL and how it should be designed
(please tell me if I’m wrong)
SDL is designed to be a low-level cross-platform method to implement various
systems that are different amongst various OSs/WMs.
This means that a functions like SDL_TicksSince() should NOT be implemented
in the SDL. There is nothing specific to the OS about it. Any call that
only does calls into the SDL is not worth implementing. The only way
something should be added to SDL that can already be gotten from SDL (no
matter how difficult) is if there are OS specific optimizations that can be
used to get that value quicker.
This is good for abstracting OS specific parts. This is bad for the casual
programmer/newbie. Therefore, I propose we make 2 public domain .h files
(SDLu and SDLGLu). These would contain common ways to do various things
people may not realize they can do indirectly from SDL. It will also be
made known that the .h files contain ‘catch-all’ versions of how to complete
a given task and can be made faster if some knowledge is known beforehand
about the data being passed to it.
People may be saying ‘why public domain?’ I suggest public domain because
it will allow people to look at the code and see how such things can be
implemented (therefore open-sourced, which I doubt anyone will complain
about). It should be public domain over LGPL because I proposed they be
just .h files. This means just including these libraries force the program
to be completely open-sourced. (It actually forces it to be open-sourced if
they use an implementation to do something used in the .h file after looking
at the .h file – including trivial things.) This would also allow people
to ‘pull’ several functions they use out and just include those ones. It is
also HIGHLY unlikely that such implementations will change. The SDL is
standardized, therefore the implementation to get a given result will not
either.