18 #ifndef INCLUDED_RENDERER_BACKEND_VULKAN_PIPELINESTATE 19 #define INCLUDED_RENDERER_BACKEND_VULKAN_PIPELINESTATE 26 #include <glad/vulkan.h> 28 #include <unordered_map> 62 static std::unique_ptr<CGraphicsPipelineState>
Create(
67 static uint32_t m_LastAvailableUID = 1;
68 m_UID = m_LastAvailableUID++;
85 size_t operator()(
const CacheKey& cacheKey)
const;
91 std::unordered_map<CacheKey, VkPipeline, CacheKeyHash, CacheKeyEqual>
m_PipelineMap;
100 #endif // INCLUDED_RENDERER_BACKEND_VULKAN_PIPELINESTATE Definition: PipelineState.h:42
UID m_UID
Definition: PipelineState.h:73
const SGraphicsPipelineStateDesc & GetDesc() const
Definition: PipelineState.h:51
IDevice * GetDevice() override
Definition: PipelineState.cpp:299
CFramebuffer::UID framebufferUID
Definition: PipelineState.h:81
Definition: PipelineState.h:87
~CGraphicsPipelineState() override
Definition: PipelineState.cpp:83
Definition: PipelineState.h:83
std::unordered_map< CacheKey, VkPipeline, CacheKeyHash, CacheKeyEqual > m_PipelineMap
Definition: PipelineState.h:91
Definition: Framebuffer.h:39
Definition: PipelineState.h:164
A holder for precompiled graphics pipeline description.
Definition: PipelineState.h:190
IShaderProgram is a container for multiple shaders of different types.
Definition: IShaderProgram.h:80
CGraphicsPipelineState()
Definition: PipelineState.h:65
Backend
Definition: Backend.h:27
IShaderProgram * GetShaderProgram() const override
Definition: PipelineState.h:49
SGraphicsPipelineStateDesc m_Desc
Definition: PipelineState.h:75
IShaderProgram * shaderProgram
Definition: PipelineState.h:168
CVertexInputLayout::UID vertexInputLayoutUID
Definition: PipelineState.h:79
unsigned int uint32_t
Definition: wposix_types.h:53
Definition: VideoMode.h:28
CDevice * m_Device
Definition: PipelineState.h:71
uint32_t UID
Definition: Framebuffer.h:64
Definition: PipelineState.h:77
UID GetUID() const
Definition: PipelineState.h:57
uint32_t UID
Definition: PipelineState.h:56
static std::unique_ptr< CGraphicsPipelineState > Create(CDevice *device, const SGraphicsPipelineStateDesc &desc)
Definition: PipelineState.cpp:73
VkPipeline GetOrCreatePipeline(const CVertexInputLayout *vertexInputLayout, CFramebuffer *framebuffer)
Definition: PipelineState.cpp:93