Add Sampler

- Add DescriptorSet and DescriptorPool abstractions to support Samplers
This commit is contained in:
Thraix
2023-01-19 23:15:11 +01:00
parent 8c8590d10a
commit 87ed5739b3
18 changed files with 491 additions and 194 deletions
+8 -10
View File
@@ -6,10 +6,14 @@
class PipelineCreator
{
struct DescriptorSetLayout
{
VkDescriptorType type;
VkShaderStageFlags flags;
};
friend class Pipeline;
private:
std::set<uint32_t> vertexDescriptorSetLayouts{};
std::set<uint32_t> fragmentDescriptorSetLayouts{};
std::map<uint32_t, DescriptorSetLayout> descriptorSetLayouts{};
std::string vertexShader;
std::string fragmentShader;
@@ -29,15 +33,9 @@ public:
vertexDescriptor = descriptor;
}
void AddVertexDescriptorSetLayoutBinding(uint32_t binding)
void AddDescriptorSetLayoutBinding(uint32_t set, VkDescriptorType type, VkShaderStageFlags stageFlags)
{
CP_ASSERT(binding == 0, "Currently only support uniforms with binding = 0");
vertexDescriptorSetLayouts.emplace(binding);
}
void AddFragmentDescriptorSetLayoutBinding(uint32_t binding)
{
fragmentDescriptorSetLayouts.emplace(binding);
descriptorSetLayouts.emplace(set, DescriptorSetLayout{type, stageFlags});
}
void SetPrimitiveTopology(VkPrimitiveTopology primitiveTopology)