Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
Renderer::Backend::Vulkan::CGraphicsPipelineState Class Referencefinal

#include <PipelineState.h>

Inheritance diagram for Renderer::Backend::Vulkan::CGraphicsPipelineState:
Collaboration diagram for Renderer::Backend::Vulkan::CGraphicsPipelineState:

Classes

struct  CacheKey
 
struct  CacheKeyEqual
 
struct  CacheKeyHash
 

Public Member Functions

 ~CGraphicsPipelineState () override
 
IDeviceGetDevice () override
 
IShaderProgramGetShaderProgram () const override
 
const SGraphicsPipelineStateDescGetDesc () const
 
VkPipeline GetOrCreatePipeline (const CVertexInputLayout *vertexInputLayout, CFramebuffer *framebuffer)
 
DeviceObjectUID GetUID () const
 
virtual IShaderProgramGetShaderProgram () const =0
 
- Public Member Functions inherited from Renderer::Backend::IDeviceObject< IGraphicsPipelineState >
virtual ~IDeviceObject ()
 
virtual IDeviceGetDevice ()=0
 
TAs ()
 

Private Member Functions

 CGraphicsPipelineState ()=default
 

Static Private Member Functions

static std::unique_ptr< CGraphicsPipelineStateCreate (CDevice *device, const SGraphicsPipelineStateDesc &desc)
 

Private Attributes

CDevicem_Device = nullptr
 
DeviceObjectUID m_UID {INVALID_DEVICE_OBJECT_UID}
 
SGraphicsPipelineStateDesc m_Desc {}
 
std::unordered_map< CacheKey, VkPipeline, CacheKeyHash, CacheKeyEqualm_PipelineMap
 

Friends

class CDevice
 

Constructor & Destructor Documentation

◆ ~CGraphicsPipelineState()

Renderer::Backend::Vulkan::CGraphicsPipelineState::~CGraphicsPipelineState ( )
override

◆ CGraphicsPipelineState()

Renderer::Backend::Vulkan::CGraphicsPipelineState::CGraphicsPipelineState ( )
privatedefault

Member Function Documentation

◆ Create()

std::unique_ptr< CGraphicsPipelineState > Renderer::Backend::Vulkan::CGraphicsPipelineState::Create ( CDevice device,
const SGraphicsPipelineStateDesc desc 
)
staticprivate

◆ GetDesc()

const SGraphicsPipelineStateDesc & Renderer::Backend::Vulkan::CGraphicsPipelineState::GetDesc ( ) const
inline

◆ GetDevice()

IDevice * Renderer::Backend::Vulkan::CGraphicsPipelineState::GetDevice ( )
overridevirtual

◆ GetOrCreatePipeline()

VkPipeline Renderer::Backend::Vulkan::CGraphicsPipelineState::GetOrCreatePipeline ( const CVertexInputLayout vertexInputLayout,
CFramebuffer framebuffer 
)

◆ GetShaderProgram()

IShaderProgram * Renderer::Backend::Vulkan::CGraphicsPipelineState::GetShaderProgram ( ) const
inlineoverridevirtual

◆ GetUID()

DeviceObjectUID Renderer::Backend::Vulkan::CGraphicsPipelineState::GetUID ( ) const
inline

Friends And Related Function Documentation

◆ CDevice

friend class CDevice
friend

Member Data Documentation

◆ m_Desc

SGraphicsPipelineStateDesc Renderer::Backend::Vulkan::CGraphicsPipelineState::m_Desc {}
private

◆ m_Device

CDevice* Renderer::Backend::Vulkan::CGraphicsPipelineState::m_Device = nullptr
private

◆ m_PipelineMap

std::unordered_map<CacheKey, VkPipeline, CacheKeyHash, CacheKeyEqual> Renderer::Backend::Vulkan::CGraphicsPipelineState::m_PipelineMap
private

◆ m_UID

DeviceObjectUID Renderer::Backend::Vulkan::CGraphicsPipelineState::m_UID {INVALID_DEVICE_OBJECT_UID}
private

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