| 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...
GraphicsPipeline * | GetGraphicsPipeline () const noexcept
const std::vector< VkClearValue > & | GetClearValues () const
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 | PrepImGuiStyleSettings ()
void | PrepareResources ()
void | BuildCommandBuffer (VkCommandBuffer t_commandBuffer)
void | UpdateUniforms ()

## Private Attributes
struct Fling::ImGuiSubpass::PushConstBlock | pushConstBlock
std::unique_ptr< class Buffer > | m_vertexBuffer
std::unique_ptr< class Buffer > | m_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
FlingWindow * | m_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::BaseEditor > | m_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 LogicalDevice * | m_Device
const Swapchain * | m_SwapChain
std::shared_ptr< Fling::Shader > | m_VertexShader
std::shared_ptr< Fling::Shader > | m_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...
GraphicsPipeline * | m_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 | ) |
| override virtual

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
| ) |  |
| override virtual

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_FrameBuffer | The swap chain frame buffer

Implements Fling::Subpass.

## ◆ CreateGraphicsPipeline()

void Fling::ImGuiSubpass::CreateGraphicsPipeline | ( |  | ) |
| override virtual

Implements Fling::Subpass.

## ◆ Draw()

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

Implements Fling::Subpass.

## ◆ PrepareAttachments()

void Fling::ImGuiSubpass::PrepareAttachments | ( |  | ) |
| override virtual

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:

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