vengine  0.1.0
3D graphics engine made with Vulkan
Loading...
Searching...
No Matches
ven::PointLightSystem Class Reference

Class for point light system. More...

#include <PointLightSystem.hpp>

+ Collaboration diagram for ven::PointLightSystem:

Public Member Functions

 PointLightSystem (Device &device, VkRenderPass renderPass, VkDescriptorSetLayout globalSetLayout)
 
 ~PointLightSystem ()
 
 PointLightSystem (const PointLightSystem &)=delete
 
PointLightSystemoperator= (const PointLightSystem &)=delete
 
void render (const FrameInfo &frameInfo) const
 

Static Public Member Functions

static void update (const FrameInfo &frameInfo, GlobalUbo &ubo)
 

Private Member Functions

void createPipelineLayout (VkDescriptorSetLayout globalSetLayout)
 
void createPipeline (VkRenderPass renderPass)
 

Private Attributes

Devicem_device
 
std::unique_ptr< Shadersm_shaders
 
VkPipelineLayout m_pipelineLayout {nullptr}
 

Detailed Description

Class for point light system.

Definition at line 22 of file PointLightSystem.hpp.

Constructor & Destructor Documentation

◆ PointLightSystem() [1/2]

ven::PointLightSystem::PointLightSystem ( Device & device,
VkRenderPass renderPass,
VkDescriptorSetLayout globalSetLayout )
explicit

Definition at line 15 of file pointLightSystem.cpp.

References createPipeline(), and createPipelineLayout().

+ Here is the call graph for this function:

◆ ~PointLightSystem()

ven::PointLightSystem::~PointLightSystem ( )
inline

Definition at line 27 of file PointLightSystem.hpp.

References ven::Device::device(), m_device, and m_pipelineLayout.

+ Here is the call graph for this function:

◆ PointLightSystem() [2/2]

ven::PointLightSystem::PointLightSystem ( const PointLightSystem & )
delete

Member Function Documentation

◆ createPipeline()

void ven::PointLightSystem::createPipeline ( VkRenderPass renderPass)
private

Definition at line 42 of file pointLightSystem.cpp.

References ven::Shaders::defaultPipelineConfigInfo(), and ven::SHADERS_BIN_PATH.

Referenced by PointLightSystem().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ createPipelineLayout()

void ven::PointLightSystem::createPipelineLayout ( VkDescriptorSetLayout globalSetLayout)
private

Definition at line 21 of file pointLightSystem.cpp.

Referenced by PointLightSystem().

+ Here is the caller graph for this function:

◆ operator=()

PointLightSystem & ven::PointLightSystem::operator= ( const PointLightSystem & )
delete

◆ render()

void ven::PointLightSystem::render ( const FrameInfo & frameInfo) const

Definition at line 53 of file pointLightSystem.cpp.

References ven::FrameInfo::commandBuffer, ven::FrameInfo::globalDescriptorSet, ven::FrameInfo::objects, and PointLightPushConstants::position.

Referenced by ven::Engine::mainLoop().

+ Here is the caller graph for this function:

◆ update()

void ven::PointLightSystem::update ( const FrameInfo & frameInfo,
GlobalUbo & ubo )
static

Definition at line 73 of file pointLightSystem.cpp.

References ven::FrameInfo::frameTime, ven::MAX_LIGHTS, ven::GlobalUbo::numLights, ven::FrameInfo::objects, and ven::GlobalUbo::pointLights.

Referenced by ven::Engine::mainLoop().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_device

Device& ven::PointLightSystem::m_device
private

Definition at line 40 of file PointLightSystem.hpp.

Referenced by ~PointLightSystem().

◆ m_pipelineLayout

VkPipelineLayout ven::PointLightSystem::m_pipelineLayout {nullptr}
private

Definition at line 43 of file PointLightSystem.hpp.

Referenced by ~PointLightSystem().

◆ m_shaders

std::unique_ptr<Shaders> ven::PointLightSystem::m_shaders
private

Definition at line 42 of file PointLightSystem.hpp.


The documentation for this class was generated from the following files: