I was expecting more people would reply to this topic.
You know what worries me about this discussion? Everyone seems to have
favorite feature they want to see in SDL 2.0, but the current design of
SDL is concept driven, not feature driven. When a design becomes feature
oriented you wind up with something ugly. While adding, modifying,
extending, and generalizing concepts gives you a simple clean design.
Adding, modifying, extending… from seeing SDL’s CVS webpage that seems to me the way SDL has been being developed, mostly by contributions from the community. From my perspective, however, that methodology does not fit well when we need more serious redesigns (which I think is the case if SDL is to support multiple displays and the like).
I could add multiple displays support to SDL myself and then send my changes to Sam, but I’d be taking a high risk. My design/implementation could be a waste, or at least be something that could have been much better if more experienced SDL users had contributed to its design. That’s the reason for my interest on participating of a committee instead of contributing with patches.
I don’t even know if someone else has been working on multiple displays for SDL. No one mentioned how the SDL 2 (or 1.3) design process is taking place, yet. Would anyone care to tell a newcomer how things work here?
I would like to see the SDL concept of a display/window be generalized
so that an SDL application can be written with more that one display and
with less than 1 display. I would like the SDL event system extended to
provide better support for user defined events. Of course, both of those
requests are really requests that SDL be more extensible than it already
is. I’ve identified two ways in which SDL could be made more extensible.
Please suggest other ways.
I don’t think this topic is the best place to start brainstorming concepts for SDL2, I’d rather start a new topic or even meet in IRC with some of you to discuss more interactively. But… grins
I think SDL should make better use of its multi-threading functions in version 2. SDL’s event structures could get an extra “displayId” field, and all events could be centralized in one event-handling thread. Each display could have its own separated rendering thread. On the other hand the design should allow one to continue developing with a single thread and a single display, maintaining compatibility with limited platforms.
SDL should continue to be simple and maintain compatibility with consoles and limited platforms, but it also should make good use of advanced functions available in modern computers. So I’d like to see SDL_WaitEvent using system-specific synchronization primitives instead of SDL_Delay, etc.
And of course, never forget that Sam has the final say in all of this.
In fact, this whole discussion could be considered to be completely off
topic.
I’m aware of that, in fact I’d love to hear some feedback from him regarding this discussion.
Best regards,
Thiago Bastos