Implement a Wayland Vsync source using frame callbacks
This commit is contained in:
parent
394f28339e
commit
e3d51fd7f7
4 changed files with 150 additions and 12 deletions
|
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include "pacer.h"
|
||||
|
||||
#include <wayland-client-core.h>
|
||||
#include <wayland-client-protocol.h>
|
||||
|
||||
class WaylandVsyncSource : public IVsyncSource
|
||||
{
|
||||
public:
|
||||
WaylandVsyncSource(Pacer* pacer);
|
||||
|
||||
virtual ~WaylandVsyncSource();
|
||||
|
||||
virtual bool initialize(SDL_Window* window, int displayFps);
|
||||
|
||||
private:
|
||||
static void frameDone(void* data, struct wl_callback* oldCb, uint32_t time);
|
||||
|
||||
static const struct wl_callback_listener s_FrameListener;
|
||||
|
||||
Pacer* m_Pacer;
|
||||
int m_DisplayFps;
|
||||
wl_display* m_Display;
|
||||
wl_surface* m_Surface;
|
||||
wl_callback* m_Callback;
|
||||
uint32_t m_LastFrameTime;
|
||||
};
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue