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

Main pipeline state for post-processing. More...

#include <postprocess.h>

Collaboration diagram for PostProcess:
[legend]

Data Fields

GLuint scene_fbo
 
GLuint scene_color_tex
 
GLuint velocity_tex
 
GLuint scene_depth_tex
 
GLuint scene_stencil_view
 
BloomFX bloom_fx
 
DoFFX dof_fx
 
AutoExposureFX auto_exposure_fx
 
MotionBlurFX motion_blur_fx
 
LUT3DFX lut3d_fx
 
LUTVizFX lut_viz_fx
 
GLuint screen_quad_vao
 
GLuint screen_quad_vbo
 
GLuint settings_ubo
 
Shaderpostprocess_shader
 
Shadertile_max_shader
 
Shaderneighbor_max_shader
 
int width
 
int height
 
unsigned int active_effects
 
VignetteParams vignette
 
GrainParams grain
 
ExposureParams exposure
 
ChromAbberationParams chrom_abbr
 
WhiteBalanceParams white_balance
 
ColorGradingParams color_grading
 
TonemapParams tonemapper
 
BloomParams bloom
 
DoFParams dof
 
AutoExposureParams auto_exposure
 
MotionBlurParams motion_blur
 
FXAAParams fxaa
 
BandingParams banding
 
FogParams fog
 
LUT3DParams lut3d
 
float time
 
float delta_time
 
GLuint dummy_black_tex
 
GLuint dummy_uint_tex
 
bool is_optimized
 
bool ubo_dirty
 
unsigned int compiled_flags
 
ShaderCacheEntry shader_cache [SHADER_CACHE_SIZE]
 
int shader_cache_count
 
GPUProfilergpu_profiler
 
int banding_preset_idx
 
GLuint exposure_pbo [2]
 
GLuint histogram_pbo [2]
 
GLsync exposure_sync [2]
 
GLsync histogram_sync [2]
 
float current_exposure
 
float auto_threshold
 
int last_buckets [256]
 
float last_min_lum
 
float last_max_lum
 
int last_histogram_updated
 
uint64_t frame_count
 

Detailed Description

Main pipeline state for post-processing.

Field Documentation

◆ active_effects

unsigned int PostProcess::active_effects

Bitfield of enabled effects.

◆ auto_exposure

AutoExposureParams PostProcess::auto_exposure

◆ auto_exposure_fx

AutoExposureFX PostProcess::auto_exposure_fx

Adaptation subsystem.

◆ auto_threshold

float PostProcess::auto_threshold

Dynamic exposure target.

◆ banding

BandingParams PostProcess::banding

◆ banding_preset_idx

int PostProcess::banding_preset_idx

Internal index for preset cycling.

◆ bloom

BloomParams PostProcess::bloom

◆ bloom_fx

BloomFX PostProcess::bloom_fx

Bloom subsystem.

◆ chrom_abbr

ChromAbberationParams PostProcess::chrom_abbr

◆ color_grading

ColorGradingParams PostProcess::color_grading

◆ compiled_flags

unsigned int PostProcess::compiled_flags

Flags used for the current optimized shader.

◆ current_exposure

float PostProcess::current_exposure

Cached exposure from GPU readback.

◆ delta_time

float PostProcess::delta_time

Last frame delta.

◆ dof

DoFParams PostProcess::dof

◆ dof_fx

DoFFX PostProcess::dof_fx

Depth-of-field subsystem.

◆ dummy_black_tex

GLuint PostProcess::dummy_black_tex

Fallback texture.

◆ dummy_uint_tex

GLuint PostProcess::dummy_uint_tex

◆ exposure

ExposureParams PostProcess::exposure

◆ exposure_pbo

GLuint PostProcess::exposure_pbo[2]

Pixel Buffer Object for mean luma readback.

◆ exposure_sync

GLsync PostProcess::exposure_sync[2]

Sync objects to avoid CPU stalls on exposure readback.

◆ fog

FogParams PostProcess::fog

◆ frame_count

uint64_t PostProcess::frame_count

Internal frame counter for readback sync.

◆ fxaa

FXAAParams PostProcess::fxaa

◆ gpu_profiler

GPUProfiler* PostProcess::gpu_profiler

◆ grain

GrainParams PostProcess::grain

◆ height

int PostProcess::height

Target resolution height.

◆ histogram_pbo

GLuint PostProcess::histogram_pbo[2]

Pixel Buffer Object for luminance histogram readback.

◆ histogram_sync

GLsync PostProcess::histogram_sync[2]

Sync objects to avoid CPU stalls on histogram readback.

◆ is_optimized

bool PostProcess::is_optimized

true if Uber-shader uses static preprocessor flags.

◆ last_buckets

int PostProcess::last_buckets[256]

◆ last_histogram_updated

int PostProcess::last_histogram_updated

◆ last_max_lum

float PostProcess::last_max_lum

◆ last_min_lum

float PostProcess::last_min_lum

◆ lut3d

LUT3DParams PostProcess::lut3d

◆ lut3d_fx

LUT3DFX PostProcess::lut3d_fx

3D LUT subsystem.

◆ lut_viz_fx

LUTVizFX PostProcess::lut_viz_fx

LUT visualization.

◆ motion_blur

MotionBlurParams PostProcess::motion_blur

◆ motion_blur_fx

MotionBlurFX PostProcess::motion_blur_fx

Blur subsystem.

◆ neighbor_max_shader

Shader* PostProcess::neighbor_max_shader

Motion blur helper.

◆ postprocess_shader

Shader* PostProcess::postprocess_shader

Main Uber-shader.

◆ scene_color_tex

GLuint PostProcess::scene_color_tex

RGBA16F HDR texture.

◆ scene_depth_tex

GLuint PostProcess::scene_depth_tex

D32F Depth texture.

◆ scene_fbo

GLuint PostProcess::scene_fbo

Main HDR framebuffer.

◆ scene_stencil_view

GLuint PostProcess::scene_stencil_view

Stencil view of depth texture.

◆ screen_quad_vao

GLuint PostProcess::screen_quad_vao

Shared quad for passes.

◆ screen_quad_vbo

GLuint PostProcess::screen_quad_vbo

Quad vertices.

◆ settings_ubo

GLuint PostProcess::settings_ubo

GPU buffer for parameters.

◆ shader_cache

ShaderCacheEntry PostProcess::shader_cache[SHADER_CACHE_SIZE]

◆ shader_cache_count

int PostProcess::shader_cache_count

◆ tile_max_shader

Shader* PostProcess::tile_max_shader

Motion blur helper.

◆ time

float PostProcess::time

Accumulated time for noise/animation.

◆ tonemapper

TonemapParams PostProcess::tonemapper

◆ ubo_dirty

bool PostProcess::ubo_dirty

true when UBO needs re-upload.

◆ velocity_tex

GLuint PostProcess::velocity_tex

RG16F Motion vector texture.

◆ vignette

VignetteParams PostProcess::vignette

◆ white_balance

WhiteBalanceParams PostProcess::white_balance

◆ width

int PostProcess::width

Target resolution width.


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