6#include <vulkan/vulkan_core.h>
15 void destroyShader(VkShaderModule shaderModule,
const VkDevice &device);
22 ComputeShader(VkDevice device,
const std::filesystem::path& shaderPath);
34 MeshShader(VkDevice device,
const std::filesystem::path& mesh_shader_path,
const std::filesystem::path& fragment_shader_path);
47 VertexShader(VkDevice device,
const std::filesystem::path& vertex_shader_path,
const std::filesystem::path& fragment_shader_path);
VkShaderModule getComputeShaderModule() const
ComputeShader(VkDevice device, const std::filesystem::path &shaderPath)
VkShaderModule computeShaderModule
void destroyShaders(VkDevice device) override
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 ~Shader()=default
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)