9 #ifndef TALVOS_GRAPHICSPIPELINE_H
10 #define TALVOS_GRAPHICSPIPELINE_H
15 #include "vulkan/vulkan_core.h"
23 typedef std::vector<VkVertexInputAttributeDescription>
27 typedef std::vector<VkVertexInputBindingDescription>
31 typedef std::vector<VkPipelineColorBlendAttachmentState>
49 const std::vector<VkRect2D> &
Scissors)
50 : Topology(Topology), VertexStage(VertexStage),
51 FragmentStage(FragmentStage),
52 VertexBindingDescriptions(VertexBindingDescriptions),
53 VertexAttributeDescriptions(VertexAttributeDescriptions),
54 RasterizationState(RasterizationState),
55 BlendAttachmentStates(BlendAttachmentStates),
56 BlendConstants(BlendConstants), Viewports(Viewports),
VertexAttributeDescriptionList VertexAttributeDescriptions
The vertex attribute descriptions.
const VkPipelineRasterizationStateCreateInfo & getRasterizationState() const
Returns the rasterization state used by this pipeline.
BlendAttachmentStateList BlendAttachmentStates
The color blend attachement states.
PipelineStage * VertexStage
The vertex pipeline stage in this pipeline.
GraphicsPipeline & operator=(const GraphicsPipeline &)=delete
const BlendAttachmentStateList & getBlendAttachmentStates() const
Returns the list of blend attachment states.
std::vector< VkRect2D > Scissors
The static scissor rectangles used by this pipeline.
std::vector< VkVertexInputBindingDescription > VertexBindingDescriptionList
A list of vertex binding descriptions.
PipelineStage * FragmentStage
The fragment pipeline stage in this pipeline.
VkPrimitiveTopology getTopology() const
Returns the primitive topology used by this pipeline.
VertexBindingDescriptionList VertexBindingDescriptions
The vertex binding descriptions.
VkPrimitiveTopology Topology
The primitive topology used by this pipeline.
const PipelineStage * getFragmentStage() const
Returns the fragment pipeline stage.
std::vector< VkPipelineColorBlendAttachmentState > BlendAttachmentStateList
A list of pipeline color blend attachment states.
const VertexAttributeDescriptionList & getVertexAttributeDescriptions() const
Returns the list of vertex attribute descriptions.
const std::array< float, 4 > & getBlendConstants() const
Returns the blend constants.
This class encapsulates a graphics pipeline.
GraphicsPipeline(VkPrimitiveTopology Topology, PipelineStage *VertexStage, PipelineStage *FragmentStage, const VertexBindingDescriptionList &VertexBindingDescriptions, const VertexAttributeDescriptionList &VertexAttributeDescriptions, const VkPipelineRasterizationStateCreateInfo &RasterizationState, const BlendAttachmentStateList &BlendAttachmentStates, const std::array< float, 4 > &BlendConstants, const std::vector< VkViewport > &Viewports, const std::vector< VkRect2D > &Scissors)
Create a graphics pipeline.
const std::vector< VkViewport > & getViewports() const
Returns the static viewports used by this pipeline.
This class encapsulates information about a pipeline stage.
std::vector< VkViewport > Viewports
The static viewports used by this pipeline.
const VertexBindingDescriptionList & getVertexBindingDescriptions() const
Returns the list of vertex binding descriptions.
~GraphicsPipeline()
Destroy the pipeline.
std::array< float, 4 > BlendConstants
The blend constants.
const PipelineStage * getVertexStage() const
Returns the vertex pipeline stage.
const std::vector< VkRect2D > & getScissors() const
Returns the static scissor rectangles used by this pipeline.
VkPipelineRasterizationStateCreateInfo RasterizationState
The rasterization state.
std::vector< VkVertexInputAttributeDescription > VertexAttributeDescriptionList
A list of vertex attribute descriptions.