diff options
author | JAROWMR <jarorutjes07@gmail.com> | 2024-12-18 21:14:17 +0100 |
---|---|---|
committer | JAROWMR <jarorutjes07@gmail.com> | 2024-12-18 21:14:17 +0100 |
commit | 6d333439fa955d2da69dac72ec2470e1bfc2e63d (patch) | |
tree | a58ae1644abc5e931fad1899d25a87e9e6a6bd3e /src/crepe/facade/EventData.h | |
parent | 3855044ad97a41ca71b0d3ea2240f4eee93cc86f (diff) | |
parent | 4dd30ea92296892c9a9bd94787531d6a1319d8ac (diff) |
Merge branch 'jaro/collision-system-handeling' of github.com:lonkaars/crepe into jaro/collision-system-handeling
Diffstat (limited to 'src/crepe/facade/EventData.h')
-rw-r--r-- | src/crepe/facade/EventData.h | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/crepe/facade/EventData.h b/src/crepe/facade/EventData.h new file mode 100644 index 0000000..a7526b4 --- /dev/null +++ b/src/crepe/facade/EventData.h @@ -0,0 +1,54 @@ +#pragma once +#include "../api/KeyCodes.h" +#include "../types.h" +namespace crepe { +//! EventType enum for passing eventType +enum EventType { + NONE = 0, + MOUSE_DOWN, + MOUSE_UP, + MOUSE_MOVE, + MOUSE_WHEEL, + KEY_UP, + KEY_DOWN, + SHUTDOWN, + WINDOW_MINIMIZE, + WINDOW_MAXIMIZE, + WINDOW_FOCUS_GAIN, + WINDOW_FOCUS_LOST, + WINDOW_MOVE, + WINDOW_RESIZE, + WINDOW_EXPOSE, +}; + +//! Struct for storing key data. +struct KeyData { + Keycode key = Keycode::NONE; + bool key_repeat = false; +}; + +//! Struct for storing mouse data. +struct MouseData { + MouseButton mouse_button = MouseButton::NONE; + ivec2 mouse_position = {-1, -1}; + int scroll_direction = -1; + float scroll_delta = INFINITY; + ivec2 rel_mouse_move = {-1, -1}; +}; + +//! Struct for storing window data. +struct WindowData { + ivec2 move_delta; + ivec2 resize_dimension; +}; + +//! EventData struct for passing event data from facade +struct EventData { + EventType event_type = EventType::NONE; + union { + KeyData key_data; + MouseData mouse_data; + WindowData window_data; + } data; +}; +} // namespace crepe |