VulkanEngine 0.1
Graphics engine using Vulkan
Loading...
Searching...
No Matches
StagedBuffer.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_STAGEDBUFFER_H_
7#define INCLUDE_VULKANENGINE_STAGEDBUFFER_H_
8
9#include <VulkanEngine/Buffer.h>
10
11namespace VulkanEngine {
12
22template <class DestinationClass>
23class StagedBuffer : public DestinationClass {
24 public:
27 template <class... DestinationClassArgs>
28 explicit StagedBuffer(DestinationClassArgs... args);
29
32
38 void transferBuffer(const vk::CommandBuffer& command_buffer = nullptr);
39
44 void updateBuffer(const void* _data, size_t _data_size) override;
45
46 protected:
50};
51
52} // namespace VulkanEngine
53
54#include <StagedBuffer.cpp> // NOLINT(build/include)
55
56#endif // INCLUDE_VULKANENGINE_STAGEDBUFFER_H_
Class which represents a single buffer using vk::Buffer.
Definition: Buffer.h:25
Definition: StagedBuffer.h:23
~StagedBuffer()
Destructor.
Definition: StagedBuffer.cpp:38
void updateBuffer(const void *_data, size_t _data_size) override
Definition: StagedBuffer.cpp:60
void transferBuffer(const vk::CommandBuffer &command_buffer=nullptr)
Definition: StagedBuffer.cpp:41
Buffer source_buffer
Definition: StagedBuffer.h:49
TODO development of this class is in progress.
Definition: Attribute.h:13