![]() |
Fling Engine
0.00.1
Fling Engine is a game engine written in Vulkan
|
The geometry subpass is in charge of sending the geometry portion of the Deferred pipeline to the GPU. More...
#include <GeometrySubpass.h>
Inherits Fling::Subpass.
Public Member Functions | |
| GeometrySubpass (const LogicalDevice *t_Dev, const Swapchain *t_Swap, entt::registry &t_reg, VkRenderPass t_GlobalRenderPass, FirstPersonCamera *t_Cam, FrameBuffer *t_OffscreenDep, std::shared_ptr< Fling::Shader > t_Vert, std::shared_ptr< Fling::Shader > t_Frag) | |
| virtual | ~GeometrySubpass () |
| 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 | CreateGraphicsPipeline () override |
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 | PrepareAttachments () |
| Add any attachments to a frame buffer that this subpass may need. More... | |
| virtual void | CleanUp (entt::registry &t_reg) |
| Cleanup any allocated resources that you may need a registry for. More... | |
| 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 | OnPointLightAdded (entt::entity t_Ent, entt::registry &t_Reg, PointLight &t_Light) |
| void | UpdateLightingUBO (entt::registry &t_Reg, UINT32 t_ActiveFrame) |
Private Attributes | |
| std::shared_ptr< Model > | m_QuadModel |
| VkRenderPass | m_GlobalRenderPass = VK_NULL_HANDLE |
| const FirstPersonCamera * | m_Camera |
| FrameBuffer * | m_OffscreenFrameBuf = nullptr |
| The offscreen frame buffer that has the G Buffer attachments. More... | |
| std::vector< VkDescriptorSet > | m_DescriptorSets |
| std::vector< Buffer * > | m_LightingUboBuffers |
| std::vector< Buffer * > | m_CameraUboBuffers |
| std::vector< Buffer * > | m_QuadUboBuffer |
| LightingUbo | m_LightingUBO = {} |
| CameraInfoUbo | m_CamInfoUBO = {} |
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... | |
The geometry subpass is in charge of sending the geometry portion of the Deferred pipeline to the GPU.
This includes frame buffer attachments for albedo, normals, and depth as well some actual mesh data via a Uniform buffer Uses the Deferred shaders
| Fling::GeometrySubpass::GeometrySubpass | ( | const LogicalDevice * | t_Dev, |
| const Swapchain * | t_Swap, | ||
| entt::registry & | t_reg, | ||
| VkRenderPass | t_GlobalRenderPass, | ||
| FirstPersonCamera * | t_Cam, | ||
| FrameBuffer * | t_OffscreenDep, | ||
| std::shared_ptr< Fling::Shader > | t_Vert, | ||
| std::shared_ptr< Fling::Shader > | t_Frag | ||
| ) |
|
virtual |
|
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.
| t_FrameBuffer | The swap chain frame buffer |
Implements Fling::Subpass.
|
overridevirtual |
| t_FrameBuffer | The swap chain frame buffer |
Implements Fling::Subpass.
|
overridevirtual |
Implements Fling::Subpass.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
The offscreen frame buffer that has the G Buffer attachments.
|
private |
|
private |
1.8.13