VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
Descriptor.h
1// Copyright (c) 2024 Michael Carlie. All Rights Reserved.
2//
3// This software is released under the MIT License.
4// https://opensource.org/licenses/MIT
5
6#ifndef INCLUDE_VULKANENGINE_DESCRIPTOR_H_
7#define INCLUDE_VULKANENGINE_DESCRIPTOR_H_
8
9#include <memory>
10#include <vector>
11#include <vulkan/vulkan.hpp>
12
13namespace VulkanEngine {
14
18 public:
20 Descriptor(uint32_t _binding, uint32_t _desciptor_count,
21 vk::DescriptorType _vk_descriptor_type,
22 vk::ShaderStageFlags _vk_shader_stage_flags);
23
26
28 const vk::DescriptorSetLayoutBinding getVkDescriptorSetLayoutBinding() const;
29
32 const vk::DescriptorPoolSize getVkDescriptorPoolSize() const;
33
42 std::shared_ptr<std::vector<vk::WriteDescriptorSet>>
43 write_descriptor_sets,
44 std::shared_ptr<std::vector<vk::CopyDescriptorSet>> copy_descriptor_sets,
45 const vk::DescriptorSet& destination_set) = 0;
46
47 protected:
49 uint32_t binding;
50
53
55 vk::DescriptorType vk_descriptor_type;
56
57 // Specifies which shader stages will access the buffer
58 vk::ShaderStageFlags vk_shader_stage_flags;
59};
60
61} // namespace VulkanEngine
62
63#endif // INCLUDE_VULKANENGINE_DESCRIPTOR_H_
Definition: Descriptor.h:17
vk::DescriptorType vk_descriptor_type
The type of descriptor represented.
Definition: Descriptor.h:55
const vk::DescriptorSetLayoutBinding getVkDescriptorSetLayoutBinding() const
Definition: Descriptor.cpp:35
uint32_t binding
The binding index.
Definition: Descriptor.h:49
~Descriptor()
Destructor.
Definition: Descriptor.cpp:32
uint32_t descriptor_count
The number of descriptors represented.
Definition: Descriptor.h:52
const vk::DescriptorPoolSize getVkDescriptorPoolSize() const
Definition: Descriptor.cpp:43
virtual void appendVkDescriptorSets(std::shared_ptr< std::vector< vk::WriteDescriptorSet > > write_descriptor_sets, std::shared_ptr< std::vector< vk::CopyDescriptorSet > > copy_descriptor_sets, const vk::DescriptorSet &destination_set)=0
TODO development of this class is in progress.
Definition: Attribute.h:13