#include "core/input/mouse.hpp" namespace Mouse { Uint32 cursor_hide_time = 3000; // Tiempo en milisegundos para ocultar el cursor por inactividad Uint32 last_mouse_move_time = 0; // Última vez que el ratón se movió bool cursor_visible = true; // Estado del cursor void handleEvent(const SDL_Event &event, bool fullscreen) { if (event.type == SDL_EVENT_MOUSE_MOTION) { last_mouse_move_time = SDL_GetTicks(); if (!cursor_visible && !fullscreen) { SDL_ShowCursor(); cursor_visible = true; } } } void updateCursorVisibility(bool fullscreen) { // En pantalla completa el cursor siempre está oculto if (fullscreen) { if (cursor_visible) { SDL_HideCursor(); cursor_visible = false; } return; } // En modo ventana, lo oculta tras el periodo de inactividad const Uint32 CURRENT_TIME = SDL_GetTicks(); if (cursor_visible && (CURRENT_TIME - last_mouse_move_time > cursor_hide_time)) { SDL_HideCursor(); cursor_visible = false; } } } // namespace Mouse