Fling Engine  0.00.1
Fling Engine is a game engine written in Vulkan
Public Types | Public Member Functions | Data Fields
Fling::GraphicsPipeline Class Reference

#include <GraphicsPipeline.h>

Public Types

enum  Depth { Depth::None = 0, Depth::Read = 1, Depth::Write = 2, Depth::ReadWrite = Read | Write }
 

Public Member Functions

 GraphicsPipeline (std::vector< Shader *> t_Shaders, VkDevice t_LogicalDevice, VkPolygonMode t_Mode=VK_POLYGON_MODE_FILL, Depth t_Depth=Depth::ReadWrite, VkPrimitiveTopology t_Topology=VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VkCullModeFlags t_CullMode=VK_CULL_MODE_BACK_BIT, VkFrontFace t_FrontFace=VK_FRONT_FACE_COUNTER_CLOCKWISE)
 
void BindGraphicsPipeline (const VkCommandBuffer &t_CommandBuffer)
 
void CreateGraphicsPipeline (VkRenderPass &t_RenderPass, Multisampler *t_Sampler)
 
const std::vector< Shader * > GetShaders () const
 
Depth GetDepth () const
 
VkPrimitiveTopology GetTopology () const
 
VkPolygonMode GetPolygonMode () const
 
VkCullModeFlags GetCullMode () const
 
VkFrontFace GetFrontFace () const
 
const VkDescriptorSetLayout & GetDescriptorSetLayout () const
 
const VkPipeline & GetPipeline () const
 
const VkPipelineLayout & GetPipelineLayout () const
 
const VkPipelineBindPoint & GetPipelineBindPoint () const
 
 ~GraphicsPipeline ()
 
void CreateAttributes (Multisampler *t_Sampler)
 

Data Fields

std::vector< Shader * > m_Shaders
 
VkDevice m_Device
 
Depth m_Depth
 
VkPrimitiveTopology m_Topology
 
VkPolygonMode m_PolygonMode
 
VkCullModeFlags m_CullMode
 
VkFrontFace m_FrontFace
 
VkPipeline m_Pipeline = VK_NULL_HANDLE
 
VkPipelineCache m_PipelineCache = VK_NULL_HANDLE
 
VkPipelineLayout m_PipelineLayout = VK_NULL_HANDLE
 
VkPipelineBindPoint m_PipelineBindPoint
 
VkGraphicsPipelineCreateInfo m_PipelineCreateInfo = {}
 
VkDescriptorSetLayout m_DescriptorSetLayout
 
VkPipelineVertexInputStateCreateInfo m_VertexInputStateCreateInfo = {}
 
VkPipelineInputAssemblyStateCreateInfo m_InputAssemblyState = {}
 
VkPipelineRasterizationStateCreateInfo m_RasterizationState = {}
 
std::vector< VkPipelineColorBlendAttachmentState > m_ColorBlendAttachmentStates
 
VkPipelineColorBlendStateCreateInfo m_ColorBlendState = {}
 
VkPipelineDepthStencilStateCreateInfo m_DepthStencilState = {}
 
VkPipelineViewportStateCreateInfo m_ViewportState = {}
 
VkPipelineMultisampleStateCreateInfo m_MultisampleState = {}
 
VkPipelineDynamicStateCreateInfo m_DynamicState = {}
 
VkPipelineTessellationStateCreateInfo m_TessellationState = {}
 

Member Enumeration Documentation

◆ Depth

Enumerator
None 
Read 
Write 
ReadWrite 

Constructor & Destructor Documentation

◆ GraphicsPipeline()

Fling::GraphicsPipeline::GraphicsPipeline ( std::vector< Shader *>  t_Shaders,
VkDevice  t_LogicalDevice,
VkPolygonMode  t_Mode = VK_POLYGON_MODE_FILL,
Depth  t_Depth = Depth::ReadWrite,
VkPrimitiveTopology  t_Topology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST,
VkCullModeFlags  t_CullMode = VK_CULL_MODE_BACK_BIT,
VkFrontFace  t_FrontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE 
)

◆ ~GraphicsPipeline()

Fling::GraphicsPipeline::~GraphicsPipeline ( )

Member Function Documentation

◆ BindGraphicsPipeline()

void Fling::GraphicsPipeline::BindGraphicsPipeline ( const VkCommandBuffer &  t_CommandBuffer)

◆ CreateAttributes()

void Fling::GraphicsPipeline::CreateAttributes ( Multisampler t_Sampler)

◆ CreateGraphicsPipeline()

void Fling::GraphicsPipeline::CreateGraphicsPipeline ( VkRenderPass &  t_RenderPass,
Multisampler t_Sampler 
)

◆ GetCullMode()

VkCullModeFlags Fling::GraphicsPipeline::GetCullMode ( ) const
inline

◆ GetDepth()

Depth Fling::GraphicsPipeline::GetDepth ( ) const
inline

◆ GetDescriptorSetLayout()

const VkDescriptorSetLayout& Fling::GraphicsPipeline::GetDescriptorSetLayout ( ) const
inline

◆ GetFrontFace()

VkFrontFace Fling::GraphicsPipeline::GetFrontFace ( ) const
inline

◆ GetPipeline()

const VkPipeline& Fling::GraphicsPipeline::GetPipeline ( ) const
inline

◆ GetPipelineBindPoint()

const VkPipelineBindPoint& Fling::GraphicsPipeline::GetPipelineBindPoint ( ) const
inline

◆ GetPipelineLayout()

const VkPipelineLayout& Fling::GraphicsPipeline::GetPipelineLayout ( ) const
inline

◆ GetPolygonMode()

VkPolygonMode Fling::GraphicsPipeline::GetPolygonMode ( ) const
inline

◆ GetShaders()

const std::vector<Shader*> Fling::GraphicsPipeline::GetShaders ( ) const
inline

◆ GetTopology()

VkPrimitiveTopology Fling::GraphicsPipeline::GetTopology ( ) const
inline

Field Documentation

◆ m_ColorBlendAttachmentStates

std::vector<VkPipelineColorBlendAttachmentState> Fling::GraphicsPipeline::m_ColorBlendAttachmentStates

◆ m_ColorBlendState

VkPipelineColorBlendStateCreateInfo Fling::GraphicsPipeline::m_ColorBlendState = {}

◆ m_CullMode

VkCullModeFlags Fling::GraphicsPipeline::m_CullMode

◆ m_Depth

Depth Fling::GraphicsPipeline::m_Depth

◆ m_DepthStencilState

VkPipelineDepthStencilStateCreateInfo Fling::GraphicsPipeline::m_DepthStencilState = {}

◆ m_DescriptorSetLayout

VkDescriptorSetLayout Fling::GraphicsPipeline::m_DescriptorSetLayout

◆ m_Device

VkDevice Fling::GraphicsPipeline::m_Device

◆ m_DynamicState

VkPipelineDynamicStateCreateInfo Fling::GraphicsPipeline::m_DynamicState = {}

◆ m_FrontFace

VkFrontFace Fling::GraphicsPipeline::m_FrontFace

◆ m_InputAssemblyState

VkPipelineInputAssemblyStateCreateInfo Fling::GraphicsPipeline::m_InputAssemblyState = {}

◆ m_MultisampleState

VkPipelineMultisampleStateCreateInfo Fling::GraphicsPipeline::m_MultisampleState = {}

◆ m_Pipeline

VkPipeline Fling::GraphicsPipeline::m_Pipeline = VK_NULL_HANDLE

◆ m_PipelineBindPoint

VkPipelineBindPoint Fling::GraphicsPipeline::m_PipelineBindPoint

◆ m_PipelineCache

VkPipelineCache Fling::GraphicsPipeline::m_PipelineCache = VK_NULL_HANDLE

◆ m_PipelineCreateInfo

VkGraphicsPipelineCreateInfo Fling::GraphicsPipeline::m_PipelineCreateInfo = {}

◆ m_PipelineLayout

VkPipelineLayout Fling::GraphicsPipeline::m_PipelineLayout = VK_NULL_HANDLE

◆ m_PolygonMode

VkPolygonMode Fling::GraphicsPipeline::m_PolygonMode

◆ m_RasterizationState

VkPipelineRasterizationStateCreateInfo Fling::GraphicsPipeline::m_RasterizationState = {}

◆ m_Shaders

std::vector<Shader*> Fling::GraphicsPipeline::m_Shaders

◆ m_TessellationState

VkPipelineTessellationStateCreateInfo Fling::GraphicsPipeline::m_TessellationState = {}

◆ m_Topology

VkPrimitiveTopology Fling::GraphicsPipeline::m_Topology

◆ m_VertexInputStateCreateInfo

VkPipelineVertexInputStateCreateInfo Fling::GraphicsPipeline::m_VertexInputStateCreateInfo = {}

◆ m_ViewportState

VkPipelineViewportStateCreateInfo Fling::GraphicsPipeline::m_ViewportState = {}

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