Developer Handbook
This section contains technical documentation for contributors and developers working on the OpenGL Renderer codebase.
Contents
- Architecture — Three-layer design and communication patterns.
- Renderer Layer — GPU resources, rendering pipeline, and constraints.
- Editor Layer — Application logic, controllers, and the event system.
- API Reference — Auto-generated class documentation.
Quick Reference
Build
msbuild /m /p:Configuration=Debug,Platform=x64 OpenGL.sln
msbuild /m /p:Configuration=Release,Platform=x64 OpenGL.sln
Test
Test binaries are output to test/renderer_test/build/.
An OpenGL 4.6 environment is required for full coverage.
Expectations: no GL errors, no resource leaks, all assertions pass.
Project Layout
| Path | Contents |
|---|---|
src/render/ |
Renderer and GPU resource management |
src/editor/ |
Editor logic, controllers, events |
src/UI/ |
ImGui UI layer |
src/scene/ |
Scene objects (Mesh, Light, Camera, …) |
res/shaders/ |
Shader assets |
test/ |
Unit tests |
dep/ |
Third-party dependencies |
Code Style
- Language: C++20
- Braces: Allman style
- Indentation: Tabs
- Naming: PascalCase for types and public methods; member prefixes (
r_,o_,is_,tex_) match local conventions - Ownership: RAII throughout; no separate
Init()/Terminate()on resource-owning classes - Const correctness:
conston all non-mutating methods; Renderer takesconst Context& - Error handling:
GLERRTEST/GLDEBUGmacros; early return on invalid state