Ensure the CVDisplayLink is synchronized to the display that our window is on

This commit is contained in:
Cameron Gutman
2018-09-03 20:19:24 -04:00
parent 9b1eef3f63
commit fa93364ddd
5 changed files with 153 additions and 74 deletions
@@ -1,31 +1,11 @@
#pragma once
#include <CoreVideo/CoreVideo.h>
#include "pacer.h"
class DisplayLinkVsyncSource : public IVsyncSource
class DisplayLinkVsyncSourceFactory
{
public:
DisplayLinkVsyncSource(Pacer* pacer);
virtual ~DisplayLinkVsyncSource();
virtual bool initialize(SDL_Window* window, int displayFps);
private:
static
CVReturn
displayLinkOutputCallback(
CVDisplayLinkRef,
const CVTimeStamp* now,
const CVTimeStamp* /* vsyncTime */,
CVOptionFlags,
CVOptionFlags*,
void *displayLinkContext);
Pacer* m_Pacer;
CVDisplayLinkRef m_DisplayLink;
int m_DisplayFps;
IVsyncSource* createVsyncSource(Pacer* pacer);
};