SpiecsEngine
 
Loading...
Searching...
No Matches
PostProcessRenderer.h
Go to the documentation of this file.
1/**
2* @file PostProcessRenderer.h.
3* @brief The PostProcessRenderer Class Definitions.
4* @author Spices.
5*/
6
7#pragma once
8#include "Core/Core.h"
9#include "Render/Renderer/Renderer.h"
10
11namespace Spices {
12
13 /**
14 * @brief PostProcessRenderer Class.
15 * This class defines the PostProcess render behaves.
16 */
18 {
19 public:
20
21 /**
22 * @brief Constructor Function.
23 * Init member variables.
24 * @param[in] rendererName The name of this Renderer.
25 * @param[in] vulkanState The core vulkan objects that in use.
26 * @param[in] descriptorPool The DescriptorPool.
27 * @param[in] device The VulkanDevice, used for format query.
28 * @param[in] rendererResourcePool The RendererResourcePool, RT Pool.
29 */
31 const std::string& rendererName ,
32 VulkanState& vulkanState ,
33 const std::shared_ptr<VulkanDescriptorPool>& descriptorPool ,
34 const std::shared_ptr<VulkanDevice>& device ,
35 const std::shared_ptr<RendererResourcePool>& rendererResourcePool
36 )
37 : Renderer(rendererName, vulkanState, descriptorPool, device, rendererResourcePool)
38 {}
39
40 /**
41 * @brief Destructor Function.
42 */
43 virtual ~PostProcessRenderer() override = default;
44
45 /**
46 * @brief The interface is inherited from Renderer.
47 * @param[in] ts TimeStep.
48 * @param[in] frameInfo The current frame data.
49 */
50 virtual void Render(TimeStep& ts, FrameInfo& frameInfo) override;
51
52 private:
53
54 /**
55 * @brief The interface is inherited from Renderer.
56 * Create Specific Renderer pass.
57 */
58 virtual void CreateRendererPass() override;
59
60 /**
61 * @brief The interface is inherited from Renderer.
62 * Create specific descriptor set for sub pass.
63 */
64 virtual void CreateDescriptorSet() override;
65
66 /**
67 * @brief The interface is inherited from Renderer.
68 * Create Material Specific Pipeline.
69 * @param[in] material Registry material.
70 * @param[in] layout VkPipelineLayout.
71 * @param[in] subPass Handled subPass.
72 */
73 virtual void CreatePipeline(
74 std::shared_ptr<Material> material ,
75 VkPipelineLayout& layout ,
76 std::shared_ptr<RendererSubPass> subPass
77 ) override;
78 };
79}
#define SPICES_PROFILE_ZONE
uint32_t m_FrameIndex
FrameIndex, varying during 0 - (MaxFrameInFlight - 1). Used almost anywhere.
Definition FrameInfo.h:69
uint32_t m_ImageIndex
ImageIndex, varying during 0 - (MaxFrameInFlight - 1). Used in swapchain index and framebuffer index.
Definition FrameInfo.h:75
FrameInfo Class. This class defines the FrameInfo data.
Definition FrameInfo.h:32
Material Class. This class contains a branch of parameter and shader, also descriptor.
Definition Material.h:62
virtual ~PostProcessRenderer() override=default
Destructor Function.
virtual void Render(TimeStep &ts, FrameInfo &frameInfo) override
The interface is inherited from Renderer.
PostProcessRenderer(const std::string &rendererName, VulkanState &vulkanState, const std::shared_ptr< VulkanDescriptorPool > &descriptorPool, const std::shared_ptr< VulkanDevice > &device, const std::shared_ptr< RendererResourcePool > &rendererResourcePool)
Constructor Function. Init member variables.
virtual void CreateRendererPass() override
The interface is inherited from Renderer. Create Specific Renderer pass.
virtual void CreateDescriptorSet() override
The interface is inherited from Renderer. Create specific descriptor set for sub pass.
virtual void CreatePipeline(std::shared_ptr< Material > material, VkPipelineLayout &layout, std::shared_ptr< RendererSubPass > subPass) override
The interface is inherited from Renderer. Create Material Specific Pipeline.
PostProcessRenderer Class. This class defines the PostProcess render behaves.
RendererResourcePool Class. This class is a pool of all framebuffer's attachment.
This Class Combines some data relative to sub pass. Usually as a member variable of RendererPass.
void Dispatch(uint32_t x, uint32_t y, uint32_t z) const
Dispatch Compute Shader.
virtual void BeginRenderPass() override
Begin this Renderer's RenderPass.
Definition Renderer.cpp:900
virtual void BeginNextSubPass(const std::string &subPassName) override
End a preview sub pass and stat next sub pass.
Definition Renderer.cpp:787
virtual void EndRenderPass() override
End this Renderer's RenderPass.
This class helps to bind pipeline and bind buffer. Specific for pure Compute Renderer....
Definition Renderer.h:1739
RendererPassBuilder & EndSubPass()
End recording a sub pass.
void Build() const
Build the RendererPass.
RendererPassBuilder & AddSubPass(const std::string &subPassName, Querier::StatisticsFlags flags=Querier::ALL)
Add a new SubPass to Renderer Pass.
Renderer(const std::string &rendererName, VulkanState &vulkanState, const std::shared_ptr< VulkanDescriptorPool > &DescriptorPool, const std::shared_ptr< VulkanDevice > &device, const std::shared_ptr< RendererResourcePool > &rendererResourcePool, bool isLoadDefaultMaterial=true)
Constructor Function. Init member variables.
Definition Renderer.cpp:16
VulkanState & m_VulkanState
This variable is passed while renderer instanced.
Definition Renderer.h:1992
Renderer Class. This class defines the basic behaves of renderer. When we add an new Renderer,...
Definition Renderer.h:57
This Class handles our engine time step during frames. Global Unique.
Definition TimeStep.h:22
VulkanDescriptorPool Class. This class is the wrapper of VkDescriptorPool.
VulkanInstance Class. This class defines the VulkanDevice behave. This class is just a wrapper of vkd...
This struct contains all Vulkan object in used global.
Definition VulkanUtils.h:74