12 #include "glad/glad.h"
14 #include <GLFW/glfw3.h>
15 #include <cglm/types.h>
129 {GLFW_KEY_ESCAPE,
ROW_SYSTEM, 0.0F, 1.0F,
"Esc"},
139 {GLFW_KEY_F10,
ROW_SYSTEM, 12.5F, 1.0F,
"F10"},
140 {GLFW_KEY_F11,
ROW_SYSTEM, 13.5F, 1.0F,
"F11"},
141 {GLFW_KEY_F12,
ROW_SYSTEM, 14.5F, 1.2F,
"F12"},
144 {GLFW_KEY_GRAVE_ACCENT,
ROW_NUMBERS, 0.0F, 1.0F,
"~"},
157 {GLFW_KEY_TAB,
ROW_QWERTY, 0.0F, 1.5F,
"Tab"},
170 {GLFW_KEY_CAPS_LOCK,
ROW_ASDF, 0.0F, 1.8F,
"Caps"},
171 {GLFW_KEY_A,
ROW_ASDF, 1.8F, 1.0F,
"A"},
172 {GLFW_KEY_S,
ROW_ASDF, 2.8F, 1.0F,
"S"},
173 {GLFW_KEY_D,
ROW_ASDF, 3.8F, 1.0F,
"D"},
174 {GLFW_KEY_F,
ROW_ASDF, 4.8F, 1.0F,
"F"},
175 {GLFW_KEY_G,
ROW_ASDF, 5.8F, 1.0F,
"G"},
176 {GLFW_KEY_H,
ROW_ASDF, 6.8F, 1.0F,
"H"},
177 {GLFW_KEY_J,
ROW_ASDF, 7.8F, 1.0F,
"J"},
178 {GLFW_KEY_K,
ROW_ASDF, 8.8F, 1.0F,
"K"},
179 {GLFW_KEY_L,
ROW_ASDF, 9.8F, 1.0F,
"L"},
182 {GLFW_KEY_LEFT_SHIFT,
ROW_ZXCV, 0.0F, 2.3F,
"Shift"},
183 {GLFW_KEY_Z,
ROW_ZXCV, 2.3F, 1.0F,
"Z"},
184 {GLFW_KEY_X,
ROW_ZXCV, 3.3F, 1.0F,
"X"},
185 {GLFW_KEY_C,
ROW_ZXCV, 4.3F, 1.0F,
"C"},
186 {GLFW_KEY_V,
ROW_ZXCV, 5.3F, 1.0F,
"V"},
187 {GLFW_KEY_B,
ROW_ZXCV, 6.3F, 1.0F,
"B"},
188 {GLFW_KEY_N,
ROW_ZXCV, 7.3F, 1.0F,
"N"},
189 {GLFW_KEY_M,
ROW_ZXCV, 8.3F, 1.0F,
"M"},
192 {GLFW_KEY_LEFT_CONTROL,
ROW_BOTTOM, 0.0F, 1.5F,
"Ctrl"},
193 {GLFW_KEY_SPACE,
ROW_BOTTOM, 3.8F, 6.0F,
"Space"},
194 {GLFW_KEY_PAGE_UP,
ROW_ZXCV, 13.5F, 1.3F,
"PgUp"},
195 {GLFW_KEY_PAGE_DOWN,
ROW_BOTTOM, 13.5F, 1.3F,
"PgDn"},
196 {GLFW_KEY_UP,
ROW_ZXCV, 15.0F, 1.0F,
"Up"},
197 {GLFW_KEY_DOWN,
ROW_BOTTOM, 15.0F, 1.0F,
"Dn"}};
265 float* min_lum,
float* max_lum);
Global application constants, configuration macros, and default values.
static const vec3 HISTO_BAR_COLOR_BLUE
Definition: app_ui.h:73
@ ROW_NUMBERS
Definition: app_ui.h:103
@ ROW_QWERTY
Definition: app_ui.h:104
@ ROW_ZXCV
Definition: app_ui.h:106
@ ROW_ASDF
Definition: app_ui.h:105
@ ROW_SYSTEM
Definition: app_ui.h:102
@ ROW_BOTTOM
Definition: app_ui.h:107
static const float DEFAULT_KBD_KEY_RADIUS
Definition: app_ui.h:22
static const float HELP_PRESS_DURATION
Definition: app_ui.h:80
static const vec3 KEY_COLOR_CYCLE
Definition: app_ui.h:65
static const float KEY_PRESS_BRIGHTEN_MIN
Definition: app_ui.h:57
static const float UI_TEXT_OFFSET_FACTOR
Definition: app_ui.h:86
void app_draw_debug_overlay(const App *app)
Draws the debug overlay with performance metrics and settings.
Definition: app_ui.c:719
static const float LEGEND_Y_FACTOR
Definition: app_ui.h:34
static const float DEFAULT_KBD_DETAIL_Y_OFFSET
Definition: app_ui.h:25
static const float BLOOM_PRESS_MAX_ALPHA
Definition: app_ui.h:53
void app_ui_init(AppUIOverlay *overlay)
Definition: app_ui.c:56
static const float HELP_EXIT_HINT_Y_OFF
Definition: app_ui.h:60
static const float UI_LOADING_TEXT_WIDTH_FACTOR
Definition: app_ui.h:84
static const float LUMINANCE_EPSILON
Definition: app_ui.h:28
static const double HOVER_DECAY_DURATION
Definition: app_ui.h:79
static const float GLOBAL_DIM_MAX_FALLOFF
Definition: app_ui.h:77
static const float HELP_BG_ALPHA
Definition: app_ui.h:54
static const vec3 KEY_COLOR_DEFAULT
Definition: app_ui.h:63
static const float GRAPH_POS_X
Definition: app_ui.h:40
static const vec3 HELP_BG_COLOR
Definition: app_ui.h:67
static const vec3 HISTO_BAR_COLOR_RED
Definition: app_ui.h:74
static const KeyPos KEY_LAYOUT_QWERTY[]
Definition: app_ui.h:127
static const float GRAPH_TEXT_PADDING
Definition: app_ui.h:30
static const vec3 HISTO_BAR_COLOR_GREEN
Definition: app_ui.h:72
static const float HELP_TEXT_ALPHA
Definition: app_ui.h:58
static const vec3 KEY_COLOR_COMBINATION
Definition: app_ui.h:66
@ UI_LOADING_TEXT_SIZE
Definition: app_ui.h:89
static const vec3 KEY_COLOR_TOGGLE
Definition: app_ui.h:64
static const float KEY_DEFAULT_ALPHA
Definition: app_ui.h:56
static const float DEFAULT_KBD_BLOOM_SCALE
Definition: app_ui.h:47
static const float GRAPH_DIM_W
Definition: app_ui.h:42
void app_render_ui(const App *app)
Main UI rendering entry point.
Definition: app_ui.c:867
@ MODIFIER_BUFFER_SIZE
Definition: app_ui.h:97
@ KEYBOARD_BUFFER_SIZE
Definition: app_ui.h:98
@ EXPOSURE_TEXT_BUFFER_SIZE
Definition: app_ui.h:96
@ ENV_TEXT_BUFFER_SIZE
Definition: app_ui.h:95
@ DEBUG_TEXT_BUFFER_SIZE
Definition: app_ui.h:93
@ RANGE_TEXT_BUFFER_SIZE
Definition: app_ui.h:94
static const float GLOW_HOVER_ALPHA
Definition: app_ui.h:52
static const float KEY_PRESSED_ALPHA
Definition: app_ui.h:55
static const float UI_SPINNER_SIZE
Definition: app_ui.h:85
static const float BLOOM_MAX_INTENSITY
Definition: app_ui.h:51
static const float LEGEND_COMBO_STEP_MULT
Definition: app_ui.h:37
static const float HELP_EXIT_HINT_X_OFF
Definition: app_ui.h:59
void app_ui_handle_mouse(AppUIOverlay *overlay, double xpos, double ypos, int width, int height)
Definition: app_ui.c:128
void app_ui_update(AppUIOverlay *overlay, double delta_time)
Definition: app_ui.c:98
static const float DEFAULT_KBD_UNBOUND_ALPHA
Definition: app_ui.h:48
static const double UI_SPINNER_SPEED
Definition: app_ui.h:83
static const float DEFAULT_KBD_LABEL_SCALE
Definition: app_ui.h:23
static const float DEFAULT_KBD_TITLE_Y_OFFSET
Definition: app_ui.h:24
static const float UI_CENTER_FACTOR
Definition: app_ui.h:29
static const vec3 GRAPH_TEXT_COLOR
Definition: app_ui.h:70
static const float GRAPH_DIM_H
Definition: app_ui.h:43
static const float DEFAULT_KBD_KEY_PADDING
Definition: app_ui.h:21
static const vec3 UI_SPINNER_COLOR
Definition: app_ui.h:87
static const float DEFAULT_BASE_RESOLUTION_HEIGHT
Definition: app_ui.h:19
static const vec3 DEBUG_ORANGE_COLOR
Definition: app_ui.h:71
@ HISTO_BUCKETS
Definition: app_ui.h:44
static const float DEFAULT_KBD_KEY_SIZE
Definition: app_ui.h:20
void app_ui_cleanup(AppUIOverlay *overlay)
Definition: app_ui.c:85
int compute_luminance_histogram(const App *app, int *buckets, int size, float *min_lum, float *max_lum)
Computes the luminance histogram from current frame data.
Definition: app_ui.c:907
static const float DEBUG_TEXT_Y_OFFSET
Definition: app_ui.h:31
static const float DEFAULT_KBD_BOUND_ALPHA
Definition: app_ui.h:49
static const float PANEL_FRAME_ALPHA
Definition: app_ui.h:50
void app_draw_help_overlay(const App *app)
Draws the help overlay with keyboard shortcuts.
Definition: app_ui.c:388
static const vec3 CYBER_TITLE_COLOR
Definition: app_ui.h:68
static const float GRAPH_POS_Y_OFF
Definition: app_ui.h:41
static const float LEGEND_STEP_FACTOR
Definition: app_ui.h:36
static const vec3 ENV_TEXT_COLOR
Definition: app_ui.h:69
static const float LEGEND_X_START_FACTOR
Definition: app_ui.h:35
static const float GLOBAL_DIM_SMOOTH_FACTOR
Definition: app_ui.h:78
static const float DEFAULT_FONT_SIZE
Definition: app_settings.h:213
int help_pressed_key
Definition: app_ui.h:209
int show_help
Definition: app_ui.h:203
int text_overlay_mode
Definition: app_ui.h:205
UIContext ui
Definition: app_ui.h:200
KeyboardLayoutConfig kbd_config
Definition: app_ui.h:201
GLuint kbd_tex_key_base
Definition: app_ui.h:221
int help_captured_camera
Definition: app_ui.h:226
int help_hovered_key
Definition: app_ui.h:208
double help_press_timer
Definition: app_ui.h:211
double help_global_dim
Definition: app_ui.h:212
double help_hover_decay
Definition: app_ui.h:213
GLuint kbd_tex_frame
Definition: app_ui.h:219
int show_exposure_debug
Definition: app_ui.h:206
int show_info_overlay
Definition: app_ui.h:204
int help_pressed_mods
Definition: app_ui.h:210
The central state container for the entire application.
Definition: app.h:35
AppUIOverlay overlay
Definition: app.h:50
int width
Definition: app.h:56
int height
Definition: app.h:57
double delta_time
Definition: app.h:41
int key
Definition: app_ui.h:111
const char * label
Definition: app_ui.h:115
float width
Definition: app_ui.h:114
float x_off
Definition: app_ui.h:113
int row
Definition: app_ui.h:112
float key_padding
Definition: app_ui.h:120
float detail_y_offset
Definition: app_ui.h:124
float key_radius
Definition: app_ui.h:121
float key_size
Definition: app_ui.h:119
float title_y_offset
Definition: app_ui.h:123
float label_scale
Definition: app_ui.h:122
Persistent state for the UI system.
Definition: ui.h:49
Minimal immediate-mode User Interface (UI) library.