update Duration

This commit is contained in:
Nomango 2020-10-06 11:16:28 +08:00
parent cdadb695e4
commit d8309c1a75
6 changed files with 26 additions and 25 deletions

View File

@ -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);

View File

@ -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);
} }

View File

@ -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;

View File

@ -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_;

View File

@ -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_;
} }

View File

@ -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();
} }