Even more shader stuff!
This commit is contained in:
45
cve_pipeline.cpp
Normal file
45
cve_pipeline.cpp
Normal file
@@ -0,0 +1,45 @@
|
||||
#include "cve_pipeline.hpp"
|
||||
|
||||
#include <fstream>
|
||||
#include <stdexcept>
|
||||
#include <iostream>
|
||||
|
||||
namespace cve {
|
||||
CvePipeline::CvePipeline(CveDevice &device, const std::string& vertFilepath,
|
||||
const std::string& fragFilepath, const PipelineConfigInfo &configInfo) : cveDevice{device} {
|
||||
createGraphicsPipeline(vertFilepath, fragFilepath, configInfo);
|
||||
}
|
||||
|
||||
std::vector<char> CvePipeline::readFile(const std::string& filepath) {
|
||||
std::ifstream file{filepath, std::ios::ate | std::ios::binary};
|
||||
|
||||
if (!file.is_open()) {
|
||||
throw std::runtime_error("Failed to open file: "
|
||||
+ filepath);
|
||||
}
|
||||
|
||||
size_t fileSize = static_cast<size_t>(file.tellg());
|
||||
std::vector<char> buffer(fileSize);
|
||||
|
||||
file.seekg(0);
|
||||
file.read(buffer.data(), fileSize);
|
||||
|
||||
file.close();
|
||||
return buffer;
|
||||
}
|
||||
void CvePipeline::createGraphicsPipeline(const std::string& vertFilepath,
|
||||
const std::string& fragFilepath, const PipelineConfigInfo &configInfo) {
|
||||
auto vertCode = readFile(vertFilepath);
|
||||
auto fragCode = readFile(fragFilepath);
|
||||
|
||||
std::cout << "Vertex shader code size: " << vertCode.size() << '\n';
|
||||
std::cout << "Fragment shader code size: " << fragCode.size() << '\n';
|
||||
}
|
||||
|
||||
void createShaderModule(const std::vector<char>& code, VkShaderModule *shaderModule) {
|
||||
VkShaderModuleCreateInfo createInfo{};
|
||||
createInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
|
||||
createInfo.codeSize = code.size();
|
||||
createInfo.pCode = reinterpret_cast<const uint32_t*>(code.data());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user