shithub: wipeout

ref: 5314d92ec6d4f5987fe442a73d30aff747fc667c
dir: /src/wipeout/ui.h/

View raw version
#ifndef UI_H
#define UI_H

#include "../types.h"

typedef enum {
	UI_SIZE_16,
	UI_SIZE_12,
	UI_SIZE_8,
	UI_SIZE_MAX
} ui_text_size_t;

#define UI_COLOR_ACCENT rgba(123, 98, 12, 255)
#define UI_COLOR_DEFAULT rgba(128, 128, 128, 255)

typedef enum {
	UI_ICON_HAND,
	UI_ICON_CONFIRM,
	UI_ICON_CANCEL,
	UI_ICON_END,
	UI_ICON_DEL,
	UI_ICON_STAR,
	UI_ICON_MAX
} ui_icon_type_t;

typedef enum {
	UI_POS_LEFT   = 1 << 0,
	UI_POS_CENTER = 1 << 1,
	UI_POS_RIGHT =  1 << 2,
	UI_POS_TOP =    1 << 3,
	UI_POS_MIDDLE = 1 << 4,
	UI_POS_BOTTOM = 1 << 5,
} ui_pos_t;

void ui_load();
void ui_cleanup();

int ui_get_scale();
void ui_set_scale(int scale);
vec2i_t ui_scaled(vec2i_t v);
vec2i_t ui_scaled_screen();
vec2i_t ui_scaled_pos(ui_pos_t anchor, vec2i_t offset);

int ui_char_width(char c, ui_text_size_t size);
int ui_text_width(const char *text, ui_text_size_t size);
int ui_number_width(int num, ui_text_size_t size);

void ui_draw_text(const char *text, vec2i_t pos, ui_text_size_t size, rgba_t color);
void ui_draw_time(float time, vec2i_t pos, ui_text_size_t size, rgba_t color);
void ui_draw_number(int num, vec2i_t pos, ui_text_size_t size, rgba_t color);

void ui_draw_image(vec2i_t pos, uint16_t texture);
void ui_draw_icon(ui_icon_type_t icon, vec2i_t pos, rgba_t color);
void ui_draw_text_centered(const char *text, vec2i_t pos, ui_text_size_t size, rgba_t color);

#endif