30 this->
subPass = 2 * inputCameraId + 1;
35 if (inputCameraId == this->renderPass->
inputImage - 1) {
59 createGraphicsPipeline();
73 vk::DescriptorSetLayoutBinding uboLayoutBinding(
75 vk::DescriptorType::eUniformBuffer,
77 vk::ShaderStageFlagBits::eFragment,
80 vk::DescriptorSetLayoutBinding accu_imageLayoutBinding(
82 vk::DescriptorType::eInputAttachment,
84 vk::ShaderStageFlagBits::eFragment,
88 vk::DescriptorSetLayoutBinding new_imageLayoutBinding(
90 vk::DescriptorType::eInputAttachment,
92 vk::ShaderStageFlagBits::eFragment,
95 vk::DescriptorSetLayoutBinding accu_qualityLayoutBinding(
97 vk::DescriptorType::eInputAttachment,
99 vk::ShaderStageFlagBits::eFragment,
102 vk::DescriptorSetLayoutBinding new_triangle_qualityLayoutBinding(
104 vk::DescriptorType::eInputAttachment,
106 vk::ShaderStageFlagBits::eFragment,
109 vk::DescriptorSetLayoutBinding new_depthLayoutBinding(
111 vk::DescriptorType::eInputAttachment,
113 vk::ShaderStageFlagBits::eFragment,
120 std::vector<vk::DescriptorSetLayoutBinding> bindings = { uboLayoutBinding, new_imageLayoutBinding,new_triangle_qualityLayoutBinding, new_depthLayoutBinding,
121 accu_imageLayoutBinding, accu_qualityLayoutBinding};
124 vk::DescriptorSetLayoutBinding accu_depthLayoutBinding(
126 vk::DescriptorType::eInputAttachment,
128 vk::ShaderStageFlagBits::eFragment,
131 bindings.push_back(accu_depthLayoutBinding);
134 vk::DescriptorSetLayoutCreateInfo layoutInfo(vk::DescriptorSetLayoutCreateFlags(),
static_cast<uint32_t
>(bindings.size()), bindings.data());
139void VulkanPipelineBlending::createGraphicsPipeline()
142 vk::ShaderModule fragShaderModule;
179 std::vector<vk::PipelineShaderStageCreateInfo> pipelineShaderStageCreateInfos = {
180 vk::PipelineShaderStageCreateInfo(
181 vk::PipelineShaderStageCreateFlags(), vk::ShaderStageFlagBits::eVertex, vertShaderModule,
"main"),
182 vk::PipelineShaderStageCreateInfo(
183 vk::PipelineShaderStageCreateFlags(), vk::ShaderStageFlagBits::eFragment, fragShaderModule,
"main")
File that contains class and struct for the management of the ressources for the blending pipeline.
Contains the class that loads the SPIR-V shaders from files.
File that contain the VulkanContext class to manage Vulkan Instance, Physical device,...
file that conthains a class that manages the pipeline for the blending
file that contains the class that manage the renderPass containing the synthesis and blending steps
file that contains the VulkanWrapper class that manages the classes related to Vulkan code and ease t...
static ShadersList & getInstance()
class that manages tasks related to Vulkan context (Vulkan Instance, Vulkan Physical device,...
std::unique_ptr< BuffersController > bufferController
void createPipeline(std::vector< vk::PipelineShaderStageCreateInfo > &arr)
VulkanRenderPass * renderPass
vk::ShaderModule createShaderModule(const Shader &shader)
vk::DescriptorSetLayout descriptorSetLayout
vk::PipelineLayout pipelineLayout
VulkanPipelineBlending(VulkanContext *context, VulkanRenderPass *renderPass, VulkanWrapper *wraps, int inputCameraId)
void createDescriptorSetLayout() override
Class that manage the renderPass containing the synthesis and blending steps.
Class that manages the classes related to Vulkan code and act as a wrapper around them.
bool isDepthOutputRecquired()