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

Reply via email to