mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2024-12-02 01:03:50 +00:00
f0d7d8467f
System layer is greatly simplified and framecap logic has been moved internally. I_Sleep now takes a sleep duration and I_SleepDuration generically implements a precise sleep with spin loop.
54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
// SONIC ROBO BLAST 2
|
|
//-----------------------------------------------------------------------------
|
|
// Copyright (C) 1993-1996 by id Software, Inc.
|
|
// Copyright (C) 1998-2000 by DooM Legacy Team.
|
|
// Copyright (C) 1999-2022 by Sonic Team Junior.
|
|
//
|
|
// This program is free software distributed under the
|
|
// terms of the GNU General Public License, version 2.
|
|
// See the 'LICENSE' file for more details.
|
|
//-----------------------------------------------------------------------------
|
|
/// \file i_time.h
|
|
/// \brief Timing for the system layer.
|
|
|
|
#ifndef __I_TIME_H__
|
|
#define __I_TIME_H__
|
|
|
|
#include "command.h"
|
|
#include "doomtype.h"
|
|
#include "m_fixed.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct timestate_s {
|
|
tic_t time;
|
|
fixed_t timefrac;
|
|
} timestate_t;
|
|
|
|
extern timestate_t g_time;
|
|
extern consvar_t cv_timescale;
|
|
|
|
/** \brief Called by D_SRB2Loop, returns current time in game tics.
|
|
*/
|
|
tic_t I_GetTime(void);
|
|
|
|
/** \brief Initializes timing system.
|
|
*/
|
|
void I_InitializeTime(void);
|
|
|
|
void I_UpdateTime(fixed_t timescale);
|
|
|
|
/** \brief Block for at minimum the duration specified. This function makes a
|
|
best effort not to oversleep, and will spinloop if sleeping would
|
|
take too long. However, callers should still check the current time
|
|
after this returns.
|
|
*/
|
|
void I_SleepDuration(precise_t duration);
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|
|
|
|
#endif // __I_TIME_H__
|