渲染器流程
- SimpleLogger Init 
- Set up window - Create event loop 
- Build window 
 
- Create VulkanContext - Create vulkan instance - Ash_window::enumerate_required_extensions 
- Create Vulkan Instance 
- DebugUtilMessenger 
 
- Create vulkan surface 
- Create vulkan physical device and queue families indices 
- Create vulkan device and graphics, present queues 
- Create command buffer pool 
 
- Allocate command buffer 
- Create swapchain - Create vulkan swapchain - Swapchain format 
- Swapchain present mode 
- Swapchain extent (width , height) 
- Swapchian image count 
- Create swapchain 
- Create swapchain image views 
 
- Create vulkan render pass - Attachment descriptions 
- Color attachment reference 
- Subpass descriptions 
- Subpass dependency 
- Create render pass 
 
- Create vulkan frame buffers 
 
- Semaphore for presentation - Image available semaphore 
- render finished semaphore 
 
- Create fence 
- Setup Imgui - Create Imgui 
- WinitPlatform init imgui 
- Imgui add fonts 
- Platform attach window 
 
- Allocate renderer 
- Main loop - platform handle event 
- new frame event 
- dirty swapchain 
- UI - generate ui 
- draw ui 
- create ui draw data 
 
- device wait for preframe fence 
- swap chain acquire next image 
- record ui draw data to command buffer - begin render pass with frame buffer, render area, clear value 
- insert draw data 
- end render pass 
 
- vulkan_context submit command_buffers 
- get present_result 
 
- LoopDestroyed - destroy any thing 
 
最后更新于
这有帮助吗?
