src/Time/TimeManager.cxx: support fixed-dt when not in simple-time mode.
This commit is contained in:
parent
cb7343eb35
commit
ef38e07c61
1 changed files with 6 additions and 3 deletions
|
@ -226,7 +226,7 @@ void TimeManager::computeTimeDeltasSimple(double& simDt, double& realDt)
|
||||||
{
|
{
|
||||||
double t;
|
double t;
|
||||||
double fixed_dt = _simFixedDt->getDoubleValue();
|
double fixed_dt = _simFixedDt->getDoubleValue();
|
||||||
static bool fixed_dt_prev = 0;
|
static double fixed_dt_prev = 0.0;
|
||||||
if (fixed_dt)
|
if (fixed_dt)
|
||||||
{
|
{
|
||||||
// Always increase time by fixed amount, regardless of elapsed
|
// Always increase time by fixed amount, regardless of elapsed
|
||||||
|
@ -240,7 +240,9 @@ void TimeManager::computeTimeDeltasSimple(double& simDt, double& realDt)
|
||||||
|
|
||||||
if (fixed_dt_prev)
|
if (fixed_dt_prev)
|
||||||
{
|
{
|
||||||
// Avoid bogus sleep to match _maxFrameRate.
|
// We are changing from fixed-dt mode to normal mode; avoid bogus
|
||||||
|
// sleep to match _maxFrameRate, otherwise we can end up pausing
|
||||||
|
// for a long time.
|
||||||
_simple_time_fdm = _simple_time_utc = t - fixed_dt_prev;
|
_simple_time_fdm = _simple_time_utc = t - fixed_dt_prev;
|
||||||
fixed_dt_prev = 0.0;
|
fixed_dt_prev = 0.0;
|
||||||
}
|
}
|
||||||
|
@ -388,7 +390,8 @@ void TimeManager::computeTimeDeltas(double& simDt, double& realDt)
|
||||||
}
|
}
|
||||||
|
|
||||||
// this dt will be clamped by the max sim time by frame.
|
// this dt will be clamped by the max sim time by frame.
|
||||||
double dt = (currentStamp - _lastStamp).toSecs();
|
double fixed_dt = _simFixedDt->getDoubleValue();
|
||||||
|
double dt = (fixed_dt) ? fixed_dt : (currentStamp - _lastStamp).toSecs();
|
||||||
|
|
||||||
// here we have a true real dt for a clock "real time".
|
// here we have a true real dt for a clock "real time".
|
||||||
double mpProtocolDt = dt;
|
double mpProtocolDt = dt;
|
||||||
|
|
Loading…
Add table
Reference in a new issue