Polyphase Game Engine
Loading...
Searching...
No Matches
Shader.h
Go to the documentation of this file.
1#pragma once
2
4
5#include <vulkan/vulkan.h>
6#include <spirv_cross/spirv_cross.hpp>
7
8enum class ShaderStage : uint8_t
9{
10 Vertex,
12 Compute,
13
14 Count
15};
16
17class Shader
18{
19public:
20
21 Shader(const std::string& filePath, ShaderStage stage, const std::string& name);
22 Shader(const char* data, uint32_t size, ShaderStage stage, const std::string& name);
23
24
25protected:
26
27 friend class DestroyQueue;
28 ~Shader();
29
30 void Create(const char* data, uint32_t size);
31
32public:
33
34 std::string mName;
36 VkShaderModule mModule = VK_NULL_HANDLE;
37 std::vector<VkDescriptorSetLayoutBinding> mDescriptorBindings[MAX_BOUND_DESCRIPTOR_SETS];
38};
39
ShaderStage
Definition Shader.h:9
#define MAX_BOUND_DESCRIPTOR_SETS
Definition VulkanConstants.h:10
Definition Shader.h:18
friend class DestroyQueue
Definition Shader.h:27
std::vector< VkDescriptorSetLayoutBinding > mDescriptorBindings[MAX_BOUND_DESCRIPTOR_SETS]
Definition Shader.h:37
VkShaderModule mModule
Definition Shader.h:36
void Create(const char *data, uint32_t size)
Definition Shader.cpp:71
std::string mName
Definition Shader.h:34
ShaderStage mStage
Definition Shader.h:35
~Shader()
Definition Shader.cpp:60