From: Samuel Thibault Subject: [PATCH] ioemu: Slown down refresh interval when SDL is minimized Date: Tue, 4 Mar 2008 15:38:25 +0000 Message-ID: <20080304153825.GE5038@implementation.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org ioemu: Slown down refresh interval when SDL is minimized as that saves us the VGA refresh scanning. Signed-off-by: Samuel Thibault diff -r c6cd384a48bf tools/ioemu/sdl.c --- a/tools/ioemu/sdl.c Tue Mar 04 12:32:31 2008 +0000 +++ b/tools/ioemu/sdl.c Tue Mar 04 15:34:25 2008 +0000 @@ -515,6 +515,15 @@ static void sdl_refresh(DisplayState *ds !ev->active.gain && !gui_fullscreen_initial_grab) { sdl_grab_end(); } + if (ev->active.state & SDL_APPACTIVE) { + if (ev->active.gain) { + /* Back to default interval */ + ds->gui_timer_interval = 0; + } else { + /* Sleeping interval */ + ds->gui_timer_interval = 500; + } + } break; default: break; diff -r c6cd384a48bf tools/ioemu/vl.c --- a/tools/ioemu/vl.c Tue Mar 04 12:32:31 2008 +0000 +++ b/tools/ioemu/vl.c Tue Mar 04 15:34:25 2008 +0000 @@ -6125,7 +6125,11 @@ void gui_update(void *opaque) void gui_update(void *opaque) { display_state.dpy_refresh(&display_state); - qemu_mod_timer(gui_timer, GUI_REFRESH_INTERVAL + qemu_get_clock(rt_clock)); + qemu_mod_timer(gui_timer, + (display_state.gui_timer_interval ? + display_state.gui_timer_interval : + GUI_REFRESH_INTERVAL) + + qemu_get_clock(rt_clock)); } struct vm_change_state_entry { diff -r c6cd384a48bf tools/ioemu/vl.h --- a/tools/ioemu/vl.h Tue Mar 04 12:32:31 2008 +0000 +++ b/tools/ioemu/vl.h Tue Mar 04 15:34:25 2008 +0000 @@ -935,6 +935,7 @@ struct DisplayState { int width; int height; void *opaque; + uint64_t gui_timer_interval; int switchbpp; int shared_buf;