unigi/structs.h

128 lines
4.5 KiB
C
Raw Permalink Normal View History

#ifndef unigi_header_structs
#define unigi_header_structs
2024-09-11 22:19:07 +00:00
#include "types.h"
// * EVENTS
struct unigi_type_event_none {
uint8_t none;
};
typedef struct unigi_type_event_none unigi_type_event_none;
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static const unigi_type_event_enum unigi_enum_event_unknown = 1;
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static 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
2024-09-11 22:19:07 +00:00
static 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
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static 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
2024-09-11 22:19:07 +00:00
static 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;
2024-09-11 22:19:07 +00:00
static 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