v4k-git-backup/engine/split/v4k_gui.h

40 lines
1.5 KiB
C
Raw Normal View History

2023-11-26 15:27:33 +00:00
// ----------------------------------------------------------------------------
// game ui
typedef struct guiskin_t {
2023-11-26 21:21:57 +00:00
void (*drawrect)(void* userdata, const char *skin, vec4 rect);
void (*getskinsize)(void* userdata, const char *skin, vec2 *size);
2023-11-28 13:31:56 +00:00
void (*getscissorrect)(void* userdata, const char *skin, vec4 rect, vec4 *dims);
bool (*ismouseinrect)(void* userdata, const char *skin, vec4 rect);
2023-11-26 15:27:33 +00:00
void (*free)(void* userdata);
void *userdata;
} guiskin_t;
API void gui_pushskin(guiskin_t skin);
API void* gui_userdata();
2023-11-26 21:21:57 +00:00
API vec2 gui_getskinsize(const char *skin);
2023-11-28 13:31:56 +00:00
API bool gui_ismouseinrect(const char *skin, vec4 rect);
2023-11-26 15:27:33 +00:00
// --
2023-11-28 13:31:56 +00:00
API void gui_panel_id(int id, vec4 rect, const char *skin);
API void gui_rect_id(int id, vec4 rect, const char *skin);
API bool gui_button_id(int id, vec4 rect, const char *skin);
API bool gui_slider_id(int id, vec4 rect, const char *skin, float min, float max, float step, float *value);
API void gui_panel_end();
2023-11-26 15:27:33 +00:00
API void gui_popskin();
// helpers
2023-11-28 13:31:56 +00:00
#define gui_panel(...) gui_panel_id(__LINE__, __VA_ARGS__)
#define gui_rect(...) gui_rect_id(__LINE__, __VA_ARGS__)
#define gui_button(...) gui_button_id(__LINE__, __VA_ARGS__)
#define gui_slider(...) gui_slider_id(__LINE__, __VA_ARGS__)
2023-11-26 15:27:33 +00:00
2023-11-26 17:54:02 +00:00
// default renderers
2023-11-26 15:27:33 +00:00
2023-11-26 17:54:02 +00:00
/// skinned
2023-11-26 15:27:33 +00:00
typedef struct skinned_t {
atlas_t atlas;
float scale;
} skinned_t;
2023-11-26 17:54:02 +00:00
API guiskin_t gui_skinned(const char *inifile, float scale);