diff options
author | Andreas Kling <kling@serenityos.org> | 2020-04-07 22:15:22 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-04-07 23:01:43 +0200 |
commit | a53cf813748927ed03a862be847769a58453950b (patch) | |
tree | d6aa283b0f18642de86e155bed4443dbca649987 /Servers/WindowServer | |
parent | f813041f67daa7a17197dee27ba5ed3fa2421235 (diff) | |
download | serenity-a53cf813748927ed03a862be847769a58453950b.zip |
LibCore: Add Core::Timer::create_single_shot()
This is just a convenience function for creating single-shot timers.
Diffstat (limited to 'Servers/WindowServer')
-rw-r--r-- | Servers/WindowServer/Compositor.cpp | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/Servers/WindowServer/Compositor.cpp b/Servers/WindowServer/Compositor.cpp index 0a0ab29f1d..76526bb18f 100644 --- a/Servers/WindowServer/Compositor.cpp +++ b/Servers/WindowServer/Compositor.cpp @@ -62,30 +62,23 @@ WallpaperMode mode_to_enum(const String& name) Compositor::Compositor() { - m_compose_timer = add<Core::Timer>(); - m_immediate_compose_timer = add<Core::Timer>(); + m_compose_timer = Core::Timer::create_single_shot( + 1000 / 60, + [this] { + notify_display_links(); + compose(); + }, + this); - m_screen_can_set_buffer = Screen::the().can_set_buffer(); + m_immediate_compose_timer = Core::Timer::create_single_shot( + 0, + [this] { + compose(); + }, + this); + m_screen_can_set_buffer = Screen::the().can_set_buffer(); init_bitmaps(); - - m_compose_timer->on_timeout = [&]() { - notify_display_links(); -#if defined(COMPOSITOR_DEBUG) - dbgprintf("Compositor: delayed frame callback: %d rects\n", m_dirty_rects.size()); -#endif - compose(); - }; - m_compose_timer->set_single_shot(true); - m_compose_timer->set_interval(1000 / 60); - m_immediate_compose_timer->on_timeout = [this]() { -#if defined(COMPOSITOR_DEBUG) - dbgprintf("Compositor: immediate frame callback: %d rects\n", m_dirty_rects.size()); -#endif - compose(); - }; - m_immediate_compose_timer->set_single_shot(true); - m_immediate_compose_timer->set_interval(0); } void Compositor::init_bitmaps() |