39 bool key_pressed(
FxKey key)
const {
return m_keys[index(key)] && !m_prev_keys[index(key)]; }
40 bool key_released(
FxKey key)
const {
return !m_keys[index(key)] && m_prev_keys[index(key)]; }
44 return m_buttons[index(button)] && !m_prev_buttons[index(button)];
47 return !m_buttons[index(button)] && m_prev_buttons[index(button)];
68 m_prev_buttons = m_buttons;
69 m_prev_mouse_world = m_mouse_world;
77 m_mouse_world = world;
78 m_mouse_screen = screen;
85 m_buttons.fill(
false);
91 m_prev_keys.fill(
false);
92 m_buttons.fill(
false);
93 m_prev_buttons.fill(
false);
94 m_mouse_world = {0.0f, 0.0f};
95 m_prev_mouse_world = {0.0f, 0.0f};
96 m_mouse_screen = {0.0f, 0.0f};
102 static size_t index(
FxKey key) {
103 const size_t i =
static_cast<size_t>(key);
107 const size_t i =
static_cast<size_t>(button);
111 std::array<bool, kKeyCount> m_keys{};
112 std::array<bool, kKeyCount> m_prev_keys{};
113 std::array<bool, kButtonCount> m_buttons{};
114 std::array<bool, kButtonCount> m_prev_buttons{};
115 FxVec2f m_mouse_world{0.0f, 0.0f};
116 FxVec2f m_prev_mouse_world{0.0f, 0.0f};
117 FxVec2f m_mouse_screen{0.0f, 0.0f};
118 float m_wheel_delta = 0.0f;
119 bool m_available =
false;