9 vkDestroyShaderModule(device, shaderModule,
nullptr);
14 VkShaderModuleCreateInfo createInfo{};
15 createInfo.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO;
16 createInfo.codeSize = code.size();
17 createInfo.pCode =
reinterpret_cast<const uint32_t*
>(code.data());
19 VkShaderModule shaderModule;
20 if(vkCreateShaderModule(device, &createInfo,
nullptr, &shaderModule) != VK_SUCCESS)
22 throw std::runtime_error(
"failed to create shader module!");
41 const std::filesystem::path& mesh_shader_path,
42 const std::filesystem::path& fragment_shader_path)
69 const std::filesystem::path & vertex_shader_path,
70 const std::filesystem::path & fragment_shader_path
ComputeShader(VkDevice device, const std::filesystem::path &shaderPath)
VkShaderModule computeShaderModule
void destroyShaders(VkDevice device) override
static std::vector< char > readFile(const std::string &filename)
void destroyShaders(VkDevice device) override
MeshShader(VkDevice device, const std::filesystem::path &mesh_shader_path, const std::filesystem::path &fragment_shader_path)
VkShaderModule getFragmentShader() const
VkShaderModule getMeshShader() const
VkShaderModule fragmentShader
VkShaderModule meshShader
void destroyShader(VkShaderModule shaderModule, const VkDevice &device)
virtual void destroyShaders(VkDevice device)
VkShaderModule createShaderModule(VkDevice device, const std::vector< char > &code)
void destroyShaders(VkDevice device) override
VkShaderModule vertexShader
VkShaderModule getFragmentShader() const
VkShaderModule fragmentShader
VkShaderModule getVertexShader() const
VertexShader(VkDevice device, const std::filesystem::path &vertex_shader_path, const std::filesystem::path &fragment_shader_path)
static void setObjectName(VkDevice device, VulkanObjectType objectHandle, const std::string &name)