summaryrefslogtreecommitdiff
path: root/Servers/WindowServer
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2020-04-07 22:15:22 +0200
committerAndreas Kling <kling@serenityos.org>2020-04-07 23:01:43 +0200
commita53cf813748927ed03a862be847769a58453950b (patch)
treed6aa283b0f18642de86e155bed4443dbca649987 /Servers/WindowServer
parentf813041f67daa7a17197dee27ba5ed3fa2421235 (diff)
downloadserenity-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.cpp35
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()