2.2 KiB
Three-Layer Structure
Manager Layer (Context)
Responsabilité : Propriétaire du cycle de vie des ressources matérielles (Device, Queue, Surface).
Rôle : Encapsule la complexité du système de fenêtrage et du swapchain. Orchestre les transactions GPU via begin_frame() et end_frame().
Specialist Layer (Renderer & PipelineCache)
PipelineCache (La Bibliothèque) : Propriétaire de la compilation et du stockage des RenderPipeline. Garantit qu'un shader n'est compilé qu'une seule fois.
Renderer (L'Exécuteur) : Orchestre l'appel au dessin. Il est désormais agnostique : il ne possède plus les pipelines en dur, mais reçoit dynamiquement les Mesh et les Material à dessiner.
Orchestrator Layer (main.rs)
Responsabilité : Logique métier et boucle d'exécution.
Rôle : Coordonne le Context, le PipelineCache pour créer les Material, et enfin passe le tout au Renderer pour produire l'image.
Updated Benefits Analysis
Modularité Totale (Decoupling)
Le Renderer est totalement découplé du contenu graphique. Il ne connaît pas les shaders, il sait juste "lier" un Material à un Mesh. Cela permet un rendu multi-objets très simple.
Efficacité Mémoire (Resource Sharing)
Grâce au PipelineCache et à l'utilisation de Arc<wgpu::RenderPipeline>, plusieurs Material partagent la même recette compilée sur le GPU. On évite la duplication coûteuse de ressources.
Performance de Rendu
En séparant la "préparation des recettes" (PipelineCache) de "l'exécution du dessin" (Renderer), on élimine tout risque de compilation/allocation lourde pendant la boucle de rendu (60 FPS).
Flexibilité
Le passage à un modèle (Mesh + Material) permet de combiner n'importe quelle géométrie avec n'importe quel effet visuel à la volée.
Summary
Cette structure transforme une architecture rigide en un atelier de rendu dynamique. Le Context prépare le terrain, le PipelineCache fournit les outils (shaders), le Material définit le style, le Mesh apporte la forme, et le Renderer orchestre l'assemblage final. Le système est désormais prêt à gérer des scènes complexes avec de multiples objets et des effets variés.