$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
App Struct Reference

The central state container for the entire application. More...

#include <app.h>

Collaboration diagram for App:
[legend]

Data Fields

Scene * scene
 
PostProcess * postprocess
 
AppWindow win
 
double last_frame_time
 
double delta_time
 
uint64_t frame_count
 
float * lum_histogram_buffer
 
AppProfiling * profiling
 
AppInput * input
 
AppUIOverlay overlay
 
int width
 
int height
 
EnvManager * env_mgr
 
ActionNotifier notifier
 
EffectBenchmark effect_bench
 
GLuint lum_ssbo [2]
 
float u_metallic
 
float u_roughness
 
float u_ao
 
float u_exposure
 
AsyncLoader * async_loader
 
AsyncCoordinator * async_coord
 

Detailed Description

The central state container for the entire application.

Field Documentation

◆ async_coord

AsyncCoordinator* App::async_coord

Manages PBO allocation & async synchronization.

◆ async_loader

AsyncLoader* App::async_loader

Background asset loader context.

◆ delta_time

double App::delta_time

Time elapsed since last frame.

◆ effect_bench

EffectBenchmark App::effect_bench

A/B effect cost measurement.

◆ env_mgr

EnvManager* App::env_mgr

Environment/IBL state.

◆ frame_count

uint64_t App::frame_count

Monotonic frame counter.

◆ height

int App::height

Current window/viewport height.

◆ input

AppInput* App::input

Camera, gamepad, key-bindings sub-system.

◆ last_frame_time

double App::last_frame_time

Absolute time of last frame start.

◆ lum_histogram_buffer

float* App::lum_histogram_buffer

Pre-allocated buffer for histogram.

◆ lum_ssbo

GLuint App::lum_ssbo[2]

Double-buffered storage for luminance.

◆ notifier

ActionNotifier App::notifier

Temporary user notifications.

◆ overlay

AppUIOverlay App::overlay

Overlay and text rendering state.

◆ postprocess

PostProcess* App::postprocess

Main post-processing pipeline.

◆ profiling

AppProfiling* App::profiling

Profiling and metrics sub-system.

◆ scene

Scene* App::scene

The 3D scene (Includes GI Probe Grid).

◆ u_ao

float App::u_ao

Override AO for all objects.

◆ u_exposure

float App::u_exposure

Manual exposure compensation.

◆ u_metallic

float App::u_metallic

Override metallic for all objects.

◆ u_roughness

float App::u_roughness

Override roughness for all objects.

◆ width

int App::width

Current window/viewport width.

◆ win

AppWindow App::win

Window handle, fullscreen & resize state.


The documentation for this struct was generated from the following file: