Added SDL_DelayPrecise()

SDL_DelayNS() now passes through to the high precision OS delay function, and SDL_DelayPrecise() tries to busy wait to get as close as possible to the desired wait time.

Fixes https://github.com/libsdl-org/SDL/issues/11141
This commit is contained in:
Sam Lantinga
2024-10-10 07:43:34 -07:00
parent 28a70a5b71
commit c8f5f6d47a
8 changed files with 53 additions and 4 deletions

View File

@@ -115,8 +115,8 @@ extern SDL_DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
* Wait a specified number of nanoseconds before returning.
*
* This function waits a specified number of nanoseconds before returning. It
* will attempt to wait as close to the requested time as possible, busy
* waiting if necessary, but could return later due to OS scheduling.
* waits at least the specified time, but possibly longer due to OS
* scheduling.
*
* \param ns the number of nanoseconds to delay.
*
@@ -124,6 +124,19 @@ extern SDL_DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
*/
extern SDL_DECLSPEC void SDLCALL SDL_DelayNS(Uint64 ns);
/**
* Wait a specified number of nanoseconds before returning.
*
* This function waits a specified number of nanoseconds before returning. It
* will attempt to wait as close to the requested time as possible, busy
* waiting if necessary, but could return later due to OS scheduling.
*
* \param ns the number of nanoseconds to delay.
*
* \since This function is available since SDL 3.1.5.
*/
extern SDL_DECLSPEC void SDLCALL SDL_DelayPrecise(Uint64 ns);
/**
* Definition of the timer ID type.
*