BrendonButler / BrendonButler/entropy
[Feature] Build a compositor and render pipeline manager
- Dominant language
- Java
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
### Description of the Feature
A `Compositor` class that orchestrates rendering across multiple stages, including 3D scene rendering, 2D UI rendering, independant 2D/3D rendering, and optional post-processing. The compositor will manage viewport settings, framebuffer targets, and shader routing, ensuring that each renderer is invoked in the correct order and context.
This compositor will include:
- A `RenderPipeline` class to define and manage render stages
- A `Compositor` class that executes the pipeline and coordinates renderers
- A `RenderStage` enum or registry to identify stages (e.g., `SCENE_3D`, `UI_2D`, `POST_PROCESS`)
- A `FramebufferManager` for handling render targets and screen output
- Shader routing logic to apply effects selectively per stage
This system should be extensible to support features like split-screen, render-to-texture, and dynamic stage composition.
### Benefits of the Feature
1. Centralizes rendering orchestration for modularity and maintainability
2. Enables clean separation of 2D and 3D rendering logic
3. Supports layered rendering (e.g., 3D -> UI -> post-process)
4. Facilitates advanced features like split-screen and picture-in-picture
5. Allows selective shader applications per render stage
6. Provides a scalable foundation for future rendering enhancements
### Additional Information
[OpenGL glViewport Usage](https://registry.khronos.org/OpenGL-Refpages/gl4/html/glViewport.xhtml)
Consider future support for render graphs or stage dependencies
Related modules: `Render2D`, `Render3D`, `ShaderManager`, `FramebufferManager`
Contributor guide
Assessment
This issue has not been assessed yet.