Re: [AD] Why multiple windows might suck |
[ Thread Index |
Date Index
| More lists.liballeg.org/allegro-developers Archives
]
Playing the devil's advocate...
Peter Wang wrote:
[snip]
1. Multiple windows showing only Allegro BITMAPs are relatively
useless, compared to attaching Allegro to GUI toolkits (GTK and the
like). I don't think many people will have a use for multiple
plain BITMAP windows.
I disagree. The same can be said about just every feature in Allegro, appart
from possibly blit(), which is used by the majority of users. Not many
people use the 3D code. Not many people use the audio streams. And so on.
Just because *you* don't use it doesn't make it less useful :)
Having Allegro BITMAPs attached to toolkits is a nice feature, and I can see
it being useful; If we support that, then I don't see how much of a stretch
it is to support multiple monitors or windows. Or am I missing something?
2. I think it would complicate the input system a lot. I can't see
asynchronously updated globals working well with multiple windows.
(See Eric's rationale for not polling.) It would probably also
complicate other things (e.g. the GUI system, if it remains).
Just tag a BITMAP pointer along with the input. I did propose using a more
light-wight "display" system, but Shawn disagreed.
3. The common case is likely going to remain single monitor, single
keyboard, single mouse, [etc], full screen games. I think Allegro
should be easy to use in the most common case, like it is now.
You could just ignore all the BITMAP paramters then. It's just as easy,
except you have to drag along an extra pointer.
(API wise anyway - drivers are another story).
4. Other libraries have the multiple window environment figured out.
We should leverage that work.
Exactly!
5. It's less work :-)
Not always - drivers (usualy) know where the input is comming from, so they
can just translate that to an active BITMAP and pass it along to the user's
code.
[snip]
--
- Robert J Ohannessian
"Microsoft code is probably O(n^20)" (my CS prof)
http://pages.infinit.net/voidstar/