hubLinks and schema of the architecture of the Gamegine project
Architecture
Initialization
Everything starts in Engine::initialize(). In order:
- Window — a Window & Native surface is created and shown (GLFW). It owns the native surface the GPU will eventually present to.
- Graphics context — the RHI factory reads the
GraphicsAPIenum and creates the matching Graphics context (today: the Vulkan one). - Context initialization — the Vulkan context then builds its pieces, each
with its own note:
- Vulkan instance — the connection to the Vulkan library, with Vulkan validation layers in debug builds and the instance-level Vulkan extensions.
- Vulkan surface — the bridge between the window and Vulkan.
- Vulkan physical device — enumerate the GPUs and pick the one that meets our requirements.
- Vulkan queue families — find the family that supports both graphics and presentation.
- Vulkan logical device — the software interface to the chosen GPU, with the Vulkan 1.3 features we enable.
- Resource pools — the Vulkan descriptor pool and the Vulkan command pool, pre-allocated so the rendering loop never allocates.
- Renderer
- Swapchain
- CameraUBO
- LayoutConfig
- MaterialLayout
- Create Pipeline
Recomment all the lines, one by one
The notes stop here for now. The context continues with the swapchain, and
Engine::initialize() then brings up the renderer, the asset manager, the scene
(ECS), the input bindings, and the UI — to be written as the garden grows.
Frame description
What is going on the each frame ?
Linked references 0
No notes link here yet.