#include "vg_engine.h"
#include "vg_tex.h"
#include "vg_shader.h"
+#include "vg_font.h"
+
+extern vg_font_sheet vg_default_font_sheet;
+extern vg_font_face vgf_default_small, vgf_default_large, vgf_default_title;
typedef i16 ui_px;
typedef ui_px ui_rect[4];
typedef u32 ui_scheme[8*4];
-struct ui_font {
- ui_px glyph_width,
- glyph_height,
- glyph_baseline,
- line_height,
- sheet_size,
- spacing,
- offset_y;
-
- u8 ascii_start;
-};
-typedef struct ui_font ui_font;
-
-extern ui_font vg_ui_font_small, vg_ui_font_big;
-
#define UI_RGB( STDHEX ) 0xff000000 |\
((STDHEX&0x000000ff)<<16) |\
((STDHEX&0x0000ff00) ) |\
f32 frosting;
ui_scheme scheme;
- const ui_font *font;
+ const vg_font_face *font;
+ v2f inverse_font_sheet;
enum ui_cursor{
k_ui_cursor_default,
void vg_ui_init(void);
void rect_copy( ui_rect a, ui_rect b );
void ui_flush( enum ui_shader shader, f32 w, f32 h );
-void ui_fill_rect( ui_rect rect, u32 colour, ui_px uv[4] );
-void ui_fill( ui_rect rect, u32 colour );
+struct ui_vert *ui_fill_rect( ui_rect rect, u32 colour, ui_px uv[4] );
+struct ui_vert *ui_fill( ui_rect rect, u32 colour );
void ui_outline( ui_rect rect, ui_px thickness, u32 colour, u32 mask );
void ui_split( ui_rect rect, enum ui_axis other, ui_px width, ui_px gap,
ui_rect l, ui_rect r );
u32 v4f_u32_colour( v4f colour );
u32 ui_opacity( u32 colour, f32 opacity );
+void ui_font_face( vg_font_face *ff );
u32 ui_ntext( ui_rect rect, const char *str, u32 len, ui_px scale,
enum ui_align align, u32 colour );
-void ui_text( ui_rect rect, const char *str, ui_px scale,
- enum ui_align align, u32 colour );
+u32 ui_text( ui_rect rect, const char *str, ui_px scale,
+ enum ui_align align, u32 colour );
void ui_panel( ui_rect in_rect, ui_rect out_panel );
void ui_label( ui_rect rect, const char *text, ui_px size,
ui_px gap, ui_rect r );