Core rendering functionality of the Fling Engine.
More...
#include <VulkanApp.h>
Inherits Fling::Singleton< VulkanApp >.
|
| static VulkanApp & | Get () |
| |
| | Singleton ()=default |
| | Every singleton must have a default constructor so that explicit creation and destruction of them is maintained. More...
|
| |
Core rendering functionality of the Fling Engine.
Controls what Render pipelines are available
◆ VulkanApp()
| Fling::VulkanApp::VulkanApp |
( |
| ) |
|
|
default |
Specify default constructible so that we have more explicit control with Init and Shutdown.
◆ ~VulkanApp()
| Fling::VulkanApp::~VulkanApp |
( |
| ) |
|
|
default |
◆ BuildGlobalRenderPass()
| void Fling::VulkanApp::BuildGlobalRenderPass |
( |
| ) |
|
|
private |
◆ BuildRenderPipelines()
Builds any render pipelines with their specific set of sub passes and shaders.
◆ BuildSwapChainFrameBuffer()
| void Fling::VulkanApp::BuildSwapChainFrameBuffer |
( |
| ) |
|
|
private |
◆ BuildSwapChainResources()
| void Fling::VulkanApp::BuildSwapChainResources |
( |
| ) |
|
|
private |
Build the frame buffers for each swap chain image along with the render pass for it to use.
◆ ChooseSwapExtent()
| VkExtent2D Fling::VulkanApp::ChooseSwapExtent |
( |
| ) |
|
|
private |
Returns the current extents needed to render based on the physical device and surface.
◆ CreateFrameSyncResources()
| void Fling::VulkanApp::CreateFrameSyncResources |
( |
| ) |
|
|
private |
Create semaphores for available swap chain images and fences for the current frame in flight
◆ CreateGameWindow()
| void Fling::VulkanApp::CreateGameWindow |
( |
const UINT32 |
t_width, |
|
|
const UINT32 |
t_height |
|
) |
| |
|
private |
Creates a window and preps the VkSurfaceKHR.
◆ GetCamera()
◆ GetCommandPool()
| const VkCommandPool Fling::VulkanApp::GetCommandPool |
( |
| ) |
const |
|
inline |
◆ GetCurrentWindow()
| FlingWindow* Fling::VulkanApp::GetCurrentWindow |
( |
| ) |
const |
|
inline |
◆ GetLogicalDevice()
◆ GetPhysicalDevice()
◆ Init()
◆ Prepare()
| void Fling::VulkanApp::Prepare |
( |
| ) |
|
|
private |
Prepare logical, physical and swap chain devices.
Prepares window based on the Fling Config
◆ Shutdown()
| void Fling::VulkanApp::Shutdown |
( |
entt::registry & |
t_Reg | ) |
|
◆ Update()
| void Fling::VulkanApp::Update |
( |
float |
DeltaTime, |
|
|
entt::registry & |
t_Reg |
|
) |
| |
Updates all rendering buffers and sends commands to draw a frame.
offsetX
offsetY
◆ CurrentFrameIndex
| size_t Fling::VulkanApp::CurrentFrameIndex = 0 |
|
private |
The index of the current frame in flight.
This is controlled with the in flight fences and is updated every Update of the vulkan app.
◆ m_Camera
The Vulkan app will specify the current camera and be limited to one for now.
◆ m_CommandPool
| VkCommandPool Fling::VulkanApp::m_CommandPool = VK_NULL_HANDLE |
|
private |
◆ m_CurrentWindow
| FlingWindow* Fling::VulkanApp::m_CurrentWindow = nullptr |
|
private |
◆ m_DepthBuffer
◆ m_DrawCmdBuffers
Keep a vector of command buffers that we want to use so that we can have one for each active frame.
◆ m_InFlightFences
| std::vector<VkFence> Fling::VulkanApp::m_InFlightFences |
|
private |
◆ m_Instance
| Instance* Fling::VulkanApp::m_Instance = nullptr |
|
private |
◆ m_LogicalDevice
◆ m_PhysicalDevice
◆ m_PresentCompleteSemaphores
| std::vector<VkSemaphore> Fling::VulkanApp::m_PresentCompleteSemaphores |
|
private |
◆ m_RenderFinishedSemaphores
| std::vector<VkSemaphore> Fling::VulkanApp::m_RenderFinishedSemaphores |
|
private |
◆ m_RenderPass
| VkRenderPass Fling::VulkanApp::m_RenderPass = VK_NULL_HANDLE |
|
private |
◆ m_RenderPipelines
◆ m_Surface
| VkSurfaceKHR Fling::VulkanApp::m_Surface = VK_NULL_HANDLE |
|
private |
Handle to the surface extension used to interact with the windows system.
◆ m_SwapChain
| Swapchain* Fling::VulkanApp::m_SwapChain = nullptr |
|
private |
◆ m_SwapChainClearVals
| std::vector<VkClearValue> Fling::VulkanApp::m_SwapChainClearVals = std::vector<VkClearValue>(2) |
|
private |
The clear values that will be used when building the command buffer to run this subpass.
◆ m_SwapChainFrameBuffers
| std::vector<VkFramebuffer> Fling::VulkanApp::m_SwapChainFrameBuffers |
|
private |
◆ m_WaitStages
| VkPipelineStageFlags Fling::VulkanApp::m_WaitStages = { VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT } |
|
private |
The documentation for this class was generated from the following files: