28 bool pushDescriptors =
false);
42 const std::vector<Shader::Define>& GetDefines()
const
46 bool IsPushDescriptors()
const override
48 return m_PushDescriptors;
50 const Shader* GetShader()
const override
52 return m_Shader.get();
54 const VkDescriptorSetLayout& GetDescriptorSetLayout()
const override
56 return m_DescriptorSetLayout;
58 const VkDescriptorPool& GetDescriptorPool()
const override
60 return m_DescriptorPool;
62 const VkPipeline& GetPipeline()
const override
66 const VkPipelineLayout& GetPipelineLayout()
const override
68 return m_PipelineLayout;
70 const VkPipelineBindPoint& GetPipelineBindPoint()
const override
72 return m_PipelineBindPoint;
76 void CreateShaderProgram();
77 void CreateDescriptorLayout();
78 void CreateDescriptorPool();
79 void CreatePipelineLayout();
80 void CreatePipelineCompute();
84 std::vector<Shader::Define> m_Defines;
85 bool m_PushDescriptors;
87 std::unique_ptr<Shader> m_Shader;
89 VkShaderModule m_ShaderModule = VK_NULL_HANDLE;
90 VkPipelineShaderStageCreateInfo m_ShaderStageCreateInfo = {};
92 VkDescriptorSetLayout m_DescriptorSetLayout = VK_NULL_HANDLE;
93 VkDescriptorPool m_DescriptorPool = VK_NULL_HANDLE;
95 VkPipeline m_Pipeline = VK_NULL_HANDLE;
96 VkPipelineLayout m_PipelineLayout = VK_NULL_HANDLE;
97 VkPipelineBindPoint m_PipelineBindPoint;