| 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
NonCopyable & | operator= (const NonCopyable &)=delete
NonCopyable & | operator= (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 LogicalDevice * | m_Device
const Swapchain * | m_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:

- FlingEngine/Graphics/inc/RenderPipeline.h
- FlingEngine/Graphics/src/RenderPipeline.cpp