Foundation
Loading...
Searching...
No Matches
Descriptor.hpp
Go to the documentation of this file.
1#pragma once
3#include "Common.hpp"
4
5namespace Foundation::RHI {
6 class VulkanDevice;
7 class VulkanDeviceDescriptorPool;
8 class VulkanDeviceDescriptorSetLayout;
11 vk::raii::DescriptorSet mSet{ nullptr };
12 public:
13 VulkanDeviceDescriptorSet(VulkanDeviceDescriptorPool const& pool, vk::raii::DescriptorSet&& set);
14
15 void Update(UpdateDesc const& desc) override;
16
17 [[nodiscard]] auto const& GetVkDescriptorSet() const { return mSet; }
18
19 void DebugSetObjectName(const char* name) override;
20 };
23 vk::raii::DescriptorPool mPool{ nullptr };
25 public:
26 VulkanDeviceDescriptorPool(const VulkanDevice& device, PoolDesc const& desc);
34 RHIDeviceDescriptorSet* GetDescriptorSet(Handle handle) const override;
35
36 void DestroyDescriptorSet(Handle handle) override;
37 auto const& GetDevice() const { return mDevice; }
38 auto const& GetVkDescriptorPool() const { return mPool; }
39
40 void DebugSetObjectName(const char* name) override;
41 };
42}
Definition Descriptor.hpp:43
Definition Descriptor.hpp:11
Handle type for RHI Objects.
Definition Details.hpp:42
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:149
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:86
auto const & GetDevice() const
Definition Descriptor.hpp:37
RHIDeviceDescriptorPoolScopedHandle< RHIDeviceDescriptorSet > CreateDescriptorSet(RHIDeviceHandle< RHIDeviceDescriptorSetLayout > layout, uint32_t max_variable_count) override
Create a descriptor set from this pool.
Definition Descriptor.cpp:96
void DestroyDescriptorSet(Handle handle) override
Definition Descriptor.cpp:119
const VulkanDevice & mDevice
Definition Descriptor.hpp:22
RHIObjectPool mStorage
Definition Descriptor.hpp:24
vk::raii::DescriptorPool mPool
Definition Descriptor.hpp:23
auto const & GetVkDescriptorPool() const
Definition Descriptor.hpp:38
RHIDeviceDescriptorSet * GetDescriptorSet(Handle handle) const override
Definition Descriptor.cpp:116
void DebugSetObjectName(const char *name) override
Definition Descriptor.cpp:123
const VulkanDeviceDescriptorPool & mPool
Definition Descriptor.hpp:10
auto const & GetVkDescriptorSet() const
Definition Descriptor.hpp:17
void Update(UpdateDesc const &desc) override
Definition Descriptor.cpp:7
void DebugSetObjectName(const char *name) override
Definition Descriptor.cpp:59
vk::raii::DescriptorSet mSet
Definition Descriptor.hpp:11
Definition Device.hpp:94
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:149
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
uintptr_t Handle
Definition Details.hpp:8