Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
env_manager.h
Go to the documentation of this file.
1
10#ifndef ENV_MANAGER_H
11#define ENV_MANAGER_H
12
13#include "app_settings.h"
14#include "async_loader.h"
15#include "gl_common.h"
16#include "ibl_coordinator.h"
17#include <stdbool.h>
18
19// Forward declarations
20typedef struct Scene Scene;
21typedef struct PostProcess PostProcess;
22
29
47
56 const char* filename);
57
64void env_manager_process_loading_step(EnvManager* mgr, GLuint* recycled_hdr_tex,
65 IBLCoordinator* ibl);
66
75 const char* filename);
76
91 PostProcess* postproc, uint64_t frame_count,
92 int width, int height);
93
103 PostProcess* postproc, double delta_time,
104 uint64_t frame_count);
105
111void env_manager_render_overlay(const EnvManager* mgr, const Scene* scene);
112
113/* --- Subsystem descriptor (alloc-only Phase 1) --- */
114#include "app_subsystem.h"
115
116int env_mgr_subsys_init(struct App* app);
117void env_mgr_subsys_cleanup(struct App* app);
118
119#define APP_ENV_MGR_DESCRIPTOR \
120 {"env_mgr", env_mgr_subsys_init, env_mgr_subsys_cleanup}
121
122#endif /* ENV_MANAGER_H */
Global application constants, configuration macros, and default values.
Subsystem descriptor pattern for structured init/cleanup.
Threaded asynchronous file loader engine (Format-agnostic).
EnvMapLoadingState
Definition env_manager.h:23
@ EML_START_IBL
Definition env_manager.h:27
@ EML_STOP
Definition env_manager.h:24
@ EML_MIPMAP
Definition env_manager.h:26
@ EML_UPLOAD_HDR_FROM_PBO
Definition env_manager.h:25
void env_manager_update_transition(EnvManager *mgr, Scene *scene, PostProcess *postproc, double delta_time, uint64_t frame_count)
Updates the environment transition animation.
Definition env_manager.c:256
void env_manager_process_loading_step(EnvManager *mgr, GLuint *recycled_hdr_tex, IBLCoordinator *ibl)
Processes the multi-frame HDR environment loading state machine.
Definition env_manager.c:58
int env_manager_load(EnvManager *mgr, AsyncLoader *loader, const char *filename)
Starts an asynchronous load of an environment map.
Definition env_manager.c:23
int env_mgr_subsys_init(struct App *app)
Definition env_manager.c:333
void env_manager_render_overlay(const EnvManager *mgr, const Scene *scene)
Renders the transition overlay (fade/crossfade).
Definition env_manager.c:299
void env_mgr_subsys_cleanup(struct App *app)
Definition env_manager.c:349
void env_manager_update_ibl(EnvManager *mgr, Scene *scene, PostProcess *postproc, uint64_t frame_count, int width, int height)
Updates the IBL state machine and handles transition events.
Definition env_manager.c:238
int env_manager_trigger_transition(EnvManager *mgr, AsyncLoader *loader, const char *filename)
Triggers a new environment transition.
Definition env_manager.c:135
Common OpenGL definitions, RAII helpers, and utilities.
TransitionState
States for the environment map transition.
Definition app_settings.h:162
Coordinator for progressive Image-Based Lighting (IBL) generation.
The central state container for the entire application.
Definition app.h:24
Definition async_loader.c:14
Données de la requête asynchrone transférées entre les threads.
Definition async_loader.h:33
Encapsulates state for environment loading, transitions, and IBL.
Definition env_manager.h:34
GLuint pending_env_tex
Definition env_manager.h:45
int env_transition_mode
Definition env_manager.h:44
bool env_map_loading
Definition env_manager.h:35
TransitionState transition_state
Definition env_manager.h:40
float transition_alpha
Definition env_manager.h:41
bool is_first_load
Definition env_manager.h:43
AsyncRequest current_env_req
Definition env_manager.h:39
EnvMapLoadingState env_map_loading_step
Definition env_manager.h:37
float transition_duration
Definition env_manager.h:42
Manages the progressive IBL generation process.
Definition ibl_coordinator.h:36
Main pipeline state for post-processing.
Definition postprocess_internal.h:46
Encapsulates all 3D scene data, geometry, and rendering state.
Definition scene.h:27