Files
Cheap-Vulkan-Renderer/cve_pipeline.hpp
2026-02-20 10:33:11 +00:00

37 lines
1.0 KiB
C++

#pragma once
#include "cve_device.hpp"
#include <string>
#include <vector>
namespace cve {
struct PipelineConfigInfo {
VkPipelineInputAssemblyStateCreateInfo inputAssemblyInfo{};
};
class CvePipeline {
public:
CvePipeline(CveDevice &device, const std::string& vertFilepath,
const std::string& fragFilepath, const PipelineConfigInfo &configInfo);
~CvePipeline() {};
CvePipeline(const CvePipeline&) = delete;
void operator=(const CvePipeline&) = delete;
static PipelineConfigInfo defaultPipelineConfigInfo(uint32_t width, uint32_t height);
private:
static std::vector<char> readFile(const std::string& filepath);
void createGraphicsPipeline(const std::string& vertFilepath,
const std::string& fragFilepath, const PipelineConfigInfo &configInfo);
void createShaderModule(const std::vector<char>& code, VkShaderModule *shaderModule);
CveDevice& cveDevice;
VkPipeline graphicsPipeline;
VkShaderModule vertShaderModule;
VkShaderModule fragShaderModule;
};
}