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::ImGuiSubpass Class Reference

#include <ImGuiSubpass.h>

Inherits Fling::Subpass.

Data Structures

struct  PushConstBlock
 

Public Member Functions

 ImGuiSubpass (const LogicalDevice *t_Dev, const Swapchain *t_Swap, entt::registry &t_reg, FlingWindow *t_Window, VkRenderPass t_GlobalRenderPass, std::shared_ptr< Fling::BaseEditor > t_Editor, std::shared_ptr< Fling::Shader > t_Vert, std::shared_ptr< Fling::Shader > t_Frag)
 
virtual ~ImGuiSubpass ()
 
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 PrepImGuiStyleSettings ()
 
void PrepareResources ()
 
void BuildCommandBuffer (VkCommandBuffer t_commandBuffer)
 
void UpdateUniforms ()
 

Private Attributes

struct Fling::ImGuiSubpass::PushConstBlock pushConstBlock
 
std::unique_ptr< class Bufferm_vertexBuffer
 
std::unique_ptr< class Bufferm_indexBuffer
 
VkDescriptorPool m_descriptorPool = VK_NULL_HANDLE
 
VkDescriptorSetLayout m_descriptorSetLayout = VK_NULL_HANDLE
 
VkPipelineCache m_pipelineCache = VK_NULL_HANDLE
 
VkPipelineLayout m_pipelineLayout = VK_NULL_HANDLE
 
VkPipeline m_pipeLine = VK_NULL_HANDLE
 
VkDescriptorSet m_descriptorSet
 
FlingWindowm_Window = nullptr
 
VkDeviceMemory m_fontMemory = VK_NULL_HANDLE
 
VkImage m_fontImage = VK_NULL_HANDLE
 
VkImageView m_fontImageView = VK_NULL_HANDLE
 
VkSampler m_sampler = VK_NULL_HANDLE
 
std::shared_ptr< Fling::BaseEditorm_Editor
 Instance of the editor that we will get what commands to build from. More...
 
INT32 m_vertexCount = 0
 
INT32 m_indexCount = 0
 
VkRenderPass m_GlobalRenderPass = 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

◆ ImGuiSubpass()

Fling::ImGuiSubpass::ImGuiSubpass ( const LogicalDevice t_Dev,
const Swapchain t_Swap,
entt::registry &  t_reg,
FlingWindow t_Window,
VkRenderPass  t_GlobalRenderPass,
std::shared_ptr< Fling::BaseEditor t_Editor,
std::shared_ptr< Fling::Shader t_Vert,
std::shared_ptr< Fling::Shader t_Frag 
)

◆ ~ImGuiSubpass()

Fling::ImGuiSubpass::~ImGuiSubpass ( )
virtual

Member Function Documentation

◆ BuildCommandBuffer()

void Fling::ImGuiSubpass::BuildCommandBuffer ( VkCommandBuffer  t_commandBuffer)
private

◆ CleanUp()

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

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

Reimplemented from Fling::Subpass.

◆ CreateDescriptorSets()

void Fling::ImGuiSubpass::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::ImGuiSubpass::CreateGraphicsPipeline ( )
overridevirtual

Implements Fling::Subpass.

◆ Draw()

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

Implements Fling::Subpass.

◆ PrepareAttachments()

void Fling::ImGuiSubpass::PrepareAttachments ( )
overridevirtual

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

Reimplemented from Fling::Subpass.

◆ PrepareResources()

void Fling::ImGuiSubpass::PrepareResources ( )
private

◆ PrepImGuiStyleSettings()

void Fling::ImGuiSubpass::PrepImGuiStyleSettings ( )
private

◆ UpdateUniforms()

void Fling::ImGuiSubpass::UpdateUniforms ( )
private

Field Documentation

◆ m_descriptorPool

VkDescriptorPool Fling::ImGuiSubpass::m_descriptorPool = VK_NULL_HANDLE
private

◆ m_descriptorSet

VkDescriptorSet Fling::ImGuiSubpass::m_descriptorSet
private

◆ m_descriptorSetLayout

VkDescriptorSetLayout Fling::ImGuiSubpass::m_descriptorSetLayout = VK_NULL_HANDLE
private

◆ m_Editor

std::shared_ptr<Fling::BaseEditor> Fling::ImGuiSubpass::m_Editor
private

Instance of the editor that we will get what commands to build from.

◆ m_fontImage

VkImage Fling::ImGuiSubpass::m_fontImage = VK_NULL_HANDLE
private

◆ m_fontImageView

VkImageView Fling::ImGuiSubpass::m_fontImageView = VK_NULL_HANDLE
private

◆ m_fontMemory

VkDeviceMemory Fling::ImGuiSubpass::m_fontMemory = VK_NULL_HANDLE
private

◆ m_GlobalRenderPass

VkRenderPass Fling::ImGuiSubpass::m_GlobalRenderPass = VK_NULL_HANDLE
private

◆ m_indexBuffer

std::unique_ptr<class Buffer> Fling::ImGuiSubpass::m_indexBuffer
private

◆ m_indexCount

INT32 Fling::ImGuiSubpass::m_indexCount = 0
private

◆ m_pipeLine

VkPipeline Fling::ImGuiSubpass::m_pipeLine = VK_NULL_HANDLE
private

◆ m_pipelineCache

VkPipelineCache Fling::ImGuiSubpass::m_pipelineCache = VK_NULL_HANDLE
private

◆ m_pipelineLayout

VkPipelineLayout Fling::ImGuiSubpass::m_pipelineLayout = VK_NULL_HANDLE
private

◆ m_sampler

VkSampler Fling::ImGuiSubpass::m_sampler = VK_NULL_HANDLE
private

◆ m_vertexBuffer

std::unique_ptr<class Buffer> Fling::ImGuiSubpass::m_vertexBuffer
private

◆ m_vertexCount

INT32 Fling::ImGuiSubpass::m_vertexCount = 0
private

◆ m_Window

FlingWindow* Fling::ImGuiSubpass::m_Window = nullptr
private

◆ pushConstBlock

struct Fling::ImGuiSubpass::PushConstBlock Fling::ImGuiSubpass::pushConstBlock
private

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