/* * Little Vulkan Engine Pipeline class * * Copyright (C) 2020 by Blurrypiano - https://github.com/blurrypiano/littleVulkanEngine * * This code is licensed under the MIT license (MIT) (http://opensource.org/licenses/MIT) */ #pragma once #include "lve_device.hpp" #include "lve_swap_chain.hpp" // libs #include // std #include #include namespace lve { class LvePipeline { public: LvePipeline(std::string filePrefix, LveDevice& device, LveSwapChain& swapChain); ~LvePipeline(); void bind(VkCommandBuffer commandBuffer); private: static std::vector readFile(const std::string& filename); void createGraphicsPipeline(); VkShaderModule createShaderModule(const std::vector& code); std::string filePrefix_; LveDevice& device_; LveSwapChain& swapChain_; VkPipelineLayout pipelineLayout_; VkPipeline graphicsPipeline_; }; } // namespace lve