Pyrogenesis  trunk
Classes | Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends | List of all members
Renderer::Backend::Vulkan::CGraphicsPipelineState Class Referencefinal

#include <PipelineState.h>

Inheritance diagram for Renderer::Backend::Vulkan::CGraphicsPipelineState:
Inheritance graph
[legend]
Collaboration diagram for Renderer::Backend::Vulkan::CGraphicsPipelineState:
Collaboration graph
[legend]

Classes

struct  CacheKey
 
struct  CacheKeyEqual
 
struct  CacheKeyHash
 

Public Types

using UID = uint32_t
 

Public Member Functions

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

Private Member Functions

 CGraphicsPipelineState ()
 

Static Private Member Functions

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

Private Attributes

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

Friends

class CDevice
 

Member Typedef Documentation

◆ UID

Constructor & Destructor Documentation

◆ ~CGraphicsPipelineState()

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

◆ CGraphicsPipelineState()

Renderer::Backend::Vulkan::CGraphicsPipelineState::CGraphicsPipelineState ( )
inlineprivate

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()

UID 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

UID Renderer::Backend::Vulkan::CGraphicsPipelineState::m_UID = 0
private

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