48 lines
711 B
C
48 lines
711 B
C
|
enum Input_Key {
|
||
|
KEY_UP,
|
||
|
KEY_DOWN,
|
||
|
KEY_LEFT,
|
||
|
KEY_RIGHT,
|
||
|
KEY_Q,
|
||
|
KEY_ALT,
|
||
|
KEY_TAB,
|
||
|
|
||
|
KEY_COUNT
|
||
|
};
|
||
|
|
||
|
enum Mouse_Button {
|
||
|
MOUSE_BTN_LEFT,
|
||
|
MOUSE_BTN_RIGHT,
|
||
|
|
||
|
MOUSE_BTN_COUNT
|
||
|
};
|
||
|
|
||
|
enum Mouse_Button_State : u16 {
|
||
|
MOUSE_BTN_STATE_IS_DOWN = 0x1,
|
||
|
MOUSE_BTN_STATE_JUST_PRESSED = 0x2,
|
||
|
MOUSE_BTN_STATE_JUST_RELEASED = 0x4,
|
||
|
};
|
||
|
|
||
|
enum Key_State : u16 {
|
||
|
KEY_STATE_IS_DOWN = 0x1,
|
||
|
KEY_STATE_JUST_PRESSED = 0x2,
|
||
|
KEY_STATE_JUST_RELEASED = 0x4,
|
||
|
};
|
||
|
|
||
|
struct User_Input {
|
||
|
u16 key_state[KEY_COUNT];
|
||
|
|
||
|
u16 mouse_btn_state[MOUSE_BTN_COUNT];
|
||
|
struct { i32 x; i32 y; } mouse_pos;
|
||
|
};
|
||
|
|
||
|
struct Window_Data {
|
||
|
// Real width and height of the window
|
||
|
i32 width;
|
||
|
i32 height;
|
||
|
bool size_just_changed;
|
||
|
|
||
|
f32 desired_aspect_ratio;
|
||
|
};
|
||
|
|