RunLoopSynchronizer#
Fully qualified name: omni::kit::RunLoopSynchronizer
- 
class RunLoopSynchronizer#
- Class for synchronizing multiple run loops. - Provides functionality to synchronize multiple threads or run loops to a common timing source, typically the present/render thread. Supports frame rate control and timing adjustments. - Public Functions - 
RunLoopSynchronizer()#
 - 
~RunLoopSynchronizer()#
 - 
void presentPreNotify()#
- Saves the present time and duration. 
 - 
void presentPostNotify()#
- Notifies the condition variable in - waitthat it has to wake up.- Saves the syncronization point. 
 - void wait(
- float alreadyPassedNs,
- size_t slidingMaximumCount,
- size_t slidingMaximumOutlierCount,
- float slidingMaximumToleranceFactor,
- Waits for the present thread and syncs the calling thread to the present thread. - This function calculates how long it needs to wait using a Sliding Maximum of the already passed time. It uses a high resolution clock to wait until the desired frame duration is met. It starts by obtaining the current time, and calculates the sliding maximum of the already passed time, ignoring a specified number of outliers. The function then determines if waiting is necessary by comparing the current time with the computed time point it should wake up at. - Parameters:
- alreadyPassedNs – The duration in nanoseconds that has already passed. 
- slidingMaximumCount – The number of recent durations to consider when finding the sliding maximum. 
- slidingMaximumOutlierCount – The number of outlier durations to ignore when finding the sliding maximum. 
- slidingMaximumToleranceFactor – A multiplier for the average duration. Durations exceeding this are considered outliers. 
 
 
 
 - 
void setTargetFPS(double fps)#
- Sets the target frames per second. - Parameters:
- fps – [in] Desired frame rate in frames per second 
 
 - 
bool isActive() const#
- Checks if the synchronizer is active. - Returns:
- True if synchronization is active, false otherwise 
 
 - 
void setActive(bool active)#
- Enables or disables synchronization. - Parameters:
- active – [in] True to enable synchronization, false to disable 
 
 
- 
RunLoopSynchronizer()#