updated main header

This commit is contained in:
ExilProductions
2025-05-02 15:52:43 +02:00
parent 9dd5b29d57
commit 2ff3c3ec15
4 changed files with 71 additions and 65 deletions

View File

@@ -2,31 +2,32 @@
#include <GLFW/glfw3.h>
Time::Time()
: lastFrameTime(glfwGetTime())
, currentFrameTime(lastFrameTime)
, deltaTime(0)
, elapsedTime(0.0f) {
: lastFrameTime(glfwGetTime()), currentFrameTime(lastFrameTime), deltaTime(0), elapsedTime(0.0f)
{
}
void Time::Update() {
void Time::Update()
{
currentFrameTime = glfwGetTime();
float deltaTimeSeconds = static_cast<float>(currentFrameTime - lastFrameTime);
// Store delta time in fixed-point and update elapsed time
deltaTime = SecondsToFixed(deltaTimeSeconds);
elapsedTime += deltaTimeSeconds;
lastFrameTime = currentFrameTime;
}
int32_t Time::GetDeltaTime() const {
int32_t Time::GetDeltaTime() const
{
return deltaTime;
}
float Time::GetElapsedTime() const {
float Time::GetElapsedTime() const
{
return elapsedTime;
}
int32_t Time::SecondsToFixed(float seconds) const {
int32_t Time::SecondsToFixed(float seconds) const
{
return static_cast<int32_t>(seconds * FIXED_POINT_SCALE);
}

View File

@@ -3,30 +3,26 @@
#include <cstdint>
class Time {
class Time
{
public:
Time();
// Update time and calculate delta time (call each frame)
void Update();
// Get delta time in seconds (fixed-point representation)
int32_t GetDeltaTime() const;
// Get total elapsed time in seconds
float GetElapsedTime() const;
private:
// Fixed-point scale for PS1-style precision
static constexpr int32_t FIXED_POINT_SCALE = 4096; // 12-bit fractional part
double lastFrameTime; // Last frame timestamp (in seconds, GLFW time)
double currentFrameTime; // Current frame timestamp
int32_t deltaTime; // Delta time in fixed-point
float elapsedTime; // Total elapsed time in seconds
// Convert float seconds to fixed-point
static constexpr int32_t FIXED_POINT_SCALE = 4096;
double lastFrameTime;
double currentFrameTime;
int32_t deltaTime;
float elapsedTime;
int32_t SecondsToFixed(float seconds) const;
};
#endif // TIME_H
#endif