Files
Destrum/destrum/include/destrum/Graphics/Resources/NBuffer.h
T

42 lines
893 B
C++

#ifndef NBUFFER_H
#define NBUFFER_H
#include <string>
#include <vector>
#include <destrum/Graphics/Resources/Buffer.h>
class GfxDevice;
class MemoryManager;
class NBuffer {
public:
void init(
GfxDevice& gfxDevice,
VkBufferUsageFlags usage,
std::size_t dataSize,
const std::string& debugName = "");
void cleanup(GfxDevice& gfxDevice);
void uploadNewData(
VkCommandBuffer cmd,
std::size_t frameIndex,
void* newData,
std::size_t dataSize,
std::size_t offset = 0,
bool sync = true) const;
const GPUBuffer& getBuffer() const { return gpuBuffer; }
private:
std::size_t framesInFlight{0};
std::size_t gpuBufferSize{0};
std::vector<GPUBuffer> stagingBuffers;
GPUBuffer gpuBuffer;
const MemoryManager* memoryManager{nullptr};
bool initialized{false};
};
#endif //NBUFFER_H