SpiecsEngine
 
Loading...
Searching...
No Matches
TestRenderer.h
Go to the documentation of this file.
1#pragma once
2#include "Core/Core.h"
3#include "Render/Renderer/Renderer.h"
4
5namespace Spices {
6
7 class TestRenderer : public Renderer
8 {
9 public:
10
12 const std::string& rendererName ,
13 VulkanState& vulkanState ,
14 const std::shared_ptr<VulkanDescriptorPool>& desctiptorPool ,
15 const std::shared_ptr<VulkanDevice>& device ,
16 const std::shared_ptr<RendererResourcePool>& rendererResourcePool
17 );
18
19 virtual ~TestRenderer() {};
20 virtual void Render(TimeStep& ts, FrameInfo& frameInfo) override;
21
22 private:
23
24 virtual void CreateRendererPass() override;
25 virtual void CreateDescriptorSet() override;
26
27 /**
28 * @brief The interface is inherited from Renderer.
29 * Create Material Specific Pipeline.
30 * @param[in] material Registry material.
31 * @param[in] layout VkPipelineLayout.
32 * @param[in] subPass Handled subPass.
33 */
34 virtual void CreatePipeline(
35 std::shared_ptr<Material> material ,
36 VkPipelineLayout& layout ,
37 std::shared_ptr<RendererSubPass> subPass
38 ) override;
39 };
40
41}
#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
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.
virtual void BeginRenderPass()
Begin this Renderer's RenderPass.
Definition Renderer.cpp:840
virtual void EndRenderPass()
End this Renderer's RenderPass.
Definition Renderer.cpp:981
This class helps to bind pipeline and bind buffer. Only instanced during Render().
Definition Renderer.h:985
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
Renderer Class. This class defines the basic behaves of renderer. When we add an new Renderer,...
Definition Renderer.h:57
virtual void CreateDescriptorSet() override
This interface is called during OnSystemInitialize(). Create all sub pass descriptorSet.
virtual void Render(TimeStep &ts, FrameInfo &frameInfo) override
The interface is called every frame. Defines what data needs to be renderer and how to render.
virtual void CreateRendererPass() override
The interface is called during OnSystemInitialize(). Create specific render pass.
TestRenderer(const std::string &rendererName, VulkanState &vulkanState, const std::shared_ptr< VulkanDescriptorPool > &desctiptorPool, const std::shared_ptr< VulkanDevice > &device, const std::shared_ptr< RendererResourcePool > &rendererResourcePool)
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.
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...
TextureType
The enum of all Texture Type.
Definition Texture.h:20
This struct contains all Vulkan object in used global.
Definition VulkanUtils.h:74