Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
descriptor_writer.hpp
Go to the documentation of this file.
1
6
7
#pragma once
8
9
#include "vulkan_common.hpp"
10
11
#include <cstdint>
12
#include <deque>
13
#include <span>
14
#include <vector>
15
16
namespace
renderer {
17
18
class
DescriptorWriter
{
19
public
:
20
auto
buffer(
21
vk::DescriptorSet set, uint32_t binding, vk::DescriptorType type, vk::Buffer buffer, vk::DeviceSize range = VK_WHOLE_SIZE,
22
vk::DeviceSize offset = 0
23
) ->
DescriptorWriter
&;
24
25
auto
image(
26
vk::DescriptorSet set, uint32_t binding, vk::DescriptorType type, vk::Sampler sampler, vk::ImageView view,
27
vk::ImageLayout layout
28
) ->
DescriptorWriter
&;
29
30
auto
31
imageArray(vk::DescriptorSet set, uint32_t binding, vk::DescriptorType type, std::span<const vk::DescriptorImageInfo> infos)
32
->
DescriptorWriter
&;
33
34
auto
accelerationStructure(vk::DescriptorSet set, uint32_t binding, vk::AccelerationStructureKHR structure)
35
->
DescriptorWriter
&;
36
37
void
flush(
const
vk::raii::Device& device);
38
39
private
:
40
std::vector<vk::WriteDescriptorSet> m_writes;
41
42
// Deques since writes point into these and a deque never moves its elements
43
std::deque<vk::DescriptorBufferInfo> m_buffer_infos;
44
std::deque<std::vector<vk::DescriptorImageInfo>> m_image_infos;
45
std::deque<vk::AccelerationStructureKHR> m_structures;
46
std::deque<vk::WriteDescriptorSetAccelerationStructureKHR> m_structure_writes;
47
};
48
49
}
renderer::DescriptorWriter
Definition
descriptor_writer.hpp:18
engine
src
toast
renderer
descriptor_writer.hpp
Generated by
1.17.0