Structure du projet¶
Ce document décrit l'organisation des fichiers et répertoires du projet.
Arborescence¶
suckless-ogl/
├── src/ # Code source C
│ ├── main.c # Point d'entrée
│ ├── app.c # Orchestration principale
│ ├── app_ui.c # Rendu de l'interface
│ ├── app_input.c # Gestion des entrées
│ ├── app_env.c # Environnement HDR
│ ├── app_scene.c # Scène 3D
│ ├── app_binding.c # Registre des raccourcis
│ └── platform/ # Couche de portabilité
├── include/ # En-têtes C
├── shaders/ # Shaders GLSL
│ ├── pbr.vert/.frag # Shader PBR principal
│ ├── skybox.vert/.frag # Rendu de la skybox
│ ├── postprocess/ # Effets de post-traitement
│ └── compute/ # Shaders compute (IBL, exposition)
├── assets/ # Ressources statiques
│ ├── textures/ # Textures PNG/HDR
│ ├── materials/ # Descriptions de matériaux
│ └── fonts/ # Fontes FreeType
├── tests/ # Tests unitaires et d'intégration
├── docs/ # Documentation MkDocs
├── scripts/ # Scripts d'automatisation
├── deps/ # Dépendances locales (non gérées par FetchContent)
│ ├── stb/ # stb_image, stb_truetype
│ ├── cglm/ # Mathématiques vectorielles
│ └── glad/ # Chargeur OpenGL
├── CMakeLists.txt # Configuration CMake
├── Justfile # Recettes Just
└── Makefile # Compatibilité make
Modules et responsabilités¶
src/app.c — Orchestration¶
Point central de l'application. Initialise tous les sous-systèmes, gère la boucle principale, coordonne les transitions.
src/app_ui.c — Interface utilisateur¶
Rendu de la superposition d'informations (F1), timeline GPU (F3), aide clavier (H), notifications d'actions.
src/app_input.c — Entrées¶
Callbacks GLFW pour clavier et souris. Dispatch des commandes via le registre de raccourcis.
src/app_env.c — Environnement¶
Chargement asynchrone des HDR, génération IBL, transitions entre environnements.
src/app_scene.c — Scène¶
Gestion des sphères (instanciation, tri Back-to-Front, rendu instancié).
Référence des contrôles¶
| Touche | Action |
|---|---|
F1 |
Basculer la superposition d'informations |
F3 |
Basculer la timeline GPU |
SHIFT+F3 |
Position timeline (haut/bas) |
F4 |
Journalisation des métriques dans la console |
F |
Basculer plein écran |
H |
Aide clavier interactive |
M |
Basculer le mode capture souris |
E |
Environnement suivant |
SHIFT+E |
Environnement précédent |
T |
Basculer le mode de transition |
B |
Bloom on/off |
SHIFT+B |
Mode débogage Bloom (étapes) |
ALT+B |
Mode débogage Bloom (mip levels) |
+ / - |
Ajuster l'exposition manuelle |
A |
Basculer l'exposition automatique |
R |
Réinitialiser l'exposition |
Esc / Q |
Quitter |
Voir aussi¶
- architecture.md — Architecture des modules
- keyboard_system.md — Système de raccourcis détaillé
- build.md — Compilation