Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
app_ui.h
Go to the documentation of this file.
1
9#ifndef APP_UI_H
10#define APP_UI_H
11#include "glad/glad.h"
12#include "ui.h"
13#include <stdbool.h>
14
15/* Histogram bucket count (used by tests and postprocess) */
16enum { HISTO_BUCKETS = 256 };
17
18/* Highlight duration for key-press animation (shared with app_input.c) */
19static const float HELP_PRESS_DURATION = 2.0F;
20
31
40
74
75typedef struct App App;
76
81void app_draw_help_overlay(const App* app);
82
87void app_draw_gamepad_help_overlay(const App* app);
88
93void app_draw_debug_overlay(const App* app);
94
101void app_render_ui(const App* app);
102
103/* --- Internal helper functions --- */
104
116int compute_luminance_histogram(const App* app, int* buckets, int size,
117 float* min_lum, float* max_lum);
118
122void app_ui_handle_mouse(AppUIOverlay* overlay, double xpos, double ypos,
123 int width, int height);
124
125#endif /* APP_UI_H */
static const float HELP_PRESS_DURATION
Definition app_ui.h:19
void app_draw_debug_overlay(const App *app)
Draws the debug overlay with performance metrics and settings.
Definition app_ui.c:1060
void app_ui_init(AppUIOverlay *overlay)
Definition app_ui.c:72
void app_render_ui(const App *app)
Main UI rendering entry point.
Definition app_ui.c:1279
void app_ui_handle_mouse(AppUIOverlay *overlay, double xpos, double ypos, int width, int height)
Definition app_ui.c:150
void app_ui_update(AppUIOverlay *overlay, double delta_time)
Definition app_ui.c:115
@ HISTO_BUCKETS
Definition app_ui.h:16
HelpMode
States for the F2 help overlay cycling.
Definition app_ui.h:25
@ HELP_MODE_GAMEPAD
Definition app_ui.h:28
@ HELP_MODE_COUNT
Definition app_ui.h:29
@ HELP_MODE_OFF
Definition app_ui.h:26
@ HELP_MODE_KEYBOARD
Definition app_ui.h:27
void app_ui_cleanup(AppUIOverlay *overlay)
Definition app_ui.c:102
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:1321
void app_draw_help_overlay(const App *app)
Draws the help overlay with keyboard shortcuts.
Definition app_ui.c:410
void app_draw_gamepad_help_overlay(const App *app)
Draws the gamepad help overlay with controller bindings.
Definition app_ui.c:675
Definition app_ui.h:41
int help_pressed_key
Definition app_ui.h:51
int text_overlay_mode
Definition app_ui.h:47
UIContext ui
Definition app_ui.h:42
KeyboardLayoutConfig kbd_config
Definition app_ui.h:43
GLuint kbd_tex_key_base
Definition app_ui.h:67
HelpMode show_help
Definition app_ui.h:45
bool show_exposure_debug
Definition app_ui.h:48
int help_hovered_key
Definition app_ui.h:50
bool help_captured_camera
Definition app_ui.h:72
double help_press_timer
Definition app_ui.h:53
double help_global_dim
Definition app_ui.h:54
double help_hover_decay
Definition app_ui.h:55
bool show_info_overlay
Definition app_ui.h:46
double help_gp_decay
Definition app_ui.h:58
GLuint kbd_tex_frame
Definition app_ui.h:65
int help_pressed_mods
Definition app_ui.h:52
The central state container for the entire application.
Definition app.h:24
AppUIOverlay overlay
Definition app.h:37
int width
Definition app.h:41
int height
Definition app.h:42
double delta_time
Definition app.h:30
Definition app_ui.h:32
float key_padding
Definition app_ui.h:34
float detail_y_offset
Definition app_ui.h:38
float key_radius
Definition app_ui.h:35
float key_size
Definition app_ui.h:33
float title_y_offset
Definition app_ui.h:37
float label_scale
Definition app_ui.h:36
Persistent state for the UI system.
Definition ui.h:52
Minimal immediate-mode User Interface (UI) library.