4#include <vulkan/vulkan.h>
10namespace Vulkan {
class LogicalDevice;
namespace PipelineOptions {
class Shader; } }
26 Shader(
const LogicalDevice& virtualGpu, std::string spirvFileName, VkShaderStageFlagBits shaderType, std::string entrypoint =
"main");
40 const VkPipelineShaderStageCreateInfo&
operator+()
const;
46 static std::vector<char> readSpirvFile(std::string fileName);
49 VkShaderModule shaderModule;
50 VkPipelineShaderStageCreateInfo shaderStageInfo;
52 std::string entrypoint;
A logical device is an abstraction of the physical GPU which we can mainly use to send commands.
Definition: LogicalDevice.h:15
A Shader is a program which runs on the GPU and performs graphics.
Definition: Shader.h:15
Shader(const Shader &)=delete
const VkPipelineShaderStageCreateInfo & operator+() const
Returns the underlying VkPipelineShaderStageCreateInfo struct.
Definition: Shader.cpp:32
Shader(const LogicalDevice &virtualGpu, std::string spirvFileName, VkShaderStageFlagBits shaderType, std::string entrypoint="main")
Creates a shader starting from the SPIR-V code.
Definition: Shader.cpp:6
~Shader()
Definition: Shader.cpp:27
Shader & operator=(const Shader &)=delete
Shader & operator=(Shader &&)=delete
Types of queue families.
Definition: Animations.h:17