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

#include <DebugSubpass.h>

Inherits Fling::Subpass.

Data Structures

struct  DebugUBO
 

Public Member Functions

 DebugSubpass (const LogicalDevice *t_Dev, const Swapchain *t_Swap, entt::registry &t_reg, VkRenderPass t_GlobalRenderPass, FirstPersonCamera *t_Cam, std::shared_ptr< Fling::Shader > t_Vert, std::shared_ptr< Fling::Shader > t_Frag)
 
virtual ~DebugSubpass ()
 
void Draw (CommandBuffer &t_CmdBuf, VkFramebuffer t_PresentFrameBuf, UINT32 t_ActiveFrameInFlight, entt::registry &t_reg, float DeltaTime) override
 
void CreateDescriptorSets (VkDescriptorPool t_Pool, entt::registry &t_reg) override
 Given the frame buffers and the registry, create any descriptor sets that we may need Assumes that the frame buffer has been prepared with it's attachments already. More...
 
void PrepareAttachments () override
 Add any attachments to a frame buffer that this subpass may need. More...
 
void CreateGraphicsPipeline () override
 
void CleanUp (entt::registry &t_reg) override
 Cleanup any allocated resources that you may need a registry for. More...
 
- Public Member Functions inherited from Fling::Subpass
 Subpass (const LogicalDevice *t_Dev, const Swapchain *t_Swap, std::shared_ptr< Fling::Shader > t_Vert, std::shared_ptr< Fling::Shader > t_Frag)
 
virtual ~Subpass ()
 
virtual void GatherPresentDependencies (std::vector< CommandBuffer *> &t_CmdBuffs, std::vector< VkSemaphore > &t_Deps, UINT32 t_ActiveFrameIndex, UINT32 t_CurrentFrameInFlight)
 If a subpass has a command buffer that the final swap chain presentation is dependent on, then add it this vector. More...
 
virtual void GatherPresentBuffers (std::vector< CommandBuffer *> &t_CmdBuffs, UINT32 t_ActiveFrameIndex)
 If a subpass has an additional command buffer to add to the final swap chain draw submission but it is not dependent on it, then add it here. More...
 
GraphicsPipelineGetGraphicsPipeline () const noexcept
 
const std::vector< VkClearValue > & GetClearValues () const
 
- 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 OnMeshRendererAdded (entt::entity t_Ent, entt::registry &t_Reg, MeshRenderer &t_MeshRend)
 
void CreateMeshDescriptorSet (MeshRenderer &t_MeshRend)
 

Private Attributes

VkRenderPass m_GlobalRenderPass = VK_NULL_HANDLE
 
const FirstPersonCameram_Camera
 
struct Fling::DebugSubpass::DebugUBO m_Ubo
 
VkDescriptorPool m_DescriptorPool = VK_NULL_HANDLE
 

Additional Inherited Members

- Protected Member Functions inherited from Fling::NonCopyable
 NonCopyable ()=default
 
virtual ~NonCopyable ()=default
 
- Protected Attributes inherited from Fling::Subpass
const LogicalDevicem_Device
 
const Swapchainm_SwapChain
 
std::shared_ptr< Fling::Shaderm_VertexShader
 
std::shared_ptr< Fling::Shaderm_FragShader
 
std::vector< VkClearValue > m_ClearValues = std::vector<VkClearValue>(2)
 The clear values that will be used when building the command buffer to run this subpass. More...
 
GraphicsPipelinem_GraphicsPipeline = nullptr
 Layouts created in the constructor via shader reflection. More...
 

Constructor & Destructor Documentation

◆ DebugSubpass()

Fling::DebugSubpass::DebugSubpass ( const LogicalDevice t_Dev,
const Swapchain t_Swap,
entt::registry &  t_reg,
VkRenderPass  t_GlobalRenderPass,
FirstPersonCamera t_Cam,
std::shared_ptr< Fling::Shader t_Vert,
std::shared_ptr< Fling::Shader t_Frag 
)

◆ ~DebugSubpass()

Fling::DebugSubpass::~DebugSubpass ( )
virtual

Member Function Documentation

◆ CleanUp()

void Fling::DebugSubpass::CleanUp ( entt::registry &  t_reg)
overridevirtual

Cleanup any allocated resources that you may need a registry for.

Reimplemented from Fling::Subpass.

◆ CreateDescriptorSets()

void Fling::DebugSubpass::CreateDescriptorSets ( VkDescriptorPool  t_Pool,
entt::registry &  t_reg 
)
overridevirtual

Given the frame buffers and the registry, create any descriptor sets that we may need Assumes that the frame buffer has been prepared with it's attachments already.

Parameters
t_FrameBufferThe swap chain frame buffer

Implements Fling::Subpass.

◆ CreateGraphicsPipeline()

void Fling::DebugSubpass::CreateGraphicsPipeline ( )
overridevirtual

Implements Fling::Subpass.

◆ CreateMeshDescriptorSet()

void Fling::DebugSubpass::CreateMeshDescriptorSet ( MeshRenderer t_MeshRend)
private

◆ Draw()

void Fling::DebugSubpass::Draw ( CommandBuffer t_CmdBuf,
VkFramebuffer  t_PresentFrameBuf,
UINT32  t_ActiveFrameInFlight,
entt::registry &  t_reg,
float  DeltaTime 
)
overridevirtual

Implements Fling::Subpass.

◆ OnMeshRendererAdded()

void Fling::DebugSubpass::OnMeshRendererAdded ( entt::entity  t_Ent,
entt::registry &  t_Reg,
MeshRenderer t_MeshRend 
)
private

◆ PrepareAttachments()

void Fling::DebugSubpass::PrepareAttachments ( )
overridevirtual

Add any attachments to a frame buffer that this subpass may need.

Reimplemented from Fling::Subpass.

Field Documentation

◆ m_Camera

const FirstPersonCamera* Fling::DebugSubpass::m_Camera
private

◆ m_DescriptorPool

VkDescriptorPool Fling::DebugSubpass::m_DescriptorPool = VK_NULL_HANDLE
private

◆ m_GlobalRenderPass

VkRenderPass Fling::DebugSubpass::m_GlobalRenderPass = VK_NULL_HANDLE
private

◆ m_Ubo

struct Fling::DebugSubpass::DebugUBO Fling::DebugSubpass::m_Ubo
private

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