15#include <vsg/state/PipelineLayout.h>
16#include <vsg/state/ShaderStage.h>
17#include <vsg/state/StateCommand.h>
18#include <vsg/vk/RenderPass.h>
43 void write(
Output& output)
const override;
50 using GraphicsPipelineStates = std::vector<ref_ptr<GraphicsPipelineState>>;
51 extern VSG_DECLSPEC
void mergeGraphicsPipelineStates(Mask mask, GraphicsPipelineStates& dest_PipelineStates, ref_ptr<GraphicsPipelineState> src_PipelineState);
52 extern VSG_DECLSPEC
void mergeGraphicsPipelineStates(Mask mask, GraphicsPipelineStates& dest_PipelineStates,
const GraphicsPipelineStates& src_PipelineStates);
66 VkPipeline validated_vk(
uint32_t viewID)
const {
return (viewID < _implementation.size()) ? (_implementation[viewID] ? _implementation[viewID]->_pipeline : 0) : 0; }
70 GraphicsPipelineStates pipelineStates;
77 void write(
Output& output)
const override;
85 if (viewID <
static_cast<uint32_t>(_implementation.size())) _implementation[viewID] = {};
87 void release() { _implementation.clear(); }
90 virtual ~GraphicsPipeline();
103 std::vector<ref_ptr<Implementation>> _implementation;
119 void write(
Output& output)
const override;
124 void compile(
Context& context)
override;
126 virtual void release();
BindGraphicsPipeline state command encapsulates the vkCmdBindPipeline call for a GraphicsPipeline.
Definition GraphicsPipeline.h:109
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
ref_ptr< GraphicsPipeline > pipeline
pipeline to pass in the vkCmdBindPipeline call;
Definition GraphicsPipeline.h:114
CommandBuffer encapsulates VkCommandBuffer.
Definition CommandBuffer.h:27
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition Device.h:37
GraphicsPipeline encapsulates graphics VkPipeline and the VkGraphicsPipelineCreateInfo settings used ...
Definition GraphicsPipeline.h:56
int compare(const Object &rhs_object) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
VkPipeline validated_vk(uint32_t viewID) const
variant of vk(viewID) method that is slower but adds validation of the viewID parameter
Definition GraphicsPipeline.h:66
ShaderStages stages
VkGraphicsPipelineCreateInfo settings.
Definition GraphicsPipeline.h:69
VkPipeline vk(uint32_t viewID) const
return the Vulkan Pipeline for specified viewID.
Definition GraphicsPipeline.h:63
Definition GraphicsPipeline.h:29
int compare(const Object &rhs) const override
compare two objects, return -1 if this object is less than rhs, return 0 if it's equal,...
PipelineLayout encapsulates VkPipelineLayout and the VkPipelineLayoutCreateInfo settings used to set ...
Definition PipelineLayout.h:27
RenderPass encapsulation of VkRenderPass.
Definition RenderPass.h:86
Definition GraphicsPipeline.h:93
std container adapter for allocating with MEMORY_AFFINITY_NODES
Definition Allocator.h:138