in reply to Re^2: SDLx::App event loop
in thread SDLx::App event loop
Well
is an eventloop system. It schedules events as you request them. You can use SDLx without the eventloop, or make your own. See Re: Tk Game Sound demo-with SDL where I use the Tk eventloop with SDL.my $app = SDLx::App->new(); .... $app->run;
Generally in eventloop systems, timers and IO watchers can run simultaneously in a non-blocking manner, but keyboard input may need to be in a separate thread. If you are using Moose, that may be having an unexpected effect.
It's all hard to say, when we are just speculating on unseen code, but timers can run non-blocking, it depends on what the timer is doing. Possibly you could use a key_press_down to start a timer, which every 20 forward-fire cycles, will do one backward fire. Then on the keypress_up, you cancel the timer. I probably could do it in Tk or Gtk2, but I am unfamiliar with all the SDL code. SDL timers seem to address your blocking ( timeslice ) problems.
Generally timers can be used 2 ways, one is a one-shot timer, the other will repeat itself until you tell it to stop. This is where the returning a 1 or 0 , TRUE or FALSE, comes into play.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: SDLx::App event loop
by Ransom (Beadle) on Jun 11, 2012 at 19:57 UTC | |
by zentara (Cardinal) on Jun 12, 2012 at 08:23 UTC | |
by Ransom (Beadle) on Jun 12, 2012 at 12:04 UTC |