Summarizing the application flow
In this section, we will summarize the flow of swapchain creation and the building of the presentation window. It consists of two parts: initialization and rendering.
Initialization
The initialization process initializes, creates, and processes the swapchain. The swapchain is not yet connected to the framebuffer render process and the primitives. Therefore, the rendered output will be a blank presentation window for now.
First, VulkanRenderer
initializes the presentation window and creates a native platform-specific empty window (500 x 500). This window renders the swapchain's front buffer drawing image. Next, it initializes the swapchain to meet swapchain prerequisites. The swapchain image view layouts are created using command buffers that are allocated from the preallocated pool of command buffers.
During the initialization of the swapchain, the WSI extensions are queried and stored in the form of function pointers. The logical swapchain surface object is...