Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
Public Member Functions | Private Member Functions | Private Attributes
Fling::RenderPipeline Class Reference

A render pipeline encapsulates the functionality of a. More...

#include <RenderPipeline.h>

Inherits Fling::NonCopyable.

Public Member Functions

 RenderPipeline (entt::registry &t_Reg, LogicalDevice *t_dev, Swapchain *t_Swap, std::vector< std::unique_ptr< Subpass >> &t_Subpasses)
 
 ~RenderPipeline ()
 
void Draw (CommandBuffer &t_CmdBuf, VkFramebuffer t_PresentFrameBuf, UINT32 t_ActiveFrameInFlight, entt::registry &t_Reg, float DeltaTime)
 
void GatherPresentDependencies (std::vector< CommandBuffer *> &t_CmdBuffs, std::vector< VkSemaphore > &t_Deps, UINT32 t_ActiveFrameIndex, UINT32 t_CurrentFrameInFlight)
 Given a frame index, get any semaphores that the swap chain command buffer needs to wait for. More...
 
void GatherPresentBuffers (std::vector< CommandBuffer *> &t_CmdBuffs, UINT32 t_ActiveFrameIndex)
 
void CleanUp (entt::registry &t_reg)
 Clean up any allocated VK resources that may have been set in a sub pass and need the registry. More...
 
- Public Member Functions inherited from Fling::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=default
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (NonCopyable &&)=default
 

Private Member Functions

void CreateDescriptors (entt::registry &t_Reg)
 Creates the descriptor pool and the descriptor sets for each sub pass to use. More...
 

Private Attributes

std::vector< std::unique_ptr< Subpass > > m_Subpasses
 
VkDescriptorPool m_DescriptorPool = VK_NULL_HANDLE
 
const LogicalDevicem_Device
 
const Swapchainm_SwapChain
 Keep track of the swap chain so that we know how many frame buffers to create and what extents to use. More...
 

Additional Inherited Members

- Protected Member Functions inherited from Fling::NonCopyable
 NonCopyable ()=default
 
virtual ~NonCopyable ()=default
 

Detailed Description

A render pipeline encapsulates the functionality of a.

Constructor & Destructor Documentation

◆ RenderPipeline()

Fling::RenderPipeline::RenderPipeline ( entt::registry &  t_Reg,
LogicalDevice t_dev,
Swapchain t_Swap,
std::vector< std::unique_ptr< Subpass >> &  t_Subpasses 
)

◆ ~RenderPipeline()

Fling::RenderPipeline::~RenderPipeline ( )

Member Function Documentation

◆ CleanUp()

void Fling::RenderPipeline::CleanUp ( entt::registry &  t_reg)

Clean up any allocated VK resources that may have been set in a sub pass and need the registry.

◆ CreateDescriptors()

void Fling::RenderPipeline::CreateDescriptors ( entt::registry &  t_Reg)
private

Creates the descriptor pool and the descriptor sets for each sub pass to use.

◆ Draw()

void Fling::RenderPipeline::Draw ( CommandBuffer t_CmdBuf,
VkFramebuffer  t_PresentFrameBuf,
UINT32  t_ActiveFrameInFlight,
entt::registry &  t_Reg,
float  DeltaTime 
)

◆ GatherPresentBuffers()

void Fling::RenderPipeline::GatherPresentBuffers ( std::vector< CommandBuffer *> &  t_CmdBuffs,
UINT32  t_ActiveFrameIndex 
)

◆ GatherPresentDependencies()

void Fling::RenderPipeline::GatherPresentDependencies ( std::vector< CommandBuffer *> &  t_CmdBuffs,
std::vector< VkSemaphore > &  t_Deps,
UINT32  t_ActiveFrameIndex,
UINT32  t_CurrentFrameInFlight 
)

Given a frame index, get any semaphores that the swap chain command buffer needs to wait for.

Field Documentation

◆ m_DescriptorPool

VkDescriptorPool Fling::RenderPipeline::m_DescriptorPool = VK_NULL_HANDLE
private

◆ m_Device

const LogicalDevice* Fling::RenderPipeline::m_Device
private

◆ m_Subpasses

std::vector<std::unique_ptr<Subpass> > Fling::RenderPipeline::m_Subpasses
private

◆ m_SwapChain

const Swapchain* Fling::RenderPipeline::m_SwapChain
private

Keep track of the swap chain so that we know how many frame buffers to create and what extents to use.


The documentation for this class was generated from the following files: