Я хочу обновлять мой экран каждые 200 мс без добавления некоторого кода в цикле.
Итак, я хотел бы создать таймер с обратным вызовом в Vala с использованием SDL.
Я читаю документацию, но не понимаю, что ожидается в качестве второго параметра: http://www.valadoc.org/sdl/SDL.Timer.html
Следующий код компилируется без ошибок:
this.timer = new SDL.Timer( 200, () => { this.refresh(); return 0; } );
РЕДАКТИРОВАТЬ: вот полныйкод с SDL:
public View( int width, int height, bool fullscreen, string window_name = "AKITA application" )
{
SDL.init( InitFlag.VIDEO | InitFlag.TIMER );
this.last_tick = 0;
this.fps = 25; // Set default value for FPS
uint32 video_flags = SurfaceFlag.DOUBLEBUF | SurfaceFlag.HWACCEL | SurfaceFlag.HWSURFACE;
this.screen = Screen.set_video_mode( width, height, 32, video_flags);
if ( this.screen == null )
{
stderr.printf ("Could not set video mode.\n");
}
WindowManager.set_caption (window_name, "");
this.timer = new SDL.Timer( 200, () => { this.refresh(); return 0; } );
}
public void refresh()
{
stdout.printf( "refresh...\n" );
}
Но ничего не появляется (refresh()
должен что-то написать на стандартный вывод).
Может ли кто-нибудь помочь мне с этим (или есть лучший способ сделать то, что я хочу)?
Спасибо,
Дэмиен