I've been working on an NES emulator for quite some time. Currently I'm just using a sloppy/temporary setup with WinAPI for the UI, but I've always had plans to move to some sort of crossplatform widget library (like FLTK).
Finding the right library(ies) has proven to be quite difficult. Emulators are like a hybrid of a widget-filled windows and high performance audio/video streaming (like an editor and a game mixed into the same program). Finding libraries for either one of those is no problem -- but the libraries for each tend to be mutually exclusive. So finding a library that can handle all the demands I need ends up being a chore. I've skimmed over many of the features of FLTK and so far I like what I see, however before investing a lot of time and energy into exploring this library further, I was hoping someone here could answer a few of my concerns: 1) regarding the message pump. It appears the program forfeits control over to FLTK as soon as it calls Fl::run(), and programs can catch idle events to update itself between events. However pages clearly indicate that the timing for idle events is not something that can be relied on. I get the distinct impression that if I were to use idle events to drive my emulator, the framerate would be jerky and the sound would either drop out, or require crazy high latency. Needless to say, that is unacceptable for this paticular project. So I'm wondering if there is any way to get around this paticular issue. Ideally, I'd like it if you could retain control of the program and simply poll FLTK to empty its event queue every so often (like between every frame) 2) Assuming #1 works out, I will need to be able to sleep. I didn't immediately notice any function to make the program sleep for X milliseconds. One post I saw on this board had some example code that called system() to sleep, but I don't like that idea at all. Is there a sleep function included in FLTK anywhere? Did I just miss it? 3) I didn't see anything for joypad/gamepad support mentioned in the docs I skimmed. This isn't really that big of a deal since I can probably get that from another library... but it's worth asking about here. If this library can do it, no sense in adding another unecessary library. 4) Ditto for sound output (specifically, I need to be able to constantly stream PCM). Again not much of an issue -- lots of good sound libraries available elsewhere. 5) Does FLTK have any kind of Unicode support? The example code I saw seemed to use char arrays for strings everywhere. I've been trying to make a conscious effort to make my programs as Unicode friendly as possible. If I'm stuck using char arrays that's fine -- it's not a huge setback -- though Unicode would be nice. 6) Just what is the difference between FLTK v1.1.x and v.2.0.x? The download pages have 1.1 linked first (and in bold) as if its still being updated despite 2.0 being available. Is 2.0 still in beta or something? Is there any reason to use 1.1 over 2.0 when starting a new project? Any and all responses are welcome. I could really use some of these blanks filled in. Thanks in advance guys! _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

