update Duration
This commit is contained in:
parent
cdadb695e4
commit
d8309c1a75
|
|
@ -70,7 +70,7 @@ void ImGuiModule::OnUpdate(UpdateModuleContext& ctx)
|
||||||
ImGuiIO& io = ImGui::GetIO();
|
ImGuiIO& io = ImGui::GetIO();
|
||||||
|
|
||||||
// Setup time step
|
// Setup time step
|
||||||
io.DeltaTime = ctx.dt.Seconds();
|
io.DeltaTime = ctx.dt.GetSeconds();
|
||||||
|
|
||||||
// Read keyboard modifiers inputs
|
// Read keyboard modifiers inputs
|
||||||
io.KeyCtrl = Input::GetInstance().IsDown(KeyCode::Ctrl);
|
io.KeyCtrl = Input::GetInstance().IsDown(KeyCode::Ctrl);
|
||||||
|
|
|
||||||
|
|
@ -350,7 +350,7 @@ void PhysicWorld::OnUpdate(Duration dt)
|
||||||
BeforeSimulation(world_actor, Matrix3x2(), 0.0f);
|
BeforeSimulation(world_actor, Matrix3x2(), 0.0f);
|
||||||
|
|
||||||
// Update physic world
|
// Update physic world
|
||||||
world_.Step(dt.Seconds(), vel_iter_, pos_iter_);
|
world_.Step(dt.GetSeconds(), vel_iter_, pos_iter_);
|
||||||
|
|
||||||
AfterSimulation(world_actor, Matrix3x2(), 0.0f);
|
AfterSimulation(world_actor, Matrix3x2(), 0.0f);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,7 @@ void DebugActor::OnUpdate(Duration dt)
|
||||||
|
|
||||||
const auto& status = Renderer::GetInstance().GetContext().GetStatus();
|
const auto& status = Renderer::GetInstance().GetContext().GetStatus();
|
||||||
|
|
||||||
ss << "Render: " << status.duration.Milliseconds() << "ms" << std::endl;
|
ss << "Render: " << status.duration.GetMilliseconds() << "ms" << std::endl;
|
||||||
|
|
||||||
ss << "Primitives / sec: " << std::fixed << status.primitives * frame_buffer_.Size() << std::endl;
|
ss << "Primitives / sec: " << std::fixed << status.primitives * frame_buffer_.Size() << std::endl;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,23 +43,23 @@ Time::Time(int64_t dur)
|
||||||
|
|
||||||
const Time Time::operator+(const Duration& dur) const
|
const Time Time::operator+(const Duration& dur) const
|
||||||
{
|
{
|
||||||
return Time{ dur_ + dur.Milliseconds() };
|
return Time{ dur_ + dur.GetMilliseconds() };
|
||||||
}
|
}
|
||||||
|
|
||||||
const Time Time::operator-(const Duration& dur) const
|
const Time Time::operator-(const Duration& dur) const
|
||||||
{
|
{
|
||||||
return Time{ dur_ - dur.Milliseconds() };
|
return Time{ dur_ - dur.GetMilliseconds() };
|
||||||
}
|
}
|
||||||
|
|
||||||
Time& Time::operator+=(const Duration& other)
|
Time& Time::operator+=(const Duration& other)
|
||||||
{
|
{
|
||||||
dur_ += other.Milliseconds();
|
dur_ += other.GetMilliseconds();
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Time& Time::operator-=(const Duration& other)
|
Time& Time::operator-=(const Duration& other)
|
||||||
{
|
{
|
||||||
dur_ -= other.Milliseconds();
|
dur_ -= other.GetMilliseconds();
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -160,23 +160,23 @@ const Duration ClockTime::operator-(const ClockTime& other) const
|
||||||
|
|
||||||
const ClockTime ClockTime::operator+(const Duration& dur) const
|
const ClockTime ClockTime::operator+(const Duration& dur) const
|
||||||
{
|
{
|
||||||
return ClockTime{ ms_since_epoch_ + dur.Milliseconds() };
|
return ClockTime{ ms_since_epoch_ + dur.GetMilliseconds() };
|
||||||
}
|
}
|
||||||
|
|
||||||
const ClockTime ClockTime::operator-(const Duration& dur) const
|
const ClockTime ClockTime::operator-(const Duration& dur) const
|
||||||
{
|
{
|
||||||
return ClockTime{ ms_since_epoch_ - dur.Milliseconds() };
|
return ClockTime{ ms_since_epoch_ - dur.GetMilliseconds() };
|
||||||
}
|
}
|
||||||
|
|
||||||
ClockTime& ClockTime::operator+=(const Duration& other)
|
ClockTime& ClockTime::operator+=(const Duration& other)
|
||||||
{
|
{
|
||||||
ms_since_epoch_ += other.Milliseconds();
|
ms_since_epoch_ += other.GetMilliseconds();
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
ClockTime& ClockTime::operator-=(const Duration& other)
|
ClockTime& ClockTime::operator-=(const Duration& other)
|
||||||
{
|
{
|
||||||
ms_since_epoch_ -= other.Milliseconds();
|
ms_since_epoch_ -= other.GetMilliseconds();
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -210,21 +210,21 @@ Duration::Duration(int64_t milliseconds)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
float Duration::Seconds() const
|
float Duration::GetSeconds() const
|
||||||
{
|
{
|
||||||
auto sec = milliseconds_ / Second.milliseconds_;
|
auto sec = milliseconds_ / Second.milliseconds_;
|
||||||
auto ms = milliseconds_ % Second.milliseconds_;
|
auto ms = milliseconds_ % Second.milliseconds_;
|
||||||
return static_cast<float>(sec + ms) / 1000.f;
|
return static_cast<float>(sec + ms) / 1000.f;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Duration::Minutes() const
|
float Duration::GetMinutes() const
|
||||||
{
|
{
|
||||||
auto min = milliseconds_ / Minute.milliseconds_;
|
auto min = milliseconds_ / Minute.milliseconds_;
|
||||||
auto ms = milliseconds_ % Minute.milliseconds_;
|
auto ms = milliseconds_ % Minute.milliseconds_;
|
||||||
return static_cast<float>(min + ms) / (60 * 1000.f);
|
return static_cast<float>(min + ms) / (60 * 1000.f);
|
||||||
}
|
}
|
||||||
|
|
||||||
float Duration::Hours() const
|
float Duration::GetHours() const
|
||||||
{
|
{
|
||||||
auto hour = milliseconds_ / Hour.milliseconds_;
|
auto hour = milliseconds_ / Hour.milliseconds_;
|
||||||
auto ms = milliseconds_ % Hour.milliseconds_;
|
auto ms = milliseconds_ % Hour.milliseconds_;
|
||||||
|
|
|
||||||
|
|
@ -31,14 +31,15 @@ namespace kiwano
|
||||||
* @par
|
* @par
|
||||||
* 时间段表示法:
|
* 时间段表示法:
|
||||||
* @code
|
* @code
|
||||||
* time::Second * 5 // 5 秒
|
* Duration::Ms * 50 // 50 毫秒
|
||||||
* time::Hour * 1.5 // 1.5 小时
|
* Duration::Second * 5 // 5 秒
|
||||||
* time::Hour * 3 + time::Minute * 45 + time::Second * 15 // 3 小时 45 分 15
|
* Duration::Hour * 1.5 // 1.5 小时
|
||||||
* 秒
|
* Duration::Hour * 3 + Duration::Minute * 45 + Duration::Second * 15 // 3 小时 45 分 15秒
|
||||||
* @endcode
|
* @endcode
|
||||||
* 在 VS2015 及更高版本可以使用 time literals:
|
* 在 VS2015 及更高版本可以使用 time literals:
|
||||||
* @code
|
* @code
|
||||||
* using namespace kiwano;
|
* using namespace kiwano;
|
||||||
|
* 50_msec // 50 毫秒
|
||||||
* 5_sec // 5 秒
|
* 5_sec // 5 秒
|
||||||
* 1.5_hour // 1.5 小时
|
* 1.5_hour // 1.5 小时
|
||||||
* 3_hour + 45_min + 15_sec // 3 小时 45 分 15 秒
|
* 3_hour + 45_min + 15_sec // 3 小时 45 分 15 秒
|
||||||
|
|
@ -57,19 +58,19 @@ struct KGE_API Duration
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 获取毫秒数
|
/// @brief 获取毫秒数
|
||||||
int64_t Milliseconds() const;
|
int64_t GetMilliseconds() const;
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 获取秒数
|
/// @brief 获取秒数
|
||||||
float Seconds() const;
|
float GetSeconds() const;
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 获取分钟数
|
/// @brief 获取分钟数
|
||||||
float Minutes() const;
|
float GetMinutes() const;
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 获取小时数
|
/// @brief 获取小时数
|
||||||
float Hours() const;
|
float GetHours() const;
|
||||||
|
|
||||||
/// \~chinese
|
/// \~chinese
|
||||||
/// @brief 时长是否是零
|
/// @brief 时长是否是零
|
||||||
|
|
@ -171,7 +172,7 @@ private:
|
||||||
* Time t1 = Time::Now();
|
* Time t1 = Time::Now();
|
||||||
* // 等待一段时间后
|
* // 等待一段时间后
|
||||||
* Time t2 = Time::Now();
|
* Time t2 = Time::Now();
|
||||||
* int ms = (t2 - t1).Milliseconds(); // 获取两时间相差的毫秒数
|
* int ms = (t2 - t1).GetMilliseconds(); // 获取两时间相差的毫秒数
|
||||||
* @endcode
|
* @endcode
|
||||||
* @note 时间点与系统时钟无关,因此不能将时间点转化为时分秒
|
* @note 时间点与系统时钟无关,因此不能将时间点转化为时分秒
|
||||||
*/
|
*/
|
||||||
|
|
@ -246,7 +247,7 @@ private:
|
||||||
int64_t ms_since_epoch_;
|
int64_t ms_since_epoch_;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline int64_t Duration::Milliseconds() const
|
inline int64_t Duration::GetMilliseconds() const
|
||||||
{
|
{
|
||||||
return milliseconds_;
|
return milliseconds_;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ bool Runner::MainLoop(Duration dt)
|
||||||
// Releases CPU
|
// Releases CPU
|
||||||
Duration total_dt = frame_ticker_->GetDeltaTime() + frame_ticker_->GetErrorTime();
|
Duration total_dt = frame_ticker_->GetDeltaTime() + frame_ticker_->GetErrorTime();
|
||||||
Duration sleep_dt = frame_ticker_->GetInterval() - total_dt;
|
Duration sleep_dt = frame_ticker_->GetInterval() - total_dt;
|
||||||
if (sleep_dt.Milliseconds() > 1LL)
|
if (sleep_dt.GetMilliseconds() > 1LL)
|
||||||
{
|
{
|
||||||
sleep_dt.Sleep();
|
sleep_dt.Sleep();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue