127 lines
4.4 KiB
C
127 lines
4.4 KiB
C
|
#ifndef unigi_header_structs
|
||
|
#define unigi_header_structs
|
||
|
// * EVENTS
|
||
|
struct unigi_type_event_none {
|
||
|
uint8_t none;
|
||
|
};
|
||
|
typedef struct unigi_type_event_none unigi_type_event_none;
|
||
|
const unigi_type_event_enum unigi_enum_event_none = 0;
|
||
|
|
||
|
struct unigi_type_event_unknown {
|
||
|
uint8_t none;
|
||
|
};
|
||
|
typedef struct unigi_type_event_unknown unigi_type_event_unknown;
|
||
|
const unigi_type_event_enum unigi_enum_event_unknown = 1;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_window_quit = 2;
|
||
|
struct unigi_type_event_window_quit {
|
||
|
uint8_t none;
|
||
|
};
|
||
|
typedef struct unigi_type_event_window_quit unigi_type_event_window_quit;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_window_focus = 4;
|
||
|
struct unigi_type_event_window_focus {
|
||
|
uint8_t focused;
|
||
|
};
|
||
|
typedef struct unigi_type_event_window_focus unigi_type_event_window_focus;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_window_activate = 5;
|
||
|
struct unigi_type_event_window_activate {
|
||
|
uint8_t active;
|
||
|
};
|
||
|
typedef struct unigi_type_event_window_activate unigi_type_event_window_activate;
|
||
|
|
||
|
// Keyboard
|
||
|
const unigi_type_event_enum unigi_enum_event_input_keyboard = 6;
|
||
|
struct unigi_type_event_input_keyboard {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_keyboard_button button;
|
||
|
unigi_type_input_button_state down;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_keyboard unigi_type_event_input_keyboard;
|
||
|
|
||
|
// Mouse
|
||
|
const unigi_type_event_enum unigi_enum_event_input_mouse_button = 7;
|
||
|
struct unigi_type_event_input_mouse_button {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_mouse_button button;
|
||
|
unigi_type_input_button_state down;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_mouse_button unigi_type_event_input_mouse_button;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_input_mouse_move = 8;
|
||
|
struct unigi_type_event_input_mouse_move {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_mouse_coord_relative rel_x;
|
||
|
unigi_type_input_mouse_coord_relative rel_y;
|
||
|
unigi_type_input_mouse_coord_absolute abs_x;
|
||
|
unigi_type_input_mouse_coord_absolute abs_y;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_mouse_move unigi_type_event_input_mouse_move;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_input_mouse_scroll = 9;
|
||
|
struct unigi_type_event_input_mouse_scroll {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_mouse_coord_scroll scroll_x;
|
||
|
unigi_type_input_mouse_coord_scroll scroll_y;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_mouse_scroll unigi_type_event_input_mouse_scroll;
|
||
|
|
||
|
// Joypad
|
||
|
const unigi_type_event_enum unigi_enum_event_input_joypad_button = 10;
|
||
|
struct unigi_type_event_input_joypad_button {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_mouse_button button;
|
||
|
unigi_type_input_button_state down;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_joypad_button unigi_type_event_input_joypad_button;
|
||
|
|
||
|
const unigi_type_event_enum unigi_enum_event_input_joypad_analog = 11;
|
||
|
struct unigi_type_event_input_joypad_analog {
|
||
|
unigi_type_input_device device;
|
||
|
unigi_type_input_joypad_button axis;
|
||
|
unigi_type_input_joypad_analog x;
|
||
|
unigi_type_input_joypad_analog y;
|
||
|
};
|
||
|
typedef struct unigi_type_event_input_joypad_analog unigi_type_event_input_joypad_analog;
|
||
|
|
||
|
// * GRAPHICS
|
||
|
struct unigi_type_resolution {
|
||
|
unigi_type_resolution_2d_coord width;
|
||
|
unigi_type_resolution_2d_coord height;
|
||
|
unigi_type_resolution_depth depth;
|
||
|
};
|
||
|
typedef struct unigi_type_resolution unigi_type_resolution;
|
||
|
|
||
|
struct unigi_type_resolution_range {
|
||
|
unigi_type_resolution_2d_coord width_min;
|
||
|
unigi_type_resolution_2d_coord height_min;
|
||
|
unigi_type_resolution_2d_coord width_max;
|
||
|
unigi_type_resolution_2d_coord height_max;
|
||
|
unigi_type_resolution_depth depth_min;
|
||
|
unigi_type_resolution_depth depth_max;
|
||
|
};
|
||
|
typedef struct unigi_type_resolution_range unigi_type_resolution_range;
|
||
|
|
||
|
union unigi_type_event_union {
|
||
|
unigi_type_event_none none;
|
||
|
unigi_type_event_unknown unknown;
|
||
|
unigi_type_event_window_quit window_quit;
|
||
|
unigi_type_event_window_activate window_activate;
|
||
|
unigi_type_event_window_focus window_focus;
|
||
|
unigi_type_event_input_keyboard input_keyboard;
|
||
|
unigi_type_event_input_mouse_button input_mouse_button;
|
||
|
unigi_type_event_input_mouse_move input_mouse_move;
|
||
|
unigi_type_event_input_mouse_scroll input_mouse_scroll;
|
||
|
unigi_type_event_input_joypad_button input_joypad_button;
|
||
|
unigi_type_event_input_joypad_analog input_joypad_analog;
|
||
|
};
|
||
|
typedef union unigi_type_event_union unigi_type_event_union;
|
||
|
|
||
|
struct unigi_type_event {
|
||
|
unigi_type_event_enum type;
|
||
|
unigi_type_event_union data;
|
||
|
};
|
||
|
typedef struct unigi_type_event unigi_type_event;
|
||
|
#endif
|