39 lines
814 B
C
39 lines
814 B
C
/**
|
|
* @file timing.h
|
|
* @brief High-precision timing utilities
|
|
* @author ASCII3D Project
|
|
* @version 1.0.0
|
|
*/
|
|
|
|
#ifndef ASCII3D_TIMING_H
|
|
#define ASCII3D_TIMING_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Get current time in seconds (monotonic clock)
|
|
* @return Time in seconds with nanosecond precision
|
|
*/
|
|
double timing_get_seconds(void);
|
|
|
|
/**
|
|
* @brief Sleep for specified microseconds
|
|
* @param microseconds Duration to sleep
|
|
*/
|
|
void timing_sleep_us(unsigned int microseconds);
|
|
|
|
/**
|
|
* @brief Frame rate limiter - sleeps to maintain target FPS
|
|
* @param frame_start_time Time when frame started (from timing_get_seconds)
|
|
* @param target_fps Target frames per second
|
|
*/
|
|
void timing_limit_fps(double frame_start_time, int target_fps);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* ASCII3D_TIMING_H */
|