1 #ifndef VKUTIL_PIPELINE_H_
2 #define VKUTIL_PIPELINE_H_
4 #include <vulkan/vulkan.h>
7 VKU_DS_VIEWPORT = 1 << 0,
8 VKU_DS_SCISSOR = 1 << 1,
12 class VkuPipelineGenerator {
14 VkPipelineShaderStageCreateInfo sdri[2];
15 VkPipelineVertexInputStateCreateInfo verti;
16 VkPipelineInputAssemblyStateCreateInfo asmi;
17 VkPipelineViewportStateCreateInfo viewpi;
18 VkPipelineRasterizationStateCreateInfo rasti;
19 VkPipelineMultisampleStateCreateInfo multi;
20 VkPipelineDepthStencilStateCreateInfo depthi;
21 VkPipelineColorBlendStateCreateInfo cblendi;
23 VkPipelineLayout layout;
26 VkuPipelineGenerator();
27 ~VkuPipelineGenerator();
29 VkPipeline generate(VkuDynState dyn_flags) const;
31 void set_shader_modules(VkShaderModule vs, VkShaderModule fs);
34 void set_vertex_attributes();
35 void set_blend_state();
39 #endif // VKUTIL_PIPELINE_H_