VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
UniformBuffer.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_UNIFORMBUFFER_H_
7#define INCLUDE_VULKANENGINE_UNIFORMBUFFER_H_
8
9#include <VulkanEngine/Buffer.h>
10#include <VulkanEngine/Descriptor.h>
11
12#include <memory>
13#include <vector>
14#include <vulkan/vulkan.hpp>
15
16namespace VulkanEngine {
17
20template <typename T>
21class UniformBuffer : public Buffer, public Descriptor {
22 public:
28 UniformBuffer(uint32_t _binding, uint32_t _array_size = 1,
29 vk::ShaderStageFlags _vk_shader_stage_flags =
30 vk::ShaderStageFlagBits::eAllGraphics);
31
33 virtual ~UniformBuffer();
34
35 virtual void appendVkDescriptorSets(
36 std::shared_ptr<std::vector<vk::WriteDescriptorSet>>
37 write_descriptor_sets,
38 std::shared_ptr<std::vector<vk::CopyDescriptorSet>> copy_descriptor_sets,
39 const vk::DescriptorSet& destination_set);
40
41 private:
43 uint32_t array_size;
44
45 std::vector<vk::DescriptorBufferInfo> vk_descriptor_buffer_infos;
46};
47
48} // namespace VulkanEngine
49
50#include <UniformBuffer.cpp> // NOLINT(build/include)
51
52#endif // INCLUDE_VULKANENGINE_UNIFORMBUFFER_H_
Class which represents a single buffer using vk::Buffer.
Definition: Buffer.h:25
Definition: Descriptor.h:17
Definition: UniformBuffer.h:21
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)
Definition: UniformBuffer.cpp:44
virtual ~UniformBuffer()
Destructor.
Definition: UniformBuffer.cpp:41
TODO development of this class is in progress.
Definition: Attribute.h:13