2
3
4
5
9#include "Render/Renderer/Renderer.h"
14
15
16
22
23
24
25
26
27
28
29
31 const std::string& rendererName ,
39
40
44
45
46
47
51
52
53
54
60
61
62
66
67
68
72
73
74
75
76
77
80 VkPipelineLayout& layout ,
85
86
90
91
92
93
99
100
104
105
109
110
114
115
116
120
121
122
#define SPICES_PROFILE_ZONEN(...)
#define SPICES_PROFILE_ZONE
#define VK_CHECK(expr)
Vulkan Check macro. Verify Vulkan API Effectiveness.
This Class manages all descriptor sets this project.
uint32_t m_FrameIndex
FrameIndex, varying during 0 - (MaxFrameInFlight - 1). Used almost anywhere.
uint32_t m_ImageIndex
ImageIndex, varying during 0 - (MaxFrameInFlight - 1). Used in swapchain index and framebuffer index.
FrameInfo Class. This class defines the FrameInfo data.
static void SetFonts(FontMode fontmode=FontMode::FONT_PROPORTIONAL_SCALED)
Looking for TTF fonts, first on the VULKAN SDK, then Windows default fonts.
static void SetStyle()
Setting common style across samples.
static void MainDockSpace(Side side=Side::Scene, float alpha=1.0f)
Begin a docking space.
The ImGuiH Class. This class defines helper function for slate render.
Material Class. This class contains a branch of parameter and shader, also descriptor.
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.
virtual void EndRenderPass()
End this Renderer's RenderPass.
This class helps to bind pipeline and bind buffer. Only instanced during Render().
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.
virtual void OnSlateResize()
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.
DescriptorSetManager::DescriptorSetCombineFlags m_DescriptorSetCombine
Combination of DescriptorSet.
virtual void OnSystemInitialize()
This interface is called on render system is registered. Initialize the specific renderer's pipeline,...
VulkanState & m_VulkanState
This variable is passed while renderer instanced.
Renderer Class. This class defines the basic behaves of renderer. When we add an new Renderer,...
void InitImgui() const
Init Imgui.
virtual void OnWindowResizeOver() override
This interface is called on Window resized over (registry by swapchain). If the specific renderer use...
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.
void BeginImguiFrame()
Begin Imgui frame.
virtual void CreateRendererPass() override
The interface is inherited from Renderer. Create specific render pass.
SlateRenderer(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 ~SlateRenderer() override
Destructor Function.
virtual void OnSystemInitialize() override
Rewrite Renderer OnSystemInitialize to add other code.
void ShutdownImgui()
Shutdown Imgui.
virtual void CreateDescriptorSet() override
The interface is inherited from Renderer. Create specific descriptor set for sub pass.
void EndImguiFrame(uint32_t index) const
End Imgui frame.
virtual void Render(TimeStep &ts, FrameInfo &frameInfo) override
The interface is inherited from Renderer.
static std::shared_ptr< VulkanPipeline > GetPipeline(const std::string &name)
Get slate material pipeline.
void EndImguiFrameAsync(uint32_t index)
End Imgui frame.
SlateRenderer Class. This class defines the imgui render behaves.
This Class handles our engine time step during frames. Global Unique.
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 class is a wrapper of VkPipelineLayout and VkPipeline.
Thread safe unordered_map.
static scl::thread_unordered_map< std::string, std::shared_ptr< VulkanPipeline > > * m_SlatePipelinesPtr
This struct contains all Vulkan object in used global.