feat: input class for abstracting SDL_Input functions

This commit is contained in:
2025-10-23 16:35:40 +02:00
parent 7b9858cffa
commit ec7ef40aea
5 changed files with 71 additions and 23 deletions

View File

@ -0,0 +1,24 @@
#include "engine/input/input.h"
namespace Core {
bool* Input::s_keys_state = nullptr;
int Input::s_keys_state_size = 0;
// Engine only function
void Input::Update(Timestep dt) {
s_keys_state = (bool*)SDL_GetKeyboardState(&s_keys_state_size);
}
glm::vec2 Input::GetRelativeMouse() {
glm::vec2 mouse;
SDL_GetRelativeMouseState(&mouse.x, &mouse.y);
return mouse;
}
bool Input::IsKeyPressed(SDL_Scancode keyCode) {
assert(keyCode < s_keys_state_size && "Key is out of bounds of the key input state");
return s_keys_state[keyCode];
}
}

View File

@ -6,6 +6,7 @@
#include "engine/renderer/wavefront.h"
#include "engine/time/timestep.h"
#include "engine/input/input.h"
namespace Core {
@ -34,6 +35,7 @@ void Engine::Run(std::unique_ptr<IApplication> app) {
m_window->ProcessEvents();
Input::Update(dt);
m_app->OnUpdate(dt);
m_renderer->Render();