bool CVideoSyncIos::Setup(PUPDATECLOCK func) { CLog::Log(LOGDEBUG, "CVideoSyncIos::%s setting up OSX", __FUNCTION__); //init the vblank timestamp m_LastVBlankTime = CurrentHostCounter(); UpdateClock = func; m_abort = false; bool setupOk = InitDisplayLink(); if (setupOk) { g_Windowing.Register(this); } return setupOk; }
void CVideoSyncOsx::Run(volatile bool& stop) { InitDisplayLink(); //because cocoa has a vblank callback, we just keep sleeping until we're asked to stop the thread while(!stop && !m_displayLost && !m_displayReset) { usleep(100000); } m_lostEvent.Set(); while(!stop && m_displayLost && !m_displayReset) { usleep(10000); } DeinitDisplayLink(); }