#pragma once #include #include #include #include #include "program.h" namespace Engine { class LogicalDevice; class Pipeline { public: Pipeline(const Program& program, LogicalDevice* device); Pipeline(const Pipeline& other); ~Pipeline(); void bind(const VkCommandBuffer& buffer) const; private: void createLayout(); void createPipeline(); VkShaderModule createShaderModule(Program::ShaderType type); private: LogicalDevice* device; const Program& program; VkPipeline vk; VkPipelineLayout layout; }; }