(Feat): Initial Commit.
This commit is contained in:
38
include/timing.h
Normal file
38
include/timing.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* @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 */
|
||||
Reference in New Issue
Block a user