nngn
Loading...
Searching...
No Matches
descriptor.h
Go to the documentation of this file.
1#ifndef NNGN_GRAPHICS_VULKAN_DESCRIPTOR_H
2#define NNGN_GRAPHICS_VULKAN_DESCRIPTOR_H
3
4#include <cstdint>
5#include <span>
6#include <vector>
7
8#include "utils/utils.h"
9
10#include "vulkan.h"
11
12namespace nngn {
13
14class DescriptorPool {
15public:
17 DescriptorPool(void) = default;
19 VkDescriptorPool id(void) const { return this->h; }
20 void init(VkDevice dev);
21 bool reset(void) const;
23 std::uint32_t max, std::span<const VkDescriptorPoolSize> sizes);
24 void destroy();
25private:
26 VkDevice dev = {};
28};
29
30class DescriptorSets {
31public:
33 DescriptorSets(void) = default;
35 VkDescriptorSetLayout layout(void) const { return this->m_layout; }
36 std::span<const VkDescriptorSet> ids(void) const { return this->hs; }
37 bool init(
38 VkDevice dev, std::span<const VkDescriptorSetLayoutBinding> bindings);
39 bool reset(VkDescriptorPool pool, std::uint32_t max);
45 void destroy();
46protected:
47 VkDevice dev = {};
48private:
50 std::vector<VkDescriptorSet> hs = {};
51 std::vector<VkDescriptorType> types = {};
52};
53
54}
55
56#endif
Definition: descriptor.h:14
bool reset(void) const
DescriptorPool(void)=default
VkDescriptorPool h
Definition: descriptor.h:27
VkDevice dev
Definition: descriptor.h:26
void init(VkDevice dev)
bool recreate(std::uint32_t max, std::span< const VkDescriptorPoolSize > sizes)
Definition: descriptor.h:30
VkDescriptorSetLayout layout(void) const
Definition: descriptor.h:35
DescriptorSets(void)=default
std::vector< VkDescriptorType > types
Definition: descriptor.h:51
void destroy()
Destroys resources associated with the sets.
VkDevice dev
Definition: descriptor.h:47
VkDescriptorSetLayout m_layout
Definition: descriptor.h:49
std::span< const VkDescriptorSet > ids(void) const
Definition: descriptor.h:36
std::vector< VkDescriptorSet > hs
Definition: descriptor.h:50
bool init(VkDevice dev, std::span< const VkDescriptorSetLayoutBinding > bindings)
bool reset(VkDescriptorPool pool, std::uint32_t max)
#define NNGN_MOVE_ONLY(x)
Definition: utils.h:39
Definition: audio.cpp:7
COMMAND_BUFFER DESCRIPTOR_POOL VkDescriptorSetLayout
Definition: types.h:71
COMMAND_BUFFER VkDescriptorPool
Definition: types.h:71