Added Time
This commit is contained in:
11
TSE_Core/src/interfaces/ITimeInterface.hpp
Normal file
11
TSE_Core/src/interfaces/ITimeInterface.hpp
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
namespace TSE
|
||||
{
|
||||
class ITimeInterface
|
||||
{
|
||||
public:
|
||||
virtual float GetTotalEllapsedTime() = 0;
|
||||
virtual ~ITimeInterface() = default;
|
||||
};
|
||||
} // namespace TSE
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "IWindow.hpp"
|
||||
#include "Debug.hpp"
|
||||
#include "LuaStateHandler.hpp"
|
||||
#include "Time.hpp"
|
||||
|
||||
TSE::IWindow* TSE::IWindow::lastWindow = nullptr;
|
||||
|
||||
@@ -10,6 +11,11 @@ bool TSE::IWindow::BaseInit() const
|
||||
Debug::Init();
|
||||
}
|
||||
|
||||
void TSE::IWindow::BaseUpdate() const
|
||||
{
|
||||
Time::Update();
|
||||
}
|
||||
|
||||
TSE::IWindow::~IWindow()
|
||||
{
|
||||
Debug::Close();
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace TSE
|
||||
virtual bool ShouldClose() const = 0;
|
||||
|
||||
bool BaseInit() const;
|
||||
void BaseUpdate() const;
|
||||
~IWindow();
|
||||
};
|
||||
} // namespace TSE
|
||||
|
||||
38
TSE_Core/src/utils/Time.cpp
Normal file
38
TSE_Core/src/utils/Time.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include "Time.hpp"
|
||||
|
||||
TSE::ITimeInterface* TSE::Time::timeInterface = nullptr;
|
||||
float TSE::Time::DeltaTime = 0;
|
||||
float TSE::Time::LastFrameTime = 0;
|
||||
float TSE::Time::CurrentTime = 0;
|
||||
|
||||
void TSE::Time::Init(ITimeInterface *time)
|
||||
{
|
||||
Time::timeInterface = time;
|
||||
}
|
||||
|
||||
void TSE::Time::Destroy()
|
||||
{
|
||||
delete(timeInterface);
|
||||
}
|
||||
|
||||
float TSE::Time::deltaTime()
|
||||
{
|
||||
return DeltaTime;
|
||||
}
|
||||
|
||||
float TSE::Time::currentTime()
|
||||
{
|
||||
return CurrentTime;
|
||||
}
|
||||
|
||||
float TSE::Time::lastFrameTime()
|
||||
{
|
||||
return LastFrameTime;
|
||||
}
|
||||
|
||||
void TSE::Time::Update()
|
||||
{
|
||||
LastFrameTime = CurrentTime;
|
||||
CurrentTime = timeInterface->GetTotalEllapsedTime();
|
||||
DeltaTime = CurrentTime - LastFrameTime;
|
||||
}
|
||||
23
TSE_Core/src/utils/Time.hpp
Normal file
23
TSE_Core/src/utils/Time.hpp
Normal file
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#include "interfaces/ITimeInterface.hpp"
|
||||
|
||||
namespace TSE
|
||||
{
|
||||
class Time
|
||||
{
|
||||
private:
|
||||
static ITimeInterface* timeInterface;
|
||||
static float LastFrameTime;
|
||||
static float DeltaTime;
|
||||
static float CurrentTime;
|
||||
|
||||
public:
|
||||
static void Init(ITimeInterface* time);
|
||||
static void Destroy();
|
||||
static float deltaTime();
|
||||
static float currentTime();
|
||||
static float lastFrameTime();
|
||||
static void Update();
|
||||
};
|
||||
} // namespace TSE
|
||||
Reference in New Issue
Block a user