From 4832ae09005c5e2bb86b9ab378af000f2ab313f1 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Sat, 3 Oct 2015 21:13:06 +0300 Subject: add PageFlipHandler --- libkms++/card.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'libkms++/card.cpp') diff --git a/libkms++/card.cpp b/libkms++/card.cpp index ae41f10..8438629 100644 --- a/libkms++/card.cpp +++ b/libkms++/card.cpp @@ -246,4 +246,24 @@ std::vector Card::get_connected_pipelines() return outputs; } +static void page_flip_handler(int fd, unsigned int frame, + unsigned int sec, unsigned int usec, + void *data) +{ + auto handler = (PageFlipHandlerBase*)data; + double time = sec + usec / 1000000.0; + handler->handle_page_flip(frame, time); +} + +void Card::call_page_flip_handlers() +{ + drmEventContext ev = { + .version = DRM_EVENT_CONTEXT_VERSION, + .vblank_handler = 0, + .page_flip_handler = page_flip_handler, + }; + + drmHandleEvent(fd(), &ev); +} + } -- cgit v1.2.3