Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
postprocess.h
Go to the documentation of this file.
1
11#ifndef POSTPROCESS_H
12#define POSTPROCESS_H
13
14#include <glad/glad.h>
15
16typedef struct PostProcess PostProcess;
18typedef struct GPUProfiler GPUProfiler;
19
20/* --- Lifecycle --- */
21
22int postprocess_init(PostProcess* post_processing,
23 GPUProfiler* external_profiler, int width, int height);
24void postprocess_cleanup(PostProcess* post_processing);
25void postprocess_compile_optimized(PostProcess* post_processing,
26 unsigned int static_flags);
27void postprocess_use_dynamic(PostProcess* post_processing);
29 GLuint dummy_black);
30void postprocess_resize(PostProcess* post_processing, int width, int height);
31
32/* --- Render Pass Management --- */
33
34void postprocess_begin(PostProcess* post_processing);
35void postprocess_end(PostProcess* post_processing);
36
37/* --- Presets --- */
38
39void postprocess_apply_preset(PostProcess* post_processing,
40 const PostProcessPreset* preset);
41
42/* Sub-API headers for specific consumers */
43#include "postprocess_readback.h" // IWYU pragma: export
44#include "postprocess_setters.h" // IWYU pragma: export
45
46/* --- Subsystem descriptor (alloc-only Phase 1) --- */
47#include "app_subsystem.h"
48
49int postprocess_subsys_init(struct App* app);
50void postprocess_subsys_cleanup(struct App* app);
51
52#define APP_POSTPROCESS_DESCRIPTOR \
53 {"postprocess", postprocess_subsys_init, postprocess_subsys_cleanup}
54
55#endif /* POSTPROCESS_H */
Subsystem descriptor pattern for structured init/cleanup.
void postprocess_subsys_cleanup(struct App *app)
Definition postprocess_init.c:411
int postprocess_subsys_init(struct App *app)
Definition postprocess_init.c:392
int postprocess_init(PostProcess *post_processing, GPUProfiler *external_profiler, int width, int height)
Definition postprocess_init.c:169
void postprocess_use_dynamic(PostProcess *post_processing)
Definition postprocess_shader.c:222
void postprocess_set_dummy_textures(PostProcess *post_processing, GLuint dummy_black)
Definition postprocess_init.c:322
void postprocess_apply_preset(PostProcess *post_processing, const PostProcessPreset *preset)
Definition postprocess_setters.c:253
void postprocess_begin(PostProcess *post_processing)
Definition postprocess_apply.c:19
void postprocess_cleanup(PostProcess *post_processing)
Definition postprocess_cleanup.c:69
void postprocess_end(PostProcess *post_processing)
Definition postprocess_apply.c:369
void postprocess_resize(PostProcess *post_processing, int width, int height)
Definition postprocess_init.c:328
void postprocess_compile_optimized(PostProcess *post_processing, unsigned int static_flags)
Definition postprocess_shader.c:144
Async GPU readback and histogram API for post-processing.
Parameter setter/getter API for the post-processing pipeline.
The central state container for the entire application.
Definition app.h:24
Manages GPU timing using double-buffered queries to avoid stalls.
Definition gpu_profiler.h:86
Snapshot of every configurable parameter in the pipeline.
Definition postprocess_internal.h:98
Main pipeline state for post-processing.
Definition postprocess_internal.h:46