Refactor renderer and input handling; add OBJ loader and math utilities

- Updated renderer.h to replace Vec3 and Vec2 structs with Math namespace equivalents.
- Introduced Texture struct to manage texture properties.
- Modified Triangle struct to use Texture instead of GLuint for texture handling.
- Removed deprecated matrix functions and replaced them with Math namespace methods.
- Implemented InputManager class for better input handling, including key and mouse state tracking.
- Added ObjLoader class to load OBJ files and associated textures, with MTL file parsing.
- Created math utilities for fixed-point arithmetic and vector/matrix operations.
- Added time management class for frame timing and delta time calculations.
This commit is contained in:
ExilProductions
2025-05-02 15:46:45 +02:00
parent 6d308d3279
commit 475a1d606a
18 changed files with 982 additions and 308 deletions

View File

@@ -0,0 +1,32 @@
#ifndef TIME_H
#define TIME_H
#include <cstdint>
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
int32_t SecondsToFixed(float seconds) const;
};
#endif // TIME_H