vengine  0.0.1
3D graphics engine
Loading...
Searching...
No Matches
ven::ARenderSystemBase Class Referenceabstract

Abstract class for render system base. More...

#include <ABase.hpp>

+ Inheritance diagram for ven::ARenderSystemBase:
+ Collaboration diagram for ven::ARenderSystemBase:

Public Member Functions

 ARenderSystemBase (Device &device)
 
virtual ~ARenderSystemBase ()
 
 ARenderSystemBase (const ARenderSystemBase &)=delete
 
ARenderSystemBaseoperator= (const ARenderSystemBase &)=delete
 
 ARenderSystemBase (ARenderSystemBase &&)=delete
 
ARenderSystemBaseoperator= (ARenderSystemBase &&)=delete
 
virtual void render (const FrameInfo &frameInfo) const =0
 

Protected Member Functions

void createPipelineLayout (VkDescriptorSetLayout globalSetLayout, uint32_t pushConstantSize)
 
void createPipeline (VkRenderPass renderPass, const std::string &shadersVertPath, const std::string &shadersFragPath, bool isLight)
 
DevicegetDevice () const
 
VkPipelineLayout getPipelineLayout () const
 
const std::unique_ptr< Shaders > & getShaders () const
 

Protected Attributes

std::unique_ptr< DescriptorSetLayoutrenderSystemLayout
 

Private Attributes

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

Detailed Description

Abstract class for render system base.

Definition at line 20 of file ABase.hpp.

Constructor & Destructor Documentation

◆ ARenderSystemBase() [1/3]

ven::ARenderSystemBase::ARenderSystemBase ( Device & device)
inlineexplicit

Definition at line 24 of file ABase.hpp.

◆ ~ARenderSystemBase()

virtual ven::ARenderSystemBase::~ARenderSystemBase ( )
inlinevirtual

Definition at line 25 of file ABase.hpp.

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

+ Here is the call graph for this function:

◆ ARenderSystemBase() [2/3]

ven::ARenderSystemBase::ARenderSystemBase ( const ARenderSystemBase & )
delete

◆ ARenderSystemBase() [3/3]

ven::ARenderSystemBase::ARenderSystemBase ( ARenderSystemBase && )
delete

Member Function Documentation

◆ createPipeline()

void ven::ARenderSystemBase::createPipeline ( VkRenderPass renderPass,
const std::string & shadersVertPath,
const std::string & shadersFragPath,
bool isLight )
protected

Definition at line 35 of file base.cpp.

References ven::Shaders::defaultPipelineConfigInfo().

Referenced by ven::ObjectRenderSystem::ObjectRenderSystem(), and ven::PointLightRenderSystem::PointLightRenderSystem().

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

◆ createPipelineLayout()

void ven::ARenderSystemBase::createPipelineLayout ( VkDescriptorSetLayout globalSetLayout,
uint32_t pushConstantSize )
protected

◆ getDevice()

Device & ven::ARenderSystemBase::getDevice ( ) const
inlinenodiscardprotected

Definition at line 39 of file ABase.hpp.

References m_device.

◆ getPipelineLayout()

VkPipelineLayout ven::ARenderSystemBase::getPipelineLayout ( ) const
inlinenodiscardprotected

Definition at line 40 of file ABase.hpp.

References m_pipelineLayout.

Referenced by ven::ObjectRenderSystem::render(), and ven::PointLightRenderSystem::render().

+ Here is the caller graph for this function:

◆ getShaders()

const std::unique_ptr< Shaders > & ven::ARenderSystemBase::getShaders ( ) const
inlinenodiscardprotected

Definition at line 41 of file ABase.hpp.

References m_shaders.

Referenced by ven::ObjectRenderSystem::render(), and ven::PointLightRenderSystem::render().

+ Here is the caller graph for this function:

◆ operator=() [1/2]

ARenderSystemBase & ven::ARenderSystemBase::operator= ( ARenderSystemBase && )
delete

◆ operator=() [2/2]

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

◆ render()

virtual void ven::ARenderSystemBase::render ( const FrameInfo & frameInfo) const
pure virtual

Member Data Documentation

◆ m_device

Device& ven::ARenderSystemBase::m_device
private

Definition at line 47 of file ABase.hpp.

Referenced by createPipelineLayout(), getDevice(), and ~ARenderSystemBase().

◆ m_pipelineLayout

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

Definition at line 48 of file ABase.hpp.

Referenced by createPipelineLayout(), getPipelineLayout(), and ~ARenderSystemBase().

◆ m_shaders

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

Definition at line 49 of file ABase.hpp.

Referenced by getShaders().

◆ renderSystemLayout

std::unique_ptr<DescriptorSetLayout> ven::ARenderSystemBase::renderSystemLayout
protected

Definition at line 43 of file ABase.hpp.

Referenced by createPipelineLayout(), and ven::ObjectRenderSystem::render().


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