void qemu_ds_sdl_refresh(DisplayState *ds)
{
SDL_Event ev1, *ev = &ev1;
+ static uint32_t sdl_skip_count = 0;
// surface may be NULL in init func.
qemu_display_surface = ds->surface;
pthread_mutex_unlock(&sdl_mutex);
vga_hw_invalidate();
sdl_skip_update = 0;
+ sdl_skip_count = 0;
break;
}
/* Usually, continuously updated.
When the LCD is turned off,
- once updates the screen for a black screen. */
+ ten more updates the screen for a black screen. */
vga_hw_update();
if (brightness_off) {
- sdl_skip_update = 1;
+ if (++sdl_skip_count > 10) {
+ sdl_skip_update = 1;
+ } else {
+ sdl_skip_update = 0;
+ }
} else {
+ sdl_skip_count = 0;
sdl_skip_update = 0;
}