13 #define ASCII_CHAR_COUNT 96
16 #include <cglm/cglm.h>
32 #define UI_MAX_BATCH_VERTICES 8192
123 float pos_y,
float padding,
int screen_width,
136 float pos_y,
const vec3 color,
int screen_width,
149 float pos_y,
const vec3 color,
float alpha,
150 int screen_width,
int screen_height);
154 float pos_y,
const vec3 color,
float alpha,
155 float scale,
int screen_width,
int screen_height);
159 float width,
float height,
const vec3 color,
int screen_width,
164 float width,
float height,
const vec3 color,
float alpha,
165 int screen_width,
int screen_height);
169 float size,
float angle,
const vec3 color,
170 int screen_width,
int screen_height);
174 float width,
float height,
float radius,
175 const vec3 color,
float alpha,
int screen_width,
180 float width,
float height,
float radius,
181 const vec3 color,
float alpha,
int screen_width,
196 float rect_y,
float width,
float height,
197 const vec3 tint,
float alpha,
int screen_width,
214 float rect_y,
float width,
float height,
215 const vec3 tint,
float intensity,
int screen_width,
layout(location=0) in vec3 RayDir
Common OpenGL definitions, RAII helpers, and utilities.
Metrics and texture coordinates for a single font character.
Definition: ui.h:24
float h
Definition: ui.h:26
float advance
Definition: ui.h:28
float x_off
Definition: ui.h:27
float x0
Definition: ui.h:25
Wrapper for an OpenGL program with uniform caching and automatic cleanup.
Definition: shader.h:71
Persistent state for the UI system.
Definition: ui.h:51
GLuint vao
Definition: ui.h:56
int batch_active
Definition: ui.h:63
GLuint current_texture
Definition: ui.h:64
Shader * spinner_shader
Definition: ui.h:55
int current_screen_width
Definition: ui.h:61
Shader * shader
Definition: ui.h:53
GLuint texture
Definition: ui.h:52
int current_screen_height
Definition: ui.h:62
float font_size
Definition: ui.h:58
int batch_count
Definition: ui.h:60
Helper for automatic vertical stacking of UI elements.
Definition: ui.h:71
float cursor_y
Definition: ui.h:74
int screen_height
Definition: ui.h:77
float start_x
Definition: ui.h:73
float padding
Definition: ui.h:75
int screen_width
Definition: ui.h:76
UIContext * ui
Definition: ui.h:72
Vertex data for the batch renderer.
Definition: ui.h:38
float rect_size_x
Definition: ui.h:43
float mode
Definition: ui.h:42
float u
Definition: ui.h:40
float a
Definition: ui.h:41
float radius
Definition: ui.h:44
float x
Definition: ui.h:39
void ui_layout_init(UILayout *layout, UIContext *ui_ctx, float pos_x, float pos_y, float padding, int screen_width, int screen_height)
Initializes a layout helper for a frame.
Definition: ui.c:553
void ui_draw_rect_ex(UIContext *ui_context, float rect_x, float rect_y, float width, float height, const vec3 color, float alpha, int screen_width, int screen_height)
Draws a solid color rectangle with custom alpha transparency.
Definition: ui.c:471
float ui_measure_text(const UIContext *ui_context, const char *text)
Measures the width of a text string in pixels.
Definition: ui.c:379
void ui_begin(UIContext *ui_context, int screen_width, int screen_height)
Begins a new UI batch.
Definition: ui.c:303
void ui_draw_glow_rect(UIContext *ui_context, float rect_x, float rect_y, float width, float height, float radius, const vec3 color, float alpha, int screen_width, int screen_height)
Draws an SDF neon glow border around a rounded rectangle area.
Definition: ui.c:827
void ui_destroy(UIContext *ui_context)
Releases UI resources.
Definition: ui.c:523
void ui_draw_text_ex(UIContext *ui_context, const char *text, float pos_x, float pos_y, const vec3 color, float alpha, int screen_width, int screen_height)
Draws text with custom alpha transparency.
Definition: ui.c:402
void ui_layout_text(UILayout *layout, const char *text, const vec3 color)
Draws text and advances the layout cursor.
Definition: ui.c:565
void ui_layout_separator(UILayout *layout, float space)
Adds vertical space to the layout.
Definition: ui.c:579
#define UI_MAX_BATCH_VERTICES
Maximum number of vertices per UI batch.
Definition: ui.h:32
#define ASCII_CHAR_COUNT
Number of supported glyphs in the font atlas.
Definition: ui.h:13
void ui_draw_text(UIContext *ui_context, const char *text, float pos_x, float pos_y, const vec3 color, int screen_width, int screen_height)
Draws a single text string at a specific coordinate.
Definition: ui.c:371
void ui_flush(UIContext *ui_context)
Flushes the current UI batch to the GPU.
Definition: ui.c:326
void ui_draw_bloom_quad(UIContext *ui_context, GLuint texture, float rect_x, float rect_y, float width, float height, const vec3 tint, float intensity, int screen_width, int screen_height)
Draws a textured quad with additive blending for bloom effects (mode 4).
Definition: ui.c:770
void ui_draw_textured_quad(UIContext *ui_context, GLuint texture, float rect_x, float rect_y, float width, float height, const vec3 tint, float alpha, int screen_width, int screen_height)
Draws a textured quad tinted by a color (mode 3).
Definition: ui.c:718
void ui_draw_text_scaled(UIContext *ui_context, const char *text, float pos_x, float pos_y, const vec3 color, float alpha, float scale, int screen_width, int screen_height)
Draws text with custom alpha transparency and a scale factor.
Definition: ui.c:410
int ui_init(UIContext *ui_context, const char *font_path, float font_size)
Initializes the UI system.
Definition: ui.c:236
void ui_draw_rect(UIContext *ui_context, float rect_x, float rect_y, float width, float height, const vec3 color, int screen_width, int screen_height)
Draws a solid color rectangle.
Definition: ui.c:463
void ui_draw_spinner(UIContext *ui_context, float center_x, float center_y, float size, float angle, const vec3 color, int screen_width, int screen_height)
Draws a rotating loading spinner.
Definition: ui.c:587
void ui_draw_rounded_rect(UIContext *ui_context, float rect_x, float rect_y, float width, float height, float radius, const vec3 color, float alpha, int screen_width, int screen_height)
Draws a rounded rectangle with custom alpha.
Definition: ui.c:660
void ui_end(UIContext *ui_context)
Ends the current UI batch and restores OpenGL state.
Definition: ui.c:360