vengine  0.1.0
3D graphics engine made with Vulkan
Loading...
Searching...
No Matches
PointLightSystem.hpp
Go to the documentation of this file.
1///
2/// @file PointLightSystem.hpp
3/// @brief This file contains the PointLightSystem class
4/// @namespace ven
5///
6
7#pragma once
8
9#include <memory>
10
11#include "VEngine/Device.hpp"
12#include "VEngine/Shaders.hpp"
13#include "VEngine/FrameInfo.hpp"
14
15namespace ven {
16
17 ///
18 /// @class PointLightSystem
19 /// @brief Class for point light system
20 /// @namespace ven
21 ///
23
24 public:
25
26 explicit PointLightSystem(Device& device, VkRenderPass renderPass, VkDescriptorSetLayout globalSetLayout);
27 ~PointLightSystem() { vkDestroyPipelineLayout(m_device.device(), m_pipelineLayout, nullptr); }
28
31
32 static void update(const FrameInfo &frameInfo, GlobalUbo &ubo);
33 void render(const FrameInfo &frameInfo) const;
34
35 private:
36
37 void createPipelineLayout(VkDescriptorSetLayout globalSetLayout);
38 void createPipeline(VkRenderPass renderPass);
39
41
42 std::unique_ptr<Shaders> m_shaders;
43 VkPipelineLayout m_pipelineLayout{nullptr};
44
45 }; // class PointLightSystem
46
47} // namespace ven
This file contains the Device class.
This file contains the FrameInfo class.
This file contains the Shader class.
VkDevice device() const
Definition Device.hpp:48
Class for point light system.
PointLightSystem(Device &device, VkRenderPass renderPass, VkDescriptorSetLayout globalSetLayout)
PointLightSystem(const PointLightSystem &)=delete
VkPipelineLayout m_pipelineLayout
void createPipelineLayout(VkDescriptorSetLayout globalSetLayout)
static void update(const FrameInfo &frameInfo, GlobalUbo &ubo)
PointLightSystem & operator=(const PointLightSystem &)=delete
std::unique_ptr< Shaders > m_shaders
void render(const FrameInfo &frameInfo) const
void createPipeline(VkRenderPass renderPass)