[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] gnash/gui sdl.cpp
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] gnash/gui sdl.cpp |
Date: |
Mon, 21 Aug 2006 23:24:48 +0000 |
CVSROOT: /sources/gnash
Module name: gnash
Changes by: Sandro Santilli <strk> 06/08/21 23:24:48
Modified files:
gui : sdl.cpp
Log message:
Reworked main loop to keep polling events until it's time for next
iteration
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gui/sdl.cpp?cvsroot=gnash&r1=1.15&r2=1.16
Patches:
Index: sdl.cpp
===================================================================
RCS file: /sources/gnash/gnash/gui/sdl.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- sdl.cpp 21 Aug 2006 22:56:15 -0000 1.15
+++ sdl.cpp 21 Aug 2006 23:24:48 -0000 1.16
@@ -110,18 +110,27 @@
SDL_Event event;
while (true) {
+
if (_timeout && SDL_GetTicks() >= _timeout) {
break;
}
+
+ Uint32 start_tick = SDL_GetTicks();
+
if ( _func ) _func(this);
- for (unsigned int i=0; i < _interval; i++) {
+ Uint32 time_left = SDL_GetTicks()-start_tick;
+
+ // Poll events until it's time for next movie advance
+ while ( (SDL_GetTicks()-start_tick) < _interval )
+ {
if (SDL_PollEvent(&event) == 0)
{
- break;
+ continue;
}
- switch (event.type) {
+ switch (event.type)
+ {
case SDL_MOUSEMOTION:
// SDL can generate MOUSEMOTION events even without mouse movement
if (event.motion.x == x_old && event.motion.y == y_old) { break; }
@@ -164,8 +173,9 @@
return true;
break;
}
- SDL_Delay(_interval);
+
}
+
}
return false;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gnash-commit] gnash/gui sdl.cpp,
Sandro Santilli <=