8 #include "async/async_coordinator.h"
22 #include <cglm/cglm.h>
24 #ifdef USE_SSBO_RENDERING
93 int app_init(
App* app,
int width,
int height,
const char* title);
Temporary on-screen notification system for user actions.
Adaptive sampling utility for performance metrics.
@ TRACY_SCREENSHOT_WIDTH
Definition: app.h:112
@ TRACY_SCREENSHOT_HEIGHT
Definition: app.h:112
void app_run(App *app)
Enters the main application rendering and event loop.
Definition: app.c:186
void app_cleanup(App *app)
Safely releases all GPU and CPU resources held by the application.
Definition: app.c:147
int app_init(App *app, int width, int height, const char *title)
Fully initializes the application state, window, and OpenGL context.
Definition: app.c:29
void app_update(App *app)
One-frame logic update (physics, timers, camera).
Definition: app.c:327
UI rendering module for the application.
Threaded asynchronous file loader for heavy assets (HDR, textures).
First-person camera module with realistic physics and head-bobbing.
Automated A/B GPU cost measurement for individual postprocess effects.
Environment and IBL management module.
Common OpenGL definitions, RAII helpers, and utilities.
Runtime performance optimization module.
High-level post-processing pipeline and effects.
Buffer-backed instancing for ultra-large-scale rendering.
Manager for action notifications.
Definition: action_notifier.h:41
Collector for performance samples within a rolling or fixed window.
Definition: adaptive_sampler.h:38
Central registry that holds application key bindings.
Definition: app_binding.h:48
The central state container for the entire application.
Definition: app.h:35
float u_roughness
Definition: app.h:78
Camera camera
Definition: app.h:53
int saved_height
Definition: app.h:60
AppUIOverlay overlay
Definition: app.h:50
TracyManager tracy_mgr
Definition: app.h:74
int resize_pending
Definition: app.h:61
int log_gpu_metrics
Definition: app.h:70
int saved_x
Definition: app.h:59
int pending_width
Definition: app.h:62
int width
Definition: app.h:56
double last_frame_time
Definition: app.h:40
GLuint lum_ssbo[2]
Definition: app.h:73
EffectBenchmark effect_bench
Definition: app.h:69
int saved_y
Definition: app.h:59
int height
Definition: app.h:57
float u_metallic
Definition: app.h:77
float u_ao
Definition: app.h:79
FpsCounter fps_counter
Definition: app.h:46
float * lum_histogram_buffer
Definition: app.h:43
EnvManager env_mgr
Definition: app.h:65
PostProcess postprocess
Definition: app.h:38
GLFWwindow * window
Definition: app.h:39
double delta_time
Definition: app.h:41
int is_fullscreen
Definition: app.h:58
int pending_height
Definition: app.h:63
GPUProfilerUI timeline_ui
Definition: app.h:49
AppBindingRegistry binding_registry
Definition: app.h:51
AsyncCoordinator async_coord
Definition: app.h:84
int camera_enabled
Definition: app.h:64
uint64_t frame_count
Definition: app.h:42
Scene scene
Definition: app.h:37
float u_exposure
Definition: app.h:80
PerfModeContext perf_context
Definition: app.h:67
int saved_width
Definition: app.h:60
int perf_mode_active
Definition: app.h:66
AdaptiveSampler fps_sampler
Definition: app.h:47
AsyncLoader * async_loader
Definition: app.h:82
GPUProfiler gpu_profiler
Definition: app.h:48
ActionNotifier notifier
Definition: app.h:68
Opaque handle to the asynchronous loader context.
Definition: async_loader.c:17
Represents a 3D camera with orientation, movement, and physical properties.
Definition: camera.h:40
State for the automated benchmark sweep.
Definition: effect_benchmark.h:64
Encapsulates state for environment loading, transitions, and IBL.
Definition: env_manager.h:26
Manages the visual state and animations for the GPU timeline.
Definition: gpu_profiler_ui.h:12
Manages GPU timing using double-buffered queries to avoid stalls.
Definition: gpu_profiler.h:86
State container for performance mode.
Definition: perf_mode.h:52
Main pipeline state for post-processing.
Definition: postprocess.h:353
Encapsulates all 3D scene data, geometry, and rendering state.
Definition: scene.h:138
Handles Tracy-specific instrumentation and asynchronous GPU screenshots.
Definition: tracy_manager.h:20
Minimal immediate-mode User Interface (UI) library.
struct GLFWwindow GLFWwindow
Definition: window.h:4