filename | src/gui/gtkui.c |
changeset | 437:2c259474b474 |
prev | 435:7a5d71e8560b |
next | 447:3e095bfcb476 |
author | nkeynes |
date | Thu Oct 11 08:22:03 2007 +0000 (16 years ago) |
permissions | -rw-r--r-- |
last change | Add speed meter to main window Add sunken border around video area Add debugger menu item Move logging out to util.c |
file | annotate | diff | log | raw |
1.1 --- a/src/gui/gtkui.c Wed Oct 10 11:02:04 2007 +00001.2 +++ b/src/gui/gtkui.c Thu Oct 11 08:22:03 2007 +00001.3 @@ -1,5 +1,5 @@1.4 /**1.5 - * $Id: gtkui.c,v 1.1 2007-10-10 11:02:04 nkeynes Exp $1.6 + * $Id: gtkui.c,v 1.2 2007-10-11 08:22:03 nkeynes Exp $1.7 *1.8 * Core GTK-based user interface1.9 *1.10 @@ -16,6 +16,8 @@1.11 * GNU General Public License for more details.1.12 */1.14 +#include <sys/time.h>1.15 +#include <time.h>1.16 #include "dream.h"1.17 #include "dreamcast.h"1.18 #include "gui/gtkui.h"1.19 @@ -45,7 +47,7 @@1.20 * Count of running nanoseconds - used to cut back on the GUI runtime1.21 */1.22 static uint32_t gtk_gui_nanos = 0;1.23 -1.24 +static struct timeval gtk_gui_lasttv;1.26 gboolean gui_parse_cmdline( int *argc, char **argv[] )1.27 {1.28 @@ -97,6 +99,8 @@1.29 if( debug_win != NULL ) {1.30 debug_window_set_running( debug_win, TRUE );1.31 }1.32 + gtk_gui_nanos = 0;1.33 + gettimeofday(>k_gui_lasttv,NULL);1.34 }1.36 /**1.37 @@ -129,10 +133,18 @@1.38 {1.39 gtk_gui_nanos += nanosecs;1.40 if( gtk_gui_nanos > 100000000 ) {1.41 - gtk_gui_nanos = 0;1.42 + struct timeval tv;1.43 while( gtk_events_pending() )1.44 gtk_main_iteration();1.45 - // main_window_set_framerate( main_win, pvr2_get_frame_rate() );1.46 +1.47 + gettimeofday(&tv,NULL);1.48 + double ns = ((tv.tv_sec - gtk_gui_lasttv.tv_sec) * 1000000000.0) +1.49 + ((tv.tv_usec - gtk_gui_lasttv.tv_usec)*1000.0);1.50 + double speed = (float)( (double)gtk_gui_nanos * 100.0 / ns );1.51 + gtk_gui_lasttv.tv_sec = tv.tv_sec;1.52 + gtk_gui_lasttv.tv_usec = tv.tv_usec;1.53 + main_window_set_speed( main_win, speed );1.54 + gtk_gui_nanos = 0;1.55 }1.56 return nanosecs;1.57 }
.