#pragma once #include struct Swapchain; struct VertexInfo; struct RenderPass; struct Pipeline { std::shared_ptr frag_shader, vert_shader; Pipeline(const std::vector & layouts, const std::shared_ptr frag_shader, const std::shared_ptr vert_shader, vk::Device& dev, const VertexInfo& vertex_info, const Swapchain& swp, const RenderPass& render_pass, const vk::PrimitiveTopology topo = vk::PrimitiveTopology::eTriangleList, bool enable_depth = VK_TRUE); ~Pipeline(); vk::Pipeline pipeline; vk::PipelineLayout layout; vk::Device& dev; };