zengine-old/test/vulkanTest/src/lve_pipeline.hpp
2024-02-18 21:33:25 +08:00

44 lines
924 B
C++

/*
* 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 <vulkan/vulkan.h>
// std
#include <string>
#include <vector>
namespace lve {
class LvePipeline {
public:
LvePipeline(std::string filePrefix, LveDevice& device, LveSwapChain& swapChain);
~LvePipeline();
void bind(VkCommandBuffer commandBuffer);
private:
static std::vector<char> readFile(const std::string& filename);
void createGraphicsPipeline();
VkShaderModule createShaderModule(const std::vector<char>& code);
std::string filePrefix_;
LveDevice& device_;
LveSwapChain& swapChain_;
VkPipelineLayout pipelineLayout_;
VkPipeline graphicsPipeline_;
};
} // namespace lve