61 static SDL_Keycode _key;
62 static std::array<bool, KEY_COUNT> _keys;
63 static std::unordered_map<std::string, std::vector<enum key>> _keymaps;
64 static float _cursor_absolute_x;
65 static float _cursor_absolute_y;
66 static float _cursor_relative_x;
67 static float _cursor_relative_y;
68 static float _mouse_sensitivity;
69 static std::unordered_map<size_t, finger> _fingers;
70 static std::optional<gesture> _gesture;
71 static std::unique_ptr<SDL_Sensor, std::function<void(SDL_Sensor*)>>
73 static std::array<float, 3> _accelerometer_xyz;
87 static void update_key();
94 static void update_keys();
101 static void update_cursor();
109 static void update_fingers();
116 static void update_gesture();
124 static void update_accelerometer();
134 [[nodiscard]]
static bool text_input();
143 static void set_text_input(
bool text_input);
151 [[nodiscard]]
static uint32_t
key();
159 [[nodiscard]]
static std::unordered_map<std::string, std::vector<enum key>>&
168 [[nodiscard]]
static float cursor_absolute_x();
176 [[nodiscard]]
static float cursor_absolute_y();
184 [[nodiscard]]
static float cursor_relative_x();
192 [[nodiscard]]
static float cursor_relative_y();
202 [[nodiscard]]
static float mouse_sensitivity();
212 static void set_mouse_sensitivity(
float mouse_sensitivity);
221 [[nodiscard]]
static bool cursor_visible();
231 static void set_cursor_visible(
bool cursor_visible);
241 set_cursor_appearance(std::unique_ptr<cursor, std::function<
void(cursor*)>>
251 [[nodiscard]]
static std::unordered_map<size_t, finger>
const& fingers();
259 [[nodiscard]]
static std::optional<gesture>
const&
gesture();
267 [[nodiscard]]
static float accelerometer_x();
275 [[nodiscard]]
static float accelerometer_y();
283 [[nodiscard]]
static float accelerometer_z();
285#ifdef __WIZARD_ENGINE_INTERNAL__
293 static void initialize();
296#ifdef __WIZARD_ENGINE_INTERNAL__
302 static void update();
313 [[nodiscard]]
static bool key(
enum key key);
322 [[nodiscard]]
static bool key(std::string
const& name);
331 [[nodiscard]]
static std::pair<float, float> cursor_spatial(
float z);