$darkmode
Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
scene_gpu_resources.h
Go to the documentation of this file.
1 #ifndef SCENE_GPU_RESOURCES_H
2 #define SCENE_GPU_RESOURCES_H
3 
12 #include "gl_common.h"
13 #include "light_probes.h" /* SH_TEXTURE_COUNT */
14 
15 enum { IBL_TEXTURE_COUNT = 3 };
16 
17 enum { TEXTURE_UNIT_IBL_START = 15 };
18 
23 typedef struct SceneGPUResources {
24  /* --- Geometry Buffers --- */
25  GLuint icosphere_vao;
26  GLuint icosphere_vbo;
27  GLuint icosphere_nbo;
28  GLuint icosphere_ebo;
29  GLuint quad_vbo;
30  GLuint wire_cube_vbo;
31  GLuint wire_quad_vbo;
32  GLuint empty_vao;
34  /* --- Textures --- */
35  GLuint hdr_texture;
38  GLuint irradiance_tex;
39  GLuint brdf_lut_tex;
40  GLuint dummy_black_tex;
41  GLuint dummy_white_tex;
44  /* --- Compute Programs --- */
45  GLuint spmap_program;
46  GLuint irmap_program;
50  /* --- Storage Buffers --- */
51  GLuint lum_ssbo[2];
53  /* --- Billboard UBO --- */
54  GLuint billboard_ubo;
57  /* --- IBL Binding Cache (Tier 5 — units 15-17) --- */
60  /* --- SH/Probe Binding Cache (Tier 3 — units 8-14 + SSBO 3) --- */
64 
65 #endif /* SCENE_GPU_RESOURCES_H */
Common OpenGL definitions, RAII helpers, and utilities.
@ SH_TEXTURE_COUNT
Definition: light_probes.h:13
@ TEXTURE_UNIT_IBL_START
Definition: scene_gpu_resources.h:17
@ IBL_TEXTURE_COUNT
Definition: scene_gpu_resources.h:15
All GPU resource handles owned by the scene.
Definition: scene_gpu_resources.h:23
GLuint icosphere_vbo
Definition: scene_gpu_resources.h:26
GLuint lum_pass1_program
Definition: scene_gpu_resources.h:47
GLuint brdf_lut_tex
Definition: scene_gpu_resources.h:39
GLuint transition_snapshot_tex
Definition: scene_gpu_resources.h:42
GLuint quad_vbo
Definition: scene_gpu_resources.h:29
GLuint dummy_white_tex
Definition: scene_gpu_resources.h:41
GLuint irmap_program
Definition: scene_gpu_resources.h:46
GLuint recycled_hdr_tex
Definition: scene_gpu_resources.h:36
GLuint wire_cube_vbo
Definition: scene_gpu_resources.h:30
GLuint dummy_black_tex
Definition: scene_gpu_resources.h:40
GLuint icosphere_ebo
Definition: scene_gpu_resources.h:28
GLuint bound_probe_ssbo
Definition: scene_gpu_resources.h:62
GLuint billboard_ubo
Definition: scene_gpu_resources.h:54
GLuint lum_ssbo[2]
Definition: scene_gpu_resources.h:51
GLuint spmap_program
Definition: scene_gpu_resources.h:45
GLuint hdr_texture
Definition: scene_gpu_resources.h:35
GLuint irradiance_tex
Definition: scene_gpu_resources.h:38
void * billboard_ubo_ptr
Definition: scene_gpu_resources.h:55
GLuint lum_pass2_program
Definition: scene_gpu_resources.h:48
GLuint empty_vao
Definition: scene_gpu_resources.h:32
GLuint wire_quad_vbo
Definition: scene_gpu_resources.h:31
GLuint bound_sh_textures[SH_TEXTURE_COUNT]
Definition: scene_gpu_resources.h:61
GLuint icosphere_vao
Definition: scene_gpu_resources.h:25
GLuint bound_ibl_textures[IBL_TEXTURE_COUNT]
Definition: scene_gpu_resources.h:58
GLuint spec_prefiltered_tex
Definition: scene_gpu_resources.h:37
GLuint icosphere_nbo
Definition: scene_gpu_resources.h:27