Re: [Alephmodular-devel] 0.3 Progress update... ints done
Status: Pre-Alpha
Brought to you by:
brefin
From: Br'fin <br...@ma...> - 2002-12-31 00:56:11
|
On Monday, December 30, 2002, at 06:01 PM, Michael Adams wrote: >> On another topic, thought I'd mention the GUI issue >> (only just joined >> the list so I missed the discussion). I think that >> at some point in the >> future, it would be nice to have a separate graphics >> module with a layer >> of abstraction, so that we can write a custom GUI >> not limited to any one >> OS/graphics API (as is the case in A1 now), and no >> matter what system >> someone runs AM on, they'll have the same interface. >> >> I've experimented with my own custom GUI (admittedly >> it used only >> OpenGL, but it ran on windows & mac), and it's not >> the easiest of tasks, >> especially as I allowed widgets to contain widgets >> which contain widgets >> etc... A custom GUI is much more suitable for a >> game, but it'll only be >> worth it if it's powerful enough, as people seem to >> prefer A1's mac >> dialogs to the SDL dialogs... >> >> Nick. > > I have to agree with you on this. A foundation of > "safe" crossplatform function calls needs to be > established (e.g. anything in ANSI is safe, but not > POSIX), then *everything* is written to those function > calls. Otherwise, the #ifdef's will never be in sync. > We all know how much that happened with A1. We could > write this foundation our selves, but like you said > that can be a very major headache. Our best bet is to > find a foundation that already exists, with maybe a > few additions of our own for those things that people > just insist on being native (e.g. file dialogs). I'm not quite sure what you mean by #ifdef poisoning. A1 makes a harsh example just because so little time seems to have been spent on cross platform issues. (It's Mac code and someone hacked in SDL support to the side) And when someone had a good idea, like the File Objects... they still implemented it's interface differently for each platform! D'oh. Thus forcing much code that dealt with file objects to still do checks for which platform... > Personally, I don't care what foundation is used, just > so long as some foundation is established and used all > the time (no cheating). You could use MacApp for all > I care! At least it would eliminate #ifdef poisoning. > Just to get you started here are some foundations > that I know of: wxWindows <www.wxwindows.org>, FLTK > <www.fltk.org>, PLIB <plib.sourceforge.net> (PUI is > the GUI part), and of course SDL <www.libsdl.org>. wxWindows seems good on paper. Looking to have support for the platforms we care about and leaning towards a native look and feel. SDL I'm not sure of. (It was functional in A1/SDL OSX, but I can't say I was happy with it) though there are apparently projects within the SDL realm to put an even better gui forward within SDL. My current leaning is to aim for allowing any number of different GUIs/platforms with a set way of communicating with the underlying systems. OSX would simply be one implementation of a GUI. At that point, if someone can implement an alternate GUI that works well and looks good across platforms, then we can consider standardizing on that one for all platforms. I agree with your points. But I'm being conservative and I'm not currently ready to commit to the One GUI to rule them all and throw all the GUIs we have entirely. Certainly not until the One GUI goes from being a good idea to something that can prove itself. -Jeremy Parsons |