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();
// Setup time step
io.DeltaTime = ctx.dt.Seconds();
io.DeltaTime = ctx.dt.GetSeconds();
// Read keyboard modifiers inputs
io.KeyCtrl = Input::GetInstance().IsDown(KeyCode::Ctrl);

View File

@ -350,7 +350,7 @@ void PhysicWorld::OnUpdate(Duration dt)
BeforeSimulation(world_actor, Matrix3x2(), 0.0f);
// 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);
}

View File

@ -103,7 +103,7 @@ void DebugActor::OnUpdate(Duration dt)
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;

View File

@ -43,23 +43,23 @@ Time::Time(int64_t dur)
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
{
return Time{ dur_ - dur.Milliseconds() };
return Time{ dur_ - dur.GetMilliseconds() };
}
Time& Time::operator+=(const Duration& other)
{
dur_ += other.Milliseconds();
dur_ += other.GetMilliseconds();
return (*this);
}
Time& Time::operator-=(const Duration& other)
{
dur_ -= other.Milliseconds();
dur_ -= other.GetMilliseconds();
return (*this);
}
@ -160,23 +160,23 @@ const Duration ClockTime::operator-(const ClockTime& other) 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
{
return ClockTime{ ms_since_epoch_ - dur.Milliseconds() };
return ClockTime{ ms_since_epoch_ - dur.GetMilliseconds() };
}
ClockTime& ClockTime::operator+=(const Duration& other)
{
ms_since_epoch_ += other.Milliseconds();
ms_since_epoch_ += other.GetMilliseconds();
return (*this);
}
ClockTime& ClockTime::operator-=(const Duration& other)
{
ms_since_epoch_ -= other.Milliseconds();
ms_since_epoch_ -= other.GetMilliseconds();
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 ms = milliseconds_ % Second.milliseconds_;
return static_cast<float>(sec + ms) / 1000.f;
}
float Duration::Minutes() const
float Duration::GetMinutes() const
{
auto min = milliseconds_ / Minute.milliseconds_;
auto ms = milliseconds_ % Minute.milliseconds_;
return static_cast<float>(min + ms) / (60 * 1000.f);
}
float Duration::Hours() const
float Duration::GetHours() const
{
auto hour = milliseconds_ / Hour.milliseconds_;
auto ms = milliseconds_ % Hour.milliseconds_;

View File

@ -31,14 +31,15 @@ namespace kiwano
* @par
* :
* @code
* time::Second * 5 // 5
* time::Hour * 1.5 // 1.5 小时
* time::Hour * 3 + time::Minute * 45 + time::Second * 15 // 3 小时 45 分 15
*
* Duration::Ms * 50 // 50 毫
* Duration::Second * 5 // 5 秒
* Duration::Hour * 1.5 // 1.5 小时
* Duration::Hour * 3 + Duration::Minute * 45 + Duration::Second * 15 // 3 小时 45 分 15秒
* @endcode
* VS2015 使 time literals:
* @code
* using namespace kiwano;
* 50_msec // 50 毫秒
* 5_sec // 5 秒
* 1.5_hour // 1.5 小时
* 3_hour + 45_min + 15_sec // 3 小时 45 分 15 秒
@ -57,19 +58,19 @@ struct KGE_API Duration
/// \~chinese
/// @brief 获取毫秒数
int64_t Milliseconds() const;
int64_t GetMilliseconds() const;
/// \~chinese
/// @brief 获取秒数
float Seconds() const;
float GetSeconds() const;
/// \~chinese
/// @brief 获取分钟数
float Minutes() const;
float GetMinutes() const;
/// \~chinese
/// @brief 获取小时数
float Hours() const;
float GetHours() const;
/// \~chinese
/// @brief 时长是否是零
@ -171,7 +172,7 @@ private:
* Time t1 = Time::Now();
* // 等待一段时间后
* Time t2 = Time::Now();
* int ms = (t2 - t1).Milliseconds(); // 获取两时间相差的毫秒数
* int ms = (t2 - t1).GetMilliseconds(); // 获取两时间相差的毫秒数
* @endcode
* @note
*/
@ -246,7 +247,7 @@ private:
int64_t ms_since_epoch_;
};
inline int64_t Duration::Milliseconds() const
inline int64_t Duration::GetMilliseconds() const
{
return milliseconds_;
}

View File

@ -107,7 +107,7 @@ bool Runner::MainLoop(Duration dt)
// Releases CPU
Duration total_dt = frame_ticker_->GetDeltaTime() + frame_ticker_->GetErrorTime();
Duration sleep_dt = frame_ticker_->GetInterval() - total_dt;
if (sleep_dt.Milliseconds() > 1LL)
if (sleep_dt.GetMilliseconds() > 1LL)
{
sleep_dt.Sleep();
}