Talvos  0.1
SPIR-V interpreter and dynamic analysis framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Private Attributes | List of all members
talvos::GraphicsPipeline Class Reference

This class encapsulates a graphics pipeline. More...

#include <talvos/GraphicsPipeline.h>

Public Member Functions

 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. More...
 
 ~GraphicsPipeline ()
 Destroy the pipeline. More...
 
const BlendAttachmentStateListgetBlendAttachmentStates () const
 Returns the list of blend attachment states. More...
 
const std::array< float, 4 > & getBlendConstants () const
 Returns the blend constants. More...
 
const PipelineStagegetFragmentStage () const
 Returns the fragment pipeline stage. More...
 
const
VkPipelineRasterizationStateCreateInfo & 
getRasterizationState () const
 Returns the rasterization state used by this pipeline. More...
 
const std::vector< VkRect2D > & getScissors () const
 Returns the static scissor rectangles used by this pipeline. More...
 
VkPrimitiveTopology getTopology () const
 Returns the primitive topology used by this pipeline. More...
 
const PipelineStagegetVertexStage () const
 Returns the vertex pipeline stage. More...
 
const
VertexAttributeDescriptionList
getVertexAttributeDescriptions () const
 Returns the list of vertex attribute descriptions. More...
 
const
VertexBindingDescriptionList
getVertexBindingDescriptions () const
 Returns the list of vertex binding descriptions. More...
 
const std::vector< VkViewport > & getViewports () const
 Returns the static viewports used by this pipeline. More...
 
 GraphicsPipeline (const GraphicsPipeline &)=delete
 
GraphicsPipelineoperator= (const GraphicsPipeline &)=delete
 

Private Attributes

VkPrimitiveTopology Topology
 The primitive topology used by this pipeline. More...
 
PipelineStageVertexStage
 The vertex pipeline stage in this pipeline. More...
 
PipelineStageFragmentStage
 The fragment pipeline stage in this pipeline. More...
 
VertexBindingDescriptionList VertexBindingDescriptions
 The vertex binding descriptions. More...
 
VertexAttributeDescriptionList VertexAttributeDescriptions
 The vertex attribute descriptions. More...
 
VkPipelineRasterizationStateCreateInfo RasterizationState
 The rasterization state. More...
 
BlendAttachmentStateList BlendAttachmentStates
 The color blend attachement states. More...
 
std::array< float, 4 > BlendConstants
 The blend constants. More...
 
std::vector< VkViewport > Viewports
 The static viewports used by this pipeline. More...
 
std::vector< VkRect2D > Scissors
 The static scissor rectangles used by this pipeline. More...
 

Detailed Description

This class encapsulates a graphics pipeline.

Definition at line 35 of file GraphicsPipeline.h.

Constructor & Destructor Documentation

talvos::GraphicsPipeline::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 
)
inline

Create a graphics pipeline.

Ownership of any non-null stages is transferred to the pipeline.

Definition at line 40 of file GraphicsPipeline.h.

talvos::GraphicsPipeline::~GraphicsPipeline ( )

Destroy the pipeline.

Definition at line 15 of file GraphicsPipeline.cpp.

talvos::GraphicsPipeline::GraphicsPipeline ( const GraphicsPipeline )
delete

Member Function Documentation

const BlendAttachmentStateList& talvos::GraphicsPipeline::getBlendAttachmentStates ( ) const
inline

Returns the list of blend attachment states.

Definition at line 69 of file GraphicsPipeline.h.

const std::array<float, 4>& talvos::GraphicsPipeline::getBlendConstants ( ) const
inline

Returns the blend constants.

Definition at line 75 of file GraphicsPipeline.h.

const PipelineStage* talvos::GraphicsPipeline::getFragmentStage ( ) const
inline

Returns the fragment pipeline stage.

Definition at line 81 of file GraphicsPipeline.h.

const VkPipelineRasterizationStateCreateInfo& talvos::GraphicsPipeline::getRasterizationState ( ) const
inline

Returns the rasterization state used by this pipeline.

Definition at line 84 of file GraphicsPipeline.h.

const std::vector<VkRect2D>& talvos::GraphicsPipeline::getScissors ( ) const
inline

Returns the static scissor rectangles used by this pipeline.

Definition at line 90 of file GraphicsPipeline.h.

VkPrimitiveTopology talvos::GraphicsPipeline::getTopology ( ) const
inline

Returns the primitive topology used by this pipeline.

Definition at line 93 of file GraphicsPipeline.h.

const VertexAttributeDescriptionList& talvos::GraphicsPipeline::getVertexAttributeDescriptions ( ) const
inline

Returns the list of vertex attribute descriptions.

Definition at line 99 of file GraphicsPipeline.h.

const VertexBindingDescriptionList& talvos::GraphicsPipeline::getVertexBindingDescriptions ( ) const
inline

Returns the list of vertex binding descriptions.

Definition at line 105 of file GraphicsPipeline.h.

const PipelineStage* talvos::GraphicsPipeline::getVertexStage ( ) const
inline

Returns the vertex pipeline stage.

Definition at line 96 of file GraphicsPipeline.h.

const std::vector<VkViewport>& talvos::GraphicsPipeline::getViewports ( ) const
inline

Returns the static viewports used by this pipeline.

Definition at line 111 of file GraphicsPipeline.h.

GraphicsPipeline& talvos::GraphicsPipeline::operator= ( const GraphicsPipeline )
delete

Member Data Documentation

BlendAttachmentStateList talvos::GraphicsPipeline::BlendAttachmentStates
private

The color blend attachement states.

Definition at line 133 of file GraphicsPipeline.h.

std::array<float, 4> talvos::GraphicsPipeline::BlendConstants
private

The blend constants.

Definition at line 136 of file GraphicsPipeline.h.

PipelineStage* talvos::GraphicsPipeline::FragmentStage
private

The fragment pipeline stage in this pipeline.

Definition at line 121 of file GraphicsPipeline.h.

VkPipelineRasterizationStateCreateInfo talvos::GraphicsPipeline::RasterizationState
private

The rasterization state.

Definition at line 130 of file GraphicsPipeline.h.

std::vector<VkRect2D> talvos::GraphicsPipeline::Scissors
private

The static scissor rectangles used by this pipeline.

Definition at line 142 of file GraphicsPipeline.h.

VkPrimitiveTopology talvos::GraphicsPipeline::Topology
private

The primitive topology used by this pipeline.

Definition at line 115 of file GraphicsPipeline.h.

VertexAttributeDescriptionList talvos::GraphicsPipeline::VertexAttributeDescriptions
private

The vertex attribute descriptions.

Definition at line 127 of file GraphicsPipeline.h.

VertexBindingDescriptionList talvos::GraphicsPipeline::VertexBindingDescriptions
private

The vertex binding descriptions.

Definition at line 124 of file GraphicsPipeline.h.

PipelineStage* talvos::GraphicsPipeline::VertexStage
private

The vertex pipeline stage in this pipeline.

Definition at line 118 of file GraphicsPipeline.h.

std::vector<VkViewport> talvos::GraphicsPipeline::Viewports
private

The static viewports used by this pipeline.

Definition at line 139 of file GraphicsPipeline.h.