This commit is contained in:
Kbz-8
2025-06-16 15:18:27 +02:00
parent 15510fa8a7
commit cd7e5ad26f
165 changed files with 78107 additions and 0 deletions

59
Runtime/Sources/Platform/Inputs.cpp git.filemode.normal_file
View File

@@ -0,0 +1,59 @@
#include <Platform/Inputs.h>
#include <Core/EventBus.h>
namespace Scop
{
namespace Internal
{
struct ResizeEventSwapchain : public EventBase
{
Event What() const override { return Event::ResizeEventCode; }
};
}
Inputs::Inputs() : m_keys(SDL_GetKeyboardState(&m_keys_count))
{}
void Inputs::Update()
{
SDL_GetRelativeMouseState(&m_x_rel, &m_y_rel);
std::uint8_t mouse_state = SDL_GetMouseState(&m_x, &m_y);
m_mouse[0] = SDL_BUTTON(mouse_state) & SDL_BUTTON_LMASK;
m_mouse[1] = SDL_BUTTON(mouse_state) & SDL_BUTTON_MMASK;
m_mouse[2] = SDL_BUTTON(mouse_state) & SDL_BUTTON_RMASK;
m_mouse[3] = SDL_BUTTON(mouse_state) & SDL_BUTTON_X1MASK;
m_mouse[4] = SDL_BUTTON(mouse_state) & SDL_BUTTON_X2MASK;
m_is_mouse_wheel_up = false;
m_is_mouse_wheel_down = false;
while(SDL_PollEvent(&m_event))
{
for(auto& hook : m_hooks)
hook(&m_event);
switch(m_event.type)
{
case SDL_MOUSEWHEEL:
{
if(m_event.wheel.y > 0) // scroll up
m_is_mouse_wheel_up = true;
else if(m_event.wheel.y < 0) // scroll down
m_is_mouse_wheel_down = true;
break;
}
case SDL_WINDOWEVENT:
{
switch(m_event.window.event)
{
case SDL_WINDOWEVENT_CLOSE: m_has_recieved_close_event = true; break;
case SDL_WINDOWEVENT_SIZE_CHANGED: EventBus::Send("__ScopSwapchain", Internal::ResizeEventSwapchain{}); break;
default: break;
}
break;
}
default: break;
}
}
}
}