20 InputManager(InputManager &other) =
delete;
22 void operator=(
const InputManager &other) =
delete;
30 inline static Shared<InputManager> instance() {
31 std::lock_guard<std::mutex> lock(s_mutex);
32 if (s_pointer ==
nullptr) {
33 Shared<InputManager> copy(
new InputManager());
40 void keyPressed(
const unsigned int &key);
42 void keyReleased(
const unsigned int &key);
44 bool isKeyPressed(
const unsigned int &key)
const;
46 Key getKeyStatus(
const unsigned int &key)
const;
48 std::vector<Key> getKeys();
51 inline static Shared<InputManager> s_pointer =
nullptr;
52 inline static std::mutex s_mutex{};
54 std::vector<Key> m_keys = std::vector<Key>();
55 std::array<Key, MAX_MOUSE_KEY_QUEUE> m_mouse{};
57 InputManager() =
default;